From 977eb5a456f28dd87010dc77b731dbd2ff9dc0b0 Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Thu, 7 May 2026 08:32:41 +0200 Subject: [PATCH] Bug hunting ao_playasync --- ao-play-async/ao_playasync.c | 281 ++++++++++++++++++++------- lib/windows-x86_64.zip | Bin 92565392 -> 92565011 bytes lib/windows-x86_64/ao-play-async.dll | Bin 16384 -> 15872 bytes lib/windows-x86_64/ffmpeg_audio.dll | Bin 27648 -> 27648 bytes lib/windows-x86_64/ffmpeg_audio.lib | Bin 8818 -> 9008 bytes 5 files changed, 206 insertions(+), 75 deletions(-) diff --git a/ao-play-async/ao_playasync.c b/ao-play-async/ao_playasync.c index 6870344..76845a5 100644 --- a/ao-play-async/ao_playasync.c +++ b/ao-play-async/ao_playasync.c @@ -1,17 +1,23 @@ #include "ao_playasync.h" #include "../ffi_version.h" -#ifdef WIN32 +#define TRUE (1==1) +#define FALSE (1==0) + +#if defined(_WIN32) || defined(WIN32) +#define AO_ASYNC_WINDOWS #include #define USE_WINDOWS_THREADS #define sleep_ms(ms) Sleep(ms) #else #ifdef __APPLE__ +#define AO_ASYNC_APPLE #define USE_DISPATCH #include #define sleep_ms(ms) msleep(ms) #else #define USE_PTHREADS +#include #include #define sleep_ms(ms) usleep(ms * 1000) #endif @@ -61,6 +67,7 @@ #define MUTEX_UNLOCK(m) pthread_mutex_unlock(&m) #define SEM_WAIT(sem, ms) _SEM_WAIT(sem, ms) #define SEM_TRYWAIT(sem) (dispatch_semaphore_wait(sem, DISPATCH_TIME_NOW) == 0) + #define SEM_WAIT_INFINITE(sem) (dispatch_semaphore_wait(sem, DISPATCH_TIME_FOREVER) == 0) #define SEM_POST(sem) dispatch_semaphore_signal(sem) #define YIELD() sleep_ms(5) #endif @@ -70,6 +77,7 @@ #define MUTEX_UNLOCK(m) ReleaseMutex(m) #define SEM_WAIT(sem, ms) (WaitForSingleObject(sem, ms) == WAIT_OBJECT_0) #define SEM_TRYWAIT(sem) (WaitForSingleObject(sem, 0) == WAIT_OBJECT_0) + #define SEM_WAIT_INFINITE(sem) (WaitForSingleObject(sem, INFINITE) == WAIT_OBJECT_0) #define SEM_POST(sem) ReleaseSemaphore(sem, 1, NULL) #define YIELD() sleep_ms(5) #endif @@ -100,24 +108,25 @@ #define MUTEX_LOCK(m) pthread_mutex_lock(&m) #define MUTEX_UNLOCK(m) pthread_mutex_unlock(&m) #define SEM_WAIT(sem, ms) _SEM_WAIT(&sem, ms) + #define SEM_WAIT_INFINITE(sem) (sem_wait(&sem) == 0) #define SEM_TRYWAIT(sem) (sem_trywait(&sem) == 0) #define SEM_POST(sem) sem_post(&sem) #define YIELD() yield() #endif -#ifndef WIN32 +#ifndef AO_ASYNC_WINDOWS #include #endif -#ifndef __APPLE__ +#ifndef AO_ASYNC_APPLE #include #endif #include #include #include #include -#include #include +#include typedef enum { PLAY = 1, @@ -143,6 +152,7 @@ typedef struct { Queue_t *last_frame; int paused; + int stopped; ao_device *ao_device; int requested_bits_per_sample; @@ -153,31 +163,41 @@ typedef struct { #ifdef USE_WINDOWS_THREADS HANDLE mutex; - HANDLE pause_mutex; HANDLE clear_mutex; HANDLE thread; DWORD thread_id; HANDLE queue_sem; + HANDLE pause_sem; #endif #if defined(USE_PTHREADS) || defined(USE_DISPATCH) pthread_mutex_t mutex; - pthread_mutex_t pause_mutex; pthread_mutex_t clear_mutex; pthread_t thread; #ifdef USE_PTHREADS sem_t queue_sem; + sem_t pause_sem; #endif #ifdef USE_DISPATCH dispatch_semaphore_t queue_sem; + dispatch_semaphore_t pause_sem; #endif #endif double at_second; double music_duration; int at_music_id; int buf_size; - int volume_in_10000; // volume in 100000 steps, i.e. 100000 equals 100% + int volume_in_10000; // volume in 10000 steps, i.e. 10000 equals 100% } AO_Handle; +static inline int stopped(AO_Handle *h, int lock_mutex) +{ + if (lock_mutex) MUTEX_LOCK(h->mutex); + int stopped = h->stopped; + if (lock_mutex) MUTEX_UNLOCK(h->mutex); + return stopped; +} + +static void del_elem(Queue_t *q); static Queue_t *get(AO_Handle *h, int ms_wait) { @@ -205,9 +225,20 @@ static Queue_t *get(AO_Handle *h, int ms_wait) return q; } -static void add(AO_Handle *h, Queue_t *elem) +static void add(AO_Handle *h, Queue_t *elem, int in_clear) { + if (!in_clear) { + MUTEX_LOCK(h->clear_mutex); + } + MUTEX_LOCK(h->mutex); + if (!in_clear && stopped(h, FALSE)) { + MUTEX_UNLOCK(h->mutex); + MUTEX_UNLOCK(h->clear_mutex); + del_elem(elem); + return; + } + if (h->last_frame == NULL) { h->play_queue = elem; elem->next = NULL; @@ -221,17 +252,34 @@ static void add(AO_Handle *h, Queue_t *elem) } h->buf_size += elem->buflen; SEM_POST(h->queue_sem); + MUTEX_UNLOCK(h->mutex); + + if (!in_clear) { + MUTEX_UNLOCK(h->clear_mutex); + } } static Queue_t *new_elem(int command, int music_id, double at_second, double music_duration, int buf_len, void *buf) { Queue_t *q = (Queue_t *) malloc(sizeof(Queue_t)); + if (q == NULL) { + fprintf(stderr, "new_elem: Cannot allocate Queue Element!\n"); + return NULL; + } + void *new_buf; - if (buf_len != 0) { + if (buf_len > 0) { new_buf = (void *) malloc(buf_len); - memcpy(new_buf, buf, buf_len); + if (new_buf != NULL) { + memcpy(new_buf, buf, buf_len); + } else { + fprintf(stderr, "new_elem: Cannot allocate memory of size %d\n", buf_len); + buf_len = 0; + free(q); + return NULL; + } } else { new_buf = NULL; } @@ -254,7 +302,7 @@ static void del_elem(Queue_t *q) free(q); } -static void clear(AO_Handle *h) +static void clear(AO_Handle *h, int do_stop) { //fprintf(stderr, "Wait for clear mutex\n"); MUTEX_LOCK(h->clear_mutex); @@ -267,6 +315,16 @@ static void clear(AO_Handle *h) q = get(h, 0); } fprintf(stderr, "%d elements cleared\n", count); + + if (do_stop) { + Queue_t *q = new_elem(STOP, 0, 0.0, 0.0, 0, NULL); + if (q == NULL) { + fprintf(stderr, "Unexpected! Cannot allocate STOP element, aborting\n"); + abort(); + } + add(h, q, TRUE); + } + MUTEX_UNLOCK(h->clear_mutex); } @@ -276,6 +334,7 @@ static int inline littleEndian() return (*(char *)&n) == 1; } +/* static void inline adjustVolume(AO_Handle *handle, char *_buf, int buf_size, int volume_in_10000) { int bytes_per_sample = (handle->dev_bits_per_sample >> 3); @@ -318,6 +377,59 @@ static void inline adjustVolume(AO_Handle *handle, char *_buf, int buf_size, int } } } +*/ + + +static inline int32_t read_sample(unsigned char *mem, int req_bytes, int little_endian) +{ + uint32_t v = 0; + + for (int i = 0; i < req_bytes; i++) { + int idx = little_endian ? i : (req_bytes - i - 1); + v |= ((uint32_t) mem[idx]) << (8 * i); + } + + if (req_bytes < 4) { + int bits = req_bytes * 8; + uint32_t sign = 1u << (bits - 1); + v = (v ^ sign) - sign; + } + + return (int32_t) v; +} + +static inline void store_sample(unsigned char *dst, int32_t in_sample, int out_bytes, int is_little_endian) +{ + uint32_t sample = (uint32_t) in_sample; + for (int i = 0; i < out_bytes; i++) { + int idx = is_little_endian ? i : (out_bytes - i - 1); + dst[idx] = sample & 0xff; + sample >>= 8; + } +} + + +static inline void adjustVolume(AO_Handle *handle, + char *_buf, + int buf_size, + int volume_in_10000) +{ + int bytes_per_sample = handle->dev_bits_per_sample >> 3; + int endianess = handle->dev_endianess; + int little_endian = (endianess == AO_FMT_LITTLE); + + if (!little_endian && endianess == AO_FMT_NATIVE) { + little_endian = littleEndian(); + } + + unsigned char *buf = (unsigned char *) _buf; + + for (int i = 0; i + bytes_per_sample <= buf_size; i += bytes_per_sample) { + int32_t sample = read_sample(buf + i, bytes_per_sample, little_endian); + int64_t scaled = ((int64_t) sample * volume_in_10000) / 10000; + store_sample(buf + i, (int32_t) scaled, bytes_per_sample, little_endian); + } +} #if defined(USE_PTHREADS) || defined(USE_DISPATCH) static void *run(void *arg) @@ -330,25 +442,36 @@ static DWORD run(LPVOID arg) int go_on = (1 == 1); while(go_on) { - MUTEX_LOCK(handle->pause_mutex); - MUTEX_UNLOCK(handle->pause_mutex); + SEM_WAIT_INFINITE(handle->pause_sem); + SEM_POST(handle->pause_sem); MUTEX_LOCK(handle->clear_mutex); Queue_t *q = get(handle, 250); MUTEX_UNLOCK(handle->clear_mutex); if (q != NULL) { + + MUTEX_LOCK(handle->mutex); handle->at_second = q->at_second; handle->music_duration = q->music_duration; handle->at_music_id = q->music_id; + int volume = handle->volume_in_10000; + MUTEX_UNLOCK(handle->mutex); - if (handle->volume_in_10000 != 10000) { + if (volume != 10000 && q->command == PLAY) { // adjust volume - adjustVolume(handle, q->buf, q->buflen, handle->volume_in_10000); + adjustVolume(handle, q->buf, q->buflen, volume); } if (q->command == STOP) { - go_on = (1 == 0); + go_on = FALSE; } else { - ao_play(handle->ao_device, (char *) q->buf, q->buflen); + if (!ao_play(handle->ao_device, (char *) q->buf, q->buflen)) { + fprintf(stderr, "Unexpected, ao_play returns 0 --> ao device must be closed\n"); + fprintf(stderr, "Stopping play loop\n"); + go_on = FALSE; + MUTEX_LOCK(handle->mutex); + handle->stopped = TRUE; + MUTEX_UNLOCK(handle->mutex); + } } del_elem(q); @@ -370,12 +493,12 @@ int ao_async_version() return ffi_version(); } -#ifdef _WIN32 +#ifdef AO_ASYNC_WINDOWS #else #include #endif -#ifdef _WIN32 +#ifdef AO_ASYNC_WINDOWS static void at_exit_shutdown_ao(void) #else static void at_exit_shutdown_ao() @@ -434,6 +557,7 @@ static ao_device *try_open_device(int bits, int rate, int channels, int byte_for } +/* static inline int32_t convert_bits(int32_t sample, int req_bits, int out_bits) { if (req_bits > out_bits) { @@ -443,41 +567,36 @@ static inline int32_t convert_bits(int32_t sample, int req_bits, int out_bits) } return sample; } +*/ -static inline int32_t read_sample(unsigned char *mem, int req_bytes, int little_endian) +static inline int32_t convert_bits(int32_t sample, int req_bits, int out_bits) { - uint32_t v = 0; + if (req_bits == out_bits) return sample; - for (int i = 0; i < req_bytes; i++) { - int idx = little_endian ? i : (req_bytes - i - 1); - v |= ((uint32_t) mem[idx]) << (8 * i); - } + int shift = req_bits > out_bits + ? req_bits - out_bits + : out_bits - req_bits; - if (req_bytes < 4) { - int bits = req_bytes * 8; - uint32_t sign = 1u << (bits - 1); - v = (v ^ sign) - sign; - } - - return (int32_t) v; + if (req_bits > out_bits) { + return sample / (1 << shift); + } else { + return (int32_t)((int64_t)sample * ((int64_t)1 << shift)); + } } -static inline void store_sample(unsigned char *dst, int32_t sample, int out_bytes, int is_little_endian) -{ - for (int i = 0; i < out_bytes; i++) { - int idx = is_little_endian ? i : (out_bytes - i - 1); - dst[idx] = sample & 0xff; - sample >>= 8; - } -} static void *convert_req_to_real(AO_Handle *h, void *mem, int mem_size, BufferInfo_t *info, int *out_size) { + if (mem_size <= 0) { + *out_size = 0; + return NULL; + } + int endianess = h->dev_endianess; int little_endian = (endianess == AO_FMT_LITTLE); if (!little_endian && endianess == AO_FMT_NATIVE) little_endian = littleEndian(); - int requested_bits = h->requested_bits_per_sample; + int requested_bits = info->sample_bits; // h->requested_bits_per_sample; int output_bits = h->dev_bits_per_sample; int req_bytes = (requested_bits / 8); @@ -485,7 +604,7 @@ static void *convert_req_to_real(AO_Handle *h, void *mem, int mem_size, BufferIn int samples = (mem_size / req_bytes); - unsigned char *buf_out = (unsigned char *) malloc(samples * out_bytes); + unsigned char *buf_out = (unsigned char *) malloc((samples + 1) * out_bytes); if (buf_out == NULL) { fprintf(stderr, "Allocation of output buffer of %d samples of %d bits gives NULL", samples, output_bits); *out_size = 0; @@ -520,13 +639,10 @@ void *ao_create_async(int bits, int rate, int channels, int byte_format, const c init_ao(); AO_Handle *handle = (AO_Handle *) malloc(sizeof(AO_Handle)); - - ao_sample_format fmt; - fmt.bits = bits; - fmt.rate = rate; - fmt.byte_format = byte_format; - fmt.channels = channels; - fmt.matrix = NULL; + if (handle == NULL) { + fprintf(stderr, "Cannot allocate ao_handle!\n"); + return NULL; + } int opened_bits = 0; ao_device *dev = try_open_device(bits, rate, channels, byte_format, wav_file_output, &opened_bits); @@ -549,23 +665,23 @@ void *ao_create_async(int bits, int rate, int channels, int byte_format, const c handle->last_frame = NULL; handle->at_second = -1; handle->at_music_id = -1; + handle->music_duration = 0; handle->buf_size = 0; - handle->paused = (1 == 0); + handle->paused = FALSE; + handle->stopped = FALSE; #if defined(USE_PTHREADS) || defined(USE_DISPATCH) - pthread_mutex_t p = PTHREAD_MUTEX_INITIALIZER; - handle->pause_mutex = p; - pthread_mutex_t c = PTHREAD_MUTEX_INITIALIZER; - handle->clear_mutex = c; - pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER; - handle->mutex = m; + pthread_mutex_init(&handle->clear_mutex, NULL); + pthread_mutex_init(&handle->mutex, NULL); #ifdef USE_PTHREADS sem_init(&handle->queue_sem, 0, 0); + sem_init(&handle->pause_sem, 0, 1); #endif #ifdef USE_DISPATCH handle->queue_sem = dispatch_semaphore_create(0); + handle->pause_sem = dispatch_semaphore_create(1); #endif pthread_create(&handle->thread, NULL, run, handle); #endif @@ -575,19 +691,14 @@ void *ao_create_async(int bits, int rate, int channels, int byte_format, const c handle->mutex = CreateMutex(NULL, // default security attributes FALSE, // initially not owned NULL); - handle->pause_mutex = CreateMutex(NULL, // default security attributes - FALSE, // initially not owned - NULL); handle->clear_mutex = CreateMutex(NULL, FALSE, NULL); handle->queue_sem = CreateSemaphore(NULL, 0, 1000000, NULL); + handle->pause_sem = CreateSemaphore(NULL, 1, 1000000, NULL); handle->thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) run, handle, 0, &handle->thread_id); #endif - MUTEX_UNLOCK(handle->pause_mutex); - MUTEX_UNLOCK(handle->clear_mutex); - return (void *) handle; } @@ -596,15 +707,19 @@ void ao_stop_async(void *ao_handle) AO_Handle *h = (AO_Handle *) ao_handle; fprintf(stderr, "stopping ao_async, calling clear\n"); - clear(h); + MUTEX_LOCK(h->mutex); + h->stopped = TRUE; + MUTEX_UNLOCK(h->mutex); + + clear(h, TRUE); fprintf(stderr, "queue cleared\n"); + MUTEX_LOCK(h->mutex); if (h->paused) { - MUTEX_UNLOCK(h->pause_mutex); + SEM_POST(h->pause_sem); } - Queue_t *q = new_elem(STOP, 0, 0.0, 0.0, 0, NULL); - add(h, q); + MUTEX_UNLOCK(h->mutex); fprintf(stderr, "stop command queued\n"); @@ -614,9 +729,14 @@ void ao_stop_async(void *ao_handle) #ifdef USE_PTHREADS sem_destroy(&h->queue_sem); + sem_destroy(&h->pause_sem); + #endif + + #ifdef USE_DISPATCH + dispatch_release(h->queue_sem); + dispatch_release(h->pause_sem); #endif - pthread_mutex_destroy(&h->pause_mutex); pthread_mutex_destroy(&h->clear_mutex); pthread_mutex_destroy(&h->mutex); #endif @@ -625,6 +745,9 @@ void ao_stop_async(void *ao_handle) WaitForSingleObject(h->thread, INFINITE); CloseHandle(h->thread); CloseHandle(h->mutex); + CloseHandle(h->pause_sem); + CloseHandle(h->queue_sem); + CloseHandle(h->clear_mutex); #endif ao_close(h->ao_device); @@ -635,10 +758,7 @@ void ao_stop_async(void *ao_handle) fprintf(stderr, "async handle freed\n"); } -#define AO_FMT_LITTLE 1 -#define AO_FMT_BIG 2 -#define AO_FMT_NATIVE 4 - +/* static inline void make_sample_bytes(int32_t sample, int bytes_per_sample, int big_endian, unsigned char b[4]) { int i; @@ -657,27 +777,38 @@ static inline void make_sample_bytes(int32_t sample, int bytes_per_sample, int b } } } +*/ + void ao_play_async(void *ao_handle, int music_id, double at_second, double music_duration, int buf_size, void *mem, BufferInfo_t info) { AO_Handle *h = (AO_Handle *) ao_handle; + if (stopped(h, TRUE)) { return; } + Queue_t *q = NULL; int ao_size = 0; void *ao_mem = convert_req_to_real(ao_handle, mem, buf_size, &info, &ao_size); + if (ao_mem == NULL || ao_size <= 0) { + if (ao_mem != NULL) { free(ao_mem); } + return; + } q = new_elem(PLAY, music_id, at_second, music_duration, ao_size, ao_mem); free(ao_mem); - add(h, q); + if (q != NULL && q->buf != NULL) { // memory error has already been given. + add(h, q, FALSE); + } } void ao_clear_async(void *ao_handle) { AO_Handle *h = (AO_Handle *) ao_handle; - clear(h); + if (stopped(h, TRUE)) { return; } + clear(h, FALSE); } double ao_is_at_second_async(void *ao_handle) @@ -746,12 +877,12 @@ void ao_pause_async(void *ao_handle, int paused) if (h->paused) { if (!paused) { h->paused = paused; - MUTEX_UNLOCK(h->pause_mutex); + SEM_POST(h->pause_sem); } } else { if (paused) { h->paused = paused; - MUTEX_LOCK(h->pause_mutex); + SEM_WAIT_INFINITE(h->pause_sem); } } diff --git a/lib/windows-x86_64.zip b/lib/windows-x86_64.zip index 0c66e9047ae9fea5388f82fb39eb9d8ef2c57cd9..48f757544e98659aae7558c4ff86ecae95ee962f 100644 GIT binary patch delta 29034 zcmW*ScQjZ3AHeZYgp6bhiO9^}TgWCOGueA5+lMl;_uhMFWJFond&>ylvPsHFX21LT z{qcO9*XOVMKIh*1KIij3=faEtZ=MlcA7Di2Q9;Yr>A8rB{>xt^J!UGX=0Whue_?nd`T3T zg3Rx+;?OMxF|nRvD9H3DQrH#8qI?*|T8)}|kB?sARV~Ld6WSXSzidhqb!=}p;$|mS z>8x2n+P7plw$D`VAF3DZo!z+io4`&M6-o*^MFKDP2HR)V&G&9t1^3-oNZp9=l# zlxvF8qq&{|u~Oxw*ngzPbaxmE$^RP^y1sGgZClr2se+Ri87tEJE2reC!jIT%!ByIC zievuJrzsN}P};vza@0~==T@MpK#`|Z{%ucuABSH4K01aZ?U1L<(g#)_O1}Bk)R8^*m0E4(IluQ*uGHADxvF~Qp6qMd66MRMyNBM4i&1$k zdcVK=X5D+!DCq1XMxRMTARDx0kA@vp1yuCTE2!7r_(QR z)BS$X7Q#mJh}N z&C1<@B(C&pS=S%`R8ds2Y5zT^{8oi=_u>ZDBBed9J=S9Bbnz4Smo&<5{Z6Re?DdlTK|Y>Z8#UsE z`YuXMr+RABHu)Z-LBXE&qDCWqjQGym=ROXW^uKb1hXqyIhi7v01eXGIr}FMqGQhj?f!a&@G!%>r5Av z!)wF12O4y=W|(_jqp`zlQhh*zzqQ0`*-n*|OOcTq|bn%o&r zKUH`LpM*U+3Q=e6r6_It>*B}t;aXB_Z4LR2T9-k~zvEOGRf6H5? zguQ=LV|ELh{EWJIif_8;i6(Q{Z|<}D?e_n=R_wE0@@wZ@q!K!?3;rcEc(dc`&T)F{ zkUHpHjmM7zoW^Lw14}9KFTNPzsI#;{f4|=;XKB<+XW!$*D+2eQ>iiJY{T>!GRjXQ6 zIZ$IdTq5V`$W?95>aY2QX_DjhMLl8b^w$By!;C8CRsE6+BGTG>1WbyNiE+;eiuBrC z2FHB!R=yXaU$Ak_7es^yZxI>QFO8@4WR^OuaDO(rVS?_ol-`J%XO>{?Z$hPR>#51l zl|Opki&^MMLA4i^L~2&*M+4pHFV)sd zX;;Z}?+RFz4&BQb71(Hx#TQ&feL|BR5|*NQi$l(ocWpkXG6DxPfO`$6|EHO}xM_4G1si5MZ_}7gXx=`Z`r^9G9Det?(jF$`Dg^~%>K@xR{W zs2wvh%{}zWRpr9xQW#_D_0T#_Mja38Gif`Rm3Pe&HxxyN?!;N%th?5b5%jR(e%YT7 zIP}M3LsjeAU&t)8j%e}6$p2To$YFL>UFpBbO zDQ5h@{-Yc9T@m&5frL zb^VM_KTkW~9W&{4Ws8-})9$c&PLdM&eWb;FNcNJ-qS#i5r%C>x5^)@2vvw?K5jmDns&obTaCk zQ>^zS(q>;$%^hF2KfvKCeR~U4Dw1yaR$+bf28BPTM2-WYMU;F+Tjr7RohX8rt7KUN ze>e#$o(E=3{#Q9;qH)C2KbKcZ&L?Q_H~UnNh85dZ_H}`Zo!m{lhi&dAnm0TC9j3Mm zJ-yib_K6F{g@vmsyy>pqy zSYMiC{O;ISR&5XKkHnAZ@RZrc5wE`tTQ+*ycPbXplsel{Z1kvou?Ja1i_Zehunnp` zbi`|iKj7@Lo5kl=-tk_Zz!pMb+~fH7VRlN1K&|&hgJ-Iw92KiW85^tiz zprgQr!R7T+b~f>MdTAvtEH2Z#l1BW#_l|B+Yrfyiv@hB8GTC+KP|JDm`r`B`@i?nC zI9GCVQJAik)_q9))s7R2G~IeCr|kO%w?Uft;-IK4$BeuKb)y-vIeEPf3e`($pGRZk z_*pTRN;lxq?H{I9ajlb|=lS(&7z@2jK~o|l*~wS=_pE;C_9mC+QcdC{ zT|UizAkMb6KfK4m#BgCFJw_YWl-rh`wG)3BS|+Cd&J;DU4WU-vJE%ARbpRg z9T88!*E|yy8>*p}$JpM@_uomx3{fR%^QJxRs-KvCOebGQWRS~wU6#wSE4}+ER z*4UWxhNG(2drg{TW0JL~Fnnsa#EX89^k1ZNzu9(eVwp~ududB1ulQ3@1U+&Z0^bBp zxVC#StxdhzmEQ*4;coKbcf0%^g3E*m%}?E`chiEB4GIL0;ubn5QY+uLptEChBt_iM;8TiLFih%UWBKXLZXcq(SitXM z%+C{|-^|lfZS_G52QQh_5A~6sKPr8)+P6$X;oOVD-G1-pHCcJV^k~Z%yBy4X6U@}; zEelqbTH5K_W)|lGv89I4E`v>5l&6x$XX@8XP4m>;Xqis@X~_J)fhNglrN= zbO;@tN4&LAD^gz4YZK^nmqM3*jmmWV%~K>97eRz0JR+<)2{>z)jHr(+KCkBwmRpW! zo>_>NVtD)>H%P5U9_z&WeHjC;`h&f~!`GF~hU#)tVkWk$8O+&ahrEx3ta|Lev3=uR z?SE&>@I^#8Iww$C6(u{UTPrRq%7WtktH-5C11e&GbIIC`?c+IWtZ8XB6 zR;;z|z=RJRQcfrugKH?K%6FSsr5>n{CcA%|s1p6fwjfwbLkp(N1y;Z)qp6zOCjDvarUK-Lo!M;AfV zvs=V#mS~aQQ^VaG`{W<7k7>8`E{Cp#c~g@tXbk3zR<7eq4?0iSt|dEOBk}jM`#U8W zMhgk}CCn#Bzupp7*&1l({8G24(<`OC^DI`S4$7$UYBn0rdJQ6I7uR7F=(9|evS{1#g} z$JGsx3nu^d?!7ANcp&He!Gy;F+4J_TVJ}tHng=frQqIG#oJSA2q$Z5no$zT}SAU7h zK02}q*1KpWlf??hdFn2zDO31;r+Aq6zQZ%>++1~^zKwk@h2jU6sBivwdH?dFuF|vB zvyEokL?c34E-8Jq&WXci^m30!O$n6vPu)TcEJE4xb}U5PnvUcK>Z3J%Gc_%z-Z28W~dhxP{v{A?eyqe7@jF1+p? zyt331Nr+w^*zKsk-R7q{N7rP_NRs`LN;1jPC7RId{C2KL8F~~Q{hgb#Z>FRZuDu$P z(KE@M!w7gi-O7YSEAcm+9&LMGe;{#sGzvgXXbC>j)zPWZ(o6;)Z>?~14F!RAEpCynboK&;69`&NGQZq7zbKB^$ zQYb1u-$?6DL-1{fC9=9z)^{=^inirk?DOb8kMGpaP;ey#;8D)DVz|FF=*VITVHq?d zF~xtS*-35gMExbmXZ+no>45BijN7Kt-llkqr5t<&*4sy7a(%Z_KFDL6tm@TB#!75_ z5!lSSjHIseXKwDSiLo*sdvdNr|J@tI*mG9 zsCuYx*lT%Xs=U5ofjiuAbn}FjO==Qfl1;(k?M?5Rdrj>5iqVgm+NrO3zqsAbL(^l1 z)-pgrXlicJmG4|^`stCT*!Hw1T{2Yxdm{B%2`VV}uj_wQUw*ZJ%tS?U$AqQ$2AG6x z4P#5{KcRA{b}$ni5ZIjK-`2EV-Pw2hCaXE~@xB%+Nw(q7PS9Y}YpMjNy4A(D%%KH* zW$VRDR)-wvr>{h*8d*iMhy2yd+bibwZ=U62K#WOt@#FYtPfH~;jDrIL*6-8`PyZeY8TuwAwN zdZjr~+&!OLnV(d4ktuXpp|QcuVa(4Nnx9d|ntU#%-(oH=`8;6grGw_@s|O5ayMY%< znj6b^{moaMC4=p>KIjLRRE$?k+dRTo)A)AE@<}zAp!^pzNn7sc6O`89;-s#Da?u2w z&C(jxU}NRKgn6FXwoN#AENoVsX`~e&Q0QXDNdozkCz`+USo}-FA8F+o2NP5rkFb2Q z(AvL#KB}{wb?3;jd}F-mPrG8U1$btJtE%>n4A7J zPI+a|A0}R_a->9;(8q*od1LCvU-Zc3(Z)Wz_{HfGyVv4n@gGu6A6=ZF-`Gz+6v^It zik=?&)d4Ms{Aq3Q^PBo>Mz=nr;Tm#0?UJChA$aSb@UgW}&+y0b+mET;FKWcB5B^)d zt;v^ekq|pgbJO!OqGNgspZ(b9Rp$w#IPJr)mG(2stDjAEmGuV~q*PG`8H+3S`AOxM z%C{}-3Ak_)Y;13&sPQ&jmsM0Q?&`HPN{eNTPC2f=d!g0r-Y#10F}!gk7%HKLN)T&L ze|2sl(xQESrY)HJ8IR?z@`A)42UU*aG2XSMSPur20*j>TzVbfXToj7ObSY|T_M4Nl z6Pc?sm(Wu`fkp+C5;&-e=7@~eB1@Z?pqbM(*za1B%FZkf) z@=?v!j&aAZIBFtB;_B~4aD+ALME&^sgP3_6Gw+tZ34AN>?`8FvqhBPVdrvVXSqr>{ zOS9Kbbc*ixoO(Q?Hn$%hvY~P#5qDCYWJ}c1;B$1`i2OO>#@%cE@em^tg~NYFJu$ukMVT<<^xYk+eT>3)D(Wsj$zmWVOeaJ^f0xNd1F2{z%aj_hNj|=IZ&NLIhQ}6Ud)UdW(=NWcsf@}AB?A0 zNGKY-e)=Z8s%}8X?Z~{sb@f+$Cp+fR@2?$e#hJn?&-n*1#HyD$MJ=2UBwrbl_1g|s zPMKRj!Tg?}Ki5#6?)|5SI3P-iqR9kKfTFa=dg@_lu1-bL#zkyhpi#~bBPN&Kep7Q-sBr7mi-B#TzYC|Ah>qS>z%CwWHr3nl?A?PA@g|9mu&*w^hFn%Y1!qlk?|4-|K(He|H4;y`>5Bm9i}raATzMAwCW>4N#tN z_LgD2c4Q}%t#xhrlKL1+(2&%U@KW-Fiv8jBF2ogw-cX` z>%9#T9x>S-OrCZC9N>fHP2CPp|T_vcA6 zmF#zXPo)Lv2TGr=i0auo+lgX7Ihckyy&CvI#Q*Y+kiM+Py#{YnF{(x_%&f-e2Qwcq zhRI}LBL6E155@{+Ck$L4};yH1j zOP7pT=H-@LJ?@3C39pE-sA)j>T&M~T-HFX+#ALP33YLv~=c^cUoCd6u+e_2$G|I9l zu!4L3n-u1no22PJp2mpi@?RKCZmfPd6ZA%^rmQM!q&rS}ot64=owji4VT$R-0wrf^ zBOz}@{bPH|j{=Xa!cjaQKjFUl`QIdEWfx)d!zH0c;*F1-`{?eO|E5q9%ul}IChU__ z9_J{JXQ`{$w9h>E%lkLAy5p|~b{a<%NXTTg)bNTDOlSgIiCLP~xc3LTF zEGSE`t~p6_RQy-_Pu|vxyhc3ckYPXK?p1(j^Xo49sJHW_cRT#)QBES){z{3PCX4-T zHTjvG`5eoWg2s%p)FFU??EBK4b-~`RC6Evpipp|B^-S9i&B+nqXb+j|p$Mez<#znJ9u5CF@Bh z)r`*h^wzn?bLUs|s-LwuCE1%AnBz6Jh`HP+4ee^c#@Hd~8KBUyL0exL{+p5HiQID2M# zTxEOu$o{+bq40t)G!ws8i*6dvyQt`vRbsBEA-R6{hOnUv zp%FWgOr@)7!yDNF&h7^sq<)OFmsK3Dp_x}bdwt=Z_ciD24)3MPtmuDji`6w>;43r# zVm$kK_o;pUmhR?O&7QEZqhvqr6N`(b^XQ6}>Tu&3)J%u=n`iFEJmk(JA$I9H9+f{0 zTV0RKXUN_${ww)seTMz!m?rd?1`P=v2?Oam(hVd`BrK$xNZ3d?NVrJ1knoW3kqD3o zk!~XqA>BbDMj}BXMIu8YN1{NYM502vi$skC*QG_eheU^TABi4`0qFq}BN7wRLnLM- z79>_AHY9c=4x~p&oJd?q+(wf=EJ0!bl=WqDW#$;z$xml1NfW(nvB$ zkC9}NH47q>p5PWQb&h z^c=|;=>?Jrk|~lIk~xwEk|mNAk~NYIk}Z-Ql0A|Gk|UB6k~5MEk}HxM(n}|_#AQd7NAr&K)AeADOA(bOl zAXOq&A-zMYMyf%oMXE!3k5rG;fYgZ8g!BQa8L0*7Bhn|NR-`thcBBrZPNdIBT}a(X zJxIMseMtRC14x5NLrB9&BS@o2V@Tsj6G)RtQ%KWDGf1;YUy$aI=8+bV7LmRpEg>x< ztswn}^bP4d(kjv#(mK)x(k9Xt(l*i#(k{{uq&=jcNc%{?kbWZ_ARQtdAsr+AK{`SD zi*$-~hIEc}fpm#s~5}*R^0@T3&S49icJ%A3l56}Y)zyp90U;-Wj%m53(3a|m}00;00 z-~_k;Zh!~i1^57dKmZT~gaBbc1P}$p0C7M9kOZUvX+Q>e49Egv=m!RXL0||N21bBUU6Owf&Z_H7N&au9dI9@2N-|{03*NzJOr2l7JwCC1K0r$;1R$HZ~@!^55NoX z0sMdfAP5Kn!hi@M3Wx#XfCL~3NCDD-4Dc9`1>^vE;0d4rC<01=GN1ye0&0LdpaDDu zGyyF@8_)rs0lI)5pbr=ThJX?9954o6049JbU>n*cU|1KnL08_vWFb6CEOTY@S25bOZzz(nn8~{ha32+8n09U{bcnP=z zuK*9g6Yv7O0Uy8@@B{n-6c7Le0x%2kL&c)`1OR6W9W_fgNBM z_yOzzKY@MV7w{W601km8;28J=oB)4;Q{W6Z2QGk1;0pMMfoy-*kpT@r2QYx^zzqNs zzyfXp*Z>ZI3)}+m0DOP|AOvm$M8F+@7$5;i0WyFbpa3WVD&Q_a4g7yqv@qQR=z#kG zJ-`4w02l!#;32>aumG$88^8{50FMApfD7OTcmQ6258wv`06{`=GN2r&04jkh;2ls6)Bv?W9q=Bg2O5Az zpb7W@Gy^TbN8l6C3bX<3KnKtXdf=^j7_+z03Z2H*j}2rvN; z0cL;&V7<|fY=1XGcJQAeAA(g=->FmQL_P$w&p{Jrzi~gO0-OB?KFS{5gzU+^d!O?o z9&^aNCM1eBdh#FHQopM_D+AqptaY?I!OdBEn4 z1};#>*ov07lh^+K9MJdY+|si8?$O^l3Ga)S{!SYs87CXQhZ`f0l$PCn3Lh%O=ik2Y zSFla~YZiBPWj6g}vXnU#C9goxla;wpS(}yF@~-l$gKJB9Q%g9DN{_6z_6*GwY3RUu z6?f9Jw7O?ieA+rGf*TAB-5ECsQoR1vo(eIwk=#@wBlESp{T~KX_Po!7H`G2UoSweb zX`Kl^o9G-O-md$iIvZE#`wMH6Gr)Kb2>_ zN2+i}h_T9?RA^3AqZZ$S{WGpmAb>y|OT#MQXH-1zHo94Z6GpGron`fUDG|}jyDx(|M~|Du7k(B(y^FuEcDrSrXjC&l(1=LEs`H^l)WtH;iy4PYc`EP4A=MNRDuy+hBdEPfCtXs%WF%V+w2&Fw4}et(EQ1Qn7UVU_$?{=+V35#kp4Ql_80Z}+TR7vy=IeZ z!=LUY?yd~PQbqfiO&P466;L?1E(z)5zkA@C;NFrs)8Y_T`Lgtx5u-wYt4xFd7t`g3 zA4B{Zu9F6nYUc?wdMpY|YiG&Zu6`a(KN8LS&so)e2OvnNi*DU1LGT`!!LNJ!mU8 z*V}$dMP9*1Ovj-ZEF_~NY8g@a)iikmGr`?0V+YqM(1N|9=HOH1T~u5Kk@)8YZhQN< zjM*KFm7C29vs7|+Gr#|15!gP`xn`VLS%16YQ3IaFRg+9IiX$s&zws6a!O>xmW0Ps( z!^Lu}9goPT^sH6)aKzrMuis*JVqFU^d@L#^F@D|P(VAUQ&6$p$ny?~1draNTxy14L zdT~XRZI=~We5I;1!zC{&pK)G5M~BxnS$jXM*fQ~K*0R5?f%G~>XLRhNrbmwoy*h1Y zWzM?S1%$YnGF8Ut6wgtAb1ZnQ3no%A7c=c8fawKB*Q% zLoR#kjfiW9IaP0trndVo6$seBQ{S%4!4^CIO0@IEZHsOF#w_iGP5jG7l~o17%;Ak~ zo}EgiqK-AY5*^Z8TPWxFb;gYOLR*Ov4rT9&5cFHW&zlJc&P0-;obJxnGHL3}Qm&_! zaLnBx(;&OpAX+|pSdV(HCMM}{KB?}oJBWkts=mBq-hUB#?#qH*|NQgW-N$)t5~L4Y zY74a&=;FBPvT!->b-p>Hzj63?*mNuKyd?Zb=P5Sn+CEJz?OobQ3Ass$0e)lb#BuLk zOx6rdFU1@cFDmw-H^mWRrQ2!MdEfM+u>CZ{RZhS1ANulWYVs_i9Q6D`j1>CYT5L4z z9g|nG?g_|RncgosI?BZhscsvU6BN+SJ}u02AN@6>qbNbD{?c`JGsK9NCtmY_`K>79 znCN{gcl*BlOacATGxD8XGd(Z;%So@v=S$5h^k#>NX4@q*Db=~sb}IZ9Uf~WKafa(b zXV+zn9P+U_sl3X*q3#6qzV2o46=j_A6b%?{JPlWAR+)(4ykdUFCu@wEx*)=8&k&7; zwR$9dWO-(z!_<#)?8_qS>Q;~~wd9&4QU2`yW^VDbj9KY~1=T^`oJ5;E6=trK33UV9 z%8aUvh3SUWQ6^Q+kg7T-KFgJ8^RC8+r9pD^e`rdvM4b8VGNHIKEp8fqdtpeOW-OC? zf*0&qO^=ZrQrP-Vrh5T%IA!gaieLZB4XZFCM{mi`9agNN%XG;-?koXLC0+!(weN)n zGx&c|d9_mtTa_EV$@E>G!PPf!{`wPw+BCmIWf)dQH0oSy8#$ny5EMCRP!f-V`(Am9e)E zs$y*4T69HZzx3K*a?Q#aSyFKI6WRFbI=sZu+(zbhlE55d)PDUzgMpW-PWDruN5#v3 z>FxU5tSMzwwRbKjpqaF% z^=KteK=)%#(`j4Yq_e5S3H6T5t=t^sZ@QA zj?*Ze5@%MV4Ky76VtUW@8>`zg@P6~mx4Ca5+814NM!mtqMwNa_*tv+w_5B;GCWl$u zDi|_x?VSYi86ZP zJ|cm$pvRube!f!{+N5SJ=x;z|-sqb4g$7&wc&JVOtjIabijMUuV~^El@8{f0rmt5< zk68C#^y6B{HWiaoXZmaXSwAvsnn+kuU$NCPX1H8Q#IiU*F&QLqIHK)cc^U0!kQWu2 zrt45>AG0yPKK8R0c^)RUlYgmegJ+NS>;)B(fop|fwJG|E+C0BYKlO>S@W{x%a$;fZ zFzqNA_nro^UJ_1o`DR2y^P7QBywV$A1BO%Tm5Z~?6^%2MsS{3jvA=QWe0bW=w#uEw zaA-&CXTsechmzxdf8X2@r~g7-CayYRmZ4U`ICCyc`NzbXbM5}<9aE=uQv#e?iL+n0 zcYI!OgpDXM_I|X9v7n-Tul}};*=A8xuIl*-O`d`1s=4f}roZ%_^gzK0lMz0CtA5c) zQ-vmuE4EpUE@vv|T?{_Hj{o%9jD-|zs&)=8KSUHAo~@&f?(Aq+TD=n>+h8$P9M%3> zY`8we+&s9Ov4ELl_57+raO|Q{Ez`>W?RcQ)b$;xG%m&e(J1ROFW&5`FpPm^InqL=@ zUNb3Xw^nnC-Ch1BQtPN4sE#Hw((sZ~i1pll<3hBKAzGb;^eUvK!>6{vg+m#m%R1`E zM`lm9M&8jqlwQcUdYUQge*b5b26LX0206)oF?D!)Vu#O`pN&7|+hT3ELgQNSyeogZ zYs=n^ZWu3PzHC_t&o94zT&RHXV`j^1KC;unsh9+nago+(^{nwIw0riLo)2?0Pj4v| z^kurd_0^9|u;*07EVvcC`B;oSKf6rOa^g0wOoO`4Y#M6MzGWniBtwYawe0~O*Gl6f z9SPNVhG{<%l6NM-@5`J`%)h0{sLZ+lEvuKqvjIW&@fzam$RSN_GB zY^oJ}u9EIT$w@TUvI-QLQDwxlD@4!=d2W$(jZzX$aM(xZ2YN+v*|y}oGBWsmxj+8% zRNEworclaB&}?pRGG4E4V%~Y7=A+iohELs@&yx|ImVrr;GHUzn2Hhly&yycFBWt7@ zO!yzNyKL|g%;kkVbPS~tcB2zH3Rmj-F-{s^RQYmp9>uNZ#V9X?BSNgJA<{*`EznYy zH-tHZ-~H*8%coaSnxz^&EB@aD?0cV&?9yAI!Xxd z(Q>0)hz(b!0-bX7s=0m#zF@mp^R#WLE$-rF%*4-?2`bj6CY;trdP;}>Cgx3bjdb(D zGieIHl`Yg8-Mh7NgL?9g#&4Fy{?Wd7W##>*^UjfNDxml6oyTKYFQPD)gp-cChIM$4 z8(o_9-JixzF zHS9aaH|!ZAz-QjFsdo^5evrs?aI0NBd2yktwVc@nb)6!V;E0RIKTBmbsoF98`6SN` zHn$`zVy=~4+60@U^lb~>qHv2`|Du%ZsEq31C42U-hy2F4cm@Aa@0>E0UeO&ck?!QQ zN8LDH)o|MtkEvO8+l>kS;VI_X!9M5X+0U~-#FI-E?dMK6XPd~>|9L;R zw{ZMS71bQ9=Q-+ZVBAV_#`jd>Va0&d$)?_P@l+k%=95B9spaTh2IjZ+#lk^xyz=tJ zHYlZ{O9w{$VebL6cUGI|+sP4YXENS9wqw@a@p^1JWj>+dB~A6073(u}gE5c226vIm;v05N7IEwNE+2MpAn<+fJ#?+S8)% z6LpNrVgH@TZM3Q8%^U3VH6xyX>~U0roI-s6{FvK|p7}V8*Za3SL$Re^w-7%~QzDe- zQ_ehMU}}we67#11>M*u+MoNQrSn|&!=}gk=vX>T^tP-Jv=hD|#rSnD6G&neH+2R}- zHLg-~O9e`>9`nVQ7SX9P6=OYK8kTLi-ML2CiF#C$P)bhZt|XZl7}1jQM1mY!BZmzq z{LEE-x+n4SNB_N&{M?5aWJzk*2|{kNDNo-ga`%&*mQrm=eL^J_UVFf3;kQN|wc#Z% zT_cdp-16Mv>{nmM_-Xa$%;Cz|sKB&&=dU$~7@QrG+&_G&ZtG{iZF^m+n;%l0B`3|M zX-UO z-M4FD0vG;`wL^*$BEPFA$FsH{@mL!fk6hqBGiw$r5q+YqC4U(#IIC>*Vaa~ZtKHcJ zg&}%9&3gmy{@ibzG`q6Cov9qvZ?Cc_L=B-+hRwkT0-1i z4Q$l)98L;e6E#nmC^5K-ujZpYB)Q)T!9K5#KyGD7R{}}Lfrp?4=&@@ zWkM6kX1UDVgPAggtG7wedB>KtkHLAkQ1H7n)soZ2;t%oGC$Dv8yWy|p`|hE(+n ziw(#OUq_{Qgmi@)>w^iF)l4l2_C=j#+@j^FI?d#7ITO)VrWb|`IdWu?JPGX zgz+hIQZhM(XsGiDE41KWhv-}XyX8A~em~1w8Bp?)n-M%ARyR&D1B;7 ziqhZD{P58sn7NT~SKY5DgLLrAJk8~QyKJg^Iv$t7J@eRqhS=H$%UV3U-z6VDDcA3( zmvg7TA3DTqcqvN3>NwY3N9k)^_|9D1!^uVRpBkP$b+r*r*h&QU&s!-f$gh*Md4FfF z0R21n$8TWcJEJGvpBz7y@(M}gQcPdv?O*XG$pKhmfA#nKC7crY~>p}CdSW{_Gqbofe}Bu#~& zZj~%tsWV3L1!QB;V-4I*6@2pTUXq6brkb8$tWb?xY_&-|4qECZ?Ty{qXRO}h2Ukx8 zUXi@KI{b#SH*H=#K5G1?tKgf5!yv8x*e+LcRStQaZ~Tu)r8pV+FZM+$momJXJWP@! zPMk7_=Qxv1JRjOxd2^kZFpsOaN}bHo`A`@t)_OuMfywgX$yhu%8@A0Fv3u!@u?$jM#UFZMq_Cz z%Elcce!CfC`P+s?eaRwf#H|LE`9Emdb8`3Cg^ws+{oII_Y1Dl6sXLiT#CPe~ic}3% z?8)+7Xxl$y-zCgtz9%Zd2yHb;R`I=G%v9>@!Owxifms;h#UIhl6h~qs+GYGG1%C~N zPn8qs=OO`2i-t)sH;>38iPR>;3Q7EwN7P4PbW+GJ$Yb|agVh?>t8_C-H8 zlVcdB>)sx1up!WXm?R{t)d-rihtba!`S_qA4|KrVCFo%)f*6!$!D}y zX;UCXOull96aVGOm(SlVlwXXrm{{7MpyB`yb~Tx&i^^p@$`H5ckf*Z~ zxZWORa}c}#$Lsi9a2zu;`|qvrrOwYnZKSj0ca+3O+Q;^9bna(*&lubMmwn%#IbQ}9 zydP9{XCt;V#NTjL&D#$BP=C+?P3p>KzhjZ+2s!!cPtLZv$1eDxvt)3gj7Ju= za;IRKT!mxdqy}B>=xg+cxu!#6*2)bgw5d6v_2c9QAw}+Thbk1caUyk7c2d5> zAoG}Rh3Uj5$zp-T&pO$x&kl`ylbX$_9*1YlVVr9zR4#$nawRgV!ni#nLsrmeb_y_` zFW5%x)D+3g{(f}KpoG!R%FNEEoVTcy&W7EVB#1@6KC5H4-RF$&&FA2{>tYs@tZi7| zs&LZZ^Mjvk1v5)5|9AI$g4fdnu_PCS5e>Ib8gX}5W<8&7@x8keeIm1`MbP&`6}7E( zqvMxI+sHag)^#82oKcxgR7KJQ8`ID>KkR>hRJ~S;KVdcP+?rD;oEIs*Pq4+X9sN#j z?rU-=-*H67f%P7rsFcCSpE?Y@kB`ct6+Lyzt^^B{w|*@Yn(2%!-MPu&izPXtmiz7a z`8)rZgp949p_@)c7xmXo)8qRjj2a42r~96Ym!hP#S^oP^`3%OEa*ru~X~%_p5KeYc zXk_lg*9q{3yNo^NfIA_>4%4BSblKq}ad&g`%6|sKV>-l8+{&~wcS$|^rQ0B3? z_A9HLxb`so3=Df^z!2C7IJYx?^D%xG;^kSXA}&Jt+WDq zbF_rAmxi}?E;W{Ar5d+Qh{UGU59YdS7APsGS;d)jcb8L-$gmIgf7){1B;B>Nx6Tt9 z#=rgdIdQpy7XfZph33kny21ady33$Af^7l7u&@LOEDpgfxD!0M26uM|?(Qt^!QB>j z4IXSskPsY#y9EobK_7eT-BCYjmX2FlWm(|rxVxh#wb7Bt{Wt|dewhwjF|MHO# zu(UMnGC!1aJUHF*$rZ}E>v>q3Cm5CBFMwN&ZY=(oO#bct!MEV1#`dd4v4hSva_JI_C8soue~So88B|GR$+W~@^*P`=YdV%os6p zNk1`ymHVsOsHPv3bbPL*O@2>f&h!bpH%?B7VNL6us-DK0e*D#bugtYJ#S=K?jlF(; zm$GIN+BKew(VG_l2d5ET zVBi>av!tcsP2G?3@`y-nx~)JV-FN{D?*$@i-Y+#R++X@-)T1r$y_s}7Y)e?GXYuNp zXJlHIzUmqHs+3>#gq+**jrmnRTQ<2f4Qz2>n8UT$>(REI3xC`8xjwgE5}o>k_0jlh z@KDD#<7( z52>bZxTOiml`ml4SKcCgJ16@a3fi2%!%wxO0eAAo(x~X0bRbH9ePJkGdDgKV1z1*t zAfovz+v(lS!ZNHrompz*B&wE$JuP&rkRvX%Bq^W(>@CgR3X(oOT zC;@Oh-b@6b{upUqW!}z=d08kt6|Mfrp+6KyPX9#3(|yQ%n0hj??6IpGoY%t_i)Pb$bsR+m>P_3v2Nd*qk5y zR*!nFZ>yRA)hxK>=3V)}&Esk?_h9*qt_^^^mqdsT>@U~D)t4$eibD&>JZ&G!^f)_| z6i0xTvLYKtiRh8wF$8b$kF|&3OX+Z?xK(&eVz6!#|o zXWU$9b}J4gczffrx;KY1VglkhgnSl#MNqRRy|DcC?nuw{+PT~B4I!lvhS2V<%w!JI zbdIPK%FarXm1#vjhRYavJWpjke3KQ05S`Joa(~|vJ<-6=R0go(XMOeW0RcN5KV2A) zM$Rgg3cuZ&k29pXY|%_7%v+dzZ+&;u%2*4Pe*r%iLu8deEW9p!5>Qn@ApM0geuD(` z0obJuT}JE@6U_;#1lR)o+kBzxiQ3X-5WE8!;NzDd5$s7Clb#@a_)}77xr?Z8pyp@a zwoen-XNBVfkGZ~=27L*t9^-=T@na$a+1P%K(jq)NgFfZE1On2_{>vvS@+OF0KL4|v3 zc&X0-i2wLR)=$%83zE9}Z;e&Herdz1>VKVme^pllcIH8f#vjliEK)ROR2kLQk(Iw1 zS2Z>(mJUt9*C#jazp7ia1!rf=Vh*cn0KKy>Wa(`Eh9%XkALl4m8Ol?0_k^{FH)T~V!l&d9RqIlD_it>8||)jKU4*Isi_@I57V1}PhTZ(VGkvbj@p+0(A=r? z%u+MaQ*e{$wm5tc3Y9YrvNHu$;ff!CIqhL;v6mcZ!V^ZVxR(ySX-X z7EJ7YN^;Z7V4*j>+oT}198(D&dUkTmI#oa!<2}^_Z%s)T^!DfKANs*W#64vbZkAoS zny%HAfj^G(&yT@&M7OpKPg^r5J`dIsDwW5 z$?#7h68)iJf;jp#hbI=Ak~Bb zg#C|V<%Cr|^PmCEl|IDFi26`kaiqNr@NxLTy_nZ&OLGM4$_tC>zdQu%hsc8$Kk$$J zXEXVaiw+T2PQ~ zbW6NRh)gSLuT`TLypo9h(>6Ei&8i$?^o&R36ZDHL&fOP6Bdu(<=|6I<+}T=c-4c9m zwv2mN{j-SRAC^k|Hfon?W>0d2lHinVJp)wkGUHg$gI&9g8v{p+EoztfM&W4aE~kL{ z`}nC+$&J5ptlZc``F#1jEpeb7+tw)+h-N%_bdR&d&(&X1#o zs7W^9G#6&!I#c#G1 zfio#6Ka4tcQm7@kd2wJ)T#o+O(p)c6pdYSn;EVhIZR#IBU`jwD1~kz4XRbiT?3;Ey zMa&G^Cxi(^E@2`&OOd%xi(uNgXo7koL~`-wwJ2IUJKjz1Z|UjE>NPhGwX{Y|1LXq? zKzF5C8=BRwcQzP-TpN+deqsrydsNfe?eq+ez2k(2QC-o#Hd~SB)0w<+(@`Es48Cjh z2NbpsMB;DLN|U5|!u(PGO&9nxP_Y~)RmuLAkEU@^+Y%5pSfDK<%mZhmoKJ^wvYeem zU(3U~xS>O~r8;9evIxp1qeLueqzWHc^@!RmP@ZrRVum(|6d# zT!HywL@&g}dB65%bij&a42r_p6pA-+>2Zm)KWw;s#`=49PF(W10vUj2k9CrtfdKTi zEdY;qNlIWvtmCY$mkEBOaIx=_j4~OGV%=0>g4yH=irSWq`Fh1kQrua&)NT;AOr zeoz}my-+{X8YjLw3leWi{h+P(45TGaDNbfllHq*3&w?C16&wJdEHhwwlB!k|r<f zlDp`am8A(fGAk`7&ok{>D9&cuASJiLMH2u+*y zewdrjY5qM4BZw2DDtd9%0qzS6s=BrW9TZMd-r|!>ST9K5N2s0x`oV)25(k|>F1Be0 zKjCmh;23Uy1LNeGzwOJIy`3oF&kb)nl|w>so2=vL|Af@s$Bx175T+g~GLlf-dRR=; z&9o%zCYyrELSwRm!|v(wo8WGT4eBMpwT*zxz$rE*v*35PA}uOH7s9JgAS-Y+Ysw%y z!#sd!lh_;oCs;|2#M~X}=DhDld#5K)p}tY#Q92Lm0mesnpu2{LbcG)rP(lJEelC8n z3^I~?R^eDpe=gB1+`L@V_(RmE{4O^&^_`W2&QltVR-FLFE zP-GV50OXRhJY+vhINrAhiwh5!ac*!}xyXK)dYJc^3fe&gA(yCi+KQD0iV^}}j>He- zO0YoVkzo6}&lJOqDFh?V&_ZI);Kc>Uvj`|h#dRVY;0tk0KZamz zzCrGl_9odR4AaJ3liHV=G{eY?Vkb2f{yvNR54p6||Bp4t(o`}?=|#u-hL6FBi1JG+ zwuvVpdth-XN2Xx3S~8asQ9@%5g<}63hLn=n(qZs4?l2-c6r%|!wU&Hw$WMcZ=Z=g& z9Ky2uTD}T81U}jmCbj(7e#cthjwW)yU*R0NiKq!b{)km_ro$J*xG4|)m$lvIEiX@6 zcjg^jTqT)`A@er%Ber(nB^(t72{~42EK}8Lys5!E62q+mbx$!oG=<=^Zwt{a1=FO_ zQ8nPueL0tVf_7JSE8&c@=6Q9kV^qqDV%>=_cK8ehWE|J=Fz1zM962{DW%{u^-a;;Z z56S6W=def8;7mG|e_SVW*xp|7E8JaT%!8SYpG^$%W=~uXF@xRt9MNv@9;s?XbQz)K zN9BUeH@DyG9!_j)y4ejz6uoPM*V-w=ju60gSncEN0$<}_2NLe)s|Z$ zoR2CT=pVq~$Csz`m$%P%%QTzqVOtf9Soe5Go>*r(0jlOhkG3ar4cqIhEX7${4k9 z!4ocq_y#ksB6`+V719K4?LwB<&%@;%q$;sxq^3YNpVXp7SQ8$nzd*uDD2IMuxS09o86)V&)=ZnLz1~iM2?G^*aS*Ow_ z;^QbR)f(z0PSk6nE_6o@95XcP)V2Isc1yR=uM3^GJC4}B>9|xIHY;+|5QC>j4Y?Jt zZyLNO3uALJX|M7sD1Vzi|GS3CP19)tr5BBn;tI7Y)<8p3ZPR(ISX1qwf|)ijmO)Fm zdyJB$@LdG5UFt8~_PqG5i|GsSRtTpNT2BDwa?_6klS^8P&VrCt1P7fS%O~z5*GpGP zCMph~8$YYM_@cusuK;Q*fzOJ@5Q+gw+pqargM-Q8JzRJm@=0X5tVL!+_L zcU*q@uZy~fD`F_2t}9eBh09D={C27wk{h5=x}V{~tn{u9s}UGpe32JLF&8jV2>a)K*XR@${TWXKy33>4x?F8dm z#8X*$-$4Bv+gYK(9)Ez~iw;r(N{M>??MfY^ovQ+H`r81j_qny-?xpM9fYOO&=1OTp z;rzV$t~{xog6(el#=us-iQM_x`YoK=_k4cZ4e*I2ksfxW`KC=QOKG5q*Da01*IGNP zVo9B$Lgo6Alq~fj@XRV3*l9=j(YEubGFY>-@!U$G8pPd8N6yFKhK~jc5KX*dyfwxx zN77NDHpyQoKkAsM@lZ;*C{Y($KCY0->@C&$3plPg*C+Qa`TirWns6^yQZSpZH4$g=ga8B`|Vu z+EhZN=}pur;6$7fToP(Ef${s)lp!3OP}EE8 z<5ismxOKWOV4`1HPwS<;FmfALJBrva8opgIJ!pkao34xEniSJ-&Ev#4s(zNw;tenIZ>=Qs)#qJaGv@>)^NR6Th}P7D407hjssI;Bz4mJ;$4`NZiI&_ z(5Gl#3WXx@J;J>u@^et6Ro|P&tOo)QH?_^4XMKE`!{vNym(ypW!`mUJZW=I zZ8Vn(<^#NiV%@w`qWqA*@FlY@-4ZPbBKnhU=gb0s?<@eH?&m4J5#!Ee2z&jfdpa`oe|HSOLC_Doc>;*S z@y{XRD@kht{gI5Z>2n%dh&?fSf&nMFzYl1^GI)Q9Gs|Mj>y6vYJO|xVmJw1KD*$EJ zTL&LWP7dTV-uJUHx^|ML=`(s}LJNL%dw-kPOgms@b<@D_u+mN^=&V|uE&WWZZHeE( zv}d35aTPJNp$nHT4}EhQ`s=gaj*HJ~zCnd&-*Iy950)ovEfCEr`-9OYsyR+J#n0crc#5+QgnfF5pts-iyaZJ^;s^E6(K&d#TYj~AC^i#Q?I$lPxRb!dlEUgUF3Jb0s$da&Hk!%w zgVM9|R!1$Zc%+8H*%o~+EqfQUoc?s{&N~}_H~v`UocQ61NM&=!Xm<%L<>ABKkz?Njt+;7RHvWwN+W~vOyh)uzJXoz2t9Jw znp)I2o5hiug0G8-OdSNB1~OFKZS=Gnj(4m@>$$QPdG0yC3?)-C>ueByd6uIu0=+Lu zizAcYk;LYeW195+nm0`p&l1q4;qFGW6e&JMp|fbi#JtF-7xeb~*Bk2w_C0cWCbh=q zH>hRcbv=0RCBXY7c#?epJ76;d$3znas&xhaifkhIeHH}QwuIn)4yFr=rZ4LDg!_9M zw?xe>ajX9q4!Hk<8e?{eDW}RG(~Ed{E(!`MXvJXN7qmZ0Pc9iIe}m_%|~1BAc@IL#q*ljuug`t-pd6~yC0boVebYeb%X zkYXVRUm>o+q~^~LMBmqCW@{QL9wL+lT~WF0M}JYGmK~!m5*XZADBs2#;CB-peXupI zZe9RhqB@qaUM5>esLb7^^?>(qe5}!lXE>#`dA>CS59h{YrL>apP|?ntrL-x0WF-ct zx-NS*?J3ULU>TC*GySkte5Wk|I{!3}TO1%itKO~euopMjwBy>0QByRgXQ?rIn4!t4 z++^93?P04`A)BL-rjei}r!Z3>8(^?n$`Fr!cYoQG>xqQ^>q8Z2iska{7Ywp@$dQH4 zDn5bAZrU29`S?2Pm^aP#k9Fiyj>vKYCUO4E&O@$gxefJ!Atz40!tf5uO*xHdKpSpdlk1e@X2&! z&{JLFS(2HsS~a)3J0Mq`Rxt-Hw;FhY4*y5%bg5un`YrzFqMBN2)PSjHl;-_(a{X zt6|bvqh4krzf!eYv`h;}@!qZ~WOh^cSt5ueQnep^RDdIP^0y29u(ov$cBpBZQc%lG z_pv47IU69ZDWg5;A}UAb?%=PU=fAl*syjTf_(1mqur{MU%xT2u`Q&5VzYxbcZLhz8 ztgYEJN{Yk;`5V=N$x%M-18*RRmv@XG7_Ir+VB2is?aTN`&V(VxQ15Y-r3KF)(F^c9 zg5`3-fjAcRxT}8Zprj^pu*Qx4c?SU~-BLQqF1$&+m+h}NLjB}iW`$`Zz7wpUdE*s@6RU#4bu-glDJUkc}%(V}fbOP-~*AI}h zTlwXs5n-{gpX9+q)A zuCX{iN48*HXd`zyhc?63w8&MI3LRVh%GuqfMXt8zT*rd4EFg0=_g(kL=L0uFv)1a- zEA!dj336q&k4ozgVanHADvSH`>{yHOIVs0Aey)$w%Kh3A{}v`3sMeA{l<`*2^?Wy9 z0ydWQ>_rbF@+}2NpH8@o*(;@e31r7@Wc7Ax3pnj_yE`@rW0Tl_K}b*#V*$Rx3WE&> zI}8pOoG?DX;DW&og9ipL3_ckAFa%(Hgdqq+2!=2W5g4K{#9)ZSkbofxLkfm83>g@o zV93IdgCP$?0fr(BB^b&uRA8vWP=lckLj#5;3@sSiFmzz(!q9`E55oY4Aq*oJ#xP7^ zn8GlFVGiRn3=0^RFsxu$!?1y23&ReEJq!mJjxd~HIKyy(;R?eIhC2)o7@jb^V0gpu zf#D0o4~9RC02qNVz%YVf1j7h{5en>85DNp|(}4c}FaIDKR$)LBwNUGo)4uR|D+ z4ATCZA_GX1reKj%LGE7zB|t1CM9w-4=zzF$^9BHEyn6#6gDk!#lmG#LAPhEPKu5r* z&ycMDG=PK<6x-KJDF0Ve3Nd+&@eseiVF5xCUTaFpA(^iUG$aPnfX)BjmFoXb+u-2H z;oiSa=U@lL>#5B5zhg-tNOoaB3?#EM*Z&&};eSn$Axwy{KpO4CfH)9`*H{lh=F5NM z)&InON&k%d7 yj0s}r7zVUN%C%RQ@9_H2Sa4GVV@)fB)i8|K|zbgOxs4o1l}GKI19dH9{(_ z+n)CgU)}XwMpJTZ*?le`cCQ|FCOv7^xccYOA&R$#ib_T5)>mh?cTygv~FF`|OVY3Oo9fs<|Q+mMfWN$oBTf-Z#F-#xyZ4 zTA9qhH@*FuQ?~=V?oxa}LD%hrP7UXXn0m{+JT6_7okq__>Bpq^Vc}%r>8NM7Un_Op z<+1(~%j!i=SaBD-L~57T((4vS=I8A{Y{kE+6H_8fZ%{?24!+PxQ=qf3{$-Zv-Q4L? zQ)S94R)sMv*mv8L^FLBgdBS0|%ZDa>%!HmCgYUjSl>Zx|CRJF=26tSlq@1l^G{*smS;K%|BgT|wPwluUqvZzOCjqt7* z^>F)mT36l`se7tzCyl8+;qYnSDZfBrBax?(WdT>s3`)GxXAh+>5uc+1KWRFucQT~pvRA{L3 zZjNRg$`reJw8p(S=ExtoIqaNFtbHjyGF{1?o3gqPCChLgGtTraTAJ-Jl+R@sR!UNQE~f1rLMYZIp>_0JI_y@@Ar124ucCBKVj>U~OJRfU9w0Vmb3 z)VfCuAG8Sbs+tS(f~%P#yL(Wfe&5eD$llkjv7iSm8g8A7xDmMwIPHiACS;viKKF?l zVR=M)S+R7(AbEx(-80VYv4>ZWpXz$ByM;jN^Y!&o)&jZ%|0xHREwP@+;ixUe&JHad zZfh%PqlL_oVlUz@%5Y{D*SwKIL+Ns5v>}fP7e~}1^{0uP5`=E761BfkEMFzIn?fE= z*@=v?eqWjTCB&!5oqTJp>HCj(rm(@nxWcE2YQ@Sbu9U z-gJ7pd9+THKmY0Ngzlm5XT+x%wklN{G26sirB*@P|4l8}2l3^Noqy+Cd91t@CF@(- zc0bKAu zhL}2D^}tH2}E{Y_O&k9O?rmiw^aI)QHp=tE;T+} zJ6CHd3J~lhW^b)=p|^|Iu;KEWV(-r(>!IY0`g}|13I66~;MK2yE3uKSe=`3Rj^>8z zPM!v@y`vMOoXVG?`}|6Ki%IH}RJD}-vON>y{>XL@OTN;5YpzqRXp$vnrzVwYbX|6IokBGx z)^tYEWF}+5dNC(Hu;%l%Eh~P!W%T&pT-x{D1pDvSdhz>jNn7C)1SjE6pnlmngqe8s zIn5f_y*-S-@AK;_X=sr#LMZyRTDU?!*X*oGUA_ALVaFEnRuq2>{p*`DDoGKazHhpZ zIIWPRSiWd@|3s%YA~;ZsRVwm$E*p2|0eL^|=l1-~lsWyL*T!@FUBVG9Mv6`o)<>Rw zFAuY;?XqOe(^knnREH|}IHgf1wV}dY9;yP7CVsX82~7csQ?`{V7pi&|D#C>ic;ieKM^ zyx5<{a@rReI_C9Tq!DW!z|#infbJ~eYDN5sdr0NjK?&9>f9 zR{ir@eR?(OR+HS~`tDKkjs%S_9qeg$1lwHuevmj zW6g=*eb48m1d9PM<`i#<9~Oi4w<=W@In0Lv-AkZTG4R zG{)It7X2}D@5amc`(#pVknC%2@um|gMj31k1+)Kh*)e(1cfqFE|66GAht^nAaL8Kj zQ#@}+QvH4|BHXUf%BVXx^?9GO4^lH9ubF55ev(IC`S zU-Dnjigf(%O5LeW;!epoQWnOjcn?kHYxGtk3JztN2Hmo4YQ~rM=p%D5hy zY##me#^vWpzci@*O>EU|@ZRXN7v3G$kLFPd>$T&f2hVuE|7l^$Jo%kuQ(~p_@3vs8 zICg<0+w5$s5-_bmh;>O2Tfbv&J16fmW&U7>V(Gd)xj09k{g|NxZv(sJ zo`YLICQ@Yv*v}XQoz15X81rvRpQzJ2G&OIVYA>r$+Pp|IlS}61S**|Uc1qkit4tU6 z{vw_D%dw_&UKhi00(a?;%Sa^ZvP#a`j>yIFM!oju#{!gJ;>;`7@cBDdC-WGs!qxTP z&@W9yT&?ortWXqIGUO&bSbJ+P&V0!5{)tjTR`_p4?S4#;JC`p=&Ma+ny?4}=ZYTb6 zQ_bG5?soW&4WI>EBWr!W3p=M^7{|D$}g#JaiK3McubzJ;uU# z$|A4q_jP6U6Z!;RYVE804W!3WLhpsMhHLzLl{3=So!_eHVtoiS!b>Z04l?dBySS_Q zl-q8|ufoT9{2xbe1PlK5o!3?h#H!h(U&*6Mb~sNKAIVsRIF%cIigDnn@10{c>)-RQbgW4qtW^7(|wJQ zpzu;=<#uYYZN4d7)K8VI+E`U$u+d5{t~eETej2b{bQkU7hkg5YalGXV)S~M*HYT&L z+&|;!iQ}Sm8=%Rx`?bMP=^YmK{<9;XcMNjWw zF+bBQns*nr=b1`H!}{gcb@E0wnp>=a-TuTtE9wzGxn%A0+4ir#jw+8(Q)yv(FIYzo zd)h{Sgc#PPKffWcFLU>ZbyGWw{4d!>!qH6JNuS)$ey^oJT|&bPNtLXIYYE?f=)SeH zP>ovGP~R}nj%4b1OhO;9YVXeQHq*;9@I`iC7?IN>R(?#c=3tI<`Vq8*8FFmz*sH@{ z!<7})hIdb%bu)&Q;GJL_KSnL4&23N{%>T)=xIM9Og!TI)kE24A$HHSWUVg>#L^Ew7 zTJ~zSc8T_znzTE;@{N`=mV=K}o2oX$u~I_#70c{6qTA7lV@|5BmT%Q1KA${VGiSa> zY5&g7^)0Dal2!`eX(~^Xs(eMxardoBN>=HW1p)is(5~G57%8KfLMbNHz=lH^-ENOb zcSzLgi%S=^XvT-llg3-aV?k7}&PVzK={NAdJ!~EA$4J?D^H%uQ{JTpol`w{fl%qZG zRqbqi4J=;$R&j~qy?@Ihu|V{<Bx+LEABAFU!zQWz?WOd*SpRG33V*f4MD4(eV>ZK+Dsw_A z^qd~dxgRc$g$t#3gh#3GD`kG%YJJnhRKYCga&|xQ%1)(Ot*oFq2AjB%tSelRyPtWC zx_Wk4i1J2&?Rk&g&)?jkElXDEFPu4?g`b)?t@H7{*22)gH_$U4;2wg5B3r-aOQLW? zpnC2xiyX&fvJdurV)^CYYnmrx7M0IG)~ju=Vs{-kkvR(}vQ!69E~b$?+KJSzariIY zxVM=i!hcFZeePQA#uqtaNkqDSJb_!ft~WyHFnC;V$!_HB*XkxN!XKqdqPTY{2q>;7jzUi4L}Gm=Zyr|R;QOol|97Vk z{ki54UYAXS(GvCK$`rI6x6N)&I0NX;;$(7LHKTL^3 zIgYth)zQSOz_dnl4u+5V1iNoK@V4KUi)M-9;&v7Cnsd@fSuj3d?_}vhlb6`j?XPy9Wcn-pe0*PoU#B=bkC-tX@DwR=E3I`O+gXi!-NW_hL#zC6l*Q}RGL6dI*^_fMYk3q;->gjT z`=(wQ9Z`BKb%*uiA9ZUVKatj)VW=GDOTQ47G%&@BCw=xG**$Vf47P35bFSrISxhvI zzm;|sh+GqU-;>`O{o&yD<&LoEuc_?0Tlx$~b`Q9<{O9z)T@bf_7?i%rF%rEymw;hY zyR`qGtn>al#ZGpY0-frI#;ZiOS7*`Q1D^Tg1+wjx*AiAljtdbW` z8_I%XrsYl`*g%L`mLT;#u5?g%p62z#{9gf)H!Ob_wpyE5-~8~MFYf8HT}FzntS^F{ zBQ7jAPf|(`w{jT7=jq6QtGu_vuvc|5ljEWnma_Mjn@<1Iv{GtVk@4|IAvnc@p7%~d zze(G@I#>yb2*ONi@jDlG8E{3px?o8j1uN@Re)-38O4=<%=e|xMFE^|!(@vCTdogwYc0bY9yJb}Fwi;< zx~vr_o_`UZ)9t4^7UJ?rdVf6aFO0iY%`O=Dk4iAG-=tq$D0|i@Q=!TELRs{YdNfT{H748V7d;OcrE=5n8N^ftp4v}m8Mg6GBbjl3#BMx7^R_aN{ zxz7LYn1tcC>`xtbb`NTk4Sy0hpCpzx0#)Nhj+ue5G8CTTr2B1ms>Bj3A8GR3{g2d8nK3S>qOr>iRZ2)QD}O z{4t|V_Y^UQ)*17!y68@^H~56qJd{lLba4wt=BLR1N_f;->}dziDZai$K4n&_>PGZ2 znny>;Y)=fAWoX`!tnR5twrNpfvqOn|)~?cEQAt8;I{{lFp`h|*KT0nAwPfMk)Bm~3k4eJ5EU-?=TtLO4h-2svq ztTf{fPGU`^L=C+A7oQhU=F1l6loWrY>dX{0MfcX%Y_VQTnhzhEeDN*f>}3nc9>;sq zsBVev%*~OS&pEsh)fO~g$M8xmR25hHOY_f=EvvgEPDWA@Sv1=Mt9=(3H4XxXPL(B zIu-e3nf5L3u&mF6C5If9^HvnQuyP|dnv%>9H#F&-fj`)5 z!U(G9r0CI1WEbygKe7$vn|V2x%iQu9k66XA=dWVp^e@>9k3G%SQ-fgP3dbFx4W0b1 zn_ZM&huW7^gPSP2mxhgg$MGd{p>?d2ea@xj*QTYvtk?01-uPSFh+@%m`k9;4uQKmH z#K$jv9`H%u`*O!vDVu;u+!SSmB*HGZ{WTich9HeLNedFGggB?jU&$U7ajAqWmgIZAd7DzJ|D{hgTM#=@8TKT{ zF)pbuV>&L{dA=*m2S^YWw;+11(faoWFqdW9h-GAb0nO=2*D-4-AF zMWB?@;0;xbV~^LHxZt$=six))FSxMn&lo!-Hxj0by(>w~&M?P2EjsDuqnnxvB`BX# ziWl7fdikji$Jvx=n_x#?p;K(>(ISCInhyH@{UyAm#n67~2GVL0XB6)KwSB3jUq!io zoK@bM;yf!F!6azTMT^Sf4KJ?E`J2+NePDfT5-KK{JI9(K9=vik`{Et}KGp3FPqz*i zXLKr!wNPbT=NUVxQr79MsCYqYz2xkPu^I-Ets@7_L5;uyZbE$mHL?c|(k-O&GW`y? zgqM9ngce!07F8Hq%f=|Dmgmw^I=4c+Eoijb0yGY_Bc`(1P+SQ$#``v3rYwf4xSN>K zcf4_?KR9Y|&PN%}SCll9pqq4t6bsr0zPxIz{7bUKoIaj~cWRhCg@18dshj(zsrarn4e^se{-I+%Cb#MXe+ccSY@NG*h)Vn*mu2a(ljR}4y z7b`7J*{Z4w4<@!V#f8~JG;CRMR(khaq*`au>nL_~T}}Q=n3G!|qxSVHinqhJyI2wy ze12{7gOq zB)U5-rlLjeqg!tA3AjNFFB$nytUQgUlhG2F9=?lgK5fUQu&&9`(`)M6zS-5+@Uyzl zia^7eXLWbeGRuOnuJ><+ZYN2|lxHlOkdz>^UqCE|#U8qHN*^zZm2jU2Yq~0fVrUDm zFFyF-_4C4G+i+gCIg$;Wfo%eUp8x!ReyZ%D=k3|4c4zIwsv8y3xo1~KoE0yx_+Bd@ zt7p@%Gu~lR)->x~l~K#h#TNz`dL%4Zc>7nj zcK;&w8I~6hf; zG!K1>j^khUd~OK2|L(#BtLcvG>anHC_)a2uEN?%#IgWEHmm~R6Df&l)GJzVQ*@wmB z;mo&oZk(gn?X&XCVOa;JDhBi3-@(~lcMN~aQ1I36IN0eKHd#H2>iq{?r<8ZJPwOo; zU7eTDpFh6AkzZN*%GOZ#Oc6`vUNY|1b?hQL3WXSXt$Shhs)UvTwXE`tZGPGf)l?r$ z#e|RbG^+Tf`0MWC+3L+a;z;;6q?4?g(J8rpf+w)8WZX$)#;`edZei2(&(`Jqzjq2# z*x%228>LP~&AL1_&QbD9Sh>z0FVoa0(U{0{XSA+QwcCBXy+^lXG$M3-^@0)q`p+jT zTYeIp2YmJQo+r3yNgR|%=9HCo52HIVOhZF9~1_d2InZ-h1gfBD;| z6Dn3o=QG-?6Cd&{`zj-brTMqCXtSm0vvMhQ#J06vA%1qG^KzX&M3j3|T?vi8f^Yj2 z>nyR}lo91eW0u<)q4*u1TF(W}J~|Mzw&le`?>t_=|DHxiAhERv*+vkFwxlY44|P69 zOQD_0z&d%OAMbN_a&vH6GJp98$&P;kM9J)>xvi|`BukTn40j_l(|A9Toc)(!A!ow7 zt@&2_iMNp_qqS&D_2eMNtnGU5%-4OBs#ZOljyM0%2yoC)3zLJ-9~Wtj4+Y&5cr&|j z;3?3WXl2K*KRh$N5afUMQdaT?a|6$h7A#{~bVlU_Dj#aS2|r!U#fohk+fwVE^Hh_2 zsm7i3th$cgH=Tonp88jo6R6`z@E+9ZjaHeJdPshI@nbo0_vov;%V<(8dYKhx_{ zRoH)*I^UMpvy`>6MvZGd*-0QSIp~*Lup$*uc674kvJ%W*!M(fiAw%|R)_LMpPoeCa z5!A>=E@lA-)7|JOX6=eH)cQuIMKm6h0?XYirGLK;X*{GTe55F@BcUOoBi%s4K*B`A zLi!KsCeke=Y$O~cTqHase5Bh*1W1HPL`Zj#?jjK*ks#eeB1IxYB1gK91m8)C^Z@B0 z5)~3P5)Be9(jz1~BzmOBNDN3%kQkAekeHEJkXVt}kl2wpkT{XJkhqa}ka&^!kob`V zkOYy0kc5#$kVKK5B8ef1BRxZsK$1j~LXt*$jwFL5izJ66kEDR4h@^z{0!bN31?eS{ zD$*+?H6(Q;4J1vZ*GO7OZ;-T+-XiHB=_2VN=_45+86p`W86%k>nIf4XnIl;sSt3~> zStHpX*&@9|vO}^*azJuKdXMx0$qC6B$py(3=_8UGk~Hk)n{Ikz$Zyk>ZfzkrI#+k&=*-ky4OS zk>6Mao0UM=C%nL@GimMk+xnMJhuoN2)-oM5;onMyf%o zMXE!pM`}Q7L~256MruK7Mf!o%hSZMKfz*lAh18AIgVc-Ehx8MvA87#T7t$co5YjNx z2+}Ch7}7Y>1kxnZ6w)-(4ALyp9MU|}0@81!MWiL9Wuz6PRirhfb)*fXO{6WPZKNHf zU8FsvKS=vX2S|rVM@Yv=CrGDAXGrHr7f64RE|IQ~{(VKB{a_>j4L}EO02lx!fCc;q z+yrg`*Z>ZI3*Z6xz-@p4AOwhjJHTCl7$5=e0i*yKKn~mo{=X0vE02M$D&;Yc+ zBY+N|2Oa|qz!QKGU;>x{7JwCC1K0r$fD_;XxB(u37vKZ<0Rcb|5CVh&5kM4p3Wx#X zz%xJskOZUvY2Y~^1IPk$fIOf8C<02r3qToA0bT;Cz$-uvPzN*sP2e@41-t>YfwzDT zpbO{$`hWpo2p9pzfC*p;QYf0dNG~10MhT!D{( z8{iJ0fKR|@;0xdZcmiI4H{b*K0)Bu$@D&IE0)ZeP7zhDEfiNH(hyWsiC?Fb$0b+qT zARb5n5`iQj8At(Afixf;$N(~dEFc@m0lop>fm|RD$Oj65LZApJ21i`;n4%`4R089W2_z$=V+ybxx8~_)< z1Mq>{00BS<5CM09y8tmj0^9>g0WyFbxDWh)AxfAY01p8wfEu6yXn{un9Y7B}1{i=R z03*NzFasO3DDV^z1H^%6fCL~3NCDEo zb3g`=1>^vEKmkw$lz&2k-^_0Ds^s5C8-MK|nAN0)zr#KsXQqL;_JjG!O&C0&ze*kN_kCNkB4? z0;B?IKst~CWCB@0Hjo2+1HJ>fKpv0}6aa-l5l{@20Hr_~P!3c8l|U6x4b%X&KpjvI zGysi26VME_0Ik3epbcmTI)F}~3+M)VfL@>v_zCm_1Hdm}5Euf6fe~O77z4(E31AYK z0;Yi(U>2AI=79y^H?RmS0n5M&unMdJ>%a!E32Xt|zz(nr>;Zp(ec%8%1df1X-~>1Y z&VX~^0{9DD0$0F4H01b0M~3SF8h{Sm05AYd01NmJxCz_>umKzZ7r+DXf!hE9KnM^4 zcYwP9F+c*`14scffE>6F{C^=zm>vKR0V;qRpaE!sM*tl_4?G4KfF}SWzyvS@EC4IO z2CxGh04Kl&a05I5FTe-z0|I~`AOr{lB7i9H6c7W%foFgOAPGnT(!g^-29O2h0C_+G zPz02K7l1OL0=xuNfmeVUpblsNn!sy73wQ%)18)HxKo`&h^Z^6F5HJFa0TaL!Fayj1 z3&0Yv0;~ZWz!rE1*a7x{1Kre z1^fVi;42US1Oh=oFc1QS0%1Tn5CKF2Q9v{h1H=MxKs=BDBmzl5GLQnK0%<@xkO5=@ zSwJ?B1AGI%1GzvRkPj39g+LKd43q$+Kp9XDQ~;Gg6;KV-0JT6JP!BW!jX)F74732P zzz?7eXa_ogPM{0u26}*Apbz*7^aBIHFJKTD0)~MRU=$bw#(@c75|{#}ff-;Hm;>g4 z1>iTZ2rL21zzVPmtO4u52CxZi0o%Y1unX(~e}H}905}AWfMehUI0eptbKnB_3tR$M zz&~{4_`87&*8wyD9k>Bt0GI$4@E>p!xCLMXH~=ny2jBy@0Rn&!AOh|HcL8F61h@x~ z0%QO=a3A>pLXc28aXC00}@6kOHKE=YR|#3&;WTfC8WhC;=}3Wk3aZ z38(_E05w1z&;T@n*MJuA2G9oH0y=;$pa;VVB5qJ-L0Gt44zy)vxJ_2rlJAeW{0iS^{fCu0Scmdvk58w;<0sg>OAOHvi zf`DKk1PBGffN&rJhy%5sAOT1Ol7M6&1xN+bfOH@O$ON*0Y#;~t27Cu{ zfjl4|C;$q9BA^&30ZM@~pd6?GDuF7X8mIwkfjXcbXaE|4CZHK;0a}3{KpW5wbO4<| z7tjs#0KGsT@Du0<27q6{ATR_B10%pFFb0eR6Tl=e1xy1oz$`Ea%mWL+Z(tEv0+xXl zU=>&c)`1OR6W9W_fgNBM*aQ9m`@jKk2pj>&zzJ{)oB`*+1@ITR1g?O8H<05G0~xLZ zXaG8J1Hb?<0W9D@;3jYjzy@#tTmTQi2W|rd03kpG+yU+a!~h9!4&sBhvB_}Z-!jmTNL-X5@bWJ?pa<--lOBj zxRbn##f(9YVv-)mAp9?pU(H>c5QQ){9E z^}mi*RAdf(x3ZFB#Xe-Cdj91L=HwIq{69IDZO_SBamH&d8)7FIvC1#UMP2?nxZAAs z#h>7)Tr+OSgb@;mQ^^R>{^@vfx!92tnt>u93JwTy7g!q3ct&>dO~#^! zv5u}X+c>vF)9A@NHTAJmd962e!Htuu%2wUl6X+_K$hLdSgtb?L>^KrSWg|_8PG-Pw4$i)T!>H%?M#C-HLG* z_31A<-0%-W*`-nBDFg}0JgH}tak=!bWNfLTTsI$L+xA^o;UTo=E8zDL_$0Z>73OR4 zh`}%Q-W|_0d(HR7Qg{46ojP#6u9OUW+tM`shE8UkRyUc}k#L$urV#ysGhW)yYl-Bv z>)ky8BMnFQUMkRb-EuU=%1&OlA349qteGZ0vG88vK{$%`ZvSC~fSY1xL)<}xsV+&| zkmjF%@``juk6td`etsO~?$F0MBk_2$O1hJY;!|?RCPV7`(guRR-B@Y%uSP!&G@r{3 z%nSxw`yGm&duII|_YRsRinBX;xW{l^lzyJ%#$VYO>yX1Jk>%k3PG{H}ds@PO-&7zi z_gvJub7phP36+Kau^9iOW61IJAeONXarfuSk|l4VtEFCJep{y8R|SpFhnh>DTbC$A z+P|(~4vT!xeL*IJ7C|0&`OP_&eo41rA|iSs!I>`N_-k93g9;v(QY3m}qTP!fBg?gs zNM99mMYR3&;QM)85az4piz48_Pu)>I{f4@wj={%KmkfHZM7?VwO zz+zlvl(LL;nMbSU`n_^eo(-qpLf>37^UAuKRv3$A|N@m$qa_KyBr!$78u6?;#GANrTG9&Qx zEE!j$fjK;Kx9pe|{}9{Lx>PUX@l+Pp#yhERp^?P5C6llA_c0?XukWX+{7xz;G^frd z+2O$O&+5B;1_{zTP) zZ(P^NZ28egm-3>-$S6=b>HT?$wk?KZ^Hr|%5Yd2(FzV=9`SuWc`L?B^VF=B>wY*Pn z@XTuX^ZC47&18?qlP4WSv@B71vgEWXbQ$)|lC)JiD8r}0{j8o8r{}bxGoqqx{(l9} zm!#W$wt_>qlxl=EZqbzete9;?k5(T&V$Zw&W&u=(4&oB8?vM~Dfjz@ z(nair@4hxDVU*+C8VXurq#sFUAHGGz(1f$3sektqs{Knl?Rz1*0jG~diB|YgG5hg^ zB)We&MMff=a8oi}U3#A<_~Nw3o~`xua;j$E4Z+%|R`p+6p%?mEv&`7|GW+3bN|u&j zZEVD(SbJGWfLXCN19$Y$iz$E0c&qr=Bit`m!|6#|iTRyq%50=-^t90A#nTBa@OwSb zt6m3%-$VTrxK>alT97ndczxgkQ@nB{99{0&pxPXZe!kn`Be$7z+=_An=69V6qG4=% z)!hq~zD6?jw{A}x&9=I1i6`xQQ!s`MQZX_PjbzrxRQOL0SXQk%t7PeTa(_CHNf4aU z%a`a)Dr4w3NqUj}Imx#%S1;;ZyEU=e_$$RNi}GmH;kf-Q_m;JoqKH&;J7039pLv(f z>kx@sRz?Ei=@*?i|Dj{@98n#3)EQUn8nncS$4r++>uFLn9$x2*EE4ekM4n-M!v6jJ z3+{#{S(cuVRaVZkLb1FTcr5n!coLkXdESh@HO^T{{8O+Hxbguferk?A;Eh?iK|6Lr}z{r_m7f=1lE^H$Ej}~=-0Sr-Z%BwVe#5YibS6on8Bwf zdym487`9$^)^vU?{Ne6V`>uvyQseDg4CZ5$ImE>^BHpjgujN%lOHFKH#6RO=nK?MW zd$-N^S;kuVuQYPy;jH`Nkv_fhZD<|$-*j2=l32~6hRs(KDHESJSI0cxh{J!DS|sc* zAgOPZJFse$)P*}c)+KL5KEmj9>NvVXvekT{N~V~%+T1Gad;PHFr{Hew+phT8fvwgI zrlO@M+unYUuN7Vsn6quq#y7P1d$ZyNC$r?)XO_T!Bh$Jm;kbWFtDDPL0^Ve9{}<>% zaWkgwQly>Q&pzQ8n&IFQO5zDWUSOX-D3I{e7W#uZ zyL&G{oubn_Aw@i}Q!z9i~CW36NVZ#A9m3WZ!qM%!s6Np zm`;nkZ9_ac@+U}daee2;vv!+@#{Q)GFH(AKFJDfvp`@Ib&-j@el)Z6Hd?m3uhonA# z3FRcC7@gTseb%mQ`|Hw3WTbrWo@qAk%ZmFrFYs+1jM@GU;_9?q;NYdieR`$Cz{JZ~7zM&cleH!|Txbu};azZbK{K^_%Y-tOJ&LBrDUKoR$ z9fza*3U7N`_s4xqs?vlWhw$G1#(#cYbv8U*3B>gFsFxZmu4Mkxa%$l}vfS+SJ2;C) z6@u?xtn!O*ZNJ$PqdMN)b<@|!@1-ur9`gGmT-ILV73}<2VlJY>3NKyF#wC8BuYtXU zdXqsk)4E}4$Y-zs!^b**kZgK}O0wz)o5tgN0ptOn&2Ms^GV2sh8a1-zsa`Vi3)$iN&76N}i=tthT!7laOD! zs@Iul7R#QFkwpT=SQDEH4VEa;1hE#mi6e8f?PL(jf@`UfF|f~4NH@Q~vstGELsR%4 z$*g*jO8HuDhz%wCq%E2jL2Kt5d-iGE+KGI3>s#j%W?61h>}vduq!ujuktRtGlT%#H zV^ireiO`>pGwr<)N!!;Pl}hH{WJ@$-S1f6MOd7y}lSF=0=I`>ls4tC~*xS4zFOOR= zrlv0fb+?wE@$K9o=0N2(_K0Yv4BF|>v;K{1d{b!;ddNu z$O5nJKB}0w5F$rY33+F5Z8P}SJ*)PrqsrARr+))hRih>>Ja1~l|ISr%_G3NZe4zhk zm$QVMD+lWZ%1-3Yt-}VJ@uPfCjlzK*=Zv|AWMmyb#>|l$|eWAZ4dg{!+rgwSh z2b%uIv74V?&#yTSdr&8tyQs_Ccg8bFU!E z_XxwxHTEOz*1G}cX74(0`ww|h3$JljRQ`)zyirZOht6W9#9B)FUCTi2-(uN$%J+E)i=F_3 zzj}ZTE&G|a&W(`{ySeROS7$Sw&;R9wKm1g?&*&Ezr}Ixa;X(2PKFXuTqxsJU%{w&c zJI?=XDJ)z6)UJ5sOF4%L{e5pPkJ+~ykl5R5-+?+m-`FlH{BtZ;9g4T+E}A&$AjPvp z5m@=KbLw3iaS%apjTf8@J>D&ESbW5Fw+jZi2_eWogS1EMQqq_uy1a<&ka73+GJ`gmX6vRF?O@2a`m$RnHCDZw zV;2q^YLTp)e1R%9ZT}hbRARg(@wxud$20JgYzp%L&7SY^zNv%Q14Gelk$?1)(G>~2 z-xcm`nw^y@_bC%>TAh7WE?3^Nl&fUltCVcuFh*^Pn>F^%)9)yl#b>9s*ARr!+8rO< zcY24n^l83FV$Vg^GeyKheuesnGAc_mXt3%K0Tx6DHvmMx8brLqx0PxSqaZ9`ZQLWCs{cQ2PPr6hwf;0I6XR;hvVRTc0!-mcNFy0^_gNz`;} zgbV+Ae$NRyrFoZ^$c3t%DB8sO?Rz1zciV8|Y|Kx$qi3l=GYHE!P|A@=jOg};@sB1q zk$0>isJmXT{b~9IKZ~^d#GWJy;<U)b0=o#stU_uI^I3S&0xfed>2lC_wT^Vgi6 z=U@9z*4-tAbA%?e<*qU$eP8*AKhDh>%oRBxBhDGPX!zm%Vw*!h(*Vt)beFB2^B_3$ zr=Cio0rr++Y3AmZ^uqDXb&)p;-u4oAZ@fwRxsOjV zxTM>S*yJhnVorDxk{L#WvWHV8g_hqojaSgTej67ek@H(6=~YZqDvjT>>ceiy8~N0t zo3eP!s4uUi)@`F~(mo#5Q03JOjY`xVkBV##-E)v+H#fIG_5RbUd&+6*5Wcg(kWeF9 zAGyZtwqA)Vp(MAcN$Bc(qSyHM9bZ6}8>SO!W&;yFQP0&O7FIfHY&zH-=lcd_$Z3^x z(Q#~!TYJMHehik`oXz6om}ujo-C6QowcWI;T9nmiMxF-;FWjob>ALGJ1FyO)m=w3w zKKu)9o4`9RWoqcocX9fWs|J&5)zIS+gO`5ei&o{8AnMq0~% z^j^_H>h#a_*%(SV-f%M1IS3gWZ#KWWX6_vEl!S_}>82{R1|Hh`#-v{^RS9G#bX1CL z9yJ80^^`mY?Cu&Ve*W=OLT16hiKZwFa+2#@Er}sVmW?*t)aETx0v z@pq#|py%kPbn|y#kI=&78D+=H3Nn7ukKDc)RZgb1dC>35l`!_)$?(C_M4wQtaF|;N zjX=u>dPkGi9Tfw5h3=Z73(uA(*?|Izj`hFfQDhd^gt4UX2Km|Eg*1Qm`XEEBq{$z` zZ)^J^M=#9(dd$D%YrDl-j4mQqS1P5@3Y9 zlSrFPEo#7FXSx}eTlPKQueUeh26tm~z{bgup-ti9@q4@R*`VNYErTDkbQFV!j;Th= z<1VN;O0O8oUWS;=Wks=PnAByd)7;AB$9QBa3}j5hrOyKGXpWhWQv?%@BZM__ziXlT zqubQSRW%BH!c>-;jk9ve=?65$8ObU(%(KcjcnSY27&Pcgr12MFGFG-$e=IR@ML&5+ z`hKPrA8$f-;)*an$@1W6U{_Np@i+001CD2?<9Q;&#gceI`r6i?H@`+KVBHFH5R z1WNM5_`1fA_r4Tm591=qJ<+dOb%(51NM7#UKX`2Wuw8JMJ40*OuQu*-?7q?{n`AMg zs8Q|{=Ue55gVXQ5Y{ap@@>CA41vo`d`|Yf9#A9%jJa}^FBK7kzy|+c|!Ih%M@~u|) zwI@85Ji-=xgt8GIeOxFzaitC#L$U&QDCd~i@IIWZ8vI_C*WI2Jop5zR5{tA$2)Db<=1k-DM@S<02u1lUl=uRtEH0LY&K~6_tEengv2y=z zL0x-_qEZjn-6O>fMyK3K#Z z1-MZBr7l_8RtuYEz`1ko`nI6G4m^txyLzdv%fsL8vP|%<^Z`M5dxlqHVjb634iKfSHx<)N4(iYBMbz!t< zeiCxX8yRqHM5;NwqmB^l`b)e7r}rm~Y#%4GVmog0gNWk+yIcn@xwY3Lc44HStF-i~dPcE=s2V3_hF)D-gcZd`3NZZEm5Bt9SkmsAt-vQCwmlnglZ*yA6UT0Y& ziW5B>UgS8IhxxzEP*bLOLr|c4^piX(`zX$^%vmy%Hr4B1*9*58H5}&wmC}L3oElnI zu;;#OZf9@dQGHh=Thp1sK83xvxjb)%RoyzF+gHRt&W(O2j8`V-ON={Mr}11;*xKAs zCtvhx>fxcbu4wWhV4kmM^EP?joN7~HIMDo7F)GkJBS7hn80dT`%=~7AveDoj;=%c_ zZR1rDd|y1Xr`SE2d@2)3EkEJF|D%xMG(1de{-;dqrxEt@I~oq1lev~mJjhs> ze!wT@~D`a-kJzT-bhFgexbS<0I!gPh51A*gS0R?8U06$gJgL`0F! z;_e#c*xv9}S^x$`(!`&1)QxoqzGT^;P;rUUvVdjrnx~u53q@}0o&8nx|GhVrQVE}p zY>0dgH-wI3@u?`;H#kjidByJ>HHvBn7dq$w{omh~C)U3o@g(t9m`YWm;U^Fh zwYscL{fqDoOj@=T0TY#O4B>u1I*sz^1#1|0gMqg#Ok>T@Szj}M6PO~~)_PYa(lmfA z6}Keffs#BEru+eKfx_m*C5k#Of}PySnFC@cr`P!sdbHk*<~tlkDN`)FRMVbBynius zJC%h(WE}(yBs-2jZ;3&^lP|8f#Z59DifcbgtCvhv9ufGMA6&y3oxCYViIxYv(z^YY{5Nm1+T9i(-^YKMB^yYq zcB1A$9%rE-Y{g80PdJ`DC`?A;T5I5~E>1h3>RQq@WpL!vbioxo_}8)dOoX9OW0-6f z5USUs(feA~=Sz_AW8UZ9-_swMla^;6?Jt4K%IyQ5vK?U|BV}I4yRXc0PDIAm&O`}` zCF&E`4cZ-7mD@MD_*1Hu(ZYp8`9Du)!uX5tE#q_s2{#l%R>x;g@rY4`6hU+BEsD{DvXkGq!z0#2HBhA|v-^(ePX)H&aay^Gkw0(9W1d(PP-Q%AE-)un z^+?o3PbjZIEEaRirA7Je(HeJIAMThy-k&GJpnIrs;8IB`4*_b>qis<+YSx;#r2b9P z{>K&G&f@fBOo|l}u`JGf#5>0m1%Vzwkdsqg3zJS#;o~}U*-wp%7_duCB-i=icJtiq zCyuY*KI4Bb>mrL8Eo{zWFihr3<&N)kX2^694ot}{ATy19miUE1Dxg{_ygEm8n|H4@ z#c}IoiX?hV?_)g|l-X(aN~=+e^`PtIForKQmhoQ5_{Jb`EE|czUo-i2hXmUWFnkkk z3OugP3+q@u3V`QpA56=^X@sj#?~KkbkAp!!sXw9Jr^P-^X!zlOLUYS;>IXfw=|@eP z^d%DDbJN*Un+y-^P}l6`G{4LW?K;~U>K(XbcjWo8l)fX<`dwgpM`=RKqekHaS%{aC zld3oJ%$dbjP|PldVo`$wV} zy-wC+g%)mCdkT?{U&pc}tf<}Q^5`WG-F2_e#tW4XA1ajEsOY+8{oO~CtTcMxstqQI zl={(y{$_RTXql<*A}KOT@J{{~Rr>+K1_^T`8{_M~R*GPCSe^vMvAo1q9WX%3mX(4} zO-MAEvOZf{aGfad>J-YoUg{A2sAZ|T7@K)29{atGX4=W_XLo2xf@N3SlBud^!G>eh zfwFLj{v*04pJHV$?vt2{f1^_=%G-o4eqiOklD>C{d*7CrR#zdzRUWzAKSU=vw1bnF;Ue08#{CMZ zeE&N`x`SE18*?9Mf}13;_X;6-7jcl&naCVjEU&m*0?z3UdGix(3cJ;`aUuJWGtu&| zJX>PQtcgFK=OK6s)Lwnd5{GruWlgsTH?57gsyEzCw-N8IwU_UuZh%S4yWJB<;b^!z?e>Ch{}U+KmS>HH$!Z1 z8Q2)JtXdP?bJmV=iL@!Ox!e;0(kl;o1Gk{!zDCE)bk46nMyYnQcs&Feg1j zFKwkLmvpMckob4{J0O*Bpr@0d;vO^KP41$MKOCJgDyRlQjBw;Waa7X}&Uku$&=HDu z!r%}d+@^M z7IGvNagZS+?4s z7Y59;dZs~vSB&>1vCiAmR9h_YSmj}LDH$q07675fel0wns75Ce4k+~CiTIL?GZ&*?)T6d#j=e#tKxf1pyal)7^#n*Iqcy2*wni$8m+b%|bYv#FDtCVV2a57eP)HFzG zH+eqBy~@+v4PCysm_)I42r`r@JG{I{Xk?-nWuo;OhH$tKdURQjtuysEQZ_>43^re4b&UTPR~qW=+}=pO$A;JKD^t z_P34gyU((c!W|@}9js{&AE9>vwD+5-Y^B#Lz#;8HD~_G0NSAk~45v*nWl(b+rvB)g zUCNtjtU3f}b@=P9Is8Ie?tx!RXA@tEC3xKzR3&M=9L=BPntsj1ctnzV~yev>)pjmL~ zL-;4G4RPIeG)I#JC}pOLc;`Q&JBB}70`>nA7m*S62x*iT3IDv}p;fx$vGQ5YCzf0> z)S8e@*XSQ+XJMnV@B9I;&^kzX7qMk<5(Cm+R|tALO7&d<0j$P#B${?H)pop&xMqD9dD3{ zDNa)<+a0;mdcLSfPwjd+A^@w7ZD~%+@{K%imdQ+_`8J0wN4A~J8uxYA^py{y23WP!;Kko%R-`_jAs-Hwt>5Id>T7SbB>&U%?5I}lP5O|~J6G5jzwS1RwoYr!dTyFm*!_la+ZU@C?*WW!Eh!4S? z+(wM2>s4>`&D&D8FVBwn3>RKTXL6YIkuYqAvt90L#bQay&JoX8IIh!nNdpTr*S7Kt zJ(crl^YRkbbbJUNDzmmU>$%jnm_eLd_Q?KXiRTA9v)S+7%zl34_cmj@8a^()JV#HH z?siIztl^T4c9)h#Qd`x*&aPyNXS$-_a<@+8?wLxJG&?SSebmK$#0XJjO|7h zN@^{eQW3irTlx~Yp9+9&&pUN}hOHF~2FIJx$tbe^$)3<@wQu)y+4zCoh^kdd&G@3p zJWI3R)i3vb%(Spz)zWnRW(kRInrG~ny^e>?o_Vm#Krak7SguT(9S#a?J!&^QbbAzCK z;I8E^*`I}V39`1?66)&Vum9Q0VS1<^(H9GJCEVWj?kt{q_{EcL@f;!44)WDQ=3WIr z@vX{{0&dVLtbwTtA0nzt^597}y9+3uGvTO7hoRBVzg~@jd-G)E#G*BiEe!Sc*W7Ok zU-k2X*|FD<{jo48IjOEGKKFZ5oqWY;Ka`yc4tn?28bsNSeM12|l39zyig5dPtu~vf zATR#f!3njL__H)GFF|0els8D6dq5t6VBi#4EIbey5Rvl1*~UaRLQY0?2W{JhGa(2J zOdx9^dsD7`x^N7Kyc3MR5C~tyeu|rp{rHW@4?N(3Ks+$UUdyH*=T=lQxDBu~L9uKr zI2DOlO8eH?Kdwp37Z-3=s%LXb6UDL-)5T}h_Bp>YrcwG#yTfyThu=DS$XZj8rKhha zXJC>9Fs-O>|G_u)H~!|G>Z&IYP}_ecKX$2+SS#<0rmPA!Ehm?WaYxB$LZL%m;&Ok$ z2lTRj;1aXCX=TJ*HQ0n)4e!2pI+oZQbd@nYOdcbuv;Q21n!w^Yv(ZsOjWZMqQq^I?x#vQsW&aufRzm)v> zFiM+UR!ov~-EKIek>D~;Q2XEz6ij`wK}j-u@w(xy`Ec^KtLLH*V}%65?0yH=tPU@_ z=_3OnW089R-9sCab9j7gzYvtLOMB#*Y*%lKC`15Hf@dx4E2`o70=-iJctK@JC(suU zxW#et4|e~y^@O&jhjhWltAOr+bF`DtU-P<_z+;Gw7t`gvOCDQ$cVF6Ol&s=o5Q-sH z3v*czYK0^H{j>Y+Go1^!I&6vjbpuhdz>+#?}#S z81r76RtWDGenZW?DcS*OS68VVF6(U};DWJ>Kl!<*;NSSb zM0yX7oPWbp6jT;dvYt#Qy2^|gAH$3mu}Gcqal@?v>Qm~Ogu5m?Ukb)1!9{F3zPT?s zK~DF~(j`pN)22d~A{%jX^$ny{7^7e^D=otKnPgR_Q_@69@-LeXp`WAgT?6kLu%McI z`z}U3B4A^A7Hc48Mz)|`m(x?wSR=mmuEdn71zaj`lr~8^dm-B~d>&gJXI}C<$)g!_ zV}Z9VLast~4a)4>@=(n$|NMR?Oewl4xvMBs6Psy&v2wo@Oe1VY(;b3$4k|QL_eP*1 zDt%KP5h{0ULqGt&I!>YV>NWifK;>%|;#X}LZsl)$QmTSon4xB5VeM&K`h(+>m0ViYm+(90 z5?!qc?u_Orv$vGhu9{_|$6jfgsamOcX@AUk2MHPj1=d)~cube2(oTA;fydeTW9`}r z)=}J=s1dx0opy&emTmKENAFk8u6-*Lc1zyRBx1ZF-~x9oOyb;WfnUZMjy=rNsDm<$ z)CNfiIQR$l={it>jUyI?+)b@jq2y;yk)kdE&DtYLH|ZJBi%Co2)FTfg^ySetI> zm-H0O&^Ss>BEFJTOR&KsK-TW4j0tTYJzVZUCqHq)08fs^tWxUL9yx;Zv+aJF$hq&( z+ihKI-Nghb--SDH8nx8o^wy~iza5oGKAT(KYnk00^~^(lWd=GE;2O@N?jK8Vva?g3_J%!TO*Jd~ESu`RBVij} zK6dhkyf*&EZTJ%UYUmj{1${K{HW_ia@-12D=I2BBl*2SLe2O>sm$zMfGli;H#26pu zzpXDo{DUe}3BrsF0A*SnSzAL;y}g%DVC|Qdx70ZVTpntQjka!#U7U@%OU4aDyVobW zC~4R7Cd#9U6(d9fw8>~Fho34OYwcr!W9b1mME~ruwj3{ z5w}g0?#+iwmMs>7B5t4IHJ3*+rp|z^m(Z|Q@)>v{AiD$zK+jk1b}5I7%g&cc*I}35 zZA1(K&t-`uh(r0_;M&CA#oVt;t-_6wS1mrO9n2TOOFURox}q_6l#{V&%2W8wKp#(I zg1*RPZ_wrD<@EZh5i)dV>CZ=u^2E>st#5^K(+1zBo`n-t+p-{p`4+B0%6$HuiJkBQ zy19d2G*5sZ$e4HL;nLr7;03U6oPK=}K{pR=e|1q2TCE8|v%QkU?I06fNlVZ6|s6^64UZ>$en!8y@f zVHAXJBh-avp8SJP-WH}0!a?k>iH86+9$e2&5`P|Guy7`{!*R!jdZ1tFAQ8lVQPu;p$f*#ko5^*&Bp%gKD}+^eKZdSCMf+d4l_*a5R~3;Wnjf%10Qmp4d_Lf ze_a61$aPds!$xjrAmJXbK7N!OKEo!gMb!d5)TM-rMKg>x)=)Bj*96eryp*96#}*$p z@aBUfTVnaE6}?=E@~8|@Q2r3#Ls=An`e6no&&7>*MBWF(693@Bow5gY`s1!AH%K_< z^U>Y~^`QG*PZZ{e(0pX+H2gFk=*&poZxS&56!nZ>Z$=26_}-(CQY&2{wT9A;Ryg_n z{CgEPiPVGf<1sR1^V{|m7D_B%K;#f#K-$ooD}k7d7`|qTaaZ~0Z^eZiK`5Sq7vnw# zulq0ydn>TKOWH6m3dcf+TC~!(>x%G|^SFMp&+mPS+J*)$P~! ztA{n&UmX`TaY=?^*iV8NMqb7%rPzi{?cPGKOji)ws-EH7#;f%BQm@Sfwkj`9KiWoK zZc%Z{x~B09f>*cHoIHK?tTs;sTT?^gv<_LZnv5 za?^|#HGlq9d$)+m6mc*#7oD6mtkz~ke#S#xl6c8`=Z#N#KXrD#R(E#3%u4D)LNBNq zP;e%?8zO{6CRl&oSByl0Ng!-^@3KDFjY&){2Uu)UeIm0BDtSywkeL*woWJaRU$hc< zf8%*_yiWJ{{4de(2}4!k6$0K%p8_%*tZjh-7vq=~2@cMU^8dFjpaTxJW-YopQMh7n zU!E!DozB_&Wf)Fw2u=Oa!)hqjZ78IyW?TMIQ`uk&T$DUvxnryx0(T=s*U-Q1P3XS{yubD*9|G z)ot3}zbSrWQPGR2s5TNyBoC`(^INW<*l9aIII^hCIv1Hn* zT;8O=p;}fvJDlcgI;A&;R|^}Sjc$eKP1{uh!?9IssAx=fJ%FawR+5MP+A+(#V|Z^XN;4A0|g@_g{@ zk(I=t2{t$HCZGrG#ACj@zC6km1~Oj{mnX3{zp6|(z^6EC}su!Jrs@(BKx)iO)8 z(k}OGZ?xarANx3b`F);z+{bnmM8DoQPtqq*lr;X-*G*>Q?8gtcc%1({kn0~u zk{Oqjr}lYm5kT3J5{`N62>&bnRhJC*-e;tOMud;N&_p~?fY^);*FdBf9LB>Y*%tAD zGC|*ox@PYyQEv~CYP2on0r~3$eB=yOJ@~6tZTJhEZfg&=zIn=E^WOkI)SIgFmDI1d zUjQ=KbC#JclB)v3RB^uc0<^Vh1bzvB8vwDUkg7R?TNQ+;ihN2z9#e=+ z6oShyreT9d_8Sfi+L*?A64tje+~r{1`$km-H!xhpRFq@cYMn2eRnB3A+n6=3kET-P z+x=naC|zTk((e*{?{b_F_tRBjk>{cBry{+v#fOv zdvY!9RzS+bQaOS%yG2rE7G1C&R1X0xAsRQWA)gx~FrPhv%r7A>z1lan$YLnnSgos< zb%kJ;QD&6t#kUeJOCvj!A@7CXzg#j5&XO|5H?@4(q2@TlzL}Hh&!2JDGh*ZjiaHZZ zC+9ymb;>==^@Zu^hhTj%=cSIy zQ|ck|MB1X3FXi{mWcks%bSiL@^Psj!ICp#Rf4|$3ysXQ`Yx+|Vx%`jIUZV#+m;D{x zpZ*902(5gvXRZs|^CohLEG4=RULH|kzB@9rtCF}UwQ3lb=mj9JN*2v(k1DVHl#X2c za>aUB>0B9qR?vOc7kV{*v^;gE^(3QZ!7;{io%6-q9pbAMX3xao{DeZ4UaPimT|YBk?&KJ9;X z_t!hqvJdTrZmlD1D`#mS>n#Oo@DUN*>!9W*N z2h%JI^>qbg49lI&OxfxJ)b8`1f05xDr>f%XvD|U8z2^@s zEID^*9IcA%vq}kY(vyCw^Y%jrPQ1Fn3Zc{_coOZgr~ZyMzp#dlwNnMRpFh|V{e;h> z4RnC+>rpFWbS)P#q|8huf2J9m|<0_0w^UaZPi9E{X{?z}1i%+O%I zRl;14PA2N)OT6Y&o$W9dec`h`htY_7H#|+=s&mik0`a^wr+*RG%%5CcY%W-Vab3x` zhlQb;hH-P!p8*4YuC@->aEg*Vt-Jdc0>==t-evIRS2lA00ool#zCgb!zjem7^8F|- z-*7rw+$|fV;cgLwge5_KVj(IE@E@eaDG_GG7g%7h!uSA#4F)?54j7y;xL|O@;DNyl zgAWEj3;`H|Foa+T!w`WX3PTKrI1C9Gk}#xTNW+kUAqztehCB=f7>Y2IU?{^-fuRaR z4Td@l4H%j*v|wn%(1D=~Ll1^N3gBv3P%n{{cw&93quW9P)ivRc9|GW18-L3sc?IGX))RI7=UurR5OW~CMUoE8T zB}ImyDE4yBW)d?Z81m;Oq4Tnr-Tx)b?O+Mvl>bT4Kz3ge$_V+wEQk;hAr?d;h|0?~ zPzDX*LLe`J6G)RDg6R;B=nMj+A;B+!189>8a`qBfff`gH+K%CfHXu+lr0*qAdcFK| Ih2Y@+3*GmW6#xJL diff --git a/lib/windows-x86_64/ao-play-async.dll b/lib/windows-x86_64/ao-play-async.dll index c5c7d7f4aaff7a8cfb04e0f93ee8274e1fde3ee9..89c9756c05aef04ae96d6f133da56a83fe299479 100644 GIT binary patch delta 4852 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 Od#(-6lfouX{C@x%g?IM= delta 5583 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 F{2Rm3e3SqH diff --git a/lib/windows-x86_64/ffmpeg_audio.dll b/lib/windows-x86_64/ffmpeg_audio.dll index 46db0dfcdc0ea766dd99d32297c9350119b5a52c..c6e12685e4b12c970addf80e12db8edb74fca00d 100644 GIT binary patch delta 5232 zcmeHJdsNg_9=~_s$14XAm>30dz(IM5$ZL26GBV^(1cQ80n1MVs5t0$uG&-ZoT zcfQ|W%K&W|pl@iY+kzKUb zh-^DH7{^}l%Ag0?DX(n0n}v8cP$PT7yNK>&r@bfAjqJMjr$Jv#&d&6y3O82s#$DF4_ z>`V2X^d%PUn?aY^D}9fv=w_BWwvkR^ucCdOg#|RyOx79DMBiiHflaiKwFJIM^X-#@ z0x9ie2F+G_m3^kUJM<+DU(W%3hq8wr+4h9Kg^Ni?2czw#+p{R0X8%)g9#u(!_C9SG zrC-?x$DL784eJfn(JSnm&=_N%nvm8T+2-o~Ds**filg|Ly>h$eattAZufi=n2A8Lx zUHS?h1jNT8z{=)Nh@nfEWkML8!M0A&(J*!hmdos0SWYnSFdenCn6MbyW?vBYoEy!s zUk>+E(GQrLK8HTdOnMz{W>tD!z#dA0d?Vup=>X+GoCVI`fkHWUE<^8*#|CPh^{yQ!|hG#HQg{7cye!vSdI*&W0+3eiZ8L{58_>>kkc4Aws&rv4s zarRoJOLwBtyxWMZhSB;W!3Tb(iQC8_~5bT5X`r}d$rVFLWi)GbL^Y= ziXh^$ntcmwN0Rw924j?sXXbu^%E^jb3uQ zw1fpGgsHAZGDAXyWhfAK+lNlgw-B6~6N=i~?i2%ONd*iO=hh?t+A?hwUCA?epRzKhVuDqL_DexKsX8Z`y6@zL~IF3*2=hMk?FX zS4NEJsN^PR%a?=x(zQW7H(PsBXD^zP?Q6=X{bq zGCiFd*jv*hkYY|w*Tn`Zv3dToHSdyBqlRYdmZx*s+aI`os+XjYdB9VttW( zwIBOE#8xKWKGVUEa|Qy`_8b+gk09kuta*t?1_X z#O|S_YQK7E2hSj_z0S*i7KtJNOXSzYRdHQ`P>)Eb*>Lidu^+wTbgpieE7atW(}@Id zkR_ya2Kn&ot`Ug2=`I3y3|mO6#1SZr!sh~$e{+jE0_%k57M zxO4489Jy2TFSaT*mmhWNJY+~8L+F?={K@3@0)38C6T%V=Nm_^U56tQY4F$+HH~dx1 zIK(2h)}Yru>vC?o#fidT2xk3;f-!M-VA2*0>5!sXR9d>mjt63F?WHEGv>oD*r^zNg z&zjQWX#;yXEy`G*iQv|=HyqM3NUm2|0ZGLdZ8IT+8fRZQ%bhUBuyx!>c0^)CqH|dNbM_1pdPzt%rz9<|}N1s2%b|R2?M0uCId| z$H;zNm$dMevMp_FUuqgP z%Ip~AY+$1|DCHuXn-OCPC8v@j;S^3{_fRrA<)UpS`&~NRhu*AqKxvZ| z`&&w@Q`)6U>#~O_a;?(dtF#45o2s-?KExeEk7vJR%%U4uZe|MIV}B@fjmi?*fOEhv z=Rp_82=*0xMfkrE+$(se;7-Ah3SKU_KyZR!mEeo@u6abeocP!M#z0O8{ea-zg0~7@ zCAdUzj^OQrM@DPAMNehx76x15R=WIq1dl{-6Z&|;*e=PWb;F0l` z3%y8iwu>zze)8BY9h#TBTpI*$5!@}fOmNWyuDHJoJwWI`2t7^c5rTILyQ>%G-zgmL z2|gkCoZwEuj|i?6JhJkSSGc58f-efbA@~i!?+9)Yyp{9K{S)FP95I4Z1&0YX37#+b znpntkp^q%+Y%XcxiD!fpX1VmDTbRf51VXmksd14T?XcftvMC?X_Vam>s{7tX?lWW& zQULsvjsNNlLXP3T&kN@-KqfMEKJXfF4Jbs?FGJ<&0CXrtD<>1O$$*lCDLT^7_!8m| zpFhMhwoINFNm2=kH&->A^>xba>)_3Scf_VoNFZhQ9rE)ug@4G$S5=mq%ke>9O^7>o z7{83``b6{~%{53{ysOKW#BCjHU4Ed3KNNS*Up<(TkV^JS{$BbbE1wgAZ9g_AjnV;j zuwVw->jjhG2rryS%b2my0QsT9OtfznJ{;bK9r8qOLgumqJF#B=yB(=69N5W<=Y|-0 z6lxSHg=H=9zKAM<{3P&&(4T?)@+d#ow{bt)F*jJlN8z`48kR1Uh9A(Yi=CXC`>SUP z?qU}Zg$lpRKK-szI__G9t5XCza%^8pNCIs8*vmzaTl%qgbtO6gCZGhU2Ob9)@G9^Q za10m(E(1PQgoFTbz)WBvPz|gBtiZFt>%bx47;px-2n+)%+|zhq3Xob&e8?OKB|tUX zQJhD^?cWzapt4lgHPqbSRJE#cSv?*>)G{nv{5B!w{<#?UILg+|)9~H6>rsE>OR%-U z);}svzY0$YHvig@(FjRI25c$9;~ZtXVu7&(#@bOv4=iK=w(X;AG7_E^i)kBWTMpYW z;+jXi z6a3%HkUhO5(9^<`^M8Z#ri%K?s*0(piSd;yP|4cR|MyVdR9(NSuG~BlyalnhAp19l z#x<*|8q4b%R#Z(*bq!C*8|d`AuzQ!Cp}Uv%x>?R5Sw^CInU^4if;S48SG0bh1@-~( zzkw}~hruPNa{gt6G=Mh(TFAWey$$gA1K=^J8$6zK1af;QV)Wp@0A-N3gZne_VXy}Z z1foV6J_k7&JRjJE&Wphv03Vcd1xoZ4#8iR@fNPLBKc0=xigFw%_^$w;xF0+u80xuTw;u#h~9u$h1vyeIO67n8!P!7KNF#%^2zz5=7B4o~;Lf!=h#ozOmhDZwtk$Y delta 5210 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 P=V{2CGo5E1Nb>zRP?&+A diff --git a/lib/windows-x86_64/ffmpeg_audio.lib b/lib/windows-x86_64/ffmpeg_audio.lib index 2144e55e44f00610d48d41aa78faf801008db692..cf30f34674159a2b3dc7d3f1b938c38cbfe20a09 100644 GIT binary patch delta 729 zcmb8sziSg=9LMpuNla^7)BOH%$t9O)Mp2g-5rRWZ>mW*Sa41}ds&r^95u{uC7lhyy z!CgwJphBEWDV-cjr~U<>kF&*ypWxqI$;zW1y7tu?sctKX?R<7;^a zSb)d{#A*=lLTPuRp%iCiWH-U*42;wsjJ1@KJT?+1;7hiRocca%(Xh{YV4p#LXQHMQ zd&4O7!Dk1I;t`B3DWzZ;xfLxe#yCv1J_+$TX(&EE9HF+f9cil{wr-&wY`Wy zEe72|! zLtWe5%0RWKCalG`b)%z+b_EV(Ukj%7!E?gX=D9(f7+I2}NDw7MnyZAk z$uwacEXq`v<2tja;{VnN;<}HYJbT)H?lvEJAEUR2hts8C+*I&#QQrp( k!_jObFn9Up@ImBW(tGGM=RbVjfsfrkq5*nb>}TKLT~!!z^Dv-5cVS-d^1=Z;UD#doy{padBAKwu06Js@3G z>?t5QT_u_YB&VQ+Yk*|VmKux{YAUA2HO07Im@`tUU6%ups3>t>ETu9^G7l{D7|Fg_ z@-tFmsKiVbB)6r6Cv1qUq7oSak~L5wWvqf zIL{}69^J5ppN7nt+}Cn}3F{OswmXUd15V0}HWQi$T(iInFYoZuk~q{;8~cdCzz#fd zp<7#f(6J5&ak%10xBh3h|75Wu-U4U+Z#}&t>c*P*(mc^Mcl(!qR}*(WyZ>NB%^&q= BU()~p