SDL_mixer: added optional libgme dlls to visual studio project (10821)

From 1082139cc873ec878d96782f074465ed2839afc8 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Sun, 21 Jan 2024 18:55:00 +0300
Subject: [PATCH] added optional libgme dlls to visual studio project

---
 VisualC/external/include/gme.h           | 302 +++++++++++++++++++++++
 VisualC/external/optional/x64/libgme.dll | Bin 0 -> 612864 bytes
 VisualC/external/optional/x86/libgme.dll | Bin 0 -> 558592 bytes
 3 files changed, 302 insertions(+)
 create mode 100644 VisualC/external/include/gme.h
 create mode 100644 VisualC/external/optional/x64/libgme.dll
 create mode 100644 VisualC/external/optional/x86/libgme.dll

diff --git a/VisualC/external/include/gme.h b/VisualC/external/include/gme.h
new file mode 100644
index 00000000..145f04a3
--- /dev/null
+++ b/VisualC/external/include/gme.h
@@ -0,0 +1,302 @@
+/* Game music emulator library C interface (also usable from C++) */
+
+/* Game_Music_Emu 0.6.3 */
+#ifndef GME_H
+#define GME_H
+
+#ifdef __cplusplus
+	extern "C" {
+#endif
+
+#define GME_VERSION 0x000603 /* 1 byte major, 1 byte minor, 1 byte patch-level */
+
+/* Error string returned by library functions, or NULL if no error (success) */
+typedef const char* gme_err_t;
+
+/* First parameter of most gme_ functions is a pointer to the Music_Emu */
+typedef struct Music_Emu Music_Emu;
+
+
+/* Setup compiler defines useful for exporting required public API symbols in gme.cpp */
+#ifndef BLARGG_EXPORT
+    #if defined (_WIN32)
+        #if defined(BLARGG_BUILD_DLL)
+            #define BLARGG_EXPORT __declspec(dllexport)
+        #else
+            #define BLARGG_EXPORT /* Leave blank: friendly with both static and shared linking. */
+        #endif
+    #elif defined (LIBGME_VISIBILITY)
+        #define BLARGG_EXPORT __attribute__((visibility ("default")))
+    #else
+        #define BLARGG_EXPORT
+    #endif
+#endif
+
+
+/******** Basic operations ********/
+
+/* Create emulator and load game music file/data into it. Sets *out to new emulator. */
+BLARGG_EXPORT gme_err_t gme_open_file( const char path [], Music_Emu** out, int sample_rate );
+
+/* Number of tracks available */
+BLARGG_EXPORT int gme_track_count( Music_Emu const* );
+
+/* Start a track, where 0 is the first track */
+BLARGG_EXPORT gme_err_t gme_start_track( Music_Emu*, int index );
+
+/* Generate 'count' 16-bit signed samples info 'out'. Output is in stereo. */
+BLARGG_EXPORT gme_err_t gme_play( Music_Emu*, int count, short out [] );
+
+/* Finish using emulator and free memory */
+BLARGG_EXPORT void gme_delete( Music_Emu* );
+
+
+/******** Track position/length ********/
+
+/* Set time to start fading track out. Once fade ends track_ended() returns true.
+Fade time can be changed while track is playing. */
+BLARGG_EXPORT void gme_set_fade( Music_Emu*, int start_msec );
+
+/**
+ * If do_autoload_limit is nonzero, then automatically load track length
+ * metadata (if present) and terminate playback once the track length has been
+ * reached. Otherwise playback will continue for an arbitrary period of time
+ * until a prolonged period of silence is detected.
+ *
+ * Not all individual emulators support this setting.
+ *
+ * By default, playback limits are loaded and applied.
+ *
+ * @since 0.6.2
+ */
+BLARGG_EXPORT void gme_set_autoload_playback_limit( Music_Emu *, int do_autoload_limit );
+
+/** See gme_set_autoload_playback_limit.
+ * @since 0.6.2
+ */
+BLARGG_EXPORT int gme_autoload_playback_limit( Music_Emu const* );
+
+/* True if a track has reached its end */
+BLARGG_EXPORT int gme_track_ended( Music_Emu const* );
+
+/* Number of milliseconds (1000 = one second) played since beginning of track */
+BLARGG_EXPORT int gme_tell( Music_Emu const* );
+
+/* Number of samples generated since beginning of track */
+BLARGG_EXPORT int gme_tell_samples( Music_Emu const* );
+
+/* Seek to new time in track. Seeking backwards or far forward can take a while. */
+BLARGG_EXPORT gme_err_t gme_seek( Music_Emu*, int msec );
+
+/* Equivalent to restarting track then skipping n samples */
+BLARGG_EXPORT gme_err_t gme_seek_samples( Music_Emu*, int n );
+
+
+/******** Informational ********/
+
+/* If you only need track information from a music file, pass gme_info_only for
+sample_rate to open/load. */
+enum { gme_info_only = -1 };
+
+/* Most recent warning string, or NULL if none. Clears current warning after returning.
+Warning is also cleared when loading a file and starting a track. */
+BLARGG_EXPORT const char* gme_warning( Music_Emu* );
+
+/* Load m3u playlist file (must be done after loading music) */
+BLARGG_EXPORT gme_err_t gme_load_m3u( Music_Emu*, const char path [] );
+
+/* Clear any loaded m3u playlist and any internal playlist that the music format
+supports (NSFE for example). */
+BLARGG_EXPORT void gme_clear_playlist( Music_Emu* );
+
+/* Gets information for a particular track (length, name, author, etc.).
+Must be freed after use. */
+typedef struct gme_info_t gme_info_t;
+BLARGG_EXPORT gme_err_t gme_track_info( Music_Emu const*, gme_info_t** out, int track );
+
+/* Frees track information */
+BLARGG_EXPORT void gme_free_info( gme_info_t* );
+
+struct gme_info_t
+{
+	/* times in milliseconds; -1 if unknown */
+	int length;			/* total length, if file specifies it */
+	int intro_length;	/* length of song up to looping section */
+	int loop_length;	/* length of looping section */
+	
+	/* Length if available, otherwise intro_length+loop_length*2 if available,
+	otherwise a default of 150000 (2.5 minutes). */
+	int play_length;
+	
+	int i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14,i15; /* reserved */
+	
+	/* empty string ("") if not available */
+	const char* system;
+	const char* game;
+	const char* song;
+	const char* author;
+	const char* copyright;
+	const char* comment;
+	const char* dumper;
+	
+	const char *s7,*s8,*s9,*s10,*s11,*s12,*s13,*s14,*s15; /* reserved */
+};
+
+
+/******** Advanced playback ********/
+
+/* Adjust stereo echo depth, where 0.0 = off and 1.0 = maximum. Has no effect for
+GYM, SPC, and Sega Genesis VGM music */
+BLARGG_EXPORT void gme_set_stereo_depth( Music_Emu*, double depth );
+
+/* Disable automatic end-of-track detection and skipping of silence at beginning
+if ignore is true */
+BLARGG_EXPORT void gme_ignore_silence( Music_Emu*, int ignore );
+
+/* Adjust song tempo, where 1.0 = normal, 0.5 = half speed, 2.0 = double speed.
+Track length as returned by track_info() assumes a tempo of 1.0. */
+BLARGG_EXPORT void gme_set_tempo( Music_Emu*, double tempo );
+
+/* Number of voices used by currently loaded file */
+BLARGG_EXPORT int gme_voice_count( Music_Emu const* );
+
+/* Name of voice i, from 0 to gme_voice_count() - 1 */
+BLARGG_EXPORT const char* gme_voice_name( Music_Emu const*, int i );
+
+/* Mute/unmute voice i, where voice 0 is first voice */
+BLARGG_EXPORT void gme_mute_voice( Music_Emu*, int index, int mute );
+
+/* Set muting state of all voices at once using a bit mask, where -1 mutes all
+voices, 0 unmutes them all, 0x01 mutes just the first voice, etc. */
+BLARGG_EXPORT void gme_mute_voices( Music_Emu*, int muting_mask );
+
+/* Frequency equalizer parameters (see gme.txt) */
+/* Implementers: If modified, also adjust Music_Emu::make_equalizer as needed */
+typedef struct gme_equalizer_t
+{
+	double treble; /* -50.0 = muffled, 0 = flat, +5.0 = extra-crisp */
+	double bass;   /* 1 = full bass, 90 = average, 16000 = almost no bass */
+	
+	double d2,d3,d4,d5,d6,d7,d8,d9; /* reserved */
+} gme_equalizer_t;
+
+/* Get current frequency equalizater parameters */
+BLARGG_EXPORT void gme_equalizer( Music_Emu const*, gme_equalizer_t* out );
+
+/* Change frequency equalizer parameters */
+BLARGG_EXPORT void gme_set_equalizer( Music_Emu*, gme_equalizer_t const* eq );
+
+/* Enables/disables most accurate sound emulation options */
+BLARGG_EXPORT void gme_enable_accuracy( Music_Emu*, int enabled );
+
+
+/******** Game music types ********/
+
+/* Music file type identifier. Can also hold NULL. */
+typedef const struct gme_type_t_* gme_type_t;
+
+/* Emulator type constants for each supported file type */
+extern BLARGG_EXPORT const gme_type_t
+	gme_ay_type,
+	gme_gbs_type,
+	gme_gym_type,
+	gme_hes_type,
+	gme_kss_type,
+	gme_nsf_type,
+	gme_nsfe_type,
+	gme_sap_type,
+	gme_spc_type,
+	gme_vgm_type,
+	gme_vgz_type;
+
+/* Type of this emulator */
+BLARGG_EXPORT gme_type_t gme_type( Music_Emu const* );
+
+/* Pointer to array of all music types, with NULL entry at end. Allows a player linked
+to this library to support new music types without having to be updated. */
+BLARGG_EXPORT gme_type_t const* gme_type_list();
+
+/* Name of game system for this music file type */
+BLARGG_EXPORT const char* gme_type_system( gme_type_t );
+
+/* True if this music file type supports multiple tracks */
+BLARGG_EXPORT int gme_type_multitrack( gme_type_t );
+
+/* whether the pcm output retrieved by gme_play() will have all 8 voices rendered to their
+ * individual stereo channel or (if false) these voices get mixed into one single stereo channel
+ * @since 0.6.2 */
+BLARGG_EXPORT int gme_multi_channel( Music_Emu const* );
+
+/******** Advanced file loading ********/
+
+/* Error returned if file type is not supported */
+extern BLARGG_EXPORT const char* const gme_wrong_file_type;
+
+/* Same as gme_open_file(), but uses file data already in memory. Makes copy of data.
+ * The resulting Music_Emu object will be set to single channel mode. */
+BLARGG_EXPORT gme_err_t gme_open_data( void const* data, long size, Music_Emu** out, int sample_rate );
+
+/* Determine likely game music type based on first four bytes of file. Returns
+string containing proper file suffix (i.e. "NSF", "SPC", etc.) or "" if
+file header is not recognized. */
+BLARGG_EXPORT const char* gme_identify_header( void const* header );
+
+/* Get corresponding music type for file path or extension passed in. */
+BLARGG_EXPORT gme_type_t gme_identify_extension( const char path_or_extension [] );
+
+/**
+ * Get typical file extension for a given music type.  This is not a replacement
+ * for a file content identification library (but see gme_identify_header).
+ *
+ * @since 0.6.2
+ */
+BLARGG_EXPORT const char* gme_type_extension( gme_type_t music_type );
+
+/* Determine file type based on file's extension or header (if extension isn't recognized).
+Sets *type_out to type, or 0 if unrecognized or error. */
+BLARGG_EXPORT gme_err_t gme_identify_file( const char path [], gme_type_t* type_out );
+
+/* Create new emulator and set sample rate. Returns NULL if out of memory. If you only need
+track information, pass gme_info_only for sample_rate. */
+BLARGG_EXPORT Music_Emu* gme_new_emu( gme_type_t, int sample_rate );
+
+/* Create new multichannel emulator and set sample rate. Returns NULL if out of memory.
+ * If you only need track information, pass gme_info_only for sample_rate.
+ * (see gme_multi_channel for more information on multichannel support)
+ * @since 0.6.2
+ */
+BLARGG_EXPORT Music_Emu* gme_new_emu_multi_channel( gme_type_t, int sample_rate );
+
+/* Load music file into emulator */
+BLARGG_EXPORT gme_err_t gme_load_file( Music_Emu*, const char path [] );
+
+/* Load music file from memory into emulator. Makes a copy of data passed. */
+BLARGG_EXPORT gme_err_t gme_load_data( Music_Emu*, void const* data, long size );
+
+/* Load music file using custom data reader function that will be called to
+read file data. Most emulators load the entire file in one read call. */
+typedef gme_err_t (*gme_reader_t)( void* your_data, void* out, int count );
+BLARGG_EXPORT gme_err_t gme_load_custom( Music_Emu*, gme_reader_t, long file_size, void* your_data );
+
+/* Load m3u playlist file from memory (must be done after loading music) */
+BLARGG_EXPORT gme_err_t gme_load_m3u_data( Music_Emu*, void const* data, long size );
+
+
+/******** User data ********/
+
+/* Set/get pointer to data you want to associate with this emulator.
+You can use this for whatever you want. */
+BLARGG_EXPORT void  gme_set_user_data( Music_Emu*, void* new_user_data );
+BLARGG_EXPORT void* gme_user_data( Music_Emu const* );
+
+/* Register cleanup function to be called when deleting emulator, or NULL to
+clear it. Passes user_data to cleanup function. */
+typedef void (*gme_user_cleanup_t)( void* user_data );
+BLARGG_EXPORT void gme_set_user_cleanup( Music_Emu*, gme_user_cleanup_t func );
+
+
+#ifdef __cplusplus
+	}
+#endif
+
+#endif
diff --git a/VisualC/external/optional/x64/libgme.dll b/VisualC/external/optional/x64/libgme.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b65a191d3ed04dfbe595a06e76adf888301a7733
GIT binary patch
literal 612864
zcmdqK3v^Re_CKDqNgE#J7ARUrlrV;w1S__R+6ZVaP09_VSmYrnB3iAes3-}7BD5w!
z&Rj3n@i98%ILzqG=%}MJ`b7|hq=ly7s}Gd|J`i=hAs{b>Qk48Z``nvHD?0wyZ~cC2
z{eE4Ld(Ug1bN1PLpMCb(=iI6*8w|MygTaLV$)v%s7Ek(f@!y~RsYCLBVXqG`yxQlT
z;cJb)cZN@!chf@af;(@&@y=^+wbopF+ikb|t=HXPy)$r|^`_gb?#rfHZ@vBc8%7lr
z^tI`rt33w8^(*@IsOW%U)Gzzx<eXtxly5N1=wmSSHyB<Xj4Xwe&3YTpOz$~byA6gs
zgP8*K*NXh;O#et9-Y?|m(OOx0<v`MpbWB|zgFO$ShCYV!?B=vu46cckOaB906Wa4*
zf7X`)=Ol^m|F)0ealMHrNj8k~->}$^gadx`nVLv_r$Nd3n`@|^JL>vt{nsMSMX(z5
zJa^-n_2)9ojf}ce%lNX@XfUis`Y-WZ_Je$`Q46$uypQOs!3RLA@yz;j8A@HF7Hjzq
zR3gC&97}laJxRXn7A~Zs5yIgD<U7e<9kuTU4IaliaBm<`qkHD(_1>iA<70xcAzCnu
z{XxFSsEW&{QB^bPXEo9ZKT_{}uE;3=eBQo!ln-OY^G)oXkMMWH{M&0V1XLf!+%N!7
zU+;XS;|a|F&3{v+;9l!G1BgQ%{$!p(Vo`}TsVf%ZRUY!G-(rx$J0+Hbz-|h#oVCbm
z@b{5oBsC0W5h=LIdR0@cFf7E;AWj#jO}}CWfwhO*z3lBOwmEQ{JmisU`XF<-ecANj
z9-}0maXp}wCE1Xrh~GdUCHb6h?(1Vn<gZf!Ir)Lax(-Ofzs{G!k-%O_zMujH<h)>4
zju847+1Cxjk9sDW%o~JO*sq#%&DG*;@#>~vw^0cH4e2*XvS~yq2Y$xkg=oIKz*3e(
zO~0X<iiBY<gXC-$LKZaOB-MUSc`w+Cf>g0l2wjSNa$YzhguVq(J+dz%!$~33&g(Hx
z;`IP+5r07yQ(q@K^s&#9twHmHbNU#JKWy#~V|?<6>jB0q_qVBuJ1`XCh{QJgC-~%Z
zX7l(egW5syEG7l_TO{ZAcMX>0e5!LlMI>7hwP>Hj;_Ce0=NY^)2wD7jV<s+k%OWw7
zbO!1E+#lAxkp?4fN+y%SFgG9I`*Y(q1Tn-2gAh*RJuJw<BbG<G)%#INeBTM=X+Zk+
zI|<VTjd-ZHA|;kbIEZ)hbZy*fslXeEXh>6w6{x-xMZ)b8dyjSa*k*Q0V47^c>gqlQ
z^y_>z2Q=wrY8ldxsUu__U^^&a$qI;Ule+l(WD-=9>nZ!f&347|(D)=LQ%)dF>e@T=
z3`#{3L%PTch#HWN-{cvB$8%9Wur={anx50?XK|qZ=hG3tMS*Yx`TbV~j~fGP)cRX_
zn_efBP_yb&8H8{EEl9WhCd8)$zU;up?~=*5mvB8Q#ZLe&gwID*V!MX_;9g0R&0$~)
zWFA9R;Ksh_ofQ8U;nT<5wsJPjHd<mnn_VqHn^gOvJcCb0yiD;j;(7jh%0FFVUrI{B
z5P-QlzW<gy1Ft1hKc!#Y)R6v@xPm|vloT_fS<9uE$Y%jO`OJ!EF*QnJqBSPk>9wgL
z124Fw(1`ZRUQ4{~cX@_}rUv4|O!^hI!tLh2%lQULSyC=3VrfjY5{#H=Bk(#zDfm?v
zDzKmplqfm6P%SY!S|!pnY7hpBg^J`Wi$vqOho$GQK^rvuv6h%<q8u@?NPCpfgIXko
zxA?8$c5$tQ2*2Q#U4>#WGN`I1;*IXgDQk~!do0h;)U&-QS?89$g_3g4i@!n3*}H6;
z7(8b5mwCdG^)EuJ3Y3e^?UFp%;=e(eItck*p?o#%QgnBYx&%-;herby5>r#63>AUj
z&;X-bc&YLAj;iYlMP=nz5RR-RdTiLyJ!=Vav^$S=INqv1P645+Gx3<jDlIoPkq~8b
z3fZ!uPaI7KRU@mk%avA$u5dRxCs*2DCjpA^s^{>G?kYq!7Hiutgzf}NS!1+2C)_TC
zZr2036qv6EOcc0D511)Xs|WHZP@@O(DKJ+LSSWC{9_T}XEA>EM3S6NF`cYt-9_UYj
z?bN)kg0gnB^^wN1eHbJ*qc~QnjbWuWhLwB_h0vQIX}3}_sH|NdG}ZPfiOCF7YlZz=
z@IP`$C_G~U%QqYnM!tvt6dqB{!*g2jZXV6wXGISQGtH%VuNCaA_}@}1OzWr>M(w_<
z-yxwS%JMkZ9g>8S2%xqTl#x95^iD*Mq#}C`35{wVUfx03w+{)k+wi`%R+#Zt;tf7K
z#D5Jwdc6SsjGsYoq;bRt(;Mkf@jmp{m)?@--Rq=+#J{CCV!L>P-bk&Be@1U4*W=sh
z%}j6a&>LYY-b8OSWyjayEyHiw_?Wwr<6|rEAr7UkT*@Qn0130qXYu!${D}_qK*pkr
zdSJkgthK_=!2sb9oS7vb)^f6JXH#s#su$5**2-yf$xznVwnqp(MNui@d|3~0;(SF9
zaN=B{2RLyOfm0byoG<7BPMk040ZyF%)&rb4|3?pS;v|tr061~3*8`k5Hy{AwB+`rs
zYa&c6ZdywNnfNv(zt_^pCH|A1Pu9}tCO*uBX^a!inJ|rSVofGYqn!9#CQM_Ucq|j9
z5l^hhg!#BH1kE4{@?$L@{hCae)4<eBn9t1>>9Fw9K;sk>N#zg#qj$Rt9ob=|yJgWd
zUNPl}QMC~N+>S_7hMwHAu`B|y=O5~vQpj3`$zmY}kTr^mD|xnPGPahri$@P+;A^TP
zq%LOtz#x5=&Vnb;GO<=jN&u0R(T`G-98GMNiR5)OQ5b9*B-QMcl%g^z`gx9*b*f_?
z0>jIfS-k83R0ZR99c27;#DmgOGlo8EHG#AX>cT|#GYcgC1XqjwA$+y|OKeK9n@?pn
zs=HTl%r<<|%k+oO2lab9kymi|ZKZ-^sm<jU9Bx}RetovN_?>23fZr!=b;yL5XKW4H
z%L}&E+RLjpB5fqSVT<5}cvNB^xLLC-7J@mw{i)Tz59O2m4)?`~>axfDAH*FJA$JZ5
za~er>eT;}&kFb9y*!hA^N)-wR9&!sKXIbz&s}q0@Aj+&zl3SRwz1A&^>J)-cfGiL$
zJZCl~c!b#r%JnA=K*8;JLI^hAbqaomJcN+2;-6GPC@h#nc|>8(JIb6Sl?fuOHV5-K
zxDn&1q?_cZDA=3m=WS%3wFzR8M@7{?=vgng99e@W0CS+*W~a6t5msG-N{)UavHgnw
zLL+bA8$oKy{v+rl;0gP`0Dg`T$RkwEhiLk&_vxpRI=1QVe5&$0e=$8G>i(5^C~WVd
z_R`O+?+|KM)jC8Y!xm~4|Bs|CNS_H2KB`~~szj@NHmk7WGE7yJwUJ664>spW!I%j}
zn$@QX2%6BvlhsG`U@Nbg=cuPB!G1uCLHUE~ZF<eyfH}Y?pqMT8@59S%OfIvg0TaUP
z4>7VBU6RW)yABCg?msLHy#2f2322H3Nw{NrJB+b2m-2=dUSP%ZuuwS8#=|2)^K%X)
z259nuG6QAA2hCDVQ!rta6o1&Dez6=QCR`agj3z_``=`O<$-~0zPJqcfEX-;`jd_74
z!A=xz=M-+|6mI7fZs!zkPf@r%Md9`oh1*jUZr3PWs^3H$Ln}Bwh-pM#`4wuqQR~|f
z^esLNl8O&}N4-W#o$>3SnWyC+^#@3eqfhA992M`I<K57!g<*B5!61Yt00Li(pvyx(
zCMcMW<6ZzE&2Gk2S+vS`*u>Y7E$NfRVsYK2C>Pyjb}KWD%FL(;m7E<~Hj*!$8bqbP
zQL5P@3LE=Nj;#pg1S76YgxlG<^dpaRYoHG%GIf}-v8@}Tv!57@8^vIwQF^>qG#0s_
zES?$o`&DzAY8%q)=lZ=COdW#bRU26|NEDE@0x}_FBXa~^9<a4)FOS%EX)jOO4&X&%
zZ%N90n^j_Ma)nh=9;Ma2vLG4#k6B~~)GLoClgf<cZl%)24m3zLEzmGAtnLS_Qq5K@
z&P8VgI7cw>d0Awg6@3T4g^xgq7FG%1KV?ReBnq&+KO!k%0xl_!JZi#I7zSiQRs|!b
z!@`x)caoEYP&BZ|jfQ}v&-q(jz9Cj&Gt{Asys(%CNCaj*O104gWp7m!wYgaof;$*B
z0@P0YZ>Qldcwsp)UEw(WIpS3cBVovTykG=Dz_U@=tj)xxQA9vf18YI!0?QuDC@5P<
zEo&jh+>YXnoq5E4B#5S=G-Qxqr@|;S{avVN;4rS(0V7wsA4LOZLhk{030H<VRuR!z
z%S<yQ8cS!J5WW*cBP#QvKBd;>jYT6ATu=0~@e=$1KO+0y<M>!46UC~(BFe{huO)P>
z1Nsa;$5ywnF((*xVN$IWHku|%!98_&7oA&|f9Y{1Kt_$xJ;RKxZC&G)X=h+{kT80K
z(Hu;WwMNqnkmi|zKLSmY3elrcEq7N3CJW#-PC;Nbje_hc3bLmt$eyAguq>yb`b|W9
zX@d%HVSFh%BgHECgeS4>>OizOu{uo)@l(N{ne}`%m<W^@J|cuxpl^gW2+c{Dzh)H(
zFhqhun=$^t_^5*05f)bL1w6Ff%n&LAd5wzRl^@@RNQUWb<`&Qhk2?rL2}KYs-(zKM
zZxY@*PWa@CVixWAQhbAu$=ae{nb|^H{bmZem1~S*$9E#@2L8P@jjT-snO7<OUEo@y
zQSIn*J9c42lC>f;20qdFJ-Gi;ef`C`y@Yc+jo(l6yXb6M{zHBjPR8$lMW+frSjx%z
zj4!q4h<ES={m~Kubf_&gG~z{2TVHJDS*CB#USGuXP+&6(YyuIJYTgLq1xu7fSVezm
zK-Jn%HfgJOgTV^Uon|ZLvzT3i$)HqAaYH?hxos}s6kHFBfjS@3LSAUYxWH@>zYs&*
zbN!1U@fO~l<Ij)h(A4vT^?b&@<CdqGpyavPhtaPK-OgrFxa<H?$MdMm6W$_wi+%Dn
z7I{JuBvVodKaJ=~%6vnP_(pO$a+F21@nBIgdTanjZoAw0mJs?5*+dp~v(FJd%<Xs!
zfr?yHh1hYdc03!J;|)e~+>REnQw?ll6N=aYspf0aC8J;F_}F&Q(dbo*&UUjaOk#8o
z*4I~Zby8O)53ES3l4Nx<ZdbP<0uadJshN^$8zw3xVH5SBY>U=VkwwI47d5cc?QHUo
zMVL3P3yo_+0FCP>c63qW`hs;$;BK!oE`+WjQPHDpV3VGm=S3MkyU+Pf;EDLT$j{{o
z?=J5v`mA@?=iDrW+i1SDAY1nOYAQFtT<#WL^X5siXo0FODl?Ol72is$f4onbeR>Y`
z_p<hs{)>4n$0GwfpA8U=Egna!$hLZzNra5g@i{vKpH?ZpCrqNF&sCbeqHIgzP}*38
z7cvC9B-sc8%AtvA9dKnJGUN6s&{`=)K%7W&-D<pXbq|x)G@BJxOj&*${7rTlfx{?y
znAC)1b!h_z!3DE(gKmGBDL+w4IWg~*a{CJeBUBdubs{^4VeU9420t?fu9M`)I6yha
zCs!9s@`{%^_=rDWs(H&T_g^WpPFPLFWV-}g8QPsEv4cKX%*x4r2FPd@+X2|ghR4wm
z)DU<IEt$y`7fzp41ii8%m1qKFOXkIcTK;$~A2e5%y^HMRlFYPL8I#rJ+@fwzuRrwl
zkt9FCvyf>C7J2_rNzN75o`*_UH%Fe!s*|OZ+=a}mdB1l03nlgx6->OR>p$ySP)5Bl
z1j;6(a+7}`O#bSk2WbqRqEd->B*lEn5}2oAD=18VI_M^eHKQ`Mm`byQ>dUaBHuSRJ
z32WNp_TSM|7ve?J`b=<dx%eg-u~-KmpzuzZczw$Cwh|#kxRm5o)KJ!iA#ij`kAnm}
zhy+R`N0WaE#)^{VYK!x+7x3ago$;sq*l2{PHG@#Ap34o(oxJK<B#6RGE!<ot9^Hqb
zff2y56`3)PC75}W4bM`|uoa)KSC3II;g!0=JB9E(3>P1d^7K^5_e(&?>eK&3NyYr+
zd>Ff9L24WQ;Wdr4SdgfT$Ff|GLeQ&LUNK)!<-iXNn;}datu20VB>HQi0VNp|zw{C8
z@%5Cqsq(g;F0YzUG!5s*`)KXU>61M~Xvt8Vl$>ktAs;}Hp!2tS=Sx<DOgT5o4|7hV
zmKM^ELjl@aO59(^yQ)0giYHZ#`NOV0K<$tpCj3ZXA-jCJg*{9Im}ucW6K7;mh?Ovs
zw#yFX@Z>%c`%vF)g7!h?5U7ZotJvFWLp{l7V$o!^)w!8f6fU*GHa_br3(VbiAGiAH
zl3Ki4oP#F13~u>V+e(0t-{22P?k76Fb{mfxyQCVJl)KdgmS98?zmmd9pK?xr?8Ewh
zfo!R|^`@wUQF-DI4OKNqB#bV*$1+hVDn)Cc>VoOeqGCYtV)Ls>k_S6(DfHEB#x{`8
zcu4&-)lj21;}KgOS_Am7SEzSUiag08Yq5xu90#S`e(D?~#LosbHfTF*umgy!4cPKH
zqN3t9B%xqf+{{~KY<)sJ+6AhQgd@vpXg-1M*FUFhONt+%SG!qb$DVL|;2XYE(XkuK
z5Sv=eDu!a7L_?GX7Ku7_NZo}sAfcka6g~n8$+y@b1JK)r7CqEZ7D;R_Yfo%Q$$YJS
zpkp)+avB0dM*i&(Y>s9=bz++?dp`g@0as+~M{9u%r~?tVAVrYocH(Vv1d}8a3%QLR
zkdt!@)AlKiACOZz8`}X;A|TT^7g>#+oQe3TXW;j)PZo=M)Q<&Uk1&Vtc8V|pH3^ev
z0enk%=i<{)6Gotum=y@>i&=vh7A4nXkdmn&>`lBp^@lYrJD)eK(AmTq{TGEJiw8S9
zAVF@%j{h>kCohkPH47npc@XnE!cSy}f$#UT@s(vidzW=AF7=;DxR)2ZfN`Y=s6U8}
zR1R&<HJBPOUV4DGY~7$d#q3PMpMzbJaQkAi+#$Lh(f1mgFo8`0ic<80gg!_BRyFyK
zt^p;B?S!JGg9t4c9!mz_$j`F#BfRC#tnzhBim44@F3yYrBL)v!Lu>9O(+IVX<4?~t
zH!bt9|BP(vgUFT^a{u;1b;kaqwvW>n4O?c8fB&QjYl$p-BI;VA)s@Ow5MNwpO3zol
z_oFoWQq1mj-KlbB)rE5D>d!~@7;hSn`n^`HlO<&-t-&!Wn6IV!<4Fj;WspyK^$Bu1
z5ZBT#Bu-jb__rm7p#6DV2g!==59<g4#2nN_<ChhxrSZy1{06;Rcn7drtIG#IDy>9w
zw@dOJpwT1#3sH~y^&d<ID5W>k`=N(Tuxg{^6qF3NgTWQ^CwK*Y5RdBe96AiPQuIB|
zs5)Y49szKaZBfVL6|}zv#YSd|ArxPb22xA%;h)*`n!;Xw{J!6sFkWR_;_L3g?3ALX
z)P5S5AaDYB7n_sMVh!TPR<~Sjm0(Jlf|pW6m%*w-;o0&Whz1vS3x|y2QLTY7a%GWJ
z)9Pq)9$#w4=Dhb)DR+j&R|Dx4SBIlM<D4SSq}*u$u?L~?)yybjO;CRjfW>)6Q35Lt
z3=on?q~s<3K=VgR9}6zw^S57+?<h<!34niUw{pQL5CXhO&I5s4fvXSi#=-#|m}G(Z
zdo9M&puUADl8w}G<hqCwNzomq-t-U#26A(fg|x?R_0Lo|wd!aBw3QUmocNg9L$b9M
zfmVII5Qt%WAiaN_!Y4q{<O=S<Y>H|e>V2zBWItwG(HiGM;`n=R2gef`Y{QF22C&DW
z!eOWoSwnw9R%)|SKpRke7@S*$FjwD#_gD=6;qpC&&J)Yu0E`LQFf#4Y25Q{5Ft<t0
zuD}97U$+F^+1vv;|3p+8IbDI9Q^=X3`Wk>7j!8n!9yNrVi3c+9xqQ<`Rg-VPPdkgH
zHE#`Hn-d_oI`qbX`khpNEb)9gKcVoCy1t~3cWPSlV%C+XSZH>_>Zz~{^W<BSqZMk<
zS!GFB&K6$ktvTRhU<%WDG<~xQi~6s{d03)$d0CWX(kS$$7>mv_E~j0^8QIM12c2Wq
zcEl2|Y4WePyw0qrseamwf-eDY6M&0?w-Y`qU>a%?JVr*q1;W|1aH3Rm9F1ZhqgfYw
zSr-<h5_XBzQ_(UsE4*_V)<To1RZbE<T(vW9#)wZ=vy~{w1Z=*D>?5$ri#mSv`Cc(U
zeS-yh8CYow^w)Q}UW)}^8);@u_nsEs33-P<QII;ZEuEGz23DC0WagtAEu;YuBp;&*
z-N=g)&S_WI*y@8WklN4J<TFsAV?pbAlfQ(}@j6xM5u`>;wq}gZy}4*1q`*Y%UP*8t
z08Z4wcVYDP=^OGpOCPP@+koOAWffiH4MMl5cQD=kiuBoVJ9dT&b$zuNZV$RSg8K?p
zAcyc;POa0tdOoaM;oZ~}w%J?LCANKERRiaoV{T~3C45b({&f*owMcnkn}rZ<Kf0kV
zV=aOer%!>IoeXH=x|vAuv4dD)`tSyX!$#v%%m;1(!(vfW%6Ii?w`s0=-B#jn(7O=+
zJ+kWbF3-04B<FE2`{>S7e8&Bdhotl#3Fy^t_K$<QU`+6hX_&=Om&9h<T&PD<tKTJv
z{x=Y*jy^!|0T&wSlh|#R=E`FD7!+c1BBZ63OHjIjrPMANp~(NSr)*zY63iR#h74(-
z2J|iye+|t^&p-P#kEFLLcaQN2ZmN@KVcg$_L4H{g*uf&aW&plRfeax`)<mi1FwJyQ
zs&_FV^Z}y1Xtag!=_4~a(D$#K^9>qqIsVXLJ1{&JS%GXI$c?QY;IvvDu!YOa@cl>;
z*(YN3>tSx=;kM(xn!_3Vj+LCK_G7{?#KSStq#yI^_>K9mfK)IZ=lFG~9QtfqDQYNJ
z55CRO`z9jQ55DH;{UusD*2|XKEF!WLt_4j&Fz>C)#xFdL?gw}h6g?8s{1m?~o1d^a
z$?y~Cx47s2JIH-j4J~Okubz}s4>RieqCTIL)1pin^0%9a?%pFLpG92+`6}icDH1x*
zwPcMc@xuJV+s(U7^Y3TmTnIYqSGUwwGE4|PK*;2iBKdZ0SN}!nc>WnrHUaJ3uD**`
zl=vmRw^OoWE}~k3oA}B+Tfak&XL;@b2lfolJ>>g&)X;<KJBy&Q5m!vG0LGh$<uXDN
zJdJ5!Xx2Hh5WWd>xYn%Kp;bVtZdXqQuuOkUG#Kd5K&pbK$BU4Sm==wWSK^)KXH7n7
zGcV1%1!`Yvg1(UD!avKqszKM^$O-B`YO-RM=W2$6UT#+KZz9R)Qz{lnir3DaM$~g*
zOe4z}>2G|>WX<X=Fw#)ZbFbz5-zj}|v<?<!AqhKGH;VEiwD5>uh(cNVH=1GUmA^>O
zulD2cb%VvIOTc>Qb!I+J=^teEd5_eO=<yu(p|QibQ`@&cUA<d#a10C~njtl0$&Gwu
zwMkqlx^T=D=qbjFU4zuy?f!G%5a4XO^H;>d?22M`g%zWqZ70l{Fqe$pSP|#22}9N8
z=VGBhVJMQh&xo;+U18JEbIsN9-y*TL!L67E(b~n|$IT+r7_o2>QTl$Y*J#NnTCov@
zE!UB>wIr6OVT<3y&q8sMM^|KK44-_R#Vt=P!h%Sih#7UUMRpapbqS&SKq**<ze$E{
zpKdVL?b+DxDav;<n639mj}NF+hEDZBt_T|sd)N*!dZO6lIO=wO;=xLvo$v^r4?Vg4
zO=8D!k7GMZ&d$$4iK~!(r`x&Hf4&$!UR>*8MUYK<JdPcBoo2v}bj0L!ZVo)^W)q7t
zf<wGUTNzV!Y<$etGWwjVX7);83xfNfW%UmNrd(cv!T3;O@Azn{I@p$E-4IVDs_7H3
zNX>MgNSd6-?vtxvGM$b|%rg{9M>S?zH`^mQ;9cB;;gH(8MC@uMFE2!_uVxn!=zSk2
zlU2qqe8wBfC3!j!=_!_!D!clNhCBn_eR8cuo>2rf#V22FY3uUedoqk-w%=%i6K6Zy
zFGjluOi=od_ptX6iCu$av4=Ig9Z8R~1;!J%;5jPh76F;Z+>Wit;mgfI_KA3F!-lQD
z68j0oB2#PKY;>;2fh|Mk&P^lpafYUltq}90E`-SSSezqX6L+8^K%TZf=Ed<dEnQX!
z&xCA9Y|!zW<u47}1K6Zy3h4PgA8Yopci>$rI^OqB6rCT@{D#`x!eyUV)$DaUKCd$F
zgWpRve2jg@uT|e|c?P%fMyoubIB`1HJok_f>NwKVYrsIt=ou1gb#yp8mwguA86cw_
zXE5$C?URYUc!B;@K)ym-D;=ydM%XprflS``=kO>^8GFdSkF6Uo>j>Nk_Idrr+FH<D
z<Iz0`M7xHybvqgr({HiK!lgU5*mBT(EK4IWQr%Om6kRSF+r9GC@~WElNs8%m5K5y@
zw!kzGOOC71$NKoVz6IkBYti=?#G_HZdgil9;8jsrv;Fnw|M8E1kbR$Z9^Kux2Y{SS
zV3oGSW8hDq%__X+$}>i^m3>Mc$@PzO@%<kA0806JWk>Y+TdHYhdxFha#0_=9rN|`Z
zUSnmqU_`d7ZJo)a^EE2Qa+hyQAw}b&^m<EQFQmZ3To3SPm+ef^1AHu4cd!ZY`vd-G
zfIr!)=5Gh&rwH=$PXU)~mMQ%<qwfbri?MDU*)9#V=zu?vJf&C&uR^%)?s9_=B7%cq
zcP)QlJ6g2({d`wF9}7+_1j>#iEWn3M8N4-{ppe&L;tg&>TZ&wgY-*E~#qg*_D&WNG
zx`y#LOtSE`b#y5!4OXi8faXvu$-&i>Pwo$oE_DMOhu!kjVvlq8@;`$A5kDOiRZ%Um
zsWTDA`g}U%M#Wr&=OJuG*pBc5gcl=RDzRW4zzJ(S<)O&RAoWrRlUba1U<_WyD`QD_
z1LUdYd}C#&+p(>-!HYG$Vse4L8@)BycE>Ax4dAb9@);u%%M%q5UKSkN<P1R=H@48?
z2MIXUaEnz8M)N5H3Zjr?+zf3N8-WX9M8mMd5UPw`<U_17`jEu1ctfNSHiFwgqV$@|
zp5x1{0Ia55y$I#^u{<evl2u}pEfP}QPAE#1g+f>Y{|DF8aOW+rq20DfX1;_!h6slY
zG}w#(TYWNkz)R~Ocr%lu$w?F7bCT<E!f0`_<fSj@B!$Bf&<fD$%l}u0#{XhkzR`w#
z>0DBy>Of5Ek^<kupH$7-kTT><q_`OzY-hobY9<^@OW;vaIB8}o!Vxu7ITj@E5j|B#
zgn`Kh#H=&8D4Gh-s+gxin2D|J{q2rMy<q=z!I4wp7FSrX{+fIPd)R_#7PM)J5o+Wg
z5Kmwh<EN1Yi!(_T3lN2N&6+fq((s=eijB@z%uyaAjL%VV?TJebhWcali+$@B3|SaH
zKT?aa(b&%9p#Zkdh_*V~>W?LnhizR)58<*l?$-g2g~@H~VXIbW8*6h!9q-jcK}1fh
z0^bA3EjqkbM~umZ$fzg7mVa54R`yZ^tiXarND@|!gp|h2pUn`UBS#1EgH8jZw}O;7
zwQwmzWH>;PK%QH`Bwna`I+I{Vo@`MhI8@#Pa@PuTE&;JF10&o4s^d%`DPs>Q3(}$J
ze;~US0_sIX`94z6IIUlXGTt0;6;(y`qq?n%1Q(SIY-IE@RBHY~q=eYKU<BK-J#xdX
z!pkJE&KY2xcm(=*N}i_W`IKU;D{)lmT`5*iOHlg5aiiO%8t^X3w-sD4MtA2*##TwT
zNMj_6zXYcY(uW9Q^=Xku1_6?K$Lga7E1bXh83HNyvDE-7$$cf~M2mkqnevEwgPV=&
zo3(j{F}D>jeF)o>$OD-_l4QOMOVB26Jnb#={qLnk{zq9;2?2B7RxCW|Asyl0J@re{
zzudx_dXkQq0<hU3viId6RVdbV8Ba?-ar9X5t5w0+V))2o9U`nc#@iySI*6w-FIjd3
z%UV0$A=Eb;xqj!NwfK>Y{DF7cB|Z>`8w=O8RP-97*vS&*DJ5b|ETQrpyP?sEeLi%v
z-RhPOm}kRB{i9*nQi|T8WXD$L!_=&R72?_|%QPV4h1aHy%nLSJU^4W98z`=}p>F+?
zcp3tI>elnAjrK24B8Y9ntP+iaua!Maao%9e=yQHAgvo_Dh~5};{k9UUy6j^riiHQx
zK`c<jClL3_Ai)N9)7!VCpY>etrtG<j`SPi>(9$edOr?TYu9?-V%CH)dSGA@iCh~|C
z5sHvkaiVgz_%D?dYz{d(rKk$~=+bC$;uMZw^>oVa{1gg=zeox;VOh`zfCFE_2!l8}
z+NQzam3>`Gm92PIgT0y_fL-we*uO~2Uv)hd`DyqZ4u`*r!=GHPb*+wvD($fSS*ac`
z>M51DIt7iYuhturgwrPy_l5*+1!;IIy64K3qF-UMd@o@_pGwtVy$!8V>(G7<4Ydu?
zr=9p|s3zTBJrY_|2))zycR<YQLQ*_a8{cbcQtMCb=N_DuZ)g_FF*ul$%?X6ac86D0
zdj*Y|ztmn!@w!`kh00<6RC@)^%^zv6_TKwDy8M_&Yd&QAE3(0TYRG1u{VjOFLO#Ot
zgPgWq@RB?uf&@H=yvm=mTHy@aDU33|$b(n5!!r;*i$xujAMU{?Onf>tUx;Ly59i=X
z4sR>)l;pv1c9~|Y<}NQ-EsdWEi%S0^K=SY464biVZJQ~CKL&(g1vEd-9!65K{FV^h
zz6T?LcGS^(cm;D^3n3^{q;O5Mm2+(iF)qYF<(g)bxW0uLQpy&m6)x10*0@5SKvSg2
za?Z>jo6&tp`9D0P$FDf~jJ^f&n5_Tbn9*lpUO(B4{{QBD4!7vce4bK;XK_{df0F_{
zk1QY9pMw&$?7+#_5?o&Y-@2ZNuYvre{Yq_pC&^C9xx|9wbJ#oOYpCZSY@s0?N#v)p
z)ND@cFaPT+z&EbeR)C^&&+@0@HK<jyZ;-5Pm_{;_%S!V~{>}wuBz~|PGM`-iAo#^(
zE152}agt;|3AUv+dniJ(t6EzU!tn&c>mCR=Y=}@Yq};=G=ok{_A^~#F4}pgS2)l&~
z5VKeaC9%~Q|1}zfEkBnb+g``*Sz@u5VLkT<cL#zMcU2=e5r#@DRHgm^ZQxcr1S}LF
zuSMuaI0UfE*v2<-ij^rzM8e9|{{zax{Teg+lvFd#*58dTAVbmRIPVFq86C!u(0)xJ
z?1VmfB8*+*i-gb(s2TDZQ`?igHOg2t1e%Rhlf-nJQ>EBo@4X97v}0|F^L2Ygw0js+
z9j&l$?keolI-Z%%7hx=`a(<>1g?WQ<$P`9J{}K=D6y<@i&cKV*B6f6p<XPWwGtB_D
z-)(G!&ng^L+uc}xd?*?_U_t9RK^8R8aah=R0Egr~*mNCh!``Iu8XR1A6}tOGm}v}5
zkBx3;s}S~+;>B7$!fSL?OYGBF$%@X8FF<S+`wZPLhKGUA%|7+W@ITtok%UjB1>j-C
zZ1)&Djax(<;f2nR7iYUq>EBOMeEo7@mmFBj2EzUoJwA->aXWT+7<~14B%Na}gaT+W
z;-^1MsI!U)rZXx$u#!}X-dbO3KM8x6n*b$+<M>=OG0Xp`7k$iwO^%3z)I2wX<2;^3
zB+WXJC`IHiJ(Dnv=V*FrZoqW77i3WlvKXWkZKecABk;}11C~n+{%jZ>xbLvG!KC}o
z)c_2UF$g`Du}U1EJd!MdS{8s>s*98f+^mtZS{#t%nON0hx_8Snk(dMJ9otyg<jCYe
zDzuDw7G#jqJqgkFzf?2d2Bvz0cN2TsWLfm&NVGjT--iBU>nWwLxfwP+TRpi&7j|^{
zz-ZW*>LfCO%d?w(2~(dN;jRJ3R?rkk&XYUzB6u#tDVxlx80{{%16IwrhxU;>#oXB!
z7?4b!(N5a;1~tKQ7j?G!mqfc^uKfy@(|pmfjr%Y)o20YdXihG~f*XD_PRIyqLLr==
zi^_%YwHQg_mvRuq=zRRl%waRJFGxtyUnDoHE<(g;r`tAL2tTM13YR%4^KBDV`GflO
z%0O~dnMDYHgQAItdacju_qGr=K`&%pfO(EchF1MB0IWKTD{LakmHAM!h+gL5f$R_1
zXu&Tb@3Rz^>sRyWkd2m52=X-sQhBsouj;8UYpHx?f>ez}BcQEpx|%D2pym^`bJ*E5
z)k)W3P_48Q18GUjZ?nh?Ks_fiOFzlj>BB|_Wm`$v<{>#LJ??|iAG<Lr;sU5A_10>6
z>!@wWQ!ForBMy2>mN_rHT5ynlvRuO1Z#D8vmdEmU-WNE3<!b#P+Fjt5Pbbn_EEj`Z
zITo?U_5e^PAxs#9O%ui<ydW2tLyMH_xb26;W;%xKGsuJ8^i&?QHz5X-NGgU5Nr(aO
zrDCW`#FS@Z$ex6l*_jv`XT(@DG1M@`jLpQ5$p$eqD-_d(z??GL;8iMd`hcb?!~=_i
zfNx`j0@c3US2^)Oc9;?u)i(IBT@0#sfgRS-_7Uvsd5$)=)f?Po@?q&)?Q>pln@hq_
zswKh<-GbU6Z%s@Eo5AgbpOyeevbK&cE;GmHmJG+qFf1D2Cfe%Q%(}D$aOX?tf3#Z|
zpF4KAum%lq#K0>h;BCR!If4vY*c^dZHX>~(8$|)1t&~z*MPnmk%Tbx&F}AqToY{I2
z%n&HzW-TbuD8lqo(-CaSL81E32_mGq8{0%kW(Ub_m70r09-YGuXic+>&mBD+FlTy<
zTLFH&Qgj+ehNBskj;-HKhBVYubcLHL)dHpo)E%qv5@uTfbQ@dIGm$kyE>+buVQMR`
zoxu7}fXNp3D{O3WJK7+BL^O(uv#lZ~5-yAyX?9x#ZpTOv^7&}Q??nXH7fHM<hOC)K
z)6o2UR!k8K-1O8qhRuTr3fbyF><qksS7JA|0I#odDn|Z!@{D3<qwrugxv$l4YC(n`
z8+AW6Kh^KGW3=7!9pK#uYzy#CvS%^HfnV$J^x%Zes!z<sGmtzX+Y12Ag^wm{5JHg<
zCQ-_fmOEV(osm1lVhE<>4i{E(eM;^S3t(dNume3rk0!1fq#CVK2|mrd7IG0tiH%m;
zBc=Keph8F>H%Xrgn%E#Z>?g@bO^{vKU|q_6CWa~%G|~MK-mXl(a&T3#QjvSoe4WVW
zmgk~UlU6A<5`NG)t)tK>A<LAC9<mV~&_w9V07UY$n)d(#vIiWRnlplJCMIA)%d;rs
z16l~%KFCjwW|%7Bkws$CE0<t%tO)z&(?}(JM4KdxjU*!p=QPw26m`pk2s#msn~O>s
zcXCIVjDz7sZ$uYqIeC31MwgRNnp1gnIf>~a6{E|^1(_IKPWm%3R=@|67iVI)oDA8x
z^(_rb7nO4}*>q94G!w%`r8e(DTK2&{4`H$heh}l~u=R+o4xOaVuEY}=3`ixpsqvJQ
ztI<9wErr~z3hN<K5UO$Pl^t@+^KJ7wy19Bn>WYMLVMXp}fwIhmEK^Bf_#Gdz9TmAl
zg^q4F;)gmqutQBnuZQ@69PuEZ82w%ljX00rO`4DK1IW_(ZsQKfA+q^zoHpHnNJav2
z0f{tn<SIr{s?^wu%!}RFRG`S7g{VQLP@GtIW$w}fLq|7nA+#Sj?7KnnL#d(V9o-Xh
zO}Lxp4US&XLHSV&S_6P2*&tm>jG-xLF|-vfeY>fw9r8XEmjixvvqKZm{|=sLq2`H>
z57EA*Zex3vP=y*sQgkkM&<Dsb@M+#-jCqXT6HF-akga<vmH9(JZ1Zg{vHnXEp%a9S
zV{gY{SKw-Z$G92jU22=_HmV->Wo7R51w5}LcHl7VUgR229R_>>F?_w{Hfq|X+p)i@
zW)B^ehO{;T;5G>BJ+zlk+cR1t-Hz`?=Lf<@?AYvw_85aC4Vj5S&=rXOVsRr)oT4Mf
z&(ARc*3N!F(Zh`qt<u>VT>(|5i-{B)KwMs9#OHj#wi>T=qmoq!zk+2Xr4pZEDjFKp
z7}$s>2~{jWxX6#--OUOqr;1l5ago0ZuP9Wk2TANmvL><JY%b42QU*6`6zh`&2^2m_
zXmW$=ubP~6BO1`3MFzMu3J?CC7SZ*aXeQ_}X=v+j8Y3%p+y{+0)l(14_W=ZP5%n5d
zf~j7|GQCDQA^aw0q_`Q1bxQy5wLU7>_92Kj37WPUp^WW=od^=)<P1`Q{dXx3GX!oJ
z!lXJm3VfE}zYU8V8yx`sf(ouD<Gvgu+|y-h7oa!Jqa^hREX)JKWhWdbun)$%AZ2Yr
z$b}3d+o$gB;yzbU_Fm;#%eKgTXF+%==I9orHtBI~r$JIol_|-g?JhXF1S!h+MgtBH
z)1vMc^fSCqSXF~(*%54uKz?|_`<BneCP}*gO3_6k_8@3|r}V!ZNY%I3)OOg&-Olfq
z<8XJg(fGA{%);WOQN54hp#TYv2M3ZG8tk<rAv*VoY_CU{{3U7<f3${H)ZlS`we(|D
zBRt5Dny0H09=IG;Bp!s@?@@@mEX?`s>aP#NmF-PT2ejz0;bDlkK!H&&J)DY<uch#(
zUsD*E&E#8+_-z0EUgJLxJ5Wl|AY4sCHvHu?3<g)-2`oU&ri;lPxTg3tIx=phD)F?_
zGl-1?oFR%;l=4t4mz{w8`i6EHi5l)9Wo7Mj?axft^WA?1?zoYZl0`VQi=uH=JvHBe
zop&$W1e3N^Vz-pyX(z{7*uTR2{FrUy>eN@j7QxM>Qt)eIAnulHiYt`S*CVqXRhLuM
zc)Ikb#GiT#`tTND2Za8x*M}CoL{UorMQ8=z-=YexqgE*W?F1V2gA*o6biWLN0&JIs
zKZB8CywenqjVQF_Q*1I=MU-TdT<Z*V;CbPtubTOO6$)|sr@YO4>k7HxLLr-vy2$AM
z^y37CRm?=pKE&V^^Rjslf938I2z{X?%*E?x+AHRF^C#NtV)eySaJF9Gx0Ik~u$Y=N
zF%JfSTZ(<kOVl1Z!H9b353kQ^Z}dtMiT;3L+<!>A#aazTgrm*E{Yy-UQvA0Xr09Qg
z$)QU`U6Qfc>-?UN)GGu4+YYPw1N6dy3!(kcN3-l@II7~7^!o{8l^ls2Pg1P15G4)j
zo+0^gqI;IN75*K33zi?FiTdEVp;mZt*&VrO1e@Vozt0$Wk^A7jLOoGeq3k+?6>rbr
zjr+SWIE}2eAW9!OY;;P>%an(<fXgD@*n|TpiaX|dZU)DKYbhFkz)gg|@Yfdo)mKwf
zTowL82<<@sGN|%8HwpLO4D3x(#$FGr9x!!GJ(U_`gzWvAmdK1l#)F`OswK9bfC`~P
zf&}`$L5g{JEqLk(vQph14MAIqsA~<p3(UiN>0@6@Y<i(ruHwCtn8hn!2Ak4K+VQ5_
z^Bm1)%8$)U7CkKe6`6s+&Bfl}USr?^i9H`dedL#11=zlt3ea@06;bqu*G}z?UU%uQ
zRiuILHzIj0<P!Z|>cwnze?9szQ5hYkY(ykOsj)Tp6oa!$$^Dmu<^F3R&gTi5dhG-d
zXc(J=&r?09L&bys@XCiqd+p+Jgr{JSY9(h(xc@$iQbxbYi=o=T4kjFph2Y@OP$5;0
zD%TSj_3O$!Sge<szaB@~phh5ps-g`_h|p>RLmuJQW-|U!&i9d%V&JE5H{Y)ZT<W+T
z<l`RH%-U%a6P?F8?<a}eOzp#BlY6<4*ATfZrAc~Y+zxF-TYrKcM*lQDtQ$nIKnQ$@
z@djX?%<#S$AIcZAA?g&i2;%QUp-Au7;(XRb&6uyJABn#JogkCGFa9ywk`DJAp46C>
zCF3vB1anDWG)0z)bR<wZ-;?ehNI2$RY3j1w7-~gcjdb-+dY32Zd)4n#E*Zj`+*F+3
z`>TnogRxTe`4=(m?Nh(#L!AWk98;e|*2HGDU5iO<QCqY(qF;s5{;00e)9zPa(BB><
zj~J~%H&Iofk+$>E0343r0{nTM-}sB@K2|MDC9-&fn~D=(sd6#pj;c@dTwnVKd*uOI
zrr|tOb8$jdYk8(-^(mrunfDKQgisauLOoWPZ-`gm4eeK#YB|;thA0Q!R-|sD9OHP7
zsCqFf@;SfspMvAWXhW&`+zW&O6plv;$K5n90n&LK67Q4{rYi>dJ%bs4LRin(HrOcP
z^MLcz;r8WcB<{rgmHQN7U&1LbXNAS@5#b*wI^Vzd3U~}+wsT=KL7M?}w*_3VMvkdY
zV_@^^hC&S6*`EPxJ%9uXUN^Wn@2CTi2wR5^bm{Z84LJ3W>cU%=U0k*^QBd0ebByK*
zxy%9A8Tj8q!^(D*d;p!L!vo}hNq&-=Q(K;-%m78;)HNnY1crRM6WRFDI#_Q=UZ7U)
z9~4{BfDrv*Bk&INw+1Sz=7B+8LfkzF$Eh^;Nw^2WK9QQyf6ODY^Q7)UH>Rdpau0fH
zd=K}avYl`ca%lYfBmP0tp3m|Rk}IupwOw`%WtIJL>TO10R_9X=L+4|J6RR5t39UH9
zh(q0=O8BqzE5i-2c_1KlILQIU>@No~Z2+ZkFJ8qx=meVr|1Htg>ux(H+O$hyAh988
z_1j&U2o^NwIRPpr(vlvuCYERJzk_>Ayi26xJDR+Z=%8dw97-4u<TN$-Y5-O?!m$|V
z<xzG@As4*yrMyh~e5E|g2D$_=BOIdXe!tVz%aH>kA2<W&1SDnLLUe;JujtZop`TB|
z@i)4#I!|JAEU`*nt$&BFrV`+y=}KpyQnfF^%M{novvGeA+`WaK(fxgM>Ha>ttuJJ&
zLl5|^TSP#3dBnC_dwDW-Ti-Lbh!*pLjU*iMylUH}y}ZFqT>P#i?hZ!oCh+_4mgAzf
zWd++VB9?uZZlyX5tYRb~Q0<5K{Z>ySjqa$T>#7Pz{1G8~Ipaxs!F^auwFq2!g*>fv
z`PKU<x*PxZ;5wks>DIfC7F|f!bCTcW7j$XRE~;lQpfv8uqf#FrBQBhqO@*lN=eYdp
zOWYsyJ|*tr3Ai5XGXnMgqGD<}0eBy`uxbY*=Cq<vBbMmF?%_iCcCGQPu}V9-PR=xR
zvEQ^d0>*C_+_C6vYEA@z+Ouy7h0|qY3+^$R26xfS9jW9L3K)nRSXmBl^vV+TiSy`c
zI@}5<0RfdblreCr%>}QTuDfuj9p$7OTyZ_03p^jIETvY^{>xa<G5NOKeIZm}tV&?6
zrX)ncYC$*c;W{c@A12H?XD)K^3dl8QzRg}MTyf4cEe`u+@@-bafh5mx(RlLP=!STB
z^2p5$Mx+=(7K}v%*{+6;2SnKK;k=4??J}|8t`opq1S7yv*R1{>J))Bag1wV2iBsFU
zU`h?|Lxz!EG}<GMT)>BYChR{5&$=E?LwLY!C4|Uirg-Q|Hv1kNxT?rW{DO{xHRT`&
z^4n_}OqR}%g-`;WrCfBkV8M$75Z5ApK*Q2V0|YFOYFV_2!ZB*eQG%g<d@ea+fv|wM
zo2ZO1>qEj-4A5sE0(x-fP+d!zP$WXRuF@el@oegolm?ieAPspDIlGgWr2^ntBmf+)
zr<~P94F*-%X&joVahoWHUys<RP6HeYqDM%YL+P_OQBgwU%n06qTfM8{A)rCjhiiM}
z%97m5QXn7uBdik2*{FiX(R_4~DBQ>Id_AT)Xhw`3yFq#H^_gME`hLu^V&vy^R4zPV
zfw+`{%OJ^gk#ZUrDe?eZG)$7r1YuiQsJ=FqC=)bE7bDK4ixD9@>?zS<e}J2o5R(!e
zxNhxbj0$2>qQjmN9rl#yz_o1$kOvkXl1bc)1<i9VgOBK)P`u(

(Patch may be truncated, please check the link at the top of this post.)