From 0652569e481a8cf0995a00635ef62143fa779add Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rog=C3=A9rio=20Brito?= <rbrito@ime.usp.br> Date: Wed, 22 Jul 2015 00:58:04 -0300 Subject: [PATCH] Imported Upstream version 2015.07.21 --- README.md | 38 +- README.txt | 48 +- docs/supportedsites.md | 78 +++- test/test_compat.py | 25 ++ youtube-dl | Bin 901174 -> 954068 bytes youtube-dl.1 | 62 ++- youtube-dl.bash-completion | 2 +- youtube-dl.fish | 16 +- youtube-dl.zsh | 2 +- youtube_dl/YoutubeDL.py | 35 +- youtube_dl/__init__.py | 7 +- youtube_dl/compat.py | 103 +++-- youtube_dl/downloader/__init__.py | 2 + youtube_dl/downloader/dash.py | 66 +++ youtube_dl/downloader/external.py | 11 +- youtube_dl/extractor/__init__.py | 73 +++- youtube_dl/extractor/adobetv.py | 60 +++ youtube_dl/extractor/appleconnect.py | 50 +++ youtube_dl/extractor/ard.py | 203 +++++++-- youtube_dl/extractor/baidu.py | 1 + youtube_dl/extractor/bbccouk.py | 33 +- youtube_dl/extractor/bet.py | 4 +- youtube_dl/extractor/bilibili.py | 13 +- youtube_dl/extractor/bliptv.py | 66 +-- youtube_dl/extractor/brightcove.py | 34 +- youtube_dl/extractor/cbs.py | 23 +- youtube_dl/extractor/ceskatelevize.py | 3 +- youtube_dl/extractor/clipsyndicate.py | 14 +- youtube_dl/extractor/cnet.py | 19 +- youtube_dl/extractor/common.py | 66 ++- youtube_dl/extractor/crunchyroll.py | 34 +- youtube_dl/extractor/ctsnews.py | 1 + youtube_dl/extractor/dailymotion.py | 52 +++ youtube_dl/extractor/dfb.py | 27 +- youtube_dl/extractor/discovery.py | 52 ++- youtube_dl/extractor/douyutv.py | 1 + youtube_dl/extractor/dramafever.py | 216 +++++++++ youtube_dl/extractor/drbonanza.py | 12 +- youtube_dl/extractor/drtuber.py | 21 +- youtube_dl/extractor/ehow.py | 6 +- youtube_dl/extractor/empflix.py | 31 -- youtube_dl/extractor/facebook.py | 4 +- youtube_dl/extractor/faz.py | 21 +- youtube_dl/extractor/fivetv.py | 88 ++++ youtube_dl/extractor/francetv.py | 91 +++- youtube_dl/extractor/gamespot.py | 4 +- youtube_dl/extractor/generic.py | 220 +++++++++- youtube_dl/extractor/gfycat.py | 28 +- youtube_dl/extractor/gorillavid.py | 7 +- youtube_dl/extractor/hentaistigma.py | 11 +- youtube_dl/extractor/hostingbulk.py | 6 +- youtube_dl/extractor/howcast.py | 35 +- youtube_dl/extractor/howstuffworks.py | 6 +- youtube_dl/extractor/imdb.py | 2 +- youtube_dl/extractor/ina.py | 2 +- youtube_dl/extractor/infoq.py | 18 +- youtube_dl/extractor/instagram.py | 11 +- youtube_dl/extractor/iqiyi.py | 273 ++++++++++++ youtube_dl/extractor/izlesene.py | 18 +- youtube_dl/extractor/jeuxvideo.py | 9 +- youtube_dl/extractor/karaoketv.py | 4 +- youtube_dl/extractor/kickstarter.py | 15 +- youtube_dl/extractor/kuwo.py | 314 ++++++++++++++ youtube_dl/extractor/letv.py | 1 + youtube_dl/extractor/lifenews.py | 15 +- youtube_dl/extractor/liveleak.py | 16 +- youtube_dl/extractor/lynda.py | 8 +- youtube_dl/extractor/malemotion.py | 6 +- youtube_dl/extractor/metacafe.py | 3 +- youtube_dl/extractor/mitele.py | 3 +- youtube_dl/extractor/mixcloud.py | 6 +- youtube_dl/extractor/mofosex.py | 4 +- youtube_dl/extractor/myspass.py | 3 +- youtube_dl/extractor/myvi.py | 60 +++ youtube_dl/extractor/myvideo.py | 11 +- youtube_dl/extractor/nationalgeographic.py | 7 +- youtube_dl/extractor/neteasemusic.py | 459 ++++++++++++++++++++ youtube_dl/extractor/newstube.py | 2 +- youtube_dl/extractor/nextmedia.py | 3 + youtube_dl/extractor/nfl.py | 6 +- youtube_dl/extractor/niconico.py | 3 +- youtube_dl/extractor/noco.py | 6 +- youtube_dl/extractor/nowtv.py | 2 +- youtube_dl/extractor/npo.py | 162 ++++++- youtube_dl/extractor/nrk.py | 24 +- youtube_dl/extractor/odnoklassniki.py | 4 +- youtube_dl/extractor/onionstudios.py | 76 ++++ youtube_dl/extractor/openfilm.py | 4 +- youtube_dl/extractor/pbs.py | 43 +- youtube_dl/extractor/photobucket.py | 4 +- youtube_dl/extractor/pinkbike.py | 96 ++++ youtube_dl/extractor/planetaplay.py | 3 +- youtube_dl/extractor/played.py | 4 +- youtube_dl/extractor/playvid.py | 7 +- youtube_dl/extractor/pornhub.py | 28 +- youtube_dl/extractor/pornovoisines.py | 4 +- youtube_dl/extractor/primesharetv.py | 9 +- youtube_dl/extractor/promptfile.py | 5 +- youtube_dl/extractor/prosiebensat1.py | 30 +- youtube_dl/extractor/qqmusic.py | 127 +++++- youtube_dl/extractor/quickvid.py | 1 + youtube_dl/extractor/rds.py | 73 ++++ youtube_dl/extractor/rtbf.py | 20 +- youtube_dl/extractor/rtlnl.py | 49 ++- youtube_dl/extractor/ruutu.py | 119 +++++ youtube_dl/extractor/safari.py | 8 +- youtube_dl/extractor/sbs.py | 40 +- youtube_dl/extractor/shared.py | 4 +- youtube_dl/extractor/smotri.py | 55 ++- youtube_dl/extractor/snagfilms.py | 171 ++++++++ youtube_dl/extractor/sohu.py | 54 ++- youtube_dl/extractor/soundcloud.py | 5 +- youtube_dl/extractor/spankwire.py | 12 +- youtube_dl/extractor/spiegeltv.py | 47 +- youtube_dl/extractor/sunporno.py | 2 +- youtube_dl/extractor/tagesschau.py | 10 +- youtube_dl/extractor/teamcoco.py | 29 +- youtube_dl/extractor/theplatform.py | 23 +- youtube_dl/extractor/thesixtyone.py | 18 +- youtube_dl/extractor/thisamericanlife.py | 40 ++ youtube_dl/extractor/tlc.py | 15 +- youtube_dl/extractor/tnaflix.py | 279 +++++++++--- youtube_dl/extractor/tube8.py | 2 +- youtube_dl/extractor/tumblr.py | 27 +- youtube_dl/extractor/turbo.py | 4 +- youtube_dl/extractor/tvc.py | 109 +++++ youtube_dl/extractor/tvplay.py | 17 + youtube_dl/extractor/twitch.py | 69 +-- youtube_dl/extractor/twitter.py | 72 +++ youtube_dl/extractor/udemy.py | 35 +- youtube_dl/extractor/udn.py | 1 + youtube_dl/extractor/vbox7.py | 21 +- youtube_dl/extractor/veehd.py | 3 +- youtube_dl/extractor/vice.py | 37 +- youtube_dl/extractor/videomega.py | 28 +- youtube_dl/extractor/viki.py | 42 +- youtube_dl/extractor/vimeo.py | 22 +- youtube_dl/extractor/vimple.py | 46 +- youtube_dl/extractor/vk.py | 166 +++++-- youtube_dl/extractor/vodlocker.py | 9 +- youtube_dl/extractor/vube.py | 1 + youtube_dl/extractor/webofstories.py | 41 ++ youtube_dl/extractor/xbef.py | 6 +- youtube_dl/extractor/xhamster.py | 34 +- youtube_dl/extractor/xnxx.py | 6 +- youtube_dl/extractor/xtube.py | 6 +- youtube_dl/extractor/xuite.py | 1 + youtube_dl/extractor/xvideos.py | 31 +- youtube_dl/extractor/yam.py | 1 + youtube_dl/extractor/yinyuetai.py | 56 +++ youtube_dl/extractor/ynet.py | 4 +- youtube_dl/extractor/youku.py | 307 ++++++++----- youtube_dl/extractor/youtube.py | 241 +++++++---- youtube_dl/options.py | 21 +- youtube_dl/postprocessor/common.py | 10 + youtube_dl/postprocessor/embedthumbnail.py | 5 + youtube_dl/postprocessor/ffmpeg.py | 209 +-------- youtube_dl/update.py | 2 +- youtube_dl/utils.py | 481 ++++++++++++++++++++- youtube_dl/version.py | 2 +- 160 files changed, 6001 insertions(+), 1299 deletions(-) create mode 100644 youtube_dl/downloader/dash.py create mode 100644 youtube_dl/extractor/appleconnect.py create mode 100644 youtube_dl/extractor/dramafever.py delete mode 100644 youtube_dl/extractor/empflix.py create mode 100644 youtube_dl/extractor/fivetv.py create mode 100644 youtube_dl/extractor/iqiyi.py create mode 100644 youtube_dl/extractor/kuwo.py create mode 100644 youtube_dl/extractor/myvi.py create mode 100644 youtube_dl/extractor/neteasemusic.py create mode 100644 youtube_dl/extractor/onionstudios.py create mode 100644 youtube_dl/extractor/pinkbike.py create mode 100644 youtube_dl/extractor/rds.py create mode 100644 youtube_dl/extractor/ruutu.py create mode 100644 youtube_dl/extractor/snagfilms.py create mode 100644 youtube_dl/extractor/thisamericanlife.py create mode 100644 youtube_dl/extractor/tvc.py create mode 100644 youtube_dl/extractor/twitter.py create mode 100644 youtube_dl/extractor/yinyuetai.py diff --git a/README.md b/README.md index f3d83c8..ac54d7b 100644 --- a/README.md +++ b/README.md @@ -52,8 +52,9 @@ which means you can modify it, redistribute it or use it however you like. -i, --ignore-errors Continue on download errors, for example to skip unavailable videos in a playlist --abort-on-error Abort downloading of further videos (in the playlist or the command line) if an error occurs --dump-user-agent Display the current browser identification - --list-extractors List all supported extractors and the URLs they would handle + --list-extractors List all supported extractors --extractor-descriptions Output descriptions of all supported extractors + --force-generic-extractor Force extraction to use the generic extractor --default-search PREFIX Use this prefix for unqualified URLs. For example "gvsearch2:" downloads two videos from google videos for youtube-dl "large apple". Use the value "auto" to let youtube-dl guess ("auto_warning" to emit a warning when guessing). "error" just throws an error. The default value "fixup_error" repairs broken URLs, but emits an error if this is not possible instead of searching. @@ -74,7 +75,7 @@ which means you can modify it, redistribute it or use it however you like. ## Video Selection: --playlist-start NUMBER Playlist video to start at (default is 1) --playlist-end NUMBER Playlist video to end at (default is last) - --playlist-items ITEM_SPEC Playlist video items to download. Specify indices of the videos in the playlist seperated by commas like: "--playlist-items 1,2,5,8" + --playlist-items ITEM_SPEC Playlist video items to download. Specify indices of the videos in the playlist separated by commas like: "--playlist-items 1,2,5,8" if you want to download videos indexed 1, 2, 5, 8 in the playlist. You can specify range: "--playlist-items 1-3,7,10-13", it will download the videos at index 1, 2, 3, 7, 10, 11, 12 and 13. --match-title REGEX Download only matching titles (regex or caseless sub-string) @@ -107,7 +108,7 @@ which means you can modify it, redistribute it or use it however you like. --playlist-reverse Download playlist videos in reverse order --xattr-set-filesize Set file xattribute ytdl.filesize with expected filesize (experimental) --hls-prefer-native Use the native HLS downloader instead of ffmpeg (experimental) - --external-downloader COMMAND Use the specified external downloader. Currently supports aria2c,curl,wget + --external-downloader COMMAND Use the specified external downloader. Currently supports aria2c,curl,httpie,wget --external-downloader-args ARGS Give these arguments to the external downloader ## Filesystem Options: @@ -189,8 +190,8 @@ which means you can modify it, redistribute it or use it however you like. --all-formats Download all available video formats --prefer-free-formats Prefer free video formats unless a specific one is requested -F, --list-formats List all available formats - --youtube-skip-dash-manifest Do not download the DASH manifest on YouTube videos - --merge-output-format FORMAT If a merge is required (e.g. bestvideo+bestaudio), output to given container format. One of mkv, mp4, ogg, webm, flv.Ignored if no + --youtube-skip-dash-manifest Do not download the DASH manifests and related data on YouTube videos + --merge-output-format FORMAT If a merge is required (e.g. bestvideo+bestaudio), output to given container format. One of mkv, mp4, ogg, webm, flv. Ignored if no merge is required ## Subtitle Options: @@ -213,7 +214,8 @@ which means you can modify it, redistribute it or use it however you like. --audio-format FORMAT Specify audio format: "best", "aac", "vorbis", "mp3", "m4a", "opus", or "wav"; "best" by default --audio-quality QUALITY Specify ffmpeg/avconv audio quality, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K (default 5) - --recode-video FORMAT Encode the video to another format if necessary (currently supported: mp4|flv|ogg|webm|mkv) + --recode-video FORMAT Encode the video to another format if necessary (currently supported: mp4|flv|ogg|webm|mkv|avi) + --postprocessor-args ARGS Give these arguments to the postprocessor -k, --keep-video Keep the video file on disk after the post-processing; the video is erased by default --no-post-overwrites Do not overwrite post-processed files; the post-processed files are overwritten by default --embed-subs Embed subtitles in the video (only for mkv and mp4 videos) @@ -223,7 +225,7 @@ which means you can modify it, redistribute it or use it however you like. parameters replace existing values. Additional templates: %(album)s, %(artist)s. Example: --metadata-from-title "%(artist)s - %(title)s" matches a title like "Coldplay - Paradise" --xattrs Write metadata to the video file's xattrs (using dublin core and xdg standards) - --fixup POLICY Automatically correct known faults of the file. One of never (do nothing), warn (only emit a warning), detect_or_warn(the default; + --fixup POLICY Automatically correct known faults of the file. One of never (do nothing), warn (only emit a warning), detect_or_warn (the default; fix file if we can, warn otherwise) --prefer-avconv Prefer avconv over ffmpeg for running the postprocessors (default) --prefer-ffmpeg Prefer ffmpeg over avconv for running the postprocessors @@ -236,6 +238,26 @@ which means you can modify it, redistribute it or use it however you like. You can configure youtube-dl by placing default arguments (such as `--extract-audio --no-mtime` to always extract the audio and not copy the mtime) into `/etc/youtube-dl.conf` and/or `~/.config/youtube-dl/config`. On Windows, the configuration file locations are `%APPDATA%\youtube-dl\config.txt` and `C:\Users\<user name>\youtube-dl.conf`. +### Authentication with `.netrc` file ### + +You may also want to configure automatic credentials storage for extractors that support authentication (by providing login and password with `--username` and `--password`) in order not to pass credentials as command line arguments on every youtube-dl execution and prevent tracking plain text passwords in shell command history. You can achieve this using [`.netrc` file](http://stackoverflow.com/tags/.netrc/info) on per extractor basis. For that you will need to create `.netrc` file in your `$HOME` and restrict permissions to read/write by you only: +``` +touch $HOME/.netrc +chmod a-rwx,u+rw $HOME/.netrc +``` +After that you can add credentials for extractor in the following format, where *extractor* is the name of extractor in lowercase: +``` +machine <extractor> login <login> password <password> +``` +For example: +``` +machine youtube login myaccount@gmail.com password my_youtube_password +machine twitch login my_twitch_account_name password my_twitch_password +``` +To activate authentication with `.netrc` file you should pass `--netrc` to youtube-dl or to place it in [configuration file](#configuration). + +On Windows you may also need to setup `%HOME%` environment variable manually. + # OUTPUT TEMPLATE The `-o` option allows users to indicate a template for the output file names. The basic usage is not to set any template arguments when downloading a single file, like in `youtube-dl -o funny_video.flv "http://some/video"`. However, it may contain special sequences that will be replaced when downloading each video. The special sequences have the format `%(NAME)s`. To clarify, that is a percent symbol followed by a name in parenthesis, followed by a lowercase S. Allowed names are: @@ -379,7 +401,7 @@ In February 2015, the new YouTube player contained a character sequence in a str ### HTTP Error 429: Too Many Requests or 402: Payment Required -These two error codes indicate that the service is blocking your IP address because of overuse. Contact the service and ask them to unblock your IP address, or - if you have acquired a whitelisted IP address already - use the [`--proxy` or `--network-address` options](#network-options) to select another IP address. +These two error codes indicate that the service is blocking your IP address because of overuse. Contact the service and ask them to unblock your IP address, or - if you have acquired a whitelisted IP address already - use the [`--proxy` or `--source-address` options](#network-options) to select another IP address. ### SyntaxError: Non-ASCII character ### diff --git a/README.txt b/README.txt index bc4f294..e40f1d4 100644 --- a/README.txt +++ b/README.txt @@ -68,8 +68,9 @@ OPTIONS -i, --ignore-errors Continue on download errors, for example to skip unavailable videos in a playlist --abort-on-error Abort downloading of further videos (in the playlist or the command line) if an error occurs --dump-user-agent Display the current browser identification - --list-extractors List all supported extractors and the URLs they would handle + --list-extractors List all supported extractors --extractor-descriptions Output descriptions of all supported extractors + --force-generic-extractor Force extraction to use the generic extractor --default-search PREFIX Use this prefix for unqualified URLs. For example "gvsearch2:" downloads two videos from google videos for youtube-dl "large apple". Use the value "auto" to let youtube-dl guess ("auto_warning" to emit a warning when guessing). "error" just throws an error. The default value "fixup_error" repairs broken URLs, but emits an error if this is not possible instead of searching. @@ -94,7 +95,7 @@ Video Selection: --playlist-start NUMBER Playlist video to start at (default is 1) --playlist-end NUMBER Playlist video to end at (default is last) - --playlist-items ITEM_SPEC Playlist video items to download. Specify indices of the videos in the playlist seperated by commas like: "--playlist-items 1,2,5,8" + --playlist-items ITEM_SPEC Playlist video items to download. Specify indices of the videos in the playlist separated by commas like: "--playlist-items 1,2,5,8" if you want to download videos indexed 1, 2, 5, 8 in the playlist. You can specify range: "--playlist-items 1-3,7,10-13", it will download the videos at index 1, 2, 3, 7, 10, 11, 12 and 13. --match-title REGEX Download only matching titles (regex or caseless sub-string) @@ -129,7 +130,7 @@ Download Options: --playlist-reverse Download playlist videos in reverse order --xattr-set-filesize Set file xattribute ytdl.filesize with expected filesize (experimental) --hls-prefer-native Use the native HLS downloader instead of ffmpeg (experimental) - --external-downloader COMMAND Use the specified external downloader. Currently supports aria2c,curl,wget + --external-downloader COMMAND Use the specified external downloader. Currently supports aria2c,curl,httpie,wget --external-downloader-args ARGS Give these arguments to the external downloader @@ -221,8 +222,8 @@ Video Format Options: --all-formats Download all available video formats --prefer-free-formats Prefer free video formats unless a specific one is requested -F, --list-formats List all available formats - --youtube-skip-dash-manifest Do not download the DASH manifest on YouTube videos - --merge-output-format FORMAT If a merge is required (e.g. bestvideo+bestaudio), output to given container format. One of mkv, mp4, ogg, webm, flv.Ignored if no + --youtube-skip-dash-manifest Do not download the DASH manifests and related data on YouTube videos + --merge-output-format FORMAT If a merge is required (e.g. bestvideo+bestaudio), output to given container format. One of mkv, mp4, ogg, webm, flv. Ignored if no merge is required @@ -251,7 +252,8 @@ Post-processing Options: --audio-format FORMAT Specify audio format: "best", "aac", "vorbis", "mp3", "m4a", "opus", or "wav"; "best" by default --audio-quality QUALITY Specify ffmpeg/avconv audio quality, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K (default 5) - --recode-video FORMAT Encode the video to another format if necessary (currently supported: mp4|flv|ogg|webm|mkv) + --recode-video FORMAT Encode the video to another format if necessary (currently supported: mp4|flv|ogg|webm|mkv|avi) + --postprocessor-args ARGS Give these arguments to the postprocessor -k, --keep-video Keep the video file on disk after the post-processing; the video is erased by default --no-post-overwrites Do not overwrite post-processed files; the post-processed files are overwritten by default --embed-subs Embed subtitles in the video (only for mkv and mp4 videos) @@ -261,7 +263,7 @@ Post-processing Options: parameters replace existing values. Additional templates: %(album)s, %(artist)s. Example: --metadata-from-title "%(artist)s - %(title)s" matches a title like "Coldplay - Paradise" --xattrs Write metadata to the video file's xattrs (using dublin core and xdg standards) - --fixup POLICY Automatically correct known faults of the file. One of never (do nothing), warn (only emit a warning), detect_or_warn(the default; + --fixup POLICY Automatically correct known faults of the file. One of never (do nothing), warn (only emit a warning), detect_or_warn (the default; fix file if we can, warn otherwise) --prefer-avconv Prefer avconv over ffmpeg for running the postprocessors (default) --prefer-ffmpeg Prefer ffmpeg over avconv for running the postprocessors @@ -282,6 +284,36 @@ Windows, the configuration file locations are %APPDATA%\youtube-dl\config.txt and C:\Users\<user name>\youtube-dl.conf. +Authentication with .netrc file + +You may also want to configure automatic credentials storage for +extractors that support authentication (by providing login and password +with --username and --password) in order not to pass credentials as +command line arguments on every youtube-dl execution and prevent +tracking plain text passwords in shell command history. You can achieve +this using .netrc file on per extractor basis. For that you will need to +create .netrc file in your $HOME and restrict permissions to read/write +by you only: + + touch $HOME/.netrc + chmod a-rwx,u+rw $HOME/.netrc + +After that you can add credentials for extractor in the following +format, where _extractor_ is the name of extractor in lowercase: + + machine <extractor> login <login> password <password> + +For example: + + machine youtube login myaccount@gmail.com password my_youtube_password + machine twitch login my_twitch_account_name password my_twitch_password + +To activate authentication with .netrc file you should pass --netrc to +youtube-dl or to place it in configuration file. + +On Windows you may also need to setup %HOME% environment variable +manually. + OUTPUT TEMPLATE @@ -556,7 +588,7 @@ HTTP Error 429: Too Many Requests or 402: Payment Required These two error codes indicate that the service is blocking your IP address because of overuse. Contact the service and ask them to unblock your IP address, or - if you have acquired a whitelisted IP address -already - use the --proxy or --network-address options to select another +already - use the --proxy or --source-address options to select another IP address. SyntaxError: Non-ASCII character diff --git a/docs/supportedsites.md b/docs/supportedsites.md index d147b53..7344513 100644 --- a/docs/supportedsites.md +++ b/docs/supportedsites.md @@ -17,6 +17,7 @@ - **AcademicEarth:Course** - **AddAnime** - **AdobeTV** + - **AdobeTVVideo** - **AdultSwim** - **Aftenposten** - **Aftonbladet** @@ -27,7 +28,8 @@ - **anitube.se** - **AnySex** - **Aparat** - - **AppleDaily** + - **AppleConnect** + - **AppleDaily**: èºç£èææ¥å ± - **AppleTrailers** - **archive.org**: archive.org videos - **ARD** @@ -44,7 +46,7 @@ - **audiomack** - **audiomack:album** - **Azubu** - - **BaiduVideo** + - **BaiduVideo**: ç¾åº¦è§é¢ - **bambuser** - **bambuser:channel** - **Bandcamp** @@ -105,11 +107,12 @@ - **Crunchyroll** - **crunchyroll:playlist** - **CSpan**: C-SPAN - - **CtsNews** + - **CtsNews**: è¯è¦æ°è - **culturebox.francetvinfo.fr** - **dailymotion** - **dailymotion:playlist** - **dailymotion:user** + - **DailymotionCloud** - **daum.net** - **DBTV** - **DctpTv** @@ -119,7 +122,9 @@ - **Discovery** - **divxstage**: DivxStage - **Dotsub** - - **DouyuTV** + - **DouyuTV**: æé±¼ + - **dramafever** + - **dramafever:series** - **DRBonanza** - **Dropbox** - **DrTuber** @@ -153,6 +158,7 @@ - **fernsehkritik.tv** - **fernsehkritik.tv:postecke** - **Firstpost** + - **FiveTV** - **Flickr** - **Folketinget**: Folketinget (ft.dk; Danish parliament) - **FootyRoom** @@ -217,6 +223,7 @@ - **instagram:user**: Instagram user profile - **InternetVideoArchive** - **IPrima** + - **iqiyi**: ç±å¥èº - **ivi**: ivi.ru - **ivi:compilation**: ivi.ru compilations - **Izlesene** @@ -237,9 +244,15 @@ - **kontrtube**: KontrTube.ru - ТÑÑба зовÑÑ - **KrasView**: ÐÑаÑвÑÑ - **Ku6** + - **kuwo:album**: é ·æé³ä¹ - ä¸è¾ + - **kuwo:category**: é ·æé³ä¹ - åç±» + - **kuwo:chart**: é ·æé³ä¹ - æè¡æ¦ + - **kuwo:mv**: é ·æé³ä¹ - MV + - **kuwo:singer**: é ·æé³ä¹ - ææ + - **kuwo:song**: é ·æé³ä¹ - **la7.tv** - **Laola1Tv** - - **Letv** + - **Letv**: ä¹è§ç½ - **LetvPlaylist** - **LetvTv** - **Libsyn** @@ -277,6 +290,7 @@ - **Motherless** - **Motorsport**: motorsport.com - **MovieClips** + - **MovieFap** - **Moviezine** - **movshare**: MovShare - **MPORA** @@ -290,6 +304,7 @@ - **MySpace** - **MySpace:album** - **MySpass** + - **Myvi** - **myvideo** - **MyVidster** - **N-JOY** @@ -305,11 +320,18 @@ - **NDTV** - **NerdCubedFeed** - **Nerdist** + - **netease:album**: ç½æäºé³ä¹ - ä¸è¾ + - **netease:djradio**: ç½æäºé³ä¹ - çµå° + - **netease:mv**: ç½æäºé³ä¹ - MV + - **netease:playlist**: ç½æäºé³ä¹ - æå + - **netease:program**: ç½æäºé³ä¹ - çµå°èç® + - **netease:singer**: ç½æäºé³ä¹ - ææ + - **netease:song**: ç½æäºé³ä¹ - **Netzkino** - **Newgrounds** - **Newstube** - - **NextMedia** - - **NextMediaActionNews** + - **NextMedia**: èææ¥å ± + - **NextMediaActionNews**: èææ¥å ± - åæ°è - **nfb**: National Film Board of Canada - **nfl.com** - **nhl.com** @@ -325,13 +347,14 @@ - **Nowness** - **NowTV** - **nowvideo**: NowVideo - - **npo.nl** + - **npo**: npo.nl and ntr.nl + - **npo**: npo.nl and ntr.nl - **npo.nl:live** - **npo.nl:radio** - **npo.nl:radio:fragment** - **NRK** - **NRKPlaylist** - - **NRKTV** + - **NRKTV**: NRK TV and NRK Radio - **ntv.ru** - **Nuvid** - **NYTimes** @@ -340,6 +363,7 @@ - **Odnoklassniki** - **OktoberfestTV** - **on.aol.com** + - **OnionStudios** - **Ooyala** - **OoyalaExternal** - **OpenFilm** @@ -353,6 +377,7 @@ - **PhilharmonieDeParis**: Philharmonie de Paris - **Phoenix** - **Photobucket** + - **Pinkbike** - **Pladform** - **PlanetaPlay** - **play.fm** @@ -373,10 +398,11 @@ - **prosiebensat1**: ProSiebenSat.1 Digital - **Puls4** - **Pyvideo** - - **qqmusic** - - **qqmusic:album** - - **qqmusic:singer** - - **qqmusic:toplist** + - **qqmusic**: QQé³ä¹ + - **qqmusic:album**: QQé³ä¹ - ä¸è¾ + - **qqmusic:playlist**: QQé³ä¹ - æå + - **qqmusic:singer**: QQé³ä¹ - ææ + - **qqmusic:toplist**: QQé³ä¹ - æè¡æ¦ - **QuickVid** - **R7** - **radio.de** @@ -385,6 +411,7 @@ - **RadioJavan** - **Rai** - **RBMARadio** + - **RDS**: RDS.ca - **RedTube** - **Restudy** - **ReverbNation** @@ -407,6 +434,7 @@ - **rutube:movie**: Rutube movies - **rutube:person**: Rutube person videos - **RUTV**: RUTV.RU + - **Ruutu** - **safari**: safaribooksonline.com online video - **safari:course**: safaribooksonline.com online courses - **Sandia**: Sandia National Laboratories @@ -431,6 +459,8 @@ - **smotri:broadcast**: Smotri.com broadcasts - **smotri:community**: Smotri.com community videos - **smotri:user**: Smotri.com user videos + - **SnagFilms** + - **SnagFilmsEmbed** - **Snotr** - **Sohu** - **soompi** @@ -457,6 +487,7 @@ - **SportBox** - **SportBoxEmbed** - **SportDeutschland** + - **Sportschau** - **Srf** - **SRMediathek**: Saarländischer Rundfunk - **SSA** @@ -482,7 +513,6 @@ - **TechTalks** - **techtv.mit.edu** - **ted** - - **tegenlicht.vpro.nl** - **TeleBruxelles** - **telecinco.es** - **TeleMB** @@ -493,6 +523,7 @@ - **TheOnion** - **ThePlatform** - **TheSixtyOne** + - **ThisAmericanLife** - **ThisAV** - **THVideo** - **THVideoPlaylist** @@ -519,6 +550,8 @@ - **TV2** - **TV2Article** - **TV4**: tv4.se and tv4play.se + - **TVC** + - **TVCArticle** - **tvigle**: ÐнÑеÑнеÑ-Ñелевидение Tvigle.ru - **tvp.pl** - **tvp.pl:Series** @@ -531,10 +564,11 @@ - **twitch:stream** - **twitch:video** - **twitch:vod** + - **TwitterCard** - **Ubu** - **udemy** - **udemy:course** - - **UDNEmbed** + - **UDNEmbed**: è¯åå½±é³ - **Ultimedia** - **Unistra** - **Urort**: NRK P3 Urørt @@ -579,8 +613,8 @@ - **Vimple**: Vimple - one-click video hosting - **Vine** - **vine:user** - - **vk.com** - - **vk.com:user-videos**: vk.com:All of a user's videos + - **vk**: VK + - **vk:uservideos**: VK - User's Videos - **Vodlocker** - **VoiceRepublic** - **Vporn** @@ -596,32 +630,36 @@ - **wdr:mobile** - **WDRMaus**: Sendung mit der Maus - **WebOfStories** + - **WebOfStoriesPlaylist** - **Weibo** - **Wimp** - **Wistia** + - **WNL** - **WorldStarHipHop** - **wrzuta.pl** - **WSJ**: Wall Street Journal - **XBef** - **XboxClips** - **XHamster** + - **XHamsterEmbed** - **XMinus** - **XNXX** - **Xstream** - **XTube** - **XTubeUser**: XTube user profile - - **Xuite** + - **Xuite**: é¨æ窩Xuiteå½±é³ - **XVideos** - **XXXYMovies** - **Yahoo**: Yahoo screen and movies - - **Yam** + - **Yam**: èè¯è¤yam天空é¨è½ - **yandexmusic:album**: ЯндекÑ.ÐÑзÑка - ÐлÑбом - **yandexmusic:playlist**: ЯндекÑ.ÐÑзÑка - ÐлейлиÑÑ - **yandexmusic:track**: ЯндекÑ.ÐÑзÑка - ТÑек - **YesJapan** + - **yinyuetai:video**: é³æ¦Tai - **Ynet** - **YouJizz** - - **Youku** + - **youku**: ä¼é · - **YouPorn** - **YourUpload** - **youtube**: YouTube.com diff --git a/test/test_compat.py b/test/test_compat.py index 1eb454e..c3ba8ad 100644 --- a/test/test_compat.py +++ b/test/test_compat.py @@ -14,6 +14,8 @@ from youtube_dl.utils import get_filesystem_encoding from youtube_dl.compat import ( compat_getenv, compat_expanduser, + compat_urllib_parse_unquote, + compat_urllib_parse_unquote_plus, ) @@ -42,5 +44,28 @@ class TestCompat(unittest.TestCase): dir(youtube_dl.compat))) - set(['unicode_literals']) self.assertEqual(all_names, sorted(present_names)) + def test_compat_urllib_parse_unquote(self): + self.assertEqual(compat_urllib_parse_unquote('abc%20def'), 'abc def') + self.assertEqual(compat_urllib_parse_unquote('%7e/abc+def'), '~/abc+def') + self.assertEqual(compat_urllib_parse_unquote(''), '') + self.assertEqual(compat_urllib_parse_unquote('%'), '%') + self.assertEqual(compat_urllib_parse_unquote('%%'), '%%') + self.assertEqual(compat_urllib_parse_unquote('%%%'), '%%%') + self.assertEqual(compat_urllib_parse_unquote('%2F'), '/') + self.assertEqual(compat_urllib_parse_unquote('%2f'), '/') + self.assertEqual(compat_urllib_parse_unquote('%E6%B4%A5%E6%B3%A2'), '津波') + self.assertEqual( + compat_urllib_parse_unquote('''<meta property="og:description" content="%E2%96%81%E2%96%82%E2%96%83%E2%96%84%25%E2%96%85%E2%96%86%E2%96%87%E2%96%88" /> +%<a href="https://ar.wikipedia.org/wiki/%D8%AA%D8%B3%D9%88%D9%86%D8%A7%D9%85%D9%8A">%a'''), + '''<meta property="og:description" content="ââââ%â âââ" /> +%<a href="https://ar.wikipedia.org/wiki/تسÙÙا٠Ù">%a''') + self.assertEqual( + compat_urllib_parse_unquote('''%28%5E%E2%97%A3_%E2%97%A2%5E%29%E3%81%A3%EF%B8%BB%E3%83%87%E2%95%90%E4%B8%80 %E2%87%80 %E2%87%80 %E2%87%80 %E2%87%80 %E2%87%80 %E2%86%B6%I%Break%25Things%'''), + '''(^â£_â¢^)ã£ï¸»ãâä¸ â â â â â â¶%I%Break%Things%''') + + def test_compat_urllib_parse_unquote_plus(self): + self.assertEqual(compat_urllib_parse_unquote_plus('abc%20def'), 'abc def') + self.assertEqual(compat_urllib_parse_unquote_plus('%7e/abc+def'), '~/abc def') + if __name__ == '__main__': unittest.main() diff --git a/youtube-dl b/youtube-dl index 79f0e0607c75c77a21bd207defc2fa5f144a0953..aeb2b547475ff46cd39df03ba841e083d86dae41 100755 GIT binary patch delta 408051 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%0Ae2k}OO7~HHYrx;ihPzfH{P5|2 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 delta 356290 zcmV(^K-It0ojSIFH;^C>6t2WZTq$+FG*AEls!WkCB7c~xa8;PAa8-493jhHG=mP)% z1n2_*0NuU&ciTpiDEzzs3dCMrfC)w0apn>2C>f9KOuXwPI+ioJvx+`kkOU=+NB{vq zJtoQh+iyMk{QxN^nQzbHoWvr~U0q#WU0q#WRsHCL$J@SpJg@4<WqqBrcf(~<KX{ZJ zet4KHntx?gUmPXdVRiUNeDmPJs%th$p0BpUwkz{IsWxrX4M{QYoAq`mbN)R|wsi%y z%Y0o8Wml~G2M<KaMYCR)i=k@jUcah`@^)BPbNOaj4CPR5O8L9&y1J1+R@J(!>UKNG z7nS;ijSWq+R-pgULubU_>t<1`709LqyoRPzzkgMoc3ljsrrXHhovPDcZii~Eer@M% z*DT6j)$E(aRjJVG@6-pgFGE)>%6YN40+Ott*;!p|%H;SsN$Vj!dXT^)=`!54WiMzx zTQr-t805E%3i7*rUi4)@bTC#^^Yx->uB!4MMQ6P&Z`-0?Zu`=HeNhfMP;XP!#X9e+ ze}9(N*UMpO^ToO<>%n?|byIW~z4ZzZv3_s6HH>TyL)ZjAbmb3Qz<&B*B07pR?(Ke- z{i0|~ticdoAjj0hyQVq4gi^0GY~-9A;b=Tw!mGDMeIa`E^3@m5zkTyA|K{6w@4h;D zBdV3$_Y%k>dib)rsn<=hG=P^i^7I$Le}6b;{O;8)4k$2^Q4YBWhvjZ4d-Kg{39P;p zufBZs{N-EOcYLu%?pfx@-uz-yT$TBk@7|r9=9e&JYdK<H6}J+({%u(-F3Tl<I4Lg5 z<(o<ZY>Tch37#I$ld=<yo^;La-IpfZlZM_RM*}Mv{gE>w*WGTras@+LE{P_J^MAUs zUY1=x6m!{$Q>cOzGr;vlT@8Q{p{7Bq*T5W?;?=OsFUtZz3ZlWB8>#_1<kbDPF0PAe zjm`e8T9%E`8ZZq_5MB5hz=8b9hixmdyy-x6<R~o+`twV3V*R}Vxi>FgzOm>Av}mE< z$U0?>kR>gEZi~`=jT0sx8qJ?DXn!yXu$jexBPr*>0!LQPgBSQid?+Q$$&Wa9t9sSs z>dO?~)%s^IYAyxalvdS#ThV~!`m<Ml)(x9hR>HrR+fADbN{Z4g@Q;v)8aJN6UwpA? z%Zo3n+im;RC&kIh)O~w8bmf4YY=8Tz>@LdAerK?$9AoT-)w-slKvANTOMjg6{K10< zi*?cWdQ`J!{tsB2CM<;?K76RYBvf+tz~+L4%l9y*Wir5EHFep;xc4orZWT~8X;z7( zAuth^;UQlP+hUzuBdgMSmH<ByzhS8g7KtWVR{d21D+IztX`Nga2%F|^x#V>M7TRLd zK$X6MHKc)}T{0B?RX<B!*MG?dD3UC2Z9pJ^Vt?6e*UMy1h$gTA3ifR-x?(d+p7+2u z)pc1Xg+T4ww{NC|fWbJ+rtIr<NUrMUCb@+FhK7YBGh0%u*Hoo0K{zZE<V%!&$p3^J ze1v7}HM~}$vj?D4=ncWaZbJ8492tZIIN)!@xFKq6#4vmTOg3CrfPb_<AeY58&@|bU zpv^3~MZl}M>8YmEI6w!Ibmav|P9PKF40V|jO^3{%e0K?d!?;vEAtvZwXacz?BrLIe zF_>6nRdv17aoOip1<L}X2~q?2v<Hlk6>wT&eTD|bXURJNWdjkE=e|ku8*~RKfE~T% zVTC&MhbAydbEL!+Ie*dNaxtr@uxQI2SeSgs@OQwegm!`=-&#hIGaJQ68kzW<S}e*I zh7H!m0Y@HIGmzjgK+N1UFiG7IdHVv?QCQ{)6iq}P1XylCu5O7+H`Q>7!gsp?&7ntj zgI+I67-eV+W*h0GMRx~n5tybWB^CM!Tv05E@O`OX<CIrx4u7=SHQS3zYMT%hgE4?q zpMzeE3IKidSr6tm52_{s=*x{*LYOC!jrwxEN{Zf{j=-ynOXyat2|*H^0EqDt=Ona> zqN8tU{vcBq$-~W-WD+;o(YQVogY#VVQ}q6b-=kQ<W%Vdg&$r?gVN+}YpL(bk%!ci@ z13oE1jIwsp_kTAqibmxV@oINvVjUZTT^X3Cmtt%tk*&+2TiD1Z^e)t(9CxWQ%%OFo zZgK)@!GHv<h;i05A&41=C5$B3`(ay^gINnF1aWOk)i*G&VEymidUcb7W?jQv>W@P8 za6T6`?A36#A@Z{HOsboU5)>b!<uC9R*QPqC=i}5jDu0k>brh*UAC1D5IdE>_*Dp=5 zm)p&}1`aw3ft4Q}T$Z5ncNKBlkypw1XjG9J;ZeN5vWVHxmU%r`OMW!UqmFnK>o+N3 zC`xdm{>SMzUvov$l~6FQS;zEyBqcUi=5;Q)xolv{ff9MQhAH_V2|t;X<`ZnRNVpwp zJz2w!hJR7$tIZa)c$0$#L-`_^$fP+5WW2?}f8#Rr0ZjxTzD`Re8fNVsG32J{tVM{y z0pEh|X!2$9uH4}Mf+YrghmC!LV<Zrenz0-@m=6MRTF{e+|LY+sPkme9lm~H0`V<vq zCF!CDRA~Dt=aK->4^0btg{A-(k~6S@Nl#k<S%2-MD?ufI;SnF0uN0}|K=nh>35uPF zS7?~n@EkADS~A!*VDlg;;?;m}Uiln9GFGQ;xu{mv0y++?0|da8Qo=A6TpIv(q+@X= z*JoXefFmJADWL<2Eh#AJwwzD^ni|%BDxl<r8be%-t!i)Sl|rv)o(WZ6Hy5x4usHBd zbAMq;&VmX-#n~GwOtQPE7o~zQfGP}~P+(jL{8h?)B%&#ei3@Cr^c}u3ri}5GF`Aig zR#F=xNH{CB7}*U8%g?Za1E;8giwj<meK^Kf0mpbVyWOlEXttQv(6ofEHb5?hWmnB% zD(0%3Muv4!S)D}zAw#o9*H^pxqYy#V*MCscuxK|ZU=~p7$f&B`N2>#JcDtIDd!<F| z%0ea+N>Nda+p`KJmeVa%xIJtq%$q1MY&6h-!x(7&QiGCOo<>A{)3O@XNkc$WB~{F> zv@WEMf$d^9@y(VdhUl|JK{;ay%2ipmgovJ={|T?0r6eg<pu^%GVK{7+eMy<?I)Ajy zX#mf)!A_|0Q!SxM#>h=^i?4D7fhsHrEPPAQ#F}?iwaTW!4V=O&<`3S1Yrrc9X|`07 zaji0?&znZ*hoS~sX^5dE3iRU+B*|tL<CHHz#V^G!p9WahVTf`Ol2X|hw_=@Vj19q6 z7?OO2D1jWC3qgjarggQcj0OEUYJa*ziBc1`p1`}M)<{slPkXF|aPG=NE{=ic+gh5D z<la(psxT=45Zr;_ptPk}k2Y1EUsvT#zaKtO9MqUif>nUAxAm}lPHwjSz~+ETZW;$( z{^t%df#+}B6WltY#%;7~ZLe`-wZ19t`WPIwUxRJr*J#N=+SE-#V<A`8+kbnJqPTTP zv8xkm4@jC>+q9q$;s6!3{sd&%qYM8Hs3nW!MF$$gHHwcfq}s=mfCSGCnY~byYDELv zhmAk7!p^P~>keksT_T8YPH;&t1KSv|;-aX8{>w))SYPk66yA(27wHXS9paFXH4_zG z+)U6OUWy2i7K^Jz*$t=%qJN4n)LT&As?}X`dio|YzV?RsJ_oT;F18&ZgPUPIY%paB z9X{ZE>0p;!mDd4{KJYx}X}M|8(lS*x29n+Vwnh6EbYOmm7LRw^xsY`&o=4bQWwcBQ zF-u<)kVn@%fk8AeLF=6QDR%9-gyL1@I>bt^PjK7bp-IcE8|x16?0*Z;O40b!<ElPO zvRAh)RK)HTYhK6s=r6~EKHz=o#yj{Mo4qNjf!f{H(liW&yoA*dtxz>|icW<H%)DAw z`AySZ6&*|*TC~1{UkU$A=G%)4=!!U|(^Czrb$qG{iy9uL#yTVDKNW_$RR=Za70;;> zz~{6j9lBx#WH~xf#(xH4e`G&lGg~sRh=RP)su%0+5|qKEVY3j66-_+Aw_LA9TdQKb z9`e4#2~5RL_!NcNg%4eD0V_}l;+}BZt&xj}vx{{VpSvk)St(Jx1nsFo!(ei;HM9<S zX62ZIsAc)hoCc%>(c*mA^L|T;4q*<>S8KIN7PAkAx>;Y7b$=Cx8RpNnW8qP4HlR`< zPEZ7B5bXyVw2(hiSS00=p0X(%ClZ<75#xCY%UcD#g&xOX*_%5t;miXQ9<t}8kJ71y zw1<KynkIP2C=94IP-y7xVhw!=Iw8(K)Ig;$rb%cvMh1fz1o_;tIW%9cA6u0l=ODJK zA<w0yp&+EAWPcQFN5+vFYHT|?CIK|bTBt0-QeTOZ(CUFcIf38#CCF@-f~#%45W6p2 zUN1^Ki&?MBrD<}AHYOlX1=UUaG`%5Pe2qdmx{Q8^)`npVczwfXCl8IIsE5<!A(=bi z59s&970|Q?UH4&>j{13l3l8%hpJ||6U^5HII6N1saes<#OL<@xcwVmrcDyo#@UzgG zjt$MKK~oS;TA*8tYaOhgo8pcP>9~T5_4_DJDs4QZy_01vOfuG2B$!DY%&=))NCL)9 znd0KU?K*$}^H&;>hN$NHp`lu^FTqjr7yO49sOqmq(13mZTGlzO{#n{4MLObU)e0o6 z7_z;f<$q-lOB~q||B4b-!X?AlR?sZb?gsaGG&*YA8|B3hQL?vvxnv^O+sz!NG+J$V zEyc~zLLZZ`*=<DK19(Hhuw)09<g{a~&-Wl0ED{nmjRL+ya74$)3{=6~Nvxf1uDap^ z<roOZWqHeulk&}kp{=T9zWs+rbD-QBi)Kbhsedq`=G_sJU;89GCZi?51;*JQCEjY2 zOueZ<uEX@+pqIdM5*0QlLYgKdr%7|a*cM#@#NpGhc`0QxKwXywN^oGHsGWyIu#jI` zMopw;LJc}<GFv=~>Q~#f*ykaxIor8&X|Z`FT|}gsdV}Z9SX7+vpy5my<k4HgR+FDg ztA7%7;SL79Lsc+gIZSGnnx;s*=*aOZ5tWgL$-^2A!Viz2f2iVIN_8q+7*C|2EGa7` zY}{ZG6NgkImCz3h)TyS+MRnTTAUSB!zQJ+A)l(gQ-ABssF*u%lB5-z>xT%2JnNUZi zD!=U(sK(M3fk<sD{K*S)ggfkEMwpukWPhZp)>|_i4^R!v^U=RFAb$(=gy^<7?^oC* z-VwtJ#>|NBkmyJ;vfv5b=y16fTO!t8NP{OkICo@SmTitEgbtQtLgH&rQljx2%fTF2 z;Q~&oo_%V78javVbxgsBpEaF@&_*9O-O5~fZ5$Exq#l&Fa_de97?!bELQB|ugny7s z!?6p1P6^OWYf#4m&y}{Nl&xOQXr(Th=W8*-B7@(Vr^bN?R2T9cK#jg9ClfkHm>LE| z-0+e<6kl>|D7Xwb0QNArn3Two0=T}A`y}edLa{1ui%q+h?g5oL-U9KwZcNLj*tpPK zrEg?ArY#7IE1}J?aan3y(jP*3P=CT?tqc~z(-_d4D)enUl6xlf5m+1UW+(y6#a4~K z@HC-fCM294Fsf04&}vFM?Y`taH=YA63()hk`4;GOSk)5)AOpHw_qi~L)F4LDn#9{d z+`{1R<jXgww$Fvy8m?C8lJ>Z`hS_u-B#`!7Q6?jh@Y4PvJU-aHgE-)hihqeB1kdsK z$ojH0cSriu<3+RCG&KyqaAB((XdO5Et@Nm#CiCqIeSJ_xOK@vUR<$XaVwI~XStIqY zLHVd6PvbiVG8J|q(2Y=NRrR)9uBX_l+P<I%4v0KDKVT5I=oAAR|G{V=z!Ew7Nse-y zK_<1uOpFb!Y3Sl%I+8Q*9e+sQDcghSgJnObp~R(p-jK(T;pY=oYV}&e4JMKy@Z-aW z54j)g8I&9opVFHgcPhup**X7eTl1GPa-wS_9^;r5L8HpGQPcd=FS@ei!IbZ%%_Wh0 z=Zx8n5jtk+gJu)@e2nCoXhi_<f6<j_v0%S0!=+33St%JSoaTfp0DpE|0;yKA`xT2j zThUOY`SEA<9&w!66tZ6D@|ZVR&!VOA+S;>+N(9LM#3|wu-~Db6!C8OT&-grfnuxz) z?|pv8ou0vJm8HfZbvotqp^1wbe3LLW7`u$3qv3_7KJr=BF*_3z3m7`H8X(5Uu|z7I z>|q<aJ6~axaTJ5U(SO(!=*|XISmTMzF_xLZj=hF|Gk;rsQ!Rn7j-w$8*<=O_)pk?+ zHW26y*A8-<)c{Evn-SzwLXY>UnI7H%f%>7#=>5cp)VCs50*a#!k_Dl{h*tHn4lJ3S zygqpq7COvN$3)0z31E+7n{|952ZxaAQ$?{;kv^cuiHRK!U4OVI_?!_FU8m>CM+Uv7 z$%h{*Y6R>0IF`5M3;N9|`St&1=&rg7F@~W`4;T3VZ{K}!_{TB)eN-(p7MDd`muo<y z>1V4YwJ)bY+RanDy4_1OST-T{qo|>BMln$sH}vrcJ=mLA`Vwa83p!Im9RyvD6VYL4 zS!!QXR$OtNJ%2pJZ--h2B(vnJ;tKr%$lV?EYz2UPNNWQQ8-h@ERDRnDpHVcZFwl82 z?6Z=8J9+-@%UK#2^61p-3Rq_?xs{<blz#o>hWXiXl0BPF*fR`1$_SR^gX1IxE#le7 zsd99-h;~QfPoKui<A7{}D4(T8zo>{oo_~G%I{)9#W`Ca?KK=Cf$Ri<e<gjT7RnM7C ziB(6gK7!qNaze3q$ur&<e9IAarl-L3lh<qmLHFYu;l7q+kDh+=hfi#ZhM2*_Hhtdr z+YJxB#Pm?1Dr{<O;N$kySxM@{T9CJq2$`Y{9l9x_>o_`a2P&MFd~EpUMgIKF8>o0) zbxn<1?tkRE=ql+6zp8F|8<Pfl$h1BS(D@wZAgVPM-&DQSATo25gp*=AnX<9Y8JqoR zc_P(*>GOzFgd@U01s{y#-9iRSic_y3bxyW4+k(NDZmcExowMr}`Zun4qAA`<Xk%BS z@dCC-pt%W`yGHTb>=udZsx+`uZF7`hWtZ7%gMU&S19YO}#GH>7Ig%?2j9al>=JH6; z4rJ=hws1q&wpcRniW|1gs!`{$vk$dkdYzp+!`EUUV?k?!7dDh>=x6Cwd6%9~+`6bm zizQqawo5HR;`28F#DRf&k3d4`;U9iz#ZwB%lL(~{<=n*CCDCP=G?wNYB8_grESj~K z6MwyfK#tF=Ro-LZWnL{s4*>0J1KOj6zRMH-<n>Fo!6T>9W?@<Mm!E4UTHcZ#WnoiM zXDWb=-6=um#)#cAqo(YVE7*w6$QqJ$>Hl|l_T=!>=ZF7Q9R4#uJpb|Olb`<$dRrJ; z8P0uZ((b)5oZ=#X4aoR&`YhFUH&hDz0)NFA%G4??3GfY@4}wS!4@u!T!#ZcxIYU%c ztP1ZV<KJMom^}29=j?2DMSq)s=s{b^;UO6cOXR1av}_u%!txpSy1L>s^rP?VgZ}$E zO%6O@M(|^1(tBcX7&4$O1O$&&&ZhMFa*0ZZ9SkLQq$1`D9SVf@L5IZVj#TX<XMaVD zo(EZFXvcv~=2=zFsxpTeolS5#skC_(zMw%vTQAJb752%G&{TawfOfys-+wI!_J3du z$T|W2eZ^CVjup8+MKiG`(2=VPo;H)`6s#Bu98!U{(@2V`IIQT(6rCz`BNEa=Zux7p z?$#Wl2xFr=t*NZ2Z=b|l`+wTC`hQd<*(9i7&CfEtbt5<dataW!)x|5V%L(6%s<c@! zwjR;QhQ|vTG7#j&4X~lg4$F<OX%INc0aB@L7+Fk+2fA!^&{;-=MW_wTvBV0wjZZPq z@Txj6$J$oSF<h+V$F|)uYy721AbIH{DLlROIbV|L!*)7^lK!Zq1nEX60e^h0l~SQ@ zE`zya9}$>|vj77<U}Y5fmqm|uPf;v&Hi)S+hJqypG`+fG=xG-PCdSfGj751v&sB#N zI$MJ-j^RRlY728rl$_D;ECqQ!fo18bLn^!J85uBU<m;ZvwxAZ(p7CBFODUa5I&p<< z5Y%eD?JqNPvZA7prn7%ERezm@Hrq3Fm&BfAli9MgT8wP{kuh=#ctPLsOjBXv2?=Qa z?C20S6-<zG%@DY#k=4)UgeiNWm(BXvwVwgsotQy@ItEZO4WL8;gvkb@tV})?=urP@ zImK$3*XESZPjiC8W?h4Y&HM%eYgoq7s)S<Kz|=0tMaY;bH-N{UvVSSRq~^-5F&(9m zjrFfdwrb_8#T;Mc&OmEBDT<uWXdffVteK-+i<S+%lZK;{z4qv9#GER-Bv(pT$apQ| zBTS;W{Gurm_!4A7dVVH}YU_+5!cNU^n4KEH1D^&qmvHT=Z|3$!x$L^AOpFX6RIx_u zp3>`=4lbEbLWAoXqJQ3Nlmc|ep}HTzwH4Q-wm4(U>5y&LLgbOiJfVxQB}*F<l9RTG zbVE*8G`p$l<$684DnaF0Kl^wFO6&`6;yd`#+_?J6qhyiaplv8`vq`e4E-nWdo>7;$ z5}?l`H2Hr-m;Mhhgabgj>7yC~I7owtqYFmxJ5~6-LlS(KiGOk$D@jXd!l&<Ez5OaB z8)rWg=Bfan+2fgh|K!=T^C$lf8>A;s{s3DfLkNz{slK=_1LOQ#4e#!*JxWgT1c$6l z2pWA7VUjMc_9DR9#~=Uu6BL4DeMTc*)BShr_FKlv=s8*C?$h^YyZfH!CA#g1gIWV| zsubV`PgB8y7Js~3<J|W{I=gV7hUsma`T}&80WF{&3io_})5fQdG94M=pP4cY<mTKJ zUE)-Fn7i5tED<l2vq`a#fwBW0O_1MQp&jr*nFPR_1XXy7UQ<wBQnUg26V$HXo=CPc zhk-#;>8iTeb|P&CdG#nDPUN^)^F_#uNIrvp$ZVgd1Ah`c;-T<CeQ=93Bg6$1bU9ez zN-~v^lV+L#sh8`n40GDd)7kr!PGWRY3YBdx9J%8tM{;c%A4t8xdn;XtMMUllcM(RK z&*R6l2<Z-H;q8Jpvf1S9$@vjZK=?2d3}cKE`+A8WDS47M$CPS8r5{?xT}1F3G@v$E zHU>}6L4UK7zf*m>WED}r5aGy<gAn*g?_<;`%|z-r#V6T^@dhU04Gn|V8d4B?7N{IQ zavSCtW?KNwJXmP2Fj|lSF(eN|jTqDyeP`GKyN%|vVLsU@@y$FB5s4q-DH_DzZoK73 z;j$5~Y1ImkLKKd@q~X!1ow-o!%!+NCeRsg$<$tNU3R?!{n0A>OlZkbELsn`1UK=Vo zDq~gMN*B%ayXSAee*N`dk2D|(65+%Q=x8|%cWk^t(7L#SM^1}I7^aES*ydn|xbrp& zk`{Yx6++D#xqV!jNMmTLB?3y2<)ss+WKC<2FsqQK?=t=-74{FzJfr55Z+dw`hm(^u zm47Gy{_NRC(wX0E(mj~ff#nY@K7t0h-c6+keR9yFPMjGKG`EdO2nX84V_@FhId%tM zxiER=B^x+<q#GvQ;zfs#Zw2r67Mn94zk2)jo3}^l)Z<4=sj?)V2ypc*#<#!e&_{;- z>4tmZ4Z1(z4g}GAT><I-K7-5yEHpz43V)89Kfu`WT<iq3O<5Xd=_``KRwUn+Dy1+f z6LKd>O2ul6@f3z1wy7<7Zc~aO*$SAR$%^ODUmv&zi?q<_X~MA%Biue-k?l0#{xs68 zj6WM~+#n?8F$LXIrB;<kRMKzWCf#4r6QB_3R)lp!<<}ae)F3iGu`|9nOxLYEh<_J8 zOJTegm*mX>YfOe7%`^O;t7)K10>>PYqo6d^m@~*J;#h};TZ0KBs;c^p{Vs+K^@e7_ zlQj8=JO-WGXk<^9=@<=k4I+dG{vhO~>gnDlOyMA)(o10o+1R=mK+36n&Yk>_xI06G zIccJHojMmGtm*k=GTjBy8=ycJD1YjDi;6R&AKhC7>XM6}kf(vqmnE8}LMwKF8U`Lr ziRJA9lfo&;jh=g*7p<L#wDd6gzYM>=MeHI-?2UsU;d`O*xu8&(K#pZvq>6@m>tZus z7Rl8#xjynUOZyHG#=hu!;ycdjM9lt~hVNAt08sULwLH$Q$TV6l(}`=W4}ZwM46v7| z<KNejeUtUzsTG!`q$Ji*P>g@To!Wa~5U<TiK8~u9xql`O#|e8Lfukh-`g!W`u_Mc+ zC)}}}>pSx(Ej{q2Znk!pnhed$Y@Z1Lc4-xheasadUULk6n3u5W(D;llhe+*5pZwvE ze{f2r@6b&mB?m`oY|@U7cz@!LSxRN5Kx$p)iuF>cJD@Rji1xkJc`5pSTXO0T!?_u) zSbTTG$H|`)wzPXP-*c1w6MD%ePXd0j$I4IEpUegw?Tq-DO3F^Ymg@Y~>#4h33!9~^ z?&?5)!(;-=DH_xG`6`g5=BHd(MXsrV1}+uLE)=AtHpz505d4OjmVbf>W8p~}#M_Cn z;jlbPli{jR_$PAfx*Qx$G<j=;0#anC@>S5TqDDBj3M#^ff(F@OOPY~rjVF_|fjh4& zjOj?JrYWS*49+#k=S<dd&EW6Q!illCm*gG6_Djxj@DI$mRbm2&LK!WCNlZO_&qT}i zf}?XzhSWIyRT+I;wtqL0R)$mo&ek&HR5Y0`JWa$u@bUFuzy9X!s~68tUqu!-!3pU@ z<RL~D_~oJab6K&|Jpl)aFkrY_LS>EKVTIJ;FO@hm)OX`^wDV@}%~0=k&yAA5V%MpE z<x=2b_ucHC-FZst=W();@h_b^D;9J`W&#ZBtV@+uFhEI_hm*S>9DjF~(60&X;2Sou zW}q0WmL|rGFK?8qjzcE>Ekq@wW|UScFJExR$&db)N!K$#)8b;Z`X?jpUzBo~sIf)q zae)5v<)Xk~&5B%~#Dt~PjG>f(*}?Mh!E!>RH3Z|-z+tLUm^iZLcBJF-W1!=z-blwk zGm`whSI2QVq)QdT8Giux?776j;tKl`lFZ>Kl{XS&BK)1S{u=gU)17*F&_6VLRdIGn z-7?~CpzhgkVc6W<e_6;t;mktM0wOa2(p?V>$8FlR!ReLz$X}mC6n=Dt65m6dW7Hnq za6@;{eZ(kl8cp2NB-%%&xI-lPM|ap$YyOP6PO1f;Xevbq-G4LbyoZk>3?)auwN0xs z#^<WM>-n%wmz3%TZHdH*EXTrcD$<}$vnXwT(C?Y@Op&v_0wni8jwN1kbYBi)`;uu8 zh8avAVNs`8f5VHXl=5}V(c|oJEKaF)>&HL-9ElPanz|cZZFcLeN-9BF#QfY}l++G0 zba0x88%kAWB!7r_4ceQ;6Js7Q|CJ6@R{152G_K|V$cr#I1xZy)?TyNalwOoYc}a)i zga{|GvwCAr9Hx@%!cD;*G*RN7+*%0?9IKQ{K%+Og9sa^j((u|lilJEy`i@9co58RK zbQ+n;;6bE1Zpvs&;8zXCT)vZ@$;C#cDJj;~aHmpoP=8)YeVDx|x+_dY1V6jx3eWVz z2i5MA(j`Kb*ohW+9SgY@0KQg07e3*@ZCV3hI4Qb8p5+pmLh?lymzFl%8GIqqAt`yA z;lVIa0~nAu>eal$?*F@)SccZhRacdiy-RI)HVvkl#3+TZIb#k@_$T~!XrDrJN)1M| z*hk4<!hdKUB@N*6`jy~xk<}&$!=&Gj(IHE7bTCU{yD97zl-MzzFD;cu(j(nKxb)9q zhBTuYOnI&8Qk5j*f}<?N*68XXLj9;<uHc$2NFijc4FS7iH0W0bY2=Q;p=xX<u&?67 z`Lkq}d@fvTP+sCqSvMHFT;8@6^E5h%*_>e541bp;>f@#Keo&4NAy)^VIR&DD3;Y7h zJ%u?3yD5E$P$dj|&b)_n#9rOU-VgKR-OeTVnXbD+z2oHqmY*6g3=oOP?Z_~cwwM-} zcU{EpmMRmNA}U79ohXj$oT~}x3bq(X)hb7mdG`8M{`K>(oD2`?O*wB-r-p{0n7Z^b z^nYF5Y{&)GPm<ZwNZYu)a{DrzO_%)HIuCRwv_}s|C$iL_NRZUK;)>4<g{Ty<Lsglf zryR-rC1u#1h<wAGM;8sOlt3AO=}Ak5x{`9hWE_TQr@EaOesZsc>xrcm8A=h^zLfT) zRV1mE38V=DO$6JS&Oi)5lBlQERF<ac$bTz<HosXalUWlKnJh&<fU-EgK;F8?L)zLq z=`m9ghqfW+_o%ff%WN>mPWE9OkyQV*^zKO#$v<p?1XaONfQ{xoq}7#6`v@%^UV=4d zm?*v1b1@*2yhSB83`hqasz|I|c=E@Vy3nf0JJ0ySc`W~MywF`VNoY96+V4uf0e?ZL z?uN=QV)z(HZ|=-_GCF|7zCd1)7_{n|owK%5s#9l#<oTW%VwL8wUvaT5b0!?W4V~8o zA486X#xO>BYkInaAXCbjcOlRgn08p3dAVG2y0{CQ>eB1aqi0-wmju2yF@pUzcu<6A z$(^i_Ar=^#vAL0lIhOB;4?3-5On;51*uw8Pp~Si?mXS)LV$Z|Eg-W{Ug~bVGaBxeW zt?Xloy1X%VOK5jkG_9M(N*9`O4!+C<>yS^xJQ?+j1!F=!TrQ(M*eP4|0`B!zHxv*x z)AyPPdU<F%@8br3Re4C3l9-aGnPgg^6Eu0}Mo`wMwccA{<)H{MO+r=ydw&irJ=-`w zBi>X}W2Z@~ZslQRQvP-ZQ+cpR`ASK~f<^dZxWKY)6#$%{PLe|-3fF{zk=P>;$~xTV zM|6{JWRpInD`>hFZHb3ZDVaW{5ch_nTG@CULvep{*{Es*qx+raKkhHaI>guD1^Z;d zF|#8E(A8~?8cR_l#soXLRevvIVIEOSI0Grh{^Wg0X|IJ0f-1AV1p;U3H0CcO&`b|W z&$7Y9Yv4n?GED?OSQTZfhtX(gjX7OGsKTPr-;MxJh$k|DP66Q~*vsdxD%VS@gdpP$ z$2WpLB)eNaOqT-!L+3GoGkrm12-AxxU(S?0=G^5d+vp^UMXgRXU4NUWTR<l{T`g>j zF)<EPO2a#gbCqi4tU_sGB$=^V7-P#r8~r~4g%DKoC%a$w$*E`&TOw%Rs%gj%A9C#w zGfGKE$_J5ocy`dA>jmbZKT2M(0~Bb#2QnRg1@ba8Z+JhD$uKsPhk^Vz_?U{Ywg;T+ zo$J&l;Z%3b*~8HC8-HQC6VM}<Z^E2+Z%*=QjgKiK_JC)=L`9Y}?ns1DviIw15%Acv zFvsSA&8GBMwCKHpn?h{22RasGPR*6gZ~V9B%$GI?vN_`y@n4MLdbX%irn&jrPf))< zYu)8SbE62dF~KKm2xiok$EDZ%i5|uVx;He<x}Q}$xWJrpBYzz6KZ_;YbuX%+i5rAR zj5nGHQs5sQ9X>tx_LP`ZP3;GCVl_qkkQ%b5GS8CyfG)`p9ywKf3J}tC9vVC2G2GgZ zG?=jEL2s6hG_A)==CE}+3T$U0whdj6w?tl5e!a6cJK;lZ(D`ge4_CA;-9hdOSG29) zMpg5}9+jh}@qZY|7zup4x!)W56hP`{|4y2&EbuC4d3<d;i_-s17g3S2#|1%~Zi2GY zy<=n!um>K335(qDIXFHnftB$iVr$^u>}PQE9^V%6o`75nMtr9rcj+?Um)T3lP#)L| zU{X&9P{=OhA7BP;DCWs<{KzYw<x!t{9T@rNio}2`uYVs5rF?vi7O0YMhnbh+`iSKW zWuqfK^n7;L1#*R^+lsO-CY&A9d2ook@W_vxufMP8p~}BR{I~#qEfHk*>OI5|KE886 z^gyKBhui(_Wke1rCfL^t0GIpDvIocZ+~@mFF<0;7KzVhNo~5sAx>QsiO5#M6#yw+h zni*O^N`I{H#0_53A5X-Z@;kgLbgJ(T5k<|kD-R8auVLHjyKlO3BiyeHSnMK04PmMa z;WuL(Iev5U>h1G)-@HBbRFm{iz%XcW#w1@e*L@`Y)3Np0xlbVd%=~)cR{qSYeBoBM zzLq~YUq7%u*G6T{uJSXC>MiuF!<2-Zwpy22mw%>d_WAAP`~Ji4ZFbB)Klu~Ph0iE@ z>?e+6`)QbWKNaxbHU8UoKgs)Nep<DT-VFc|LeqYB&`<EM8Wz}`F1W?Zdq2YlKc9RK z|9GvEm)vKVfp~WQQTF-K+0}n;zPkA9@UA^6U;XpH?*4vWeSY?r`8iZ~+C2X^n>Hyj zUw`_ONRzQCU<#G9vR@Q!In`r5LtjdCxX{oxc;A3QH0j`P@RH^GyK%yEL#|=8aC8+Y z3pu-7ascjTcF{F3xl?-S2D^FTJA1)}-+ier2innu=z<4k^xBX6H;Um2e+igO@7**D z9!-(>&QggahI-Ix({UnhA?ACl;S+6IMt>C~w?meca%kFMhH}MVXR2z`s*IPS?-bKw zcl7k#+dM9asAHodfl9>10zURi2D{AseMAI4VxFU<fCcHN0;AOyKV9=b^02%63D&fs zSu_FvxIG0$tey}S#o<4nAO07JjQsHYqhKSha3Cs;3J7Z)0zv|x4IdBWdkYJEe1Cy~ zPhd*9Ea%lBKC|$=C$D*vNzIv&d17@;ffL#)t>P<3T?N%@TdY;T$Z1(i2s%pllLwe} zq7p&o`IWG2?g<AQHf?4CpL(R%weWCP>ItB*t@MGpr<EYiy8i~{H4Iilj!goJT(}bd zClfozJ`R~v-=={NJe`-ld892moqstcr)J;GJc%V*=*5Tos$(~o72lI6i_g#-8J+O6 z^xQqA8;7d4_aQAYr0|Ym=#tbc5e$2=4_B*|rApFWHbm+v>{yzvm!V?k!CqEN6su2M zC=?`2l}W`;4()U4V!Nyw_G>b@(C_^STZR_gm56d9DJ^^=aN@9cn)q6HUw^&RIv>60 z1oexaY0B7uAMu^^Sb@`yXFbMmFV@X=Nsb6?ZsbqZ=3?7TaBtX81@Dsnk0bM#C@UZZ zoX*K^kQM877VYu~VI$6Z2DkuyN5DlBS@~syq@&)ryoF?-{yR1hdiR_1)bTji?8h*w z!)VYR?I;cP|Ad}C*<(aQ&VN6@nUpAY_j5lHV9);jM)ZF|PoIp%VU_aUa=ry|(|&^M z$!dK~%St)l;J?o<TKs48NkRX#&+wn-;sXCE3c6?SrnvU8b=E80Rxl$4U4g9g!K{vw z6&c3RR%Pidjt~u<2*$uE!8Hz)L*CV4qSUGc(9jAWjtUKVCrXWxzkgeN7*0m9DAo&+ zWUU`b=*9Oc^utn?mEMf11lnrFH$UY3au{0qHMJBLqnfLx^wKBNC}T9p`GU17MLiKO zLy@nv7pJdYLucs=`a*_FQOMIVJNZu2O|}-NTifaUGq8-Wt2u0<e%OMTo4w_KHLAib z*GX}w(;_1o_?NsYt$#Jr+Y2n)j$$T70okuW)Q06y?xi8I0ym8Q$ejE3@VfB|hC{ri zV&XZZy5TCEIz(Dt%}}i@{fa|;lZVyvAxuAZ@-prf;%?ZSCDWArqV@>Jc#~F}+PQVS z*+&>{QuTF87eG>!OT=H^U=IcSJm|9M7c`Qs+3Nmqx!ufb5Pvg)xvIa}^fc-OH>~RW z2uMG^U406;AsKmJG)~wV3;nYnIjBLu{rNnMcLd*l);ApmdmjsNJ{$$iWikt%3MoP> znVr~7{g%nreA|_IATNKAPr4)Ig-^p^`!i^q!){vw5ps&=U>t!7y@}*q8%;-Nrl1>3 zJBNhUT^l!Y0)HT0Be5kqG<*<YH0pxpo*k1a#4rxO;EE{ZtUYm;RgbeK4@oFS1HbIm zwgKwgPG5v??C|$^0vkm`YTe7(w86d4rX9<|_$c{~L(vnFBdjhjilM?lA6cC)+6`p` zdj$K^vP^K@K6?CkzP;#YoIY&UbQg~)$Jo=~fAaf3e1H5$Z$?|`nk1U%$)A!ZR=U~a zSf=4fee)J|d<<G)3<>;0**?`D+hKv>GYUi?9wyk(BsQ$(;2=82?^!=|E6OvP9{l}a zbFfTzT#G>7G21z<E+g5<DU~P20)eVg&`D%J#)J4!QzZKp{LJA%FV$C|mC4j-JkhTo z{L;2`uYa)#<5$2&rAerP3hk*}>NaUKtixrEPHZrD;ufwLr<XC{BKw(fjo&3OzA_yO zLk?X_aanHQ*LB$kg@Waiz&5$RH`}XidhT(G)Yl>mp-$bcL@Yu3vHEIu=sV16b(6H! z;tI{6i%WIBECUCv>~kX`PSlGn5lB0}bCN7zbbm)BQ%&uP0tQG@15`s}J5pWVpt8it zKTrr8P=hMt*NrgU$tLKEjt@*pAil_inLqyQkeIFq<D1h9y0yD>$b6}(Q7^UemDSVU zYzK7*QPff(e5<zTEv<=i<>OM3oC9%X89+S5v^$*1oE#-G(m)fDb*l1xLq)KQ!5jIw z0)N4UoXxhGwzcvUDM6*<P~C`CK_ui;wCE$^*8Hjsm*>7ye59asCKF*oCPRFMf$;sd z<JfkK5w>*&Qc&Y+jl6n0O+cHiF1F3K*T*<^ha$O<R^)Q*)t)4uC4r!=5q9%IL<6A$ zgPI=nhe8iEI#t;->fW60bKL&y#%TRmEq{Mb4wD~&$AA72*rfb971=GqhwRnzIMBhc z8y3Li%)+9iR?Q`kgzF(1$7z!N_~hq_!p3P8%YcFtnRfKmQYZP;CJp4CaU%qu%N4Pp zl=$lUCCX2#EOVR!kc5RNe$W)ROZ>?02(z7T2b}~}XW57{TQ@h}W%7^c3f?c@y?;AN zggt4R^bJc~#InOHkwh*gPG7p^sO*gj#dhFfCIOK|)}HR$^;#b5i3n}I5C#H)-SS2_ zFv*1w87!mPxoroN7CjfPt)_hQ@|)xZy3RqjaSx1A{Gus)%BU1L97J=k&QcjMY|z5p zi%f26Z53;jyh^L-s*4J#tv6ZZbbpGpcH!YI)Hk^B-0*F}+g4^iTU6a*yDmDN=3^?- z;^NU*hKnSNN|y~l1C!B~0W9s!U)7sG1~Qd7;BHVO0(MF1TEg-cy>IzKFyxPz4yx1+ zwK7?1U~to*)Te;gFKObUz_^mPvzgp90>zrrWp=b?*eHJx2!`Tzr7$+JGk<CXMYR4d z!-dYgCH+46!|62hkdBJOqI^U*zXPz_IoUxmQ{{PJt%J4cg0et<@x`VsFTSFmCnw@! zYp=1Ds4!E?FDZWFB`{o0e}+=c1&AYc4SmY?kv>6n2QFSSS`?SY$HLpl0idf$?PF+E zqE36z>_JB>0jw!$P>XkfxPNmfsQoA1ibA<-qm|K6Yu3zRDJT}?ttd4qwGov<M66oL zvriuX?lBT-iUJF_OaYi$O3~tjsTJiAPdPrDynAucS(ht6ot#D<_cGKc*^9>kS1Rtf z-Rnr~9p`+e1Ej1=XCHn3{YUUWVCrtQ<Hir&yLUH@t+0xms*+;s3V&4F^y#xdeDw6$ zr}5;4f`OhYADxe>ud<^bjl`%+4iRfFivZjE$A#YSoBbt`*KCHseXPO7vBPsO^rSG5 z+z}@KNZi(g93!U22J@&3Cq$j4imxZR^dm2AXnhGaIk^?h|Iy-l{g)Tn#he6o$NC3S zvW0uLUrtN=Nj-8*(SKbTv^bni?*;MUAx8aubkILE_aSPO^QU{<#Syr&&3(ij^{}QO zx9)`K42MvOcUB86_q2lKqJ4Kiv=buj5UgwPLhu6T1?IyOsa)!HBp$sZAHxtRb)qAS zEW0POR5*@sqxq2t?F=%yB+GjSnOQKOIxzPDYU~>K#Wjyde1HBzj0y5SNb|YTQCM`y z1GC*=#F0}3PW+(F17sX>MSz*NL+vvvt;=(I5Zd77KOP7nK_gJ4eBB4oyo*ACPy2wt zaBRAZA@9&1ItI=ywh!nc*iFe-#s1wa{B9~Jdv+5g<&hz8$E)~Jaq`)njK&vhQIR?h z%m)<EKf0CHJbz+}oeO9$buOT6%l&`@FD~Wn#ICk+-2}Xkp<Szyq8FCW^GKp(^~lt| zB7EA!D~yORhz1ajm_)s>YGl=OO1!Z2QVW2-a?nd^aDD;zpeojSz-d6+LU+;^AM}$K zO0s*;Vyx(xZAx|CI&qRUby?a~F&vfkkaNqEX-7IaCx1U|RVsAsRV-JyVKY!xHVaFO z3g`sjIZip}UZ$&*K2BsmDR!MgTXc=U*Sf$o@y`bBJh!LXi(50YsxP(oN{*wM8CUxS zLiwH#kPHrWanTpQn(E$7R}H0c(CPRSTTMt3x{z%LKCi<g4XeTcD-bb}tc&_$ipS0B z$_F2O_<zhoV1odp8QJbkSisq3&agTiCkYHJ*^mWq+I0y^y@!&KX)#U_3;+n#wb2aU zW8wvL_!qIP*Snk!v{sFzKqhlof+NL7Y%HOMRjUMaB;AYO{4Q95j8|z{r~8b*-x$V` zJKL!6${eUlzPv$V;WhH-{wXj(fUW6R55*Q?nt!-<Hwi-fqG|IN!!?XS=JuW2q)nS) za`VNBoQuL@WcD?7p6+xVdxGUX_aJo=89Q+cUXlR|q!w(}f={@L4H1hEDV_s6bCt8i z=>wkrm`kQ6Y*5P3HeCjzMNTyJh*)0O<`YhLzX`gBhyB)3e;u(mjd_YoBsT$9@o^+0 zPJi(`I=ok65`55;LXNdu_sN%nQB~JONgmx6bX8jH7L=5YKhBn!Cc;##H<F?b1+5if z<?0LgHINJ6xE3Jb4i3xtiAZ5vB#77ANExs05Sdw-;(vk5HQwc=ulI>uS*8luCogv0 z=uSb3d;2!&<TDZfZvqL)d(!X&_g$Eg1%Kv|*>=4acR(hi7efk--7kR(`^Qh7#2rUR zpr0K*{qzs#80$Zq%^c5mA*=WIP&FJ1>_a8f4QV79l;NyzB!qI(_V1Ai>OC?*xyO1T z2KeYWc^Vu-b@wu#d+NJl#kRq@W8T=07@LPLFiZ9lW?hBy{9^pvbcKcOTQDOe;D6fz z!u&Sb-3BF%zFz~lz1ssaU-1y}5_KelZy4QiZnKi%WI;DebxOS>ff#pfCHyadb5=Un zA6?^&!ph445?o3+<Mi8iU!5d;X9wNLL2>WPQf2!_nDLFbM`?+cL#-%!aZXaM<#I%V z9@;wOVUM}zVQcuW?}5^?gxOos_J3#;DYM*rp=AQt2Qf9*Ev(d}-xmW}VINX#$t<~p z4zkexMBr&~O2=lFm$QO(z7O*#mHwV`$U8@QpW9GIZb4B}))KQX8zc^?T(oB(VFP;0 zW{a0)<4rvN4V>0aMwE<hHtlr;cLxS*guFfM3SKIrC9aiCKf?(<TUH${A%FH|@{uda zT~iv`0&BUKS0Kw<bllIDbwHPaGMnP6gjT75-Xe3BqwJegGGI=V*Wb_|lYK8M-`2Fx z8Jc8)m&xOG(OroK(K}k9&Fi<iE_ieLxLJVg5Frub&=yLpYD%92LUTb*ckI_^-0Pm& zaGZIE+Ko?V523nguFH-MD}VMpcE-UOOU5viYan8e{Tta|4V1|dL)=RUsz^`wDEStK zU1Ief8(VUB|2{=2WFZ2hO$3;E?T1#(U{0=)j(-QBwE^00m+!e3v<w0z6K&PZnwAn1 zhsFSdwo^>W3m>7O<8(W$4*!@=_|`orQibjtmyawlBNFVf04eIk=6~7<b?nLZqNwRo zOl;U947sxIqRigYjan%<b|gIAu*B}^X26-<Zr1<uDaTmed&(JT(-pqE=G?E(^Ckw8 z=S64k&GVw(7|&CYQJ$A2e4aOXWrXMdv%C{b|L(3W_hoxq5Yb@NE_K3^$ZY#pnr~*a zM6I2};%!Bxkub+yq<=nPIR+?q+1W1Zz2yA8Jty`t>YqEofDse}dTJ=x%^~e0!!D|P zA^9RtYi4bV8gG0+UL3k+JIC^5++CN~MLi_1UpZjOFY%_h!^__2TErgNeOTWm7nq(X zxw$OKJ$}hkV_WyzwiQ0)4ls@3ad?kug!0*vO4$WM_do|+aeq0%t$!#A4diU=!@uO& zl4>@7q=d!wsk^8fbGPEb<ug)N42q%HwfmN>U|FjTs(hbI3ZeqhX`(7;%21Pw{KDfd zXBsJaah!WVP2nejJ0lg=u`75z1=wmgB&fbs>agN>(_Bo(VUe46-&ssgrkTW6sb_TQ zVeHOYe1gXc_<zLLDC8@{_N8RP%H5bu9p)W#wfHqxb`!(U`mTC1w$7`8Ip}8xy`f#_ za-~P3e6WKNKHB9dvwP*&(nzlRR#&6I$20&7!k8Wa1;^C@!5oGrAZPAxzWQpyC|!3q zW%ky1aVSP?6Zm<zx=W%}K>61yx{Tj1+FNeQp&${w$A2a>#O3$i%c%x|@&4oVo39na zi_YvXu83Ya5}w$B-RVWfD!q(5(dE-<JHImHs(!+nK>bww8$$q}@F@oOG!)u2P4rAK z**)kL(qC1rT4W<EAEY)OCN9?*^ZQ6(zzTI*)QaS7=Bl-lRimki)I^*~ny<oOVF7I~ zNjV~NP=7Ea9&BDV&DF@oU8^Ofr?QG??dAT<6imu_)0bnH9XjUA^lVwqw-@Kh>-xH( zG$)z@iAv|Il`+n;Gr|hk2?@d+0RMuMU*XUNADu8Eeu-MYUC?pyF<pxtEONh~GJ!v( zOLl_G;-qhzeh^38O*eAo8(|z$+Wy{bITA?kcYo-rSG?5VesLKxY%-Z|hh(+F9;4S( zaSck?wb;Mn5o|vc>os0VazE%CXCs=pY3lDerjtmu3~hn&8P`gD;xXaRea6BEC4h8p z)Hwhn@$BX!0$w;HtRD{NK97<Yly5>UwBvxuS6Za=<S-Tb+gN;s=Z*0u3Q;ASL`b;! zDu1}+n$e4IzB+mS?)6{Zyvkqw?{}wr#mZzdr=&<fDHBb8BGOLI`Jayex!%W#Jmch* z<54Z+Uxm{VZNi;i?GB={$j4dfdYg>$?QU532>BP4F!*q|_>o{5_St{T5em^d0xm6n zVP=<0DrgbKTJV)r#K?t>BKzgKd-nAF?0@M|<hDr(>89BkMm5sHlel0rj;9QC1MV9! z0Ca}7OPzMsk(kLu9n0^%!j1-dsgtgN<nbCEyO7wS1;zw#uCC)kcyG5b`J`_h|9`e~ zu@4MmPLqqeOWh*tm6GA;m((PHQ%smYN?z5Jc17*ai}g)$hmov3U6Iw{>6?+&f`1K6 zv`nwIYi?$gMLD&}OuD4mj63yc7+u51cP#I*c^@ad;Td!ws3CSS6y9rSGn6lH92gG< zUAQnhA;y<h<+|eW=(ym!N7O^8nu;yhA>&6qoBW`NF&J3Ate57tSnP>c%tv<q;i<xP zl!@e{$4(_A8aIaEgNaKkiVKh`Dt~NT1XlZXPS=!wA?G-7_mMSuZYx=Q-=6hqKQMH| z55|fRe{z-?KdqU3;>`Id`40?YR!*J>cZYtD#8Z}z2t&$^vz<|x_QbPq-@XyMY4Mfv z!z|VnUh9rIZ`5^WnDl0GRSvT<?uS6Qjrk%d<EyYc!2Vm_h!%E5z$Xw1eSbgq2m(S* zqu<tQ-$JGqjt;|SgWz8@HB6l0UDKRiLVrYC_v-tCK|tr5q(>l0CL_sEAkOaw6?D^G z(>qFfMkZugaEh(XG)u*4<XN(qQG(ubc!6Fb(DT02^?EQr*3}{yZb09|cUM_eM^m~w zjii{GX))wYM~iyuD}PQHsehj{*o!j_9=AA9%;Z%x63+JzjziIUq25xGenkDArxO_B z2hAUD>k7qj(pI<SI^otc$q}PM(K}mlIuW&uhq~a5!$@aTBW<fp3B*{Z^2?}6!5fga z-N&$Cb$Hg71MGea%t-Ew^l5UoV-*`+5LC>nfnglnUeUexQ(W=c$$uWR<TYC^eA5QV zTx6Y7aM)eg?PJ@vZQEvJ+cy8P8{25mI87QfZfx7O?XU05nfd0NbMf5m`)9AU*ZOUo zP4k}h;_xgdhvuAeFpNLMPTy6<A!wHW7Dp($dZ_-ho@nR2XS`nJ8EhI9hEK7$P{Bak z-~9h2WKlK0ILlwYvvhR(2fkW>T}&oB(LCrhnm}80z={&Y+*Q!(KjE-0NxySv-4~a! z?{vTZShlJh8~qXl%G>%czY1tS;kEaS=s-RX?gG|r;Gx;EOWO2ssT9I}y}&pn%`v9~ zBEf#HHa_r&rhyDPT3{8(*b;*V%(%;6*akmQX)XoIz!Sa<yFm+;_pTMvI%Q+>QHB06 z)^h<3vQ^4juBMSQwTy^~h43QvV9tM=6qp}n@s%?PmPHByXm4i0F>fex5HQy;y`+4z z&Ipur|J{&5bUC!!u^o6|jX@P9L`>U<NbxtiL`5n2jAcvXZoOjix-6u;@orS9n{d|c zAzG-qt^E%2k=^)%TiZI7zZW_FUU5wJZO_{CSs88Gnr6Zg??y2nR+0)eE5X3PCFQ4( zBG~U>oRlU2zy#hq3n6i^*!4vREoR$Fv)wB;jWa{I=UnfPj0@O2elSXW|0QD+H~bRn zsoer@-)0r-5o$m}s<Ck4nMs<_HQ4Ph>Tf9uSpyGF9Y4pESOt+Me|>(h4L(@FyY`r# zbx)a<=&sk+6$A%+Y$@9^HeI9_Y!>Z99yw+yYXi#*=+M>@r53wKU^IB;+7sgQ9&0_k zGJJGl`4DTB<)m^yosW~8LU{|-HrElTJwVjSOCgU_?);5dL}~br;Yj`330%eL*xVO# z9Wsnz==KU6Db&4Q`W|!De)O{;OYZWNv@ORM=&8Z?W~mOSMv?KtR`a$E*+07_bTz{t z!f^@%o<1G~ZHkGY3xBEFv#FNQlP8`tFm-7R7&mTOlh0(16V0;2@+2qhY7`cNkA4-2 zq&mh+YBOv(+ND`;@fIIc;r5fs*J>Z`+TzB`4~>sdX;q7hhFiu}(akjnbhY*iggYLp zgDQo2w~t;#$p?e+l7ru<kzuJNQ45j%N_Tz*SgzWs6B4ncrP4grL}XG<e)Xf6Z}F0} zLh%1CORlUhIBq6rCDgwIiy=Dkd1I(Mu%ClQQ{#CaOJQ-^`9n9BuC@0Z6FzUdD1Wi0 zv)~B+2Fcjb|BFWITbaG9E#GlUH6)|}Z--b>C{2>=h&_At&v;*GZb22>xggh50x}(E zK-$2M-J~Ut>Th!U*)r|r(pW_%T(l&_9alSn_~j4FJgu>$b@+NdM^WRnNEYntKfhza z@+4T8NI+|AnXRj_!b!!6QJE#wlp6e<+TpIw!#@b17;$3LJE$fb?N+-^(`Re!ARTIM z!8&i?gQT*dvP2wAr}{YwgXNDr$xSH;05SvJQeqX@32o;bA<E+T5Qe)uGcL%3$|Hl6 zaB=;GPb@m2(JH>C6Bp2BccX=p5BGKK!UX@EsPPeFc4Onl(MvpS8!LAH6I`v@DB>mW z`aX3oy@ggsDe`29Q4=q7x!MqJ9+HH(bPU4&zut(N3zp_ldq_i)BEts~GH9eS0Ln<^ z%@IgPUuac!^~?Rx`NGmx$Ls4xK3x)P?yzBl!E1N&Kp?0StQmq<Qwu#2Gse>q<X!Bw zG&axQ4#*mSty1pRr^zdPgah?ZSfseCGT6Cnt=x@&q?TgN^qYD>sV^S5#i7^tDz#bM zRJv6!@<EU>hNco5*Ks(qkBjF?AanxhL=>>2WM*?TPi6kQ#5Smw0b9Z7gUEw&udly_ zZ2|i1=Hl@qv>J4IAch_;-Px)t;H-9=CXOpvuB(NXl);|JxfsGbr{UFHvPBj6<>Hn@ z5|;oXQx>v1dO#5!%;CH$Nd)qT4V^Cv-^Uv<E{K?=?n0^lq?dZED(sjEK#LOjeFr0R zH*Owh)_#pRw_cdzBu{FJ(}?JQ&ktWUE+RkSeuS}Plndq|lsMZvm2fAtfuaq6{mEzo z1+}+l*8FfZpJhm{!lN4Fa<m<2F9O$BVAjzDu9cDzSJX~qLMi9oiNA}%#iacWe87mc zP%;QLaHT@-*$VCPWjPNLz+%m#42Nc>(vJ3x>}KcJZDrU;`iM^o*zy@(`qNL-K}`Ps zvYj;mI{-tC@nJ}ka=z^~#{9+0TJ%W%9`1K^T2PYw5Kzt&YwWr<LZLN!7*{$^$gD%f zth+3``H5xr1h|NEL=@PsDVy2XWGsGHA&0BEvb8r_<mGf);y7;ynoNY1CaaZl+w!B> zI*Vb1;jF{aZ$@;tw9v1hBp)9TAi1_tUY^|Ohd`@+Ed%+65W*vs3j}<24-it7CIc;< zPMJ4I5WjXrELuGV@F%K~cNYa#S1mKi+)bZ_ZwBmnFKSqJs$rO<NrTS|*ZEfte|}RI zP^UBy1;umQNQ)EzrY0zU;&-KDq?8f`7`@%h1TMOeVD8Fwjv@4yukVbQ@78Cda$z4e zKehQ0m22G-J+0QiU-_H}Xxto?`qc>-wcbGdWUkFDj}g8~A@e3)vgK7W;<lV4qneko z$5+ImDKKW(Lpt;>*Tc|fT}=g_-9_~KEUz;n8_>QfsKgflw(I^~TwJa?1^Cs^Egd)# z_g$STgluFExs%eibN`TD-lrJw|LcV2k8cd`#ve|a-3c9&XW%ci^uT7A3}VLLdXS?} z<F)Mtq*R(A;t)y-wjfu7VkE@|Qw%@h^m3EcF*zif|A^*yCis;g*}qZ{_rlU~JHw{S zl%|mPyhFzaT(plO5Dt%<d?!cXhTORW@jO6&>{W7&c`6SEo8S(pOmU~Lx-8j$0YenF zHYLv9zrbcrwkr6%c~ZYEEqvSL!Hc*`0h7GBemRL<s+;*12c__b@BUX?FVZh*BzjON ze^gGe6rE?7sjF+8`k~=F+IFy=EcoVlXvJfZ-tQ?l0F<u6>My+@5+01mZm4q<A@32~ z5dDmtm+H<OD#?~GAf-`yO33H6fi;Dg@|+vVBd01^slD2hJaH!P{rG0@<*^vL{vT9m zD*JNRW#MV<cBQ;Ph!fv?iGo|v3z9}<_Yf>1ooPL+6oK5i9xh)@-8>%VIfInI`=O=j z5nMM6NCRCdk~Q6|2=Q9e5G=dsQ4NPIDrZsAzG97#eHoaF?b>I<voI7bOzi+v`ic$+ z3{{cv{wQO@S!phGoMTJ=3oyT9V-__Uf<Me%bU@c`B2juETq#XkArHXOO#GfWbD`h$ zT;IT(fJjvU-%0%QB5n%0Y{z{EUYZ#ZW7Opfe5yehL=Q$`*q@u(ImKA0QKb>)kVtt@ zfk-%~)P!fqg5S|X;t`M|Jr8}`+>>|O&+8H;8UGfg9Jq21uHn3?nBstV*QTpMgZ?w@ zh3wES<X6Qx4>Qco%0CuT=7fKO+hhY)o3{;-j@jdGZpiXLK<BypNgbyj)EKm@3yP{b z&?!BW<)FWmgq}S+GSs+LBEl1JcY1#^w|~EHlf2V^WpZfLqp&_{1+wenb#va(dU@~M zW{Ep39Qb&?x5ZC8|8!H>zkRLLjO;zhk0Sp7J<_u4n@L5>k`Ge`-F7b@n=9bKzJahJ zOOqkxsFb9FAa2#Ny7j=$6hqfSqj1x0yG!SH@>6+#u9Uh_pj@SMeVHicR7Rco_}c-E zH>KQzv~@c3Vs1m=!kjS8%Z<@`K@aiPk_n(x8%5BApH-_rI@l;O%~p(PVKe5vgiHfS z!>xtEV<hUda$t!6-mb=F0N7H<27|#J`>9fH<ZuDiF`u-sqrUU7!}6uNMvUcbZoQ>Q zmLcC+A0%Yj9_TNM5v<ngJX%lt=IhseOyBuFiOY^B!;gW9+vSOG^Z@o<zUzXk0G@MB z2{qcD82xe|7WKZRo)&zZ%>Af|z=LNdqr5&-W3)i=ofeAAft~MvrLbLRk55&(I9z#e zbO5)lTNAtnJJ$+o%?n!20t~&^+OO4)j9UD+e*+WzliZVw^K)T)zo9-gMdCh>N)<AB zBPs^gpJ=^f(PTyw)1S%|)W4!n3bi-Wf0@?_Tp|MLWhJmwu{=c2mKTjp_*{&>qRF92 z??pHDwhhL!zJC~tkbK)XgMS^j9N-!}3j#k6D7@LxF@F~N5qQ)Xdh`1P&nK}b!l|>3 zU2>YM$nqKy{Om<5M3^mUIA_|zr~xJrD~!fGR!&m6O?k1e{FGNhJ_u@Pia`=Fi?jl5 zrK(JD*%)jmB=SZAbE8$zf?W44{WY(tAA_rV7Ul@1_t4$*6d5SJ7O=)FsF4c~qyYLf zx}FUXwycFuuDtQ-Dh%@&6sB8=l_e0<jn&De1u~z2WaAQ?^@@nZn|e_bsvE-zWNc}p zn(HJ>n1r<5dS&Ruw1G-?d%b14HS5Bx=}*UMHP)TBB~G49HfVPI>km#ypJj4*+5zfb z6xVN~15Q6S_d}OCdCE=Ut<)v-djaUYFiz|yhM+*5TD`7p<kh@^Uo?E*SSGFgrp5GF zWA(!|X?kBgP~#NqH4f(U2p+9KuHUGYWkxs)<zktSR)Ye*5^)Q@ugo-w7cgfZRu=2Q zi5(x;LD79nC^M*l3vi|?T2q@w4I^<W0x)<$2Pm}aESZn%zUnnafU9QwNkD5t*ksMX z+IjPt5615fbUrmCB#FIzA49lvqWfhEXU~pdcxa^%9T-U~s2p5hkttS;bkQ2K<Pr;x z=0+3nG_&G5L@8kw)vnemb+gg+7RlYENV^8pT^Rf(Lw9yCMJ`@l6izFF4?(wkESHcx z=SottOv|j$+CqkpJBf451Mmx6b??0GrEK|(_YzV7Cc)Ge;5$rm)J`|FazEKs^JjT7 z>*Bys3}5$e19Edy^H|uXU0*1H;d!wty4ll4raJjlQRO~Xx+dCk#Mf!eDvj{+849(0 z8kVr486jRfRF{LX@gRQAY{5mq_I87DDFfu-N?||4smmW3hrzuBh-2N-JS$BdCz7Yt zRl2BE>}=zuG{49ZTlT{1JPapCK8(0TiiH;#F+LmQXltv+${0~>G+<7F8ujGH+0$sc zz{^ubbUuz)GmAMvx+pgIwfrdFXkwU#k%7t-8?jy;oHmoT0Fs;~zo}#x_<BB4{sV<+ z3{)9OztS{N+{E}7V6d)OgX*PsA8ClZqC$JeygEqOCjuKPPu;oGF6hUm9c#}&OF*#o zHmb{B;^K98={VdKPDqhTDK3etJQa6BKVM@$h}?mpxDVCdhiaA*y82N<8K7Yh)$V#N zfVCXDd~mIjW@8O~WPWZ&tR$&ag&pr{k{Qr}TT?C2JoLL7K-Et{^ahQMwL?fXLeLnN zr#j7z!K0OA?1HhHeqhdbeVlv})W)nCK++V<w0gxRa_47aH2LAS?u=9OC07yI0VB9~ zwEXj?<hqESXuJZyh&#tsCpf>o3*Uj(`5fmsPev}X;bo(&lD5}{t0M07M0ge6>#WJZ zq=Va<g!gJ17?Azx{%v}~C8+kAABLl|+V{^<oPMm!&{x;=GPvZ%=Fs%_Cd-oO2buy7 z57=->M{`V*cYE$`%}q=EfzDfQ;(LGfc0Q6wqu|tu_PH_WIvSX=DX&PII=kEAs4;C> zzBLZM;1<nK_y(%@Xh}i`txG7w$?&8%t=3%5;$v$Tz>3-PwH}UJ`u@*4(gNPMphu*C z%MdVMOFNdNSddKZXFF+@H5{+)eEJQ3rF>wsd)u_M+0CVxNj6W!&1vo1ImL+>(c$hS zm?Q8EsK|puV1R&tz<@BQ)JgpU!TZaP1_BZ<0s?{sLIC39<l*jNYGGt<&unC5<7ne< zWW?m0@}&ZWJ72D$@!$ME*uxt96e3kFAYay9pTQG5c0lOb`!ll7aHKE10@){EY}KK~ z@wD^kd^-WU+FDMvE?#Gg5xGlxcym*Y3qRdrtm}+&ij9iPft-JF2`te^Gdg~(L(R_* z_npbR2IVA-vfvHUzj4koC6;ext?{E?y=XnddcAJ2&)hI$Vld#R$H3Lc5Y{se5Phh) z7G3tw<Z@5w?dHme0c`nycXKy-OE%ivF-iOjG;Ou?RB7p7s$a)=In;gwu`8|M2XC|6 zS7gfRVq#AebsNX}IIWWgc=1{v^D4+zl<wjSjviw0*$Sal2B-z$z<CAz?oMw%Bp*+1 zcX#`ap0JkJ7c^2btkk$P#}zjL%rkphx@m!Nc>|p5$oEasDz|)WJHzY<&0ETh<ctok zJG-9bBa7zgCSRSEoxl<9_wN-vCgmc8zi9bpG&J28(pK<%-E90eWa~o|Jk-#i_^jn| zesSY`q|q8OI{4X?9<Y7GxD|eI02d708tFL3OX%A5I1IKe&=B*0FmC?<mV-{1o=^Oi zCct~r<+{vqt&2ye73TD79hHT+I132vRP!5`d_M=of{L70)Yjbw(n<byLujAm&1#!Q zr}H{hb%d57@`K)Wqd$0UQANZQHC_JEBqS!Pm1w!dw$6xjec0GplyOthj1>EsU)6Wj z9dOc~b-<S44{5f?R&zT66p!m5&bgoCRh6}!tZ~f5a%C0qEY}XutaiV@9E_EO-N?C= zNjE=bVwPitEBR+5xKcG6cqPA8_dX1Yc)%@o8U^cSVBPV){p|$<$vI%L$(zG_%q8cU zGp53*%2A5twT{<b({P0yhOR^5ZG&<|1szqy7t8>qhxY?3a0}%HSX}mVb?z&{_g;qv z2COXkA#)k*v(Z<lvZMJ#2(uaU9{gds(y4|<g!r=?h?mDuEHXoQhZeG_yng-E(j+hk zi!biO9D#V9DXWuf-ae0TN^rWXJbKe@vSOZZ4C^#L(-9%8f6S5sN31@ognZ-v<<B2W zxzN{o;5tJil%B)~L~^vz@n)`Y`e_tX-~Qc|3&(5#1rWws564@*9>oZ|RfHF4jQOHC z;3W&$p=Efi@Fo-&ZMto|bc|pfR*Xf5%nuObg*R+MLrIQ7p9N`7O1WRVi`*a!R9&D} zQRP+ld1yBHcnlLCPx%sMTTUEP4(CQLhP8_WTknyRZ}f41I5h3zRu(!{Xr5zAqEkw| zsP+yeanCn~Bx4+=j$CbJ2$UvykK`zg4VnC~Ml5R*IH{i&FB%Hp6~JeOEMecEaGKc& zaV9}hgYpm&UIKd8;yXWnh?@+LO?kL_27aErFUJkk)7<m*>4g4{==;TSSLqr`N&Y4E zHi5GP_c`eT;5hKjZGv^p81Z13G2zk>2s#pM&Y_AcPEiohK8C=$sfWm6%FS1forRPK zwN7EJ#fM6{4~tBupg~~aOKwgtz{U%bW0;B6AClOuM>%5A@o4*pOl{>`5E}*XfP0j} z${QKw7Ze0^cz=<<t-X|cSrJ=B$NLnzicEYyoV;%UYY71NF174Fz58wd*x0}LP2ZgE zj@v>klhHR_#>TTCB+u3R<wz9*J#&`CFq^rx`#D3i7O}?UDzIu%tB!8HHZudo5d-mK z5Nx?%8b}(%TQe92v_r^q7|X-^^D#T^^FEI6nl+a&UFV8ICq`6RCJ^HbJ;!4!Rd-8Y z!<%`)N9On-1>2neBjmn(N^xYzos>IaDmjTxF^P8#uP>zDrS&nICBEo(+6}szTbqT$ zTq@?!RdWVo^--yc-Fs?)0Xf%ki(S}m1k({C81{6l<S-bYP4<Mr{$*2Yov=Y*2MZh7 zW5Ep|&CK~!nSES{`Gm;hmY%<Hgr9hX1Kte8$4o6NL`qJ-73Ku!2~EU$fG=p<@=i)Q zm)BYQKs?5*6C*g+<@mx%=F75iC3fvjvxb%I)%ncP;}7-i!~Aua;McL9pFeWuv!O&y z2=+OXsvaaUVzeP|2xfsj{f*+*S6B~5=LwC~qq&QPPuM6f%>#?Qg(1v%CNs~%5*Y&Q zLxzR?xm(W-@lSO*Cuz7ewv}G*uylvI{GIe<p#GEt`GXw^g6CgAioB=vf`9P_agkO) z^SdaUBvCsirPK17x_Quf<_`AA1!YMk>Or4rCQ-^b;Sy_3gN=8(d+py9m>lKeQz1pB zX2$7;l>M7T7Kv}A%L}|$zB)$YT_|t>g=oNPol?0~A-ywaxJzdbH-ptt^ZZ|woQVC1 z(g-5HLN>g0?atzeT&+}u5!N~R-yK2KDH;8Z668FvxR876QFvas|I*GINztFHMQSld zR!zZi{6qN0f;{{0pLWPuD(`aQWo(y3Yy-a5!)OGh+x&D3sA>}`iIh?d&*ZkiaLb-^ z93k7%P8g#od)|pe@|h|T3!N>MjEO?=ZdlP6)j4ggU1Pw&XS7D)r(hD>xwepq?^v9A zRNC2Dbs#M6(;k=DH4%3zsL!l|SibUa%(+-Wd%ECEvp^H;>RU#t92KVF_z!0>Zc1|` z8`K$}Z2#uv@j@rx(yHQS)nas@MF6QCD`%-JP|S><XO(*=-`hXru`leKG8zm&zl)|y zsYhX{W8P9VqC`AJ6RziGMlmik8Y0&klhS9Ed2iYX(;e8C{p!_yf$+g|xs6|5^d^@p z>3v=MJ6Bua=(w$=XNpyMk?oIyH-aaok{+3ybt3HWm0R{US<B0#c8VrI0cW>0N2OF- zG?~Zml_VFVU5eCW$M#pKbjN(qF}3mBr!4i`Ld_zxk$uyl7QG-cxAM0ZQd=B>G7lL? z$F}ot-P0qJ<h34Q7nE9RdXo-T2r@s*qfcoRqj4PrPBva>SKP-&oJ~P1*5;pBOArmb z*Ufq+GxF9b7PsJ$TwRO+vE1yRu2!H@Gl^KWJ`?qpp%{o?;^Ms4r?z&|rJl9&7c?CX zn<BxMhm&u}Rp}@GGhAW=;qY4M0`v0ABYw^xX{(^e+SG$V^l%{dE{*!4C7Z#s6C^or z5(?n#qY-RjOX-F!P}>Hz&h^zZ{7q-?njD?;C4H#K45-Rp`H^ElM<vu9Y((9QpC~9T zUaceXYkocaNwcDX2H0=gSK}-(d@B{!{$MUdj9B~>X;~FE1WAcovISyxk885<7^ttz zcy>-8=`Y9Bx7#Xjitg~q)_PLTj8Z-kjt7-<qcJm%%W_l{O2R$#R{_2_=@SX7)Xf{4 z*gn^)Mk`1WG7l-h#lu~&!j&%~qW0Xw5L$`Ust>RE!{IzAwSGokS~NT}&Q;)pc?Q1` zFwRIs5O~`fGg=2JU|oOQ7wOhHjj$T85jUW}qBycW?$^yFu6VHZ=^S7~Z;{luHZWn- zc?mISnJp#)VaaLoL2OhzB0Cmu2BpP`ET=bzW48<TytDv_?)ys;zA9i6O=t~o5b)oP z?>$j)zkd>`tP5DQF)VK9|FRIAU+W`n{|<|KYab=8D!*-W?|4a(eK%f!zYvhF2>RR4 zOnHxFW?niIii4m@U}%q8a1MX-042?JvDuhX&EstlgykLt;fcBuE@IYEN1skiS)h6L zP6mP3n0E?T!%~~L2ZCuSx&3np8uvpjKL0(<kz|<*_s=y=D1d!t)(m}8j=qh~BA%;` z<gz$z+Us_?l2LXGP~LrThH~CdA>?VvP!rV%4^JPhI`&XhZH7Cc4;My;OB$R)Njj43 zuq91-MDM({bI7ZWZ<Ry<WWh^RcXs<tWZt-w0wzGGdIwL|yC7Sji-hMW?kM)%CM`vz zvw9#V>QrKK3j4~)HIXtZk=4HS*BfTxl|IbyEdNokrQwdw7FX#0cdO7lAyS{k<<gux zIRW=uhg0sK;`F<JXQGa5bh(bXH&Ci(kcbU#+#_#3l?9A*v`yK0PGgSXu1K%b^EU2w zF*N}gN4qeO2?Hj1^hj*Q$QA|?I{1A9PA{n1saw)(r))Kb7Q7}555p{UZGoYxmP7`p zqx8KDDCliJG5ub3!5<_qP@0{kASCK}^^AvGy$~!bOS*C2wQKk__eEfDlPSB+g23mw z=oChI;~40<4xAdVk_>lwJ@z+F-L{aKLlA&pO5Kdl)8E0|)a9OF@i_VkKMLW}H3Iv( ziMbxnf3{r;ySNe^`ixS^2A0ewX1pH}*)qkyY2^tv@Utj#Q4TxxRyrd&oFMMNBEweN zx2mVFz{_R|_7~ZsJ!K-8Qga3n&TK~bBxWbY8ZPw7jW$m6PSl?%)Y}{2*{8+Vy_W(d z@k}r4>6n|xVkXdYa_dPs?ATA8#D&LhSRuvTurb2S{7A}LFmhf?3=gDDeK#N>KSH$? z7(meW3;cRnhcijfm;;z3lkMM5X6JEF47hQh(FNKldpAR2$g1B$#N#jP6$XjOGiBHd z6ZMk7lWAZhXrwu!povP~SlMJ>VEKUHc)n$h0#iMexYJXpkW&%zd6N0JS2C%-<Q~%R zqyM1mBpbWgp^s(Gvy#z@bz{u2r(NV#g@TR}XV?{2Qo%bS!z$8y{Szkb&<D;iQ6#Iy zC`seYvs|egxUZe0ZiqcULibx?^`2i;#Wis_6O|6*6WYQKu4&_Dy{JR-Yrz2sI~zK; z{LyT5KQXh0bzCG-oJnkgQc$$|R6e%M!C=~OG<UC*ANO`+qQ8E@4U3T&?yxfd1Yrn! z<%b`=PUWk5Av9FHpLD8B@+^x)>q3WAA`zEDDFL$vQ*~8o-(_{R+}Y7~Ajho=S7~?D zB&480>F&t>z$)xg#HrNb)HntZXc_jEBAmLcr)OIJ@{9hBk3`{cFhZ|oi5N1t7fOB% zpgR`ZcEMI<#y^b$GmaB*Js{<fN>KYKRG-K4dU#Nqwkckglk)4@8I}e2kTHi}@goO| zCD?}H22q<jGcMBl-lI-fnHzSFA~)>;wSS%{^pgZOc|{j7cMkBLxwr%*SFJ$n{D_%5 z%t2Y43AOvI<gb70U@%c-TRWOFwY*jj`wya`lhJ128^Zak&m2~nP<e7BD6k$&h;U@= zg--Qs{TL~zYV|}egd<;K>ga-Dn7x2W>mjRb3E85RQv)aSB~1obQQU1{&etr$>~T8X zxqrjmF(`VYqInbz8{q>;4eQvN$d^q1q}B3x@y{`HLl>e+`Q_0ZdpB}kk57D`j^5bL zAf&h+{Rgxv+y2GAH2bn$#J-W5)ZCyGt9w(NA;4w>jU;~j;VBY|{AW357Ya_z{jrd# zdl{T&0#}0e*UnCiGJzP22C*RsxBB#mKWxcOmH9kd!#`r<5JnxKi}*uU)8JbG?4{o| zECdEj<M<n#eem8mVu;Fdm=CY1MeX7WRoy^x^}pUJ467IC`V|%gb1y>7O4dYS;nO~C z91{~$ujT})ES8gULUx5|C?U!*I+!&Y)8*UZ(e^WHrXuohsEU>!xcV@Ni)<2$9_&AG zh(v65H4OK-o!p3lNpb6nn$~k_x!9cIW8Ne%iS6hxW^m+ATvHhk%Hur;q9u!Uv?0~@ z6cEB=D{TdA#RZvDhU*-qTti}=1q@M4ykOZ#k5abw=F<*#Atf(dPJ!yc&NHw8FHY6a zAaBvlJ@ep%Y<rG8ph5ZQdbARd$ozwtfqSX`7dqh1%O)QXF_pU{`rH-<etUSM<2t4! zLH!WE`X@8>C(k}e=<D@_B9_`#M(2}aL@V%IQgX(_8xrwdry1QE3A3Txh4<GWQRbgG z7Pr}HHZWo)=LNHSxNW7`T|IOnX%+I=0Wlk|mO*AT(|~7#&^)z0VSqYM=3FYwPasR% z(sn~en;Ni)8Gfd@IX!;H)7f>RPF%5MSH_|(GVXTm7XqbcSsLz<V|g?28FKb&H<P)$ zegAkb_w|pnuO&i8rd#Rl&DLVPl%|hwAAJSWZR}@s`UaLxdl!b_as*%huiVT0+zO~< zoZ%}{>zWDup2n=9ZnR@7Im<{<<}brVpb~%7e*gw=`pFL)YF-x-si2_~mkFO^!4BDK zn(7L4x`KW}r{qa1(?k7?HzZmas+~->UmF)f%J;`2I2QI5I_LWF;2g5Fw*T{|nJ0!Z zbV40<{e~U8f4Kf1_z&M?mjeG#XzW)c^3{By36Rj+c0<r|FaLIHSDmhbVXC+0oZUxt zhZhbXhV`VaQ+AA|L4}O!=jAWDnS}SJhY%J=RN=o*D=^WUw3JJJU(o++KGm3Lq{Nvq zz-U?@fBSD5d&~$x!6Sq^Q?|^hq2oTSH2zH^qQxu<_<u)tJ!t>;D7q&p1aRG0B30)j zwMB{q0#d^P0)p{>yH{pT4$da-OwK+U-(W$&e}qeE{5Sufd1dFe#&z2s2s!DP@U3_{ zY28lUXdz4gR9|4C552q-IX*!=DRCg13>Pf5`mCw@!}Ep&6z$u7b9Nj+3HJ8av;d^B zI))Rr&tl>%CW2IU$wJjd?Z`%-f@54wsfxy|Bq=*8mZ5}IIX3sCNN;p3iZekHHUYC_ z!i`;>)68Duj>9fL<~jcM@TXy_2I^co*&65<YMrMQIT$gcX`00eS;cXAHk%R|)UTSc zs7P0`Z|LN{#B<3h@WCE{p@yV~)G%w?`i(|XicZ14edb~!3dYFeO#ihJS<nxTe#7JT z1d5iO-t$P9-~U`Q4y>#69w8kuK_F2jdyIJR8pPlORS+@x<i^0o5Xwb$z4Sg~m?PQp zoV1!Uxl^8z6#C8sYdW`FpmbcM_eLc_I82xfuERhqqYneRDX|m)F(JKSOD#c056NhT zQxJ3HPh+Zt>3F@~x$W3%oLCNxQ*S*J{a4C4xn9uKl=MlPRUB%)KNb(?&vn-7;X<;* z6VCm5fBg5J1Q|s(4HljVB?c*aND;djOTlO7OkgS;rKCE$&WzK_Yy=6rvG0+t7}fGH z2;Mws{k!O2)O{Z~F64;m=_ZqM*{gk=;h`WnEI1889-`wFq(Ssv77{4vojhnk7jqk4 zxVF1o@PFCQf+m*<o9K*5*TGPCVt|dIWQy)5zvI2>@B|Y!M({|Z4^rhHHKyJ-?&-N} zy$XPh;g%6oxCXV4lPHgzh9F?%lEwAW+n<-RvlRW;yoCp}7@R@WCqeTK1K9%<Msea0 z1DFy{aILYy799-c<Bmnu7-VIuaL7i`Nx>C|O^0Z6dIF<{BC=)Sml-?KlQdaRFJDg- z*}M92`cJZdv}I=JZ!G`ima+&m?)B+~GzHX-dE|Oe1LJ>Xj~dTG)=LBkVE?F{vg8id zPr0f&?rZ=`E;dE2)utO8b4Ytp#u=AcU+U#l+gj}6-u14-jBKkHVZcAko61kUF*Q^X zB&}FPt`wWd;d^51oAk*@&Gr(Z7HbJSV=?PZa7AJ%i%*bL?(4i&LG6~&)D_LRJ6N(h z%9=-HksY}U>kv!joC$8VY34(CsE!JQ_#(qYDSUt=Vcc&B@WW%(mh^wMQu{qLOePy` zvc~GQiq6p(dO}n+3j>s(6Ir8TT=gg(wFNUn4~z&KbQ>~kh%B(q3zBAGzFAh-fHx_z zb$|tH*qKo({sx>%I6d~Mf}wyn4D3W2JS}b_q%sFo=U-7;y4KGwEC$h#K)cN;(V3{B zDjtw)g%NNI{=WEfiZ&<T5(0{l=7nTy6;k)F*NhpLz6s7caZErgG<2MZK))lL6<$Ha zSE0s7RhQrWe1lMofkWBUJfKNQv7-;kqh-$mTBc@$%GIM**_wK<BnaasAPS3VF#$tW zXlNV-8dicf3>s}O?cG~~(1oqxB7LWtatGv4ntxKmn0uwB?~ujbwmXM{MobuqNh?wR zoiuAR9{+Tm$7~|{MnWQQP0R8wvNd*!(1(T8d^v5|LxY+1m^~q3Yo;DoT##9d_IdgJ z;2B|P<y*qn9Dd6P1mnZ1QW7uDZ~f}1(cu9kD!LmSXVv^DQa#!ap7Xe^7btV<Xd8g_ zsPN}W>llt*o<BPkkdu<dt_3JTG#o1pJ|<wPijhof@JGdS$WIPuETFz5Ki6odxCo1f zg7%G)CJmy<nv3;gYDzvrppI}I&`-k$<G`V2l(w|V@8(Chg->#WW-?EpZ@FQ>V~kII zKbrR`896(d$m}U2CJEC<JD-QLtpr3?YOe$%9B!k;$soJxB0THRuj79G$#Fj1=$PBF z@=I9m5vp#|ZAd>MwVSy{HjLxQ6RyXbXlNv0J*UC^ZS$<=hgO}DQ^hszvHM_zan^q% z3aSi~*wk>jwB>tq;fC5qzg2Hu=3KA=O9+?7_0%uMA;4<KP<kb_c+W|;aSRx^omZ|E z5OS~t!oTNSI_mXwf=6gbU3ri>;aRZaA#n{#nSR9QLY05##Pt?xeA|eDI*S^j@4o%? z`=EGlMO1Pm0zjoq{^F`NTGrQrLAve}iaLzrb%!6pA_QW5#n(GVFjp8O@H1ETCt!-B z#9Yb2O=+Y3Xlu}l5fwPS(*o3!QBa1yHJSy}G5zH*!rFi1y-}v#KUt=OcA_mO8^UBr z?4HnJn7I8B!KNq{#h&izJTDjQFiKSuqwnsPQz2I(DdjR3!zW+QtS<O#oPP|1$_wGm zz~Sr<k1sT&=I;T5OfkJoOI#f(n~0d`+dS)_e520RR+d#FwGdoVy#hdVz}NrvoY<&$ zYvmr_Rp8C@)qWkG!L{g<aKq%RE3OCP$XnOg{!e`$$Q4<(IFmr2?E%v7^%~h_-=<+b zX|jLe_Zbm|=PLXxP|ZML+uewVQ;mTp^)xmHu-6=G>?&DOTT0qUGKD;T{?>$j;cu5~ z%@vn2-$d`SMHUbaJC*_37z+)1HJ1o<%H;>M1c$N8nqH>vA|cP3!geJ)$;R!R?JT+; zOx3u2*+2UK<R|PiZDi7K-Q?PfjVi|kgr@co0k(E=cq1%^PHv@1gdDqp2i12ae_lR5 zK5USEFV(tFrbWmFRPzK~!%E07eTHZp=$mfuhsz1xh$z19u~@*t@d&dmmOd4orv22c zNNlhqhF$;n)yL)cH_}enMSlx)P&Z7BLW9WUt9~8Ca+JsdzENX=_V8OJ>!O4?VXANH zM77H)Lk7II1`dhs_45YXTrNr_cv|5VBOnlh&FhOcyYg29Mtd$Qj(rpt1(}FijZhl= zvob5lvc-P;o<so1ZuxrgcRYGfKaA7P{QOexcvpR@DdH2yZ3#GGalI{_^6iV+RL~Lt z3Ug76ay6DQb@zaqCjoNn>|SB<E2uEpaA?c*a;JkA0(0Hy3Q%Zk|2%i=pW-RdUS7F} z%8_vX1O2=nwqH1YV&3D|OdmDy_r$dU;%6`Z1<U5hPy&GDc>JCA*pKfNuJZkYz3WjV zMf#7hL0)&a|JUWgz?rc4=8xUokaOk&z}rKmA7{30O&Xez_2=wF5LKWzaO0+>(z}CV zH1GZ$Tq82X-Si*w)y=3-K|dL$G;XN#LurPryf_YP5n!o0ykxAIhR0_nQjS6m(?`0x z_L6q-GX@w>Ykj*LV+<SHsta42UqPiupu;IKU@;Ya2lB;`_endp!0$~SHb40K=r9kn z4_)o&$Nfs9aTwqbu(PFP=6K!F7Dd-u=|`3YFgckN_b|U-{VhJU_|99L2Rn|tp(1#M zQiRP}o;NlK8uD3E@dvVvNbt|vZe7>AVK%t_UKoH@owkvFthRnYm#xwOn$pG_;Ns(W zZCfFuLq*Z=j}a8V=uJZ;+HRFLX4)L4JKIv}l6k`6x(hP7{YEy*maRWZ?L!4EW4sZZ z`t7!0tj;jJ7NcW{PqJrF#~?Q58x-Z$$@tkyjBgd3JyO1C+>W3~o#TacAHI}1^SdY# zi6VeZTWmOxAUHWa7o#h2-8O)8Y06C8>S-M(H7y`k#|z(u^&0k<xYYuKSq-L3F-h!+ zWCYF7Sf0+&Nv{r-`kdu&h6mBx)1oL!iqx8tu<v~pbm_mu)|xi|6twmFM#g<|)z%tG zX&lA(wkvp>cYYWGd>^hr=x*I|*lXLw7c(GIZoc@Q9~Ev#!EdebVuETvC-7esb0geE zvNv3;BG~msw}6-umSeS^U%+4vOfVjkGym&nv?FpS9gZ*T>P#+8X0u)`OFVgmM@6_3 z#&&p6BB&SEjf!D+DHIX=42ss3;X96DfH&~@t~iukQVQ{RFBMjohPmglgkX^zX%f(; zVBTS*kT{MBC$<{Z>XAcxIpAM@Y!m{6h;uEKF$#DBb=hMeY=?&sbqemxL=^1Nx%fFn zwlvTsa015Dj*-k&i?!CVi1P@U%#Z(P2@Ee(7q?OL>j6P;u-bS&eqP2KMMug3WW`H@ zn!LRM;%k_N^|vR~OsGnf6n}DQ95KL4;5aO)Yj>>pokgHi;c9?i=KOqrA8Yl}H~8fA z#~(q#mEO-K_*aS%CAC4@f3U^u2_?{@7`0$<npnKQK>~{~F{heff&3r7boy59f9<}N zF(b~D+(1YX^@P11tf54a#MG^q_7GH4hk8+t(mDFkm%i^dBVRie>by$Aa!vxjXuj## zy~w!W2k9o!OCepsYKdH`&>}LA{>8Ei`YHOGkydhBQ_sxVf<y08K0z#Bz;W;JFz((- zj*G9x2Q_vM!^tGuwl>9t`x0(~Lni8C@mWmr($08Sn(a~=2h?Rfu*PyG%qNN2cmIRm zC1cNN@NF*g0QK~8V6k&?U91XloS|=fbo$<be|jD%BVH9HsbcneE9f*$N#x<GTXWNy zkXZWF2amHy^Y!NAmcDfe;DhEVslfZHM;tvm$2~0!oQVECV+%EC4$n%oLnb-%m~=jB z<R~9+cOjx(Bk=E=#t06ydfweQE7<Jl1REvu$nI6zSzcU4`<rbf`27ix=)mfgvoXaD za4|IM5cGm0-*y<yhJYgryh0ZThbPU>GE}pe3@o%dULxA_k6a^dJ}v{wx#szMc)~s| zTQAUx>yvon5IxW*vZ*2>mQ+tdxg>-OH_=%-6d}9ZZqhuFNwdMwg-2=mAAjH|M$JB2 zV?<16hAltn!|T_*SvCON4TEc1F?{GZmGG+_Je#;qZx@piTi^Zej7>j8^}Vg;eT_P} zmpUdcvXhv%JuS`8PZ6**W^re*+cr$>>-f#YPrBg;+lyO`EH6Q_z8d-jDJ3@8OY1(K zLMpz}w<A=U3!bQ<o$uRs^Rgym^?VmwlN=(}p%Hw2l}W)#xJ!_~!2egwCjQP&DTrZ! zW>yl^_&1HSG1Rc=|Fo>sq9-2Q0vQMhasmhlCI~@>aWf(g+&?|~fAnn%Qz{QIuKGhP z=#P4V&+AHiEaX3K9=y9!xnqhpgy)SONc*w@1Mfs5Bz%YsX>2YuXe{;^Lq@gCo-Ec4 zNi^kDpM-#489v(%vp6p^z;wVi4$0j;Ah45gkia>u=mH`<N;FFWPoDqwj;dW|Vj3Z5 zN(z3*Qo#qO$Txz;Qhc)EH@FQT3xZc#WJ-l^zw`tO?6HA(#^T_{JR5bajLvCX%zTJv zPW5l=7$NHn^PoPUX7Co=3LK#-o0#spOCb=sW)_MJ>kG2p(~A&W{oFx;cojtv@Oxy~ zRWCa{_obC&4lNUif0h-Z#}Y`}eWsK5`TD*aZxEUriRupNI+HU9tK0`bA`jY)41n;5 zNs=W92P|SdOCO${LVu26Jfsr#ZF#R6&oZ~)4#679dAbOW-!arR4)dNT%*PEa6K9Dq zvFWh85HsrtSPZ8Rgp_9Wub@r;Aw+8e&s8q4LoU~uG}ik8<($`_7~rPRK8`KFoY!d{ zR3)SCm4V%nY!!1>V4n}b1IgwgPnDCpA~@SR0jI(}mwb>h`J8<TGYpwMjow(}jgZi? zwtiJhA44l^+xM@h@4F7ym#?nNHG{#?wkk_En7*xUxf5n3j-PcpxsP~Z;EM)Ug)L^6 zlCs!=syUpQL?~MQEHRL^>Qh8zTlq)j#n%nJU_IzALH>+2mma{^#zh}USNb_Xabwb& z?PkmazLd?hMvjy@`)c*bMSCJrUjI9u_aCoMB|;SA=;ERrf9=jx)uAASYFbnJT|I{+ z_F|C|&)(b&0VjIPeuE!gIph=KxywIwO~N{Mrz>W%b>q>@4!s%GDgXM5b=qO>jbDMD zfK?ISNtaO^nHrb^3!2?2Ot>TZ_+>BIvS!g)o3Yb%Ens{3nDqpH_Y3q+VD~Rmq!+bt z-n!V8t@SYjp0x;^=?=6hk|S6=lWt_%wTag)$La64K;N6T?r6Q_Qg&%eizO;%p0$RQ z<3{4;87LtaxD*;cX%_VBuTQF<=H641^>8U6Pp@l5?kj*6*eB~Zc&0v$%qP97#gplL zwTkM}zCK|D2<QyDRDoj9a6>s%g&s(p$P_=uTack%NFtU67m-?RM^KC)k<kumM4=me z9Dh`7wK-epAN<FU4kC9rABXl><)XPt>|pO@ZRpcy3%@e4+<|nT4lq^}AwIE!Kby&( zYit<1q+<a2Lsg+wYtl?oi4i>xchze^t+LM;xO!}<zS!?vRN!1Ew8f!em6G)>f-nH8 z@^a#0K$+UB&#|W9kp%d=va&6)OWePtuWPP|{w%FxneIx&nicFs$h4A6E#JH?7RG-4 zVeBP%?Kp|cvqb6#61{UQFPZLqF-bi@hWQ)3fe3)Tf9<;b0fV(;2BN>OpM=61XYv_y z3IFyfxq{gXF{aSpiWvlv{cX*i)Q0LG8lTyiOMN-^s_?Dt7i>^b`5-ToG(i(DQA_?k zq92eFE+)#I%_QdW1#<DFrNc}Z=DxKIDr@21t`3gr+mom%AKZwn+-}5pXFn)pu(fWW zZv=c7YD8|iTA_Z<xOyvS#{$KBpvWIKMv4$tB`{eq&ePQQdISE-$XO~A<uP!d`dldk zm6Fz-Z_p*S?D?j~t7ZN<Rs(AE%*O+I8_LAmtCX|zfjE-Bhm|SSXA`nT&Xf#Af1`Cv z9QRm11ui#xn&hdDoC$ss(vuciknmSXFaUW_1~!a~vGYVN8>YzL;Zq{vEybon2R{oh zVE>5z+e2cOyvP(1S_W~v;R2UxM)mC@P2tC(wk0bpts({J-ZVc%j~nHANHS?$&tZqC zo+0dsYOiP9@sv&D)rv0R&Y85CnblN$rZrS0vTkpCRjw<pC`=W|1{*OXZg}vhcK|Bd zB%GL8YF^}C9u7+A7O_E_qVtpya~3i}nzu>fz5z5cgiIt%Zfx3IPZzZKoh-I(u!+Fo zblKKH^1rfN%mksz+ZMDVzcs39#Wu;b#1ql?wPQf2!YxpCu-kG&n{5jPMc}&Ss}c75 zwoWA?E;9PJfB&o?FXc5}F<0An<O7Z+2TXq|@gUnP(`_umMT1emam-vE@Wn!gP|r)| z@1^4(t$=6$z;W<Kz-Oi4o`Phb41vxr0GBxWu(&m%oN*k#aw+Tm3CgH#>KR><k8fJ~ zNQ1a+9t`L-Mpny^NqH_S#w6!KgHZcaGajLb!JZ;`!h0GFTaacchU7TrQ~>eqQBwC1 z$af>_$)Z=-wnz%>bC=ZG3u`+s1H!9iim9I8mG`7e=OkbCP^s!QK!_*XrzRN{uf{d| zKMrz~eyY@SA!p5yr?KZ+tW^I39d3?E(xwicOEA07zmA`RfuLqi_4q4hNoZl**7VbI zyCo#O@)2Zm3S(aTVJ}v@_zjRqSnkU$pT`Y+2v}4dT{Y>(0!!eSk5mf}@Pr1>;V6Ux zL04q}S4<0~ChAjy5c~t(#X}0t6%jt5N-t%NJui_RX9Cq%f*Cd}CKePeuY3np=-)E1 zIJiM!;d!}KMmdZDhv4wv+E?>WTMVPDA=tQ-<}|v2`>bKyW*GUm|IC_TSKOGWr|@Sk z@pG~SS$>J_Ef_<DzQ468aq4vB&!Ok&Tvesy<TR$Vr_`-}unZ2Gosd7j))zaLmvM)S zuhAoyIH<=6wK6yaEzW@0w1XcM?zyBu;Xj{qO>uB%6Fd0KA~(Sww1GG1WLIlQga=^7 zw^L3Sms5D_uXYn$0Q%XG+0QJhDt8#9eP@^+%T}Y8SvY(L#<;g{oq-o=ms(GDoDW<{ zy|{k*8EnT!jG!z9raEHN+l-bd`oAd)5_kN(yu9uRzBo-|>ZTk?X4NMVtlv#(m*Py( z7w33Lim&L!u?Khywwr#?7HCIa5Sd7DwH?i-+=TRDG%N6P0?-!hDQA?z`5_N!p$^6I z5#>u-Rwe1JUjJ~SKS&w2GQq9mp+HJ$)4?&+oP&sYnL>wS{QnAChi49NI#VXb=D4O+ zxT$#7nmN4|!2X%Y@9BBojj$mL6N*>I{Py%r&a=R}nGq&ylyDL9ig^M%j5NJ>aJpb< zSBUu)UiaCe0Tf2S(9!jXcdsIY%?m;JXx8N;eR+U?+G#yIZN3u?8wnG(am%vOF&L=U z)wIAkCPR7F70y0@|IQBKnpR$Bj3Iv+TJ#hv#q_@NfQw{@CPN(?#I^B*?XO|O+~Z`Y zDum8egH&h(*SA`c*duC4=-x4po1b1rPDk)(;upEe0obdlwLhT$e$!3t^n9QeFkT+M zUxG83b^2ZX%5WQoaM#SrHu2}TZbTJwhA@&-jRoIq1f1!sW}(wAg9l6{3fc;5RGyz@ ztx0~@EO12}msdWcxnJo3?YL@qIUQ_-?u`~h9TZX1f}&>v{bz-(#;b44*qvQq!%Pl8 z5tA6g5opexlCqVq>wTBL38OFXcU8^qZP>2oWflMaW)wb5;^IHGRj;Iu=gHyC`|Nlf z0R0<mjtrTUDx<QYik0jWhQMU5gP{Hj>iq4nUg!<?nA#Z%{yP`)+{&S7rxP?lM9_I1 z-*pirB=?9yofffDY{Cf@Up@5U+4Cu2EX}-440t==t3eh?Z@t#ax4|5kBOSFWc-s+b z<TzF?UVA=!F2_$yB78eQqLULS!sIMVct#*8Il?5Ps5dLd@!L=3aca-~f+K7WDwUFM zB3JlIZH)E2=nnNp74o%MZZioa2Cwo64auPERM(?1!cd}=VD?;$T2?_hh~rTbltlT8 z1)N;trLeyU(yiFskt!$oS#60sa_?9SatIl*oE_Z+bVbw?g$byH2xzxDTZdkNhf$!D z$9iz%rVq@YH!zL(Id7ZWwTJSYz2lM=-Jx=hsI{5Tws1fV(@WC4yyuu+3Yvuc>ffJK zC$Eq+y(U2~b3{ON#)E0W8_8b^T8WNb09vtT7M1$_&k=SXb<Ml$eMLr9rm%gSwo;w2 z{>DO+nwQ5til@C}+MU*+@`V#88u=x(^$&X2>7gy`mypLv^`yNO7%0=RGTv@)p!}o$ zwiQ9)$$-DyuuXKy{6>PGzrS!tW$m-GnDrAG&VQ;m3p;o20z2Q*u<R3E%@7J5;5v|m zcE<|1w!(Wq2H{8oas44cF9i~MxDE7pI!9Bv3AH&*YbW&;ibe<qvXrYKe=sl39Q^zC z19RK*1B3|SS=fY(WHYitq0TgP3V8_p5&K#A{RsJb%Eic}w_Q&A+!@Oh3*B5fb^xaj z?mh~Spi3$y_e-;1q#;NnhE=Z`C@UnA|G9Z8M_4#+mPtwgZqcD^GWFBw9W@n~vr8te zIB0G;SAV=F@|=6Sc(+h8bE|RF=&jVFXBnPwp5Y1qhbEU_P$B)(=((E*P=0wim|H$t z^SwG?YuoF77qYJjVM9}*q3|;;0<c>3<6E5z$c`(MtW2d=Fx6r5|2-iF$l<D$VHLMy zdY=T0N(zrRQnCNumW!C~3dJ#AAJH~I&uJo*(7GT_ys`_`5&jr6Qmw3Wm?X4Rbl;jG z`myq9Z%?kO^RSgs+?0?!yTL5()^VmKIZcNE_xooLWwlzvq|jG(>_^D_6@39oG$HJV z*FKEZy8Nyr12^tbK_qnxP=Y4xj_9s+lw#4h!xW=kdEuZ&+SJ`3(zgIVV=w5@{;P6; z&N&}pt;IZ>ga%eWsF<yCT+}>7O|iBZv|!^_Hhm7yAU91bz~ZADb6<?*w1Z@{CYq&f z70J_GPoyY*t|pOpt^{++f}ypN-3sN8urtWoFwcp(x^|Gl&-v(9pcA(|#rMfqtb5Wf zcDly3K4M)nPdn`kAJM5!i7ApXYs>5aFVAPx0)g7RmuV6yc)n8C?$D~zwfS`P!JOmO zJHT&|NopDeA!&-~{(uy*I$7GE?uO37cq^z9L5ikFSmuTkOZysAdGV7pq=Q0qUz|(h zX_E1O0Bk^$ze%i?N|d{g*XMsHr+3%4?W=@`%%lEle02?U2%c15S8<t794mFe52D_? zttMuFebuwMgRNR}CydQf#O9Q#=7V+sWn~Qs>#gusX8>V)CiA#dJjGWR#5pE<sXVWt zbT*$YB2LTeghjaZ04tZkbhGU2_3h=!-Jal%AZmGVqkzPmF5WuCfQ^5K?}w*YjMpJ= z8}>UkW8ta0FdmR;QMO-y*6(;riS#WAaM)ozQ48y3PRtDF4wBx$@}@cGd%@NefCvL5 z3`)Y?x^SaN7?RZS8V5Tx_Zbs7^VDlk=*n|E?c7B=r%j}Cum?$m6m5b=eNZ*yhtIXK zq2@G=LNNyqIE|;=)$xDSECO@rB8#A6QO-ZUv(=EHRNT>ro15F=XcW8~zP~vfJyzH` zLa)1;d$8|G0H6Y%os8ZwLxFjipR?i)SZb%{fTdXQ9DGbF5^%LQiY6eM;AzIEksr9g zf(ymg>~#oRBb{a(!=Or(Z}4wn5yctASu{NQ*yN#trH~L8qgsEF!0Z|{2i(5J{R+S> zUjfN%HUQ6Rycn=)vTDYm7plA`qW8PnV9F|dQH*s4ecu@{(mfmYzhtm&P1IYT9&{rG z)<1Jc%~0LTG4`3FkJ!6}q<rVYU}E`K6DvN0C5R`~;EcMYBYqCRONzP(tY;JgLx#Sq zM0ij^Cr2|0y`6ujxpr8oV5Kyl)qb*X_*@~=t*|p@bxZ6DdV{U6z?%5*AhdYF<Y;6{ zUJeGPJKkhCOZ6iT7?R=pBceQP>E!0=gx9L4->?oSTL*L79dHSs!;j}UK<5xClQ5l; zN|;|l|IDRsY)yc9nW#MnhQ6GF_a|3xN9OtrW^PlZ*r$Kb;6G`W$F46jwe|pvT&S00 z^zN*7fPG`E-+zKIm6bzOH_?>kx)|P_vqbY_GMv#3HT$K@)4@{y(lw5D^^*Qx6I<$4 z-Naho1K7Mqx-1WIwh}D*wiTL8KBb!Wi_43<4V5{M@uFB%vw^gjSWs`k<68#0fUCSW z`@6a~^Iv~n_FVzrYQPXc#k`$+D4*N+!gse9!;xM5@uG?RN+pnSX*Gk*r5*#N3*hy~ zDHz?3?+V%*7gKbq8&{PCncDQlWc&6~YxdELm#^BI4MYgKoN(f$rx!^O@X_nP_ji`A z?8l#GFyjbOOX8XoB_c!PRJ&Q8WcX157Dl=}nj3%FkfG0hTpMPCW+O^iXF@0<ssInM z(l?fInCQA{m_M9s_r;XX&bj1!v#7hA@cmHA+LD~(`#$?#D%y4!FKb0ODi^33!v2Bb zou}pzU+MG&mz!?pX--rZu)os2k9Pn&;*wk%#ULIRU|QBPN_@kHl4+PKoS@MyAGflH zZlZt86JcWEG?evpEJ*@A0v+_49xj5IqF$n5@7|AWLvPjPPp69|pFI`7`P7S7b!|zo z;d3yy4LZHPyga#Tr-|BS$>qmpEL@G-8`eFgSAXzZCiJ3-(C;L72VHvUc<VQ6dj0+v z$nD`vjV{6m)Uld@liRoLGUd0pY#_hDRJ(uvoD4bvI3*h<!kp%K%NfF{oksg3rjJ!$ zz2Fx0R>}1zbJ~)Y4V7fWtJCYVi>tRS>CUlqx4FEU!REc_01eCj@dnwOV18c}&pN&U ziEjWPWl*EseUgk|d#MUqDwMY<(d5UG{i>M*cx?snUHnN=D~hQai?Y!nMYe%crC5J( zJ{2iUc)nhu8LNt%=^`7wlNDti(Rs(`;W#U-*EW3CYiSzScSh*l>xl4x)!X=bV0FcD zV&}liR|1=BVyYO}1P*jKht(T6)YlmZ#VH#rG*qE==>+O-JJY@`M4F78^w^3)Rlp<! zWkIkmP#rMpik^d_FT&WoF6=A`JobO)ykV5B>%rmsvo}ATy#G*@Dp7CyMvcDguz#je z3mB2B`&WEFOn;T37Ndmfm6;UckT<_{tBTgbl&kAopt6WU6%QOL_&APYuj<$KhM_&M z+g*-SG?$DBnE4KYE|*9kmSe~?=emf2UK-bmf%l^-uO(Ec75d9l@Gju*V9S3&OX(6A z9HN_(yLaw8RV17*J#`-jQ{CP9@{5jfks`1ttQTpvMl1S#7*(W>^rnW6hm(0#LS0_m z@O+G4JXr6)wJCc(XCsK|l1-PUCA%$?@Ee6{FumN-U)EiBTlW*ZUqoB3db34!v$qcr z9z*(V%(gp_mM?E^yS3g8i_(9ltmNSa$s|K)jvdd$s<%@_)vhh4iXduzp!{LFmQ)m- zVM)!s>x@$FUk~7j9!P?U<cT6U0@S&u8AK#Sp11*=;pbA4y-tQ+gn{0NSnsq{--y7Y z$PFE@&^1flcjGg~?@vTX<c>>>=wipUg}(9LHQkOYjt&7O=U@lZFm``mR*T}vQ)gHl zu*?drRg&h6w?^|+#H8^yt3y!hx1-%5mjqviH{t0_&JTfVzPITNwIX;bRDJhWGCBn9 z&g_31t4aQUAyQ)FhVxglPU;IGzY5nqfZeJ0Q?dSSbbVz9I6fP3&OEP@p<X-Mu6p(z zCH$KuA%2x1;RgyD5LJKh`wC2#FzCYRZ@hT;jh8anpzE^QC6-kUCSp@v9_CqMy&Y!{ zqCS8__|-RLTqn&_pbwZR)!%7~el$)U`X|QT8lR;W@(P-?o^BFMNGw7dbM#@V;>NyT zi%<4Di2MPk!d0$phG~WX6OTbjx?4p3`4vOU#$k@q0JT~KSHFKzRVZs7&K1gKe<z=7 zS$*(I19iowzZG|gPoqhk{2KE)p%Pl0n$OdbXX6gF`WhH?bA(!U-dEeC4zn<ivqC`E zaWR|W=Cro4>wGHvw8YCt%U-ESalxY)ukLiCv)QtV1H;)t9II?tQBh_PUx+|M0((U8 z*RNCzf%4)Cfk}T}2+&iWueG3M=4r3oR77!rZ1kCMCwZuB!jh+&5<p7A$&79hOkuV8 zb`>QPvV7f^)KxT7J4Los#4}G-s2)`EMRpZv1EPKMJ(HuwmwAX^jI;J&nUiY7(rQi! zUqy6yNNp4y-!M`~g8F=qN@p3iZUUSVX1opb@MGHTuR4D~OF%78z=@xuGhfcJ%A)aI z7%Ic6)c*kU{uH!Tecf*Resz6Eg<{UA6%VBiYa#h!ZwBeS>RQhlRXn!H9@1is&5J-A zZp^WXTDHDYp)WJ=!cbSlp@E|Bwb}I=zjVD{y7Z|H8O3Se6{WW;&izkm*Vfy%k%iy= zD+a<QA`yQ}N}OG^Yqt+x+dz!kXts402ogh}NJ{2fB()?ZJ6QL>cg|%lyoee$d5CRt zW_ady=3Kw&4-?0l#^7&~ImGoPup0DoTKdF6S`<<;AsjVFOFpjBP0a>*cXj*m2J>L+ z<K-#wL}@faeslvuE1{vi^6-51aSWwaf@=pKH4}daC0VaLPLM5p6D6e{VgHVWDKk%^ z&SFXUh=e3d$#$0*rqs$(#E*f?pYi|=c|q2Q1W2;5z~mCi@Kw@aM_ci8Wf7wX1Dtyq zpk#JdqGR2zM-k<=royR^CnsVe-ktpT_W6gCw-jLY;d12nG}{=SEcxG7j!C3~k@!>8 zJUf4QzK-R=1<^&PV)X9)4||%Yk)A`wa%=oKkNLCwcYAwz+1-GK3bd-r(-0PPAv|U* zwD!VaDSwNru)C#N7g?~6I!kKU5nhh4kPH+_1P^30=9z5Q`<Y_k<T}#1u5!EOfVBCP zNTI|KuaqT=3=jeODM6$Tdk7SKaSJJ=qm_S$I9WXam2k+tA_!xvErL#lcT}(zAgRNA zJK9Ao;4P5Btp(`(KuDju{tV5T(ykwPrE`z*`WlGv3Q<9A6$S1wL6?~hSC;%%{xKC7 zuuCB;bP*Hykj<Y_uhkphNM0S2VdK7HD99uiU&pib+e{;G%xs=C)7)%AYj4UMU!H#l z)3NV*4j8`E9o}W$&zmt`3jCvKC}0O328n1_Pn4{{aVM8kgV!OhWKvmK+y?Hh&B$S6 z5YZFWwodNC0CML8P`N_2;muJ<SM{uF{qo9hTtRoH)alXZzh7Kmi|`=;78C>eFD97o za>*J;uSfV-xd}p&;msEv`*=<Vt2KXGjuFv%eh&5ROBBmVgV2QNj8mX<F{;n-L@!je zLPz3WuoKYIU`SU%uqu#sFxu@c{B!MYMco~swo8hgRCcSI_k^oT%-9lkbcCX_2(}(` zUJo*#zbcJ2d)q<q`8o+O?pKYCBY{t2g?S0rPf<RCtFgwe;bgAS6>2Cz2Wfv~buMH? zZD(r@mYzrUuy>>waWs+K^4k<6EjO?@Q50(~+<HuBGrN>qFu=ZWjx(0+)R|==`sjg< z)>D*fJ?$QNCT)Mu0AY$C<Zw$aVyRMP7PgcV-J8HQ?<LErtkbFimNVTTZAj{b{lRq5 zqQq<tZ7V6piRKg{L>vd2fbM^(Lhp*Q2!{jmCMc^(nnx6<#!)UHU9fh7{Dt0gnk|0A zwHIW98tl8nY6HA?WQ}Th>PY;V+D`_}0Z|VY#{uSgtORvjEcQ0xAlE<+GgA#sOredx zLUWMGNe;+v;7)a|mOJ5AHKyHqGJQ_h!+L<A511O<lm$`Mf;V%^_t<}L!9X|1vSG&P zc8YjXx5Zd4MiqzweXy|vMl9~R^PVuzAG<Ow=()QU2BQ}d_8Z$%!T1sRs_3csZvYX{ z?z9ErgWR1-VfZyXQ4cy1Sud~K68B9WYM+>58f?6h(sfa@k0Hn-tUtnLtyz%GT)>SQ zL54Ay_Q59phF2DzUwnVK!W#=M{BRJ=0e>7iU_YLUbK+!ao}$)@g0D*J1GN&Yb#%^v z3S?tq<%{LEL?K3$$tnxr^3l>qC?gsug6Y9Pxit6&f^@bTc%E8Q&<F5Ko3J%YZHq6Z zQkw~Yvc_=gpq8XIO->3)I^R!FypAh^8*b2K<SeXW;zABtM(=-g$s|Qjg<o%=pD_*$ zdcjK0VK2lKt2%*=kT6F&!Fa8U4szdsaoeuxLNaBO*2z}cjRVQYbef@*lQGJfXcY<| z=>C>gcB$!#!4$wIq{v%siab2H$Ue$~;2;j^x`~DjUNy6444z3RV9VYFGtJ$`fva$h zgI*Ir`!QH}q}P9A-3djjE9sddbU7ggOinw=RdzUh%O&{UVtR_d`fk0Xe(6A*&a_%m z=4G)~{LP+JTNQf^b$Iel#R#)zkHshmLin-Ei$zkxZ|UYe{`h+UKl05Mo`N~}DcFt9 z#7Jf8jUYaoe;?F4yfUTwW_R!3pU!Wt?>=`Js$>OIUUz@=AA5UA^D$GCfqmu%0IeUc zE(G8&%(7d=)f0f$y%nDPRch=$&fY(T_mmgP{Q94N{f6^sP(Kz)g-N7n*nW5N<1Z$W zv6;nqXh5VwlSeUu=5z+#*QcF|bLrkhf-CfaTS6JE;tVaz$}o?&Xu)0t=du^J(=$#1 znc-!*-o1b1tJMo&GrXjaJIAg)(tdq}kn?8udNwPRZ}zWqr~U$w<(54d#5uq#l3dlo zHQdx$&RN}l9v4ALX$HfVF{r-K@Nf$XRQnDqirpQh$)B}4s&#yjsZ`}E&W3k1P8V@B z0KovuJ3|;;L1`;zodsQ*9#7{6$u)=DQZ7aoBwc@Z7m+_uI>AcL(h2p!I_4Sf4*5<{ zN<kAG*I@f_<d9J`Q97%mT{ntM1sA!*R*CBy$dN|Xzy#E#mSuJy?}F!0q1(2Jmp;NR z6X>7{)`m*tvQkTAY;-Y$(FE}Xl{JgO!P|C%=biCHmfxhZ`V1Q%GYP@ID`!ags9WBf zG46jWpbG+v3RxVi`EbeAItan>Dv1CwhQJ!yUp_aTQI3xC6dWb%#Wp4XAoaxWsC=d1 zE;@%Bt?^t}OpFVBq(EfBsfGnRuv5i&bdj$kjAEGxIq-pGn(@eS@-frdksYYA-?u8k zXG|>#k3zbl?P87bbp=VQ&(R883|SNuku!gDz?;ju*6qh%Z>}#s>rQYvBYQ-09fZ|9 zFEBT!jaXQ7?n@f+h9ko3#TGPL2Vr40Cx?-dGRSq8f(0G{pltfbn8(A6v3`$R+jrfd z(yPp+EN235uS>}B`~+%u#%&wVv*RFgrYT8Vj#gEL$%cYjn-LKF8q06UJz2ztv!H+2 zX4=@KXp<)%Tz}Yf)i{#gBEtbqu9tG95bR7Z`YCr^uh{Nn&1NC?0^$ekhZdmX-G`Pu zO^wV=`F%zwwM1*u^diZmtav8k1m#HLk6_lLElaOKSO%xCWg65T@~P{={Tzo~Tl3=f z(o*Z<a2}@ZT+=H|k&H2Qlx`!<jRk+LeNV-)D3es`xCMn)W)bikq<{~Msj!$aKL08Y z-Gz{f(S!K^A7WNUp=3O>TgjZlnRxwL6sdfUkU1`$4N2#m*m6_-aVK_t<9OxbUBXxA zZDFkFworp=DnhqbP!`ooP?j&ds?zwId}F%l;(Ue5KVQV>_ZH$yu=)#W_}_p2Vg}=& zznrn0^_SD4U4JnhJlS8&%F;d1o&^thU|iJf^%tw7xAvD+E0*V0o)W;#3Q5wr#+G2n zby!>V3+|60Cj`(WxOM!2AQoP$6<^ncZ@_Kz9FASTJf3WDboq@3Zt%r+buWJ9*7(ZI zQ!y5AKsqZrz9Zj^zbYF(T<w2;YB9#8x-uRb^58$e{(VWDTq;v_aXQ%4#ZSU}f9$s} zx#xTBzXa0=m35B}jUtW|V1);#HA|6WpQDv1U0`{C)X^5aIMOeesm&oX11UCF-Xr}$ zsT}Rymv^W4{*gVv<K{J~^wmal^)AsCQQ!Gerw^eO+OO*4+iu0Cb`F337d8ZX<E|@H zRn*g=j#%Gl&&nQ3yQytfXwmygzPy0HEYe`eWm&tYZ>(0{v<Ldgb=yGG-?dYIXAePh zpUfZRCXvFxDxpQ~S=9UWJ=6bzPv+*@zUK9C3~KzMk#AP^eWEqW)~E1Wyr+~=+6?{C zpHNE!1QY-O00;oBVO5h-w=D=(Xy{Z{Xy{b4hqqrAG?2BLM&b8k067T&04f~-02BZm z0C{h9bai57Uu0}Ab#P>1bY(7Zc~w*i00S>hJykDGJ+m6lodSP9KRaVf$6NxlGB6W* zwxf`319BRrXO)C!L%H<l#r4g*%MbNhh0#l-y@&goTfZjJB>i7+ju6*!a#Q4JO%dzH zzrK0x|Frm3M2NMWN1jE<B$~xD%XRE=90j(Ey>UF726H!vJkOrOogKyY)SG&4WIL`s z!4^EalOT-7mOFnP&)v`syx5K$H^SJPPR5}V$Kf2$#*ss8dp7gzaBNNIa~IDn$0oLG zM>Ed}=kxKDIM&3SdO<j|y!jX|#F|fLb1x2K+YUT0cF1^6tO;@O)FyLm+par<Unn=& zo=q%FLT4I>4y*{g03-}&HnziwJ(&>82_ieRY&#;}m^gni2tN&+@iek#ld%_*xidnZ z>pD|opazPPY?mnwz`b<CT#`c9d_Sc)BFy(SNPS9mG7!`bxfpUeE()eYQ5&Hl_{nFI z4Hc(ty-?TQ6)2_jful5eAP9T{$$it5M5yzS$_KGbiVz4;urjzX$dXA82@+gBH}f5$ z3}_&(LEJ6WL{}-noS>2mpN4W-&^i=M&De{dN_F9;ys3cT8&Auk{?C6^OKDCrNprBw zlVQ>oe*{6WCmcl2$fk)dNma022O3N^k#|w=Z;Feq1dL%af+Mh0L`37FYh@9i&NKtE z9ZPb(lAUZrk{4(pFTk$b0;H+4LO0g8SJ!3eZMS2_l&xV9`09pIoD?fBuCFhz&ryi8 zPg((41^h%Lj<95mWNk)iO$K@+yu?rwM9N_Y8tm10s)EUd+MXQrHN~F*?lM0u=&4M3 zx~PDY57R$?Er)HJ&{OuHoohjahqc?wN(NSMngB>IkS#*WSeX|jGSTY*l30>0kI14H z?w$m9iilMak4X9@k~+yM-Ltf2RIc+qYeIGdxqRp>`Gu(IhDoxXfAsq8z4~@I<sOBn z(=ieDdc<k+JTL>rFa0EX3Qg59fYLQEaZ3#uJ0*=8s>0Qt_B0jA8t0<t9wCL+<T)J4 zbPYr@+BTEt(;@-BlM2)(6uP{_9O^<O44>h(>_>Op#BBN49Fs)UHz79GJ<;LpRuS|% z7~qCOal~#Jjl|e5{^d{4#zjWahQWc8oYW}+G?T{EE&-F1_0&BYN@>qy*#Y5;w<Lf@ z{j$WY&xaj>VXnxwIVF=!)i(h&lZ4eE0`G8>rqyu^y6Bx4m0}C42J&^2BGxYf){|1! zH5WHS{QLKHFd?h_eecxwjK9A?e@}Ap7L%UVMIqHS#B+V5X$~$U`P%vC>ZwLaQgr`j z5e4TF(lkhb<^L6v1lMT~Dp0gWwE@nUc0>RGJ>~$DeAgWZP(NH%P(NI=px3Pe7{ila zJ{+IF_dlMVT)g*B_CFq;17WWekdt`Y9)A${wM?jOznqpr;?p@G#OGsP;L9nPDgAho z-B!)-c&MI7fE#Ry<-in>XC86AW4AM;1=iQsf8nz3XJ&x6M*U|T40I|Oh#4D$<W~Jm zgflP;3@j9Nf@uM?x(rnw#4@GX$_9E<E|(y{f;0mAg)qtj#hA%E9^44eAV%M^cz;ls z;s>DsT^|Ko4R$UL&o3O0dbo=tRUf}cp0Y#w0y$X#?_6FS^<FrN00j|%x->2C3h)3v zntC4%sGE&{@3Ki+6O@ryaRwbM5bW3U(-Yb&O$7JBWCr8A41B;GWHkYGj)6s)5b-$S zv~vPANdXy!{t+yc26OJhI@AXffPdoNEod-o!H?5P#$Ge`NtX>YVWHP}5cVBx>Ml;7 z>^k*kD@N`yAS7)?@z7sF%MEZ+9vG{chx|oMG+_h_*!V$mfx89U3Ib3{b^-&U3yvNE zgdLH$Al-poVH0q`xCs=UiQXK!@gPpo(xpJTFpgOWrXmO>8mck{3<bNhVSkl^0|Gi~ z&?waG1bqDpUl5yMK8^x587^!F$?8Esfr4UoZ*QIiJkZi^CP#6BbDPWQ#-*$2zSWEI zMDXEC^xH_UTDXlLjYD@?nR?O=QBEfDJz6wR&U0;Vs0U@8dKwrY+H4y}+e2XuGtSzb zJ%A@%qTM`#XimGhuL`9Nc7L3*-zZLGyWV}5q9-pZ=Q*fo4veg13!;!<?k!Auf|Ed< zNUsEHRZz<dQ?ve3S!#MCiLRVEu*Dgn6}THaOSpogyfVj#(yggUd!?yB&pV4k)WIz` zLtf4r@U^3;A<^=fpv+rTAa`r45&O9Kr(-7DM)EF}GXOVi;84+4nSU!esl{7Ur!p3M zON@mg{Rs!t4rDI)9GnesDHakf2%-!opZ!;yM%kU{63I{w3vDU_2v9@|m>ztHQ5J)L zxXD9=sG7XS@Wuws2NnRE5T`elRWu)M;!n>B)Z)xM5H&g#p01pD_)XUQFI>d}LIefL zVxZI*J%&vK6QUD%nSW*S`eu*0yIuBN3oJS!hyWx1o|G?;vT#$7zb>POF1z6mU3MEJ zmVl#cI)XW5&S;qWd-W3x-h;8D%Io3>FyoYVc#yn=Gq-R)T?M_*`@R3}jkdpcXo=1@ zj2`q}{&X#dp5Gg7;WR|bqD@|a;45sl+4|K_n_|z|6wYX!ZGSSi+C@zx<&SZ%9umMs z2%WWBN&gOIHrRV!p#Pb373zdV@c99lQ^+A2oL%o(*LW+1YAkBM)3xAu{XQ<nqKvD6 zov49x1HxHN1X~IA4UAQsK&&)j9{bK#$5?<9ltCJDSL0k~DxIeMC~PzVO|0XP?{u_r zzz_N@fNRkW!ha40yaf=JpLj^Lc#HuSa-f4I0SLCJN17RvHg`_4lw;;{n(9IT5Ks|s zSyE}9*_^}JNC5Ft2h-OaGs-pPeo>`F4mm1v1)jmg>v&A@8Lgh53Rlr975+TP_12Jh zfKV#Y173xmfD}Qx&d}))T|%S_kxzH@oz6(deqa<suzz_lO|?|xYnVfua}db5A<=86 zNi74)g9L?x)P`4sk);I<7lWS^tf&kyI13+z<NUcPzJj`-vZzg8rD8;LI~_ZKg<W~S zXL0Hp2%QG`Ft2K=2@-q{842bvkU_FX9$b@jg-2Be3iaTC6bRT}VgC)1it%o(*h)Ih zaw%#KqJM+FBJ~ho)6(Do;o735ii@=3PSm@BMy{$6P7%@25`*2xs))=AGTg3nkd>gX zsMUxd`{&0GFkOkRVnNI9FL2dX59?iRNAm-NaShcUKlpLv#!;7Hf?H=8Dl1c#3QJ#r zK&Gq{%8UvCFl2=&DxSn3z{l@UXt50)4m7;K0Dt78EG%&yWA!yUEew<~C?VcikE3<4 zg9e@D2-m}_Co;Ds|3B}d0{B;(p%oyKL3boL=Gown9LIfoFKYI@c54Sk-f7zkBHXvb zYq8xP0IhrNwl90@SD)5L+v{KUoU2dHXxr&@w%*o|01UXaD`$Q5c2m&T|HCTRV(ZOX z4S)5w*P5Vjysfv^j{Da;Y8Vg$Ee4Q>i!jJ7UUj;xZY8#LIu*Z-E}~znC3{h-(a_Gl zX_1w=>u6M*dOi&Bz`qqzAd_8Z9V{_ub*p*ZS?}132;!%>+8OqCMvdgWOclN;2e2n$ zBom8eDODHUrsN%92c*eLazq+~F$HsyQhy2oX+soXBCaZzl{^9B2&J+*WahH;mZvdT zGnE^PAdO}G8H3^oa4KR78wKMs^xE`7U?vkf;dc<oa&{}&>v6&Qic7TI9({S*Y`e~N ziWMH_bnGE0=j9lL90cJt{2v$ar~ekk0{-I!nx@#eY#vVP!~a}Q!T0>?)0@%On|~#< zH`qDQCRb2ES;Z2V&TEi8n%tUtrgox+o2su3pux_1rbRXnS(Cel&zkDo&%h_Trkv2l zLVN0CR#tQVqIkdz27AbYOk?05tEW)uB#EapnLMa^6lRzd`T^guY9VxGY+quwCdDJ* zJa%kPq+}HkSGg)=s_9fIOrr>5R)6n;{P7$TVEXO?RV0>7qyy3vQ@M<U)T|z>x(CQ0 zEJDlCUR3G@QVkv}NOUTK1#p(cH(c3Qh%}?1hzO3Z`OpCf4AXl(mQ}fj%yXH;%C5?= zyQ&rq47lY~Me@lDK2pU)FKu><$!5=42tmIoA*HeUctzZXg<R-W&ENtgN`HZiP=$=L zQhJ0y=7MR1#O>7o`S@i2>|f0!Qp=k?Yg|qyKzOtSfuPKy?gT+s-C)cpsIa@te(Mz! z@vvNjRBu=L%y3(V+xDZPe-pUQHr?Y>idwoR@9bbLk{3mT5Ag2M$rpN5m!7=C{ey$U z^KL6I(7CC3r8-O)V46=*aDO4GbW2wUh+}9J$8i*afMR8)PIZGsl^k_!R%tNCXzn7l zFn?;y*sFHE3{CU47=dlD{j}BsHp8?}%qXrKLl_d2pnE2|z|t&a8TRx?xn^UyoO8># z*O;XZ8lF{#=voTt;&Yw%q4QE5?Cj`(?Y`LEt<HjQq;^`$m#KO#Q-2VGd0uIwX@HGX zUK<;gV(;1KqaK}2VY$nfpDSdHL#!w1^QmS$ZZBlRoZn!N0Z0HEHoltIHt>c}uD~z_ z_Zmtbsni6_tAKF1k*C0p&-Gk1f|@uYLn9d)u9p}?f^uNGkK!EE23%RciM1AP6zoY? zm!5TVfrqWoOw*GjyMKd$b?I7xImZwKF|6E)rWuAJpd}JZeHukoMu!dv+~q8gmW<w@ zc3bBK4Lgg((vborWk5FWA{w2B(qju5)wd3#+FPUsK?VmJ+i1Z=cK7+xB*t+pHM60v zJ1fTP(9aN(jHGkD63%c19KW|566-C41iI{8U-!Rky?(O_o_}K##{!G~)2)Df_rta0 zcCJQ$e*ON{|9t9h5bdzniv<-X+)mqMe#-(it>3IBwFN;p;S>`*z6UrM2^ghOR#w>I z-4!GflvoVaQ)e53GJQfZA6BvYpi{@0Lk!(~2Mn1ox+%&;Vr5)c66QhfHiZqx)){-I z<=rYx&#+SL_<z2GBvk<0JJyS+hZ-H2qwrZ<HB`lfjUgDI&*xd~sn(COg2&U8jgj`` zN_y-tohGrEfms0C0O4rD*B@b6wOXCO^kB_Lw{f*Q9JN3$z*q?acEq*~AS^J^*wIQl zB$^PO)9|0jjz=kOq)bbgYHu50^3P(abwz?gxE3VzN`J+c`b@wWsCI0(>||0Spu{*T zFs{rBA0pB&^R4qOs@74rD;_-*rK*(1Pc{J7YyQPD&}tUJJ^H$qWyW9|QAWi+J~0-3 zlnu7i(FMi|GS4f#mt$3}<>eV_r&4T9^2lIuRgI@o9=S1e5cNySuJGKBIiBZ?l({rn z8rX!Z{(tK?!}aUyFW2ySdwsn%`f}}k-@)-4@TY=PixZ~04e%ABqsKSY#N7j{fg#SI zNhpx^1rlkQFzsZ2wwlmP@B|hWqPhs&txLDaz(-nV^JgkL1t-m-Qr#5+X{DP?81uzx zUaBizfjNuUO42L>^8~kT#x-N=M43KPp#@ztg@0S#%xa-Wqfhk;N{b(S2nkYwdg7`E zJCD^pqAFvkA+2Lj&+K4>{YRSJA*a$_TFyCGG<%w1n+BpQ-0izrbg;FHL2nKWkP9kX z-|uq2VfvL?Y@`cAbG$FHXP+Q#xcBI;g5G4mcQo4mqJ0<0q$Y>Knx-y|Kw+z34zU~s zLw~fF+iBWG8qu)D_ibB@XW#&1=UJn*g6#}+`Ij0V$vzC6!6SqN!ng{Mx=drvcsJN( zdP6L%d8BF<8b&My)AuGZ1_X(Mfpinf7BtuSVN<+9Yz+;S*fokS!YcDGR@vM2K7I5@ zSIq>)jP-HVT2si$=G1_kAKa@?uYjem8h_!)aut|Y>{BsGU45=EI{NMVO{;4O)h!u- zaHpJ<b{r7p4Muq2`qVxlJjx2|MkOVOc+#z|`cSc2T}!Gi)>w1T@Rky4Cf;Wp_WK}g z;SHFfVgjiG-p%U={g*GF?!0)q(|_`G@Vu4}>z2-{yG~6pvnJ@x)i--u6G`3m=zj$! zTX6K91)G!A9u*T>i7?Owh;6Z@os-e`Pjrw60(PN~_e}MF5?fi#H%iz>btwc(GhhKP z^_`&o-;P(t26(34x&%_i9tJ8bjj4+|u}#RlV&-Ro7gm_Vb_at2NmiL_2<|&B@zN=f z(hNGeU_T<oF|53KfTS)A5T-K^et!oc1FU{@*d6A38iYDSHnU&eLjp=w!~kzYC5gv= z<|2+bkljGe#v;RuH(nzeZ!%@^n%Lh}jwaE}n>piKsi6>GKqw9Yxnq=B-HNK@XuML6 z{sv3OjpGaJh#gj;TShCVm^X82>)+UrBEfz!rK2g^uC|a6E6(^g*atoh!hZ+4@UBV$ zB^GoMV_ho{*5FH6Z%zl2q(~W-B2e<^a3Pprp<)u>V+#gAc_#4cCv77uY&crsbX~<c zPGKh1kLd;r+bpbt1Zpi_Hr_0-0s~)kwA9#8*Ql;l|3m|2C|Vr@w@pmLrd$*yZ%Rr< z*s&&=p1UYVi*rw@0_bMBtbgx<0AJMmN~fo~&0vdxs$)@<G`v0iV0OI3n0FesZV6~h zK-LyfQhP%^4&*sj4<q3U9@?%P-q;)V<k?`burFsb8g34D)gQ$`9Nq8J@UDK{q_++> zKZ8cy_H1ArQN75s)k`#>F9jnO=?;@|9uCzzod-AEe}8fD+qplZ0)I&1l0yMO+1gTf z<n-2oK*CQmh^}~e<A*@qctUYMI#rrNH(i`GqY>5sh)R^jF(j<Y{sQ>n=${n;HUXr{ zzWx=8qi#TGe*^~UiT5Mcigvx{-pguVdN68%NWA5ca2fBnvH(5h-udC#KMv3Q{mYB@ zjreut?wX;e2I;9`Gk?&0U3#YtE*%PnHJ&_B30tFiaCmm%pPZf?R^u1$!D)W|D=TF= z=I=fbhu*gsq*vI}-xkN}_(L6IT!7tJa&2y-zBu~ad(rB0ms6AJkeEuVHd+)hq*;Yk zvtCa(^d2iOfV<gU^c{~Apt)a?cxzLyQDjy~%K7<+16w-IPJb^>4^BV$7az`Vt;A+I z58dTVT=98Kxc+LcIsr4QogMz?<?-3!yG8s2_)^0sjVtEz!tMNf1bsxJl(`s}Qy;RT z43a#54*o8faw|u8kWu2t!dDl2F{O7cma0}ioa0R}hnyXIQ0Vlcg!L{Ng@rU~*`49$ ze8D-RL_k0$@P8lyf|nK3z8b_Zn4D#IZGdw@k@zc?Cp@6?jr!G=Iz|vB-M?J~3cF@r z4PhHVu#aFkA(JUM?tujb9)Ms(fDr@!_61@BE#j}(rtr}0)*EPo`dI_Q<7^BlETUA` zcX~a5HU<mECP^@*z%ow5q{O?Bkg=ju!$_6E)V!2lBY(|+g@Aowf<bueGFEjbx6Ufm zRpO}B2VkI`T+P9Q>?)U_8jFty*1ivJD4BF|8HiBE`nH?8d|sa_QE;yNZXwLh@Q?{# zTUTr4nC^(u6#$BaaQ9gePwC{n`h6WJVWt8(Jc9~S454yB8SBeHgHC-<<akoyQk^=P zbE81lT7OkU#<WBeb>|q>;pskPD|EbsvX9k*nmeA2_?qoa(7=J|CF7<-eLNUm^20dq z^6Y~?U{*h}^YHwE4!bYY;5LX8)S`bNz0~n@(|}hS+oRCTM#0c{c|oUEhHBh4!;AIs zh2mlXBE~JwB*}HDGs5c?n?(m@oEjR1Az0g>xqlSOQj<~#xMj{!Ol_&fSSOiuyh{E6 zl66ZLJH1*^_CTbXeTFkSxvv?8&V$@racjw3b<W*{qO#4s){d#GqG?UuT5D8n=~oDn z_B4+cTRT{YqVdx%A6aeYWT}GSnKj356EsH4+Av(E`lc|CjA^iGZe5sfsXd6Zg}vfe z8-LgW#~NF4tl<n4VyN$d0%XgMsNADLXBdDNor<K|#Tou;^CXi;S(!ezkIK&7&3H<; z)nFcr;s~!yQ=!1rS5)Al!N1Gy(j*I_mB!NyU<!IAI{F3>{RXwZH!%;eYysA&z=9+w z5$0M31VmKomsmpInSUTJ1Nuauz(r5uX@6O$-;$uij#K5o$gl_x3qlX-XJYynVPr~! z98y)VlqULUSibtY(W6G*Xv{MEZTcRw;xz@xf@>o}ccO}{#1jJ-Vo4><%DOc5^na`S z)~+^=q~Y)W6$%cS5tfFF6K|Fn^I)6AoCU)Hyon>&IT9K`Yu&7oxY+pl?N8mhyMMZ8 zM&Km7?|IpcCH1Ac`c_?CU6*>|nON|e^X8_UL{w1$^VQDt5is>+NmDh?Sb%2hzA2{h z|C%}OlAMbf1YqZSs1-u8N0wy)mwiQ?LI<rQ1PUzyXI&?DMBQHg!Pg)2*75-ya0e{4 zfRnzmr&z4!$~|yNlL8UVoN8t?iGT81GMNp5(z1~P;LW__u*+A;wk%((nhdqauJLJG zcWKTV)f5RQo6kDU2<^3R%q--GSsPgMZdvz%@fx&mnr5i+ZD0T#2i|o$S%$)Rs+yFK zap@Ue){H8MB66TWU%9Y^j?r<0`%O&bv#yLUs^c(RW|~B2#x}|Z$dE%2=6@`kSFDG8 zJQ^Kc0>!TEk(8@J!5WqP>XlQmQKYA|%5lf=Dll{xNe#4^50H^QCj#GQF&>@j6IfwG zI2+I$<-9k^fzOh)XPz2Fk6t_+)UHvZX)@}-AmLll6jtYK48!V=(Bs<65n4qIS#af{ zMBJG@rWMD=<~<c_*wuDNV1Kx%y%yY$kj&Wz%~$h8Di?hA4q>|--@+wMWI>IZxQ>9C zC&e(j8^N`Z{6>TlqRTT<vo;mtuoM-_N3+RUmbSay2};j5YO1*;)q*6yWaN|+d<dod zZQiDPx>pkA*_z8TQmD(bMy=4;x-T7h;xR0jXGx(OdD{tH0zrhf-+!^weR*caTxPs{ zO!Xh$5Nhtxrot&lT&RbC%=n?eijT$w*{!;Kw|9=bT`$xo0WD8_5hc6K1UHmbTu<6# z!LA$^(-&#|Lv~9ViSiT0BmBF%a^6qna=kH6d}IEKPspXX!$&yHGOUnmo!Ou&=d{=E z$7%{;pPbdbXO7D=OMfw)$VH?rrOr$e6v#*kM@5Zn4JjEGFmydPN>t;~Fwb&LQDw6d znIz$NzYn{g1PO4u?vJx!HhE3&aL6XLXVVd!3gSQkmUC{Ypw(zMK2Cti$Y9uSJxmA@ z-oH6H_!+Z?mmzE@3sIP|j>vV^5qg}Hc0Y~??jxkQM8WYSXn$XgdPv)PeDP|NW@+zi z)^ATt;|-s$G$<M7VKTbFw^8<LFogcWmgnw`tn>s6Qh&IYwFQ~3Zom0<)O_U-Tfi~x zon4xfS7saaVDJG4W++2xx{(3FwzLSz^c;w0EJ+{u!MlxL#%Ps=<03C|^1Kav;N^!Q zUf+h<beSzcn}57$)|x^w^JOuk7y=!-t{sl9@j0FN{27#=aC2?;^aQhgF|o$yECFLb z8c=~xdSJeLXK<Db;JR=>qh;l=m89$5rJe*JOV13uQ{{ZHFAfefI(A5%oZ&!ICGXLE zYKnnNVMBYHzv6UcBGqtuJ=U`l_3D)>$ZsA#6+^Tb>3{#pQLE&P`C!`(*)VapJ#8!e ztKJ9DffT)k@hYWijarkE_qKjZe|@=gd{lT1pzN&p954syT%>_&;Oz+}IYru!mocN3 zFQlWvclk4CM1+6p3@%?M4ltb1z!PBoqJpPZ{iy^n4<o%y-1+)-pgbVS89x-@N4N&z zBUrW4LVxMPMY@04s9hmRQ|_jc-ZUHJaWE8*Yp>el-jq~Fi7kS?PPB<dRX_@aAwfyz z+S=cKSU02w5?~upCJDSr7LFwX_^4w7-0~Ey|8o*YoY@w=hKR&rGr-65KzfjH<`Y*H z?t@m>?_(l;EVGmUh|?g05aYOb3|-_%_i)ryXMajG7c|xs4^`I1$i299v%W6SDnK}W zG`Dyqs;31(a<w9E^w=Uw&WC3GJ}%qhx^Rpru8R)bv4+hqpdwtt)c9-|!7<dnKwW@5 zBwI;($m=vs?RmRVk--#|m{C9x<==ClO^lPZvg8s-#SQhbu%VdQa65|3T*hixM*S`o zV}E_`u}y!>J_^+gV78eyzL&_&)=f1UXOcP<c|Qy6BaBTpH<X}RZ0vKW7oX616x2+9 zfq%$L4YI#*-`(hql9za)+}V!>4zTR_3b_$YI*|{i)Va%SXx0|p02RE8Pl8LS&lfR! zL)|DdscCOia%S+L9g_u^+~EH`8-Bnufq&SLY}hR*r1^D^vaDL6@8k0Ke_#9Yhi5CS z&`0#Jn@!O$vj7V7dbA(VBs5-a)K*v4zAw2)RgTslnvvFevv*oOEq`h@%4ek-aU%vU zEzp4$J`{4Q??&vsA)NkTC({-pzN&-^(EV-LJ(t*X)27f_Y=51VSo=XT%kXR|{eMjL z*f36ic;_0Ah3mzwsiuh;Na4}cey$hMoii*KpZ=qR;dJ50?mm$lHp7T$<fm7F$)+p8 zze_H%T6dtD#Xs_|vvV#Gi~w@kEIN{R;y-e)IQnB3ix2}D1TP6K)ymoaBgglD&4nee zzOgWt=xgpv8NbX`qCi<{EXq;^iGLGAYelB`sac%{z}z-GT_?Y(r^!uuLw+6Ao|o|- zyr7j&tEey*E@eec7xqHi%SS&xTUm`saf4Jafs?}*fNZi69RvM9(b*?htokX84P>Z8 z?b^GyJHIIlUTY%5J`PA(Mf=7u4b8U~Fr`iF#nQgp7Qeeue3FO}$Y#8`{(t+ocePFQ zc9QolhA&Q@+%@a?>k?>I{({PVUi(sCry>J5U4Rt2<ZtVNn?BQlg4Nu>C#@Fs4eM8$ z<d87F)3)M}iszFZq7C~M&R{g@a|W1opW`$r7-uTj)9@nsHAs~shJOedZBxje#&3?! znI{n|bv0MNvhmU*n&xPO+J9Wa*9kiU5#>bndbto)rm?i9<VEICqcN7ZBj~{5`{v@H zx!C=@@@4VO`r_XD;!z~}1+m>5Qgf=iV!yzAjq!`#RIZJBt!YO>3sjBkavGA0LEL3k z8M1mOtzWUfAs<HwwJUNI+XPCPC;5~W2}1Wt)~elVT+!APNuqTBJ%9Y|?Y(~e^&1v{ z1E!;PH|?^@tW9>VTu|v;1e7If+!^sUwCkG3wZ%`h_}%d<V6)Hj48{))7f{&gbSiqr zf!vFYr^%YZoK0Dkqe0r!tBtiU&BE93zo5@SySJ6ar$f}5Ndq+@Dq@Jl`lk8ztvIsr ziNs@LPPnzVe6Ux0;(yP7Sqt%IuYQs*0rA?}yF1vciwCH!=I=<;3XKpP(SbonhkVt} zJ)_TPv0GbwSzCOs9kXIuCrpDv-7u|Fkp}$M;``d-4s4XgaUpluotF#iup$>y2T;II z<8A4uEiVq1%hPIh^OgX4SZ1<#?vGWnI7kpT%&*8vf*gT)Y=2<>J~tOyytly0{1W$7 zug;eoXPRpWiYKiLmRJJ3722t~btWT1kl%+cZp}y)(`nYK(r>HEmrdkpnSH>+F~<QZ z!yM4=mSK*ItqgNcFJdm`=U`5T!#D1|Xjp>%9MQQ?h97i1Ily(yKBsJ09*YCmTm|v^ zKhfRWJSVlVcz-k!g@fZkK4ePyEL-!dx*RXrdad<mr<Hv)e&QT7YYGHsKJX1$iVF2~ ze>K|Zs7)Tt*yJ`P-4erh;V4Y1O@tHx%DR~GJ3G|TLcvWE3MLbklt9v&-KO3N2M0vE z`H5IxJc<Zr@tKH{OEyUfX5!aj)**)%x$~^!e4#;R+JA4OGaCFROpa$~W&Pw##C0k< z8CWH?Ve%9X{~91(0>d(MKr9s8E^txA!AWiOR4lV&re3sa_*&9-ZjZ{io|*`MVwlUj z=?Lgwz4fGdN@qJXczbu9WgqSaaG|`syM=p4J<jW!)>#sk4;NoTsm_kp@lt4E4b9+5 zPGzFvEPqjYp(gU!x2X6u!CK{&fWs_dupuMg5aj_j6;)RBk?OR)Dq-*G7Xo>4(tScd zfCZhts2Yv}?}OI__HA6M#=^G=D&b!yJYs=DDrDhxF-(u@9(7=7C9dKGMw5d3SfT;_ z2;0Uq&oRtat<&z-+T+RSrZ*rf`Ayv-!`MKl?td^0L95b0gcDUnXKADMR2gvhH8dQ~ zuLkz)2fu5mz@EFZv<S+tUQ0`#vBo;V`cg2d;WhPyA?SVmptEIxN$f(MN?B)&m$&0f zAPQ)IrSCDpel||b+V-{*ncW&$eZLVWHuv_LF4;gRtaKog@ky8eSC7@d-+txVHOlBs z>wo9SE~MPZxy$LRG~%?bA>oi@`b@3#<xQ;7(3FE_npE`ARJ4;#uTepBdOaeD`8-7i za$8{xSB7PFDO7?U-S9<YFayTEV@-zxg4w30KvrVJrnRmzZbJf9X_mn%NmOPdpz4%5 zPc%}f>n}ezqRlE(_+W?TV}m6^Tp;aUOn+Rx0FU-f2_6dh7q))z*iTOqj=_o}TpRr0 zvkqG+U#K;V?vey7vvVaXI_6P|jKatkwtsH48)&(O8X0gvouN_<l74SVn4mswZlCpR z=;m!BuxLTwtzHI3sL@CDidzP*SEqsC^g#h#zxh`vNj2{D4I?QFkq`=&U0^DYHGdlZ z+ynwK#V-1cMS%jUnS0I^@Y778?iYZNE)@^-XfcPAS-h}2kV!8eiG0cED*{lRYDKo< zfq`77#sy(4Plt8WK!&^I<ic5m2cC*dS?k-uu_|gLC+ISw==(q%E&mZyb%I!7r><Na ziA#x;Ln$#WLJNPie=Bw##a?E)7=Kw8y1szQaM2U%Me-63)Kg*z@ZF0PnW)pO_<oyB zMMck4Mz5|;7kaDPCh|v2<s4rvPuG6<``X`(uNEFzFYaI=C4nw;7UliA^ETaocYN^f zINf=Tp~74!nbq}Lb9L3-9oO*pnio08yBV@4TYOSeZf*ID;#=L8aqS)4?0+7!cVc6C zX?&Yv<O;MUB6AIKg^4yX=y>?5H<`}F{ehZUXF@Jb_C|@ajM}GohhF%U$F-voJ1Zpu zWL%q!^K8}~vDL_Cbt}e!@W?3N_`_M)pInntf61mt)2?_-+%S^^^?!c%_SNzGgKa0S z4kj*nv-S4%?slV){`%Mb!++OxS1;}?=vEeVjc&i6e8?ultp9XPI0@uobototOpAMJ zoMioqI|i61bno)(S9aj#{{C(e{i<&59{hTAeAuXjM%}j64)%B69&aDU<%3fVW%uBp z`#UgtFlb)a?i)3;e>ckULSK1izEKO}m=$$OMr(ez!b#@2H4yJZ@_*-@-R%@xNngF$ zI)wIDZdO)S)`Gml?Y;fuZOZ)-vJKiY5__VM_gBqxSZn^o6_&Na>b~CZy#43a?#}C! z8&2WJyY0&PYOdB3iZ<ZRT-e)b8~F)rFlM#kPzRH@@kV)DsDa2O=Gmco=EufKTC8T- zG+q0y_P^n*)zN`vFn`T~rb%%+1)v?i&Mlm<<r9Dk8rZ)TFZhBUmLfNzs2vSsb~8<f zqhV(-PRFA>&L5zii*@22>m@Zf;7vwO1CjO3>*N^%{nnz>+LfDg_$$Z~kEWyX&a^=I zRU`QBnM=ReF{~1Po{eUtdIpStT<n1;NO>A{P}rj&{=4HPFn?eTfr_T#^o8Ct*MfNv z$^vcBT}rPvY6T{vjI|dp>v8mR8>6ryo5ArOnPVyXVkHzvBjH!nJj*eT-3Sc{$wlMK zy#wdO(Q8haE<uww4Pv$C-(pa2p|z^q#1?NlrI27kO8|Lg)=hLIw|{hGOpl$jS5syk z_5BnV(X1qh4}T_Z81MPOcxqO2jt97VJpF~9?!@|o6-L;7KcBRbPh%dytNQEOViQLl zQgXe>rm7JN63E(H0ig&rW>Jdzy!O;L=&JR}@mmK6iJZEO&cmU?KVa&~zm~XQvz<r3 ztwnZT`z=$mkWiOnfTjF9`9o$R9=L%3sI`rnZqV<)(tlv1wNQc5oSsx+%eWMg&i%C| z1w@aEnCAX0zqIlzx(}t(5zN7~-^-_QC-B<V$qOX6Wrg<IuUrl@h*p|YZwjA=l}#hn za;26KTN{0>lbgW4f+XTgh{rbpwl_s=JCWyPg@cBtWAx|{Ep}hxEf#6>4bs`Ao1BAC zznYBlynktT7a6hkM`vg?^r(94t<Sp&sVs@#K}jq++yCeG;qKPK!S-u&G9D40vx#N` z((_){@8+rZAdY{r^;s8{v9`o?HY#eo>0Mktyw*M`FO-xISzleeqKWb<m)lnuKdFkP zQ{_d++%RGux1~8WDzyu<$3ZutoXJUCYEUR?Pk$~5m^ao{w+Z}vT)Xr_|5mWtQnq{j zbHA;e8Qxd=kiDIBA6Q}dc7_qL_s>Zq_IQLH+Z|p1iP|`aRot{&z2ur@ALx1?RcIO8 z({O0f#k_Yz@pySE{chMVoiCkUDEObBv;XgB!5gjz%)|91Fqdh6bWInwbNN$Qmw*uE z{eR8mIVmDG#X-Z*$rlM6JiRMT&qfwS0HH`=y`)6Kqy*cl&V3`;l$Bt*;^m$v4#(6L zO~-CX$aQxH$GOdQ$e9b73A}{1J)``bljCzMo+>cIZZFu&(aOyl$@tAEF}DskXvnHI zuvQb)P!rOq?pax!Bgf6}@)5`9-8r%L>wn_nRK|myUU2cc7KP7-YPxltX=Y_B5&H9^ zsn@g{&v}FPR}ULw@O1;{SRY{u&d-3k`I_BB6@Z<Ca#)0a?(V<(N4ou6$y!qRM{gc7 zbJg(Qy><SmFdIgQYJ1OqCC_(G*<wIu&Sm!`wPuLpr)UlnyhF6{pKE2XM{f-0Y=8L? z#KH^U7o*&>w;7f;;fH?w$aK8}bYxxEEu4yN+qP}nwmL?~tk~!{9d&Hmb|)R%wyn<1 z^St+a?|=U>ZjG^ORPEYlov}}yntRuo>&)pig7r&i-P57;6noZeH>U)S6_O)9rY2`X zIY!xrdvGDK;V<<R=!T`x-!$)on|7CiV&Z`XE3#x>C^MHr@=Z_^b9FoTMxN8HKSSC~ z;j;-%j2{h=_Pv^ka4~F%WwlsBX%&AGwV~2q&0p?-KTg%1WY#c$)D=Ha8C^GjV*EJ* zle*1g^S&#ltIHk)>!M~bu>A0Ub>{5HZa@Ue9v7SXk!rDqs!&|2BVTFSf9C>!5P%72 zpKXesvUrvv#cw1Dp;W(Tb~a&Pq$l0VYpOX5e8scB+tysqEVrffA8ie1SBE5le$Yo7 zg3y=*hK=J-Ffs-t7t}FSbny82`MQt+pR8U&O*`Cw)vv(Jbqp9_LgN~3H}K14K}ai7 zh~c@azKeA*w{@=(`o+!OFKVNf1ZgxHzIh1ZQf{mm(=Wam`9gHd5Iu|%CK2Ks>K%A( zFumv47<3Dtq6;wEu60uUTpdzC2`U0j{=sPn{8XS(s=KO-psn>V;F7j0yJLwj``)F& zOIb1ut%IA3LK<(#5(ozsQ8MoW#h4H1a`hoSE}b`x*<^H-D5j3wXyx@H&87{SFy^#z zqHiuy9d!hiC?1Ov<m7g3Kj06B#$?oU9bnAs!Gh1A=oyQueD-zs-yC>Trt^*r-x2Z# z-q(!~^<0mz0P(L!IDzkfh^}__8Z9#R15-z%2ZPTH7g7(X@|E>;>(gI599eYuuna)p z%1F{*Id#Qjr=xoZ_Nw?zy@M~|na8&aWfCUIk*7lj1HV}b2ix_pSOxw0K6r2my*h$* z8x|nUw7m4QuBlXkX-4A8b<p7=Aa8{Ss2Ja3c<JC1KgT?N#__;S;1;yS4LD<$;!T*- zM2Exmqo!M;NnL9IaUNW9jSIxJgr~K2rL}qA<+xQpI+k=DmavFbl!!H}LD{%6+lcs+ zuDN)uKF@uP`y%r1$F22}CHce6OQUSr1$Z+!I{)_G>XQ6h?BYtsyQc>Hx8cc<Oz0H< zYxCBs${CtP<WL0lesMO7`Mb`fffWgzUv=glVI}dap83-i8u$b<5y~bW+<2X}2?Tnv zAsiWLr<r!9<hWhYJTF|F+{>PE5@*Apd4Z6F0b{r;BC6_0^zHJ6eE=v_bw4WvUkLrH z1L!h7G<E9|Lp@R;c9?A9B?G=;C8h-6JDhuYX)h~z9dfus5pQV^whMQ$rQ`DC4>M5S zjh?DC<M_c`oy#G!8;GupmY(xV{4SZN$1TDhnJtG4dm;+x^Dq_wW(Whx5w?;i*r`X^ z#)*7=1))Iv@cSOqSyl&Ux#aCjm;FK2LrDq#AmP`A`!8|0qPL(6B0Lao@VQJ8A$z3Z z6>>+jWYqT)YiPU%(fg1{F=Rh1lahj~+*zgj;>WekYBkS_7>4E-1kKhnC186;z~}0o z%HKHx)*+z{fyIOaL9XskP#L?k@U156+Qw5<`1Y`ZKciE0KUD_rYg`LU38dO2KDZru z18fCd`kUE+$*WhO4J~VD#-7`rfV(8$WPZKt<WBKh)Hwcu5lgj!k{PDEEJ`do$c3NT z6{#zd*;{;S{(8|jI?^H)Yu<-Ax-A-;E#~|@nU8x5M9hOXJW)l*pGdRXNoA53EGqb7 z5eWVQQ$qK{`&}}J6!1f1w4-rTvnZdgIX2WKP8Es3lZ5JAl+GV2%&pZ9ApWeLX_tU+ zb6?l_Lu2E(m_dk9gpMlogZ$flQoGD%uxMpOSUKboi^rTz(#X&v(0iIQDoQk6A1r;& znx0w8uj5GCWb;FpY&6>|kxl7|=OLa9BUJ>$g^_pZ($Nb|@hbi*REaR(Oltc-hH0rz zBh=6UcMTS5$`|@-v_XZLX0)myst!azt}j$|tn{seziq{ga~|)bqj%nvD~6rKunu$Q zGo|XwQ+b2PI+Q*&?;b-n7WLj{a_nv=&8=eM<D<ErFFS7aR!JtqUrVdZnQ%n-WW5vr zc2ZLg&v3{hr&3ZJN?svG%X#B8P=qiClf?=HX1)n=YWJIfC+$wbYz?=wX=-{aCv&c+ z%i~4EZQdy1@5el4M}F7so071?^$&jBhRPgqD|v^7+2oaMM$~wi0~kxJ8-0Hjmmg=b zzEfN$Mn?10GF<W+bxNVJZ}5K_tsspdw*W=yElP3=JxPwLdiXuZSH>`ek}y6SJlF9C zM0wydNTEDgCdcgyWpGovV*ZJ%EQX61d5fhwQzE*6YE`_2bb499(>p55#Mcl2?ew?b zOVDKWg#dGP5XiE)Rve`I$=ToaL@f9Vc%+G0&;?v}`}z}je6?IpYjc$`?Eta8d%jnZ zD@TCDZ+BVG=@jC7%%eNyWhmAvUsv7oC1(SMie8N-SVT+&T81h-=7d3l4MhuXikJoE z!ALKF#CqBCw(X1)5|nl<s~pTKEI--BiXln42eT2QdJ8F>Ah%(LEdkA@c%bI$DSx<m zs?U;;!c&475-jzg4K``Jsd9gOH=eeCcbYb3YgCzrv(Or-@7cj%918pWkdM|CNE)t6 zZJu}S64_{v_vr0V6}ON2xkZo%>VWCip72?w^5dJq91IsVmu6wFVP}2jxgBQ_v*UG> zh@&80mD&(%LTpB)J!z^__9k+*v0bHQXVOuDh`WLy`HrS{t=oGs$=}HpR~WLagh2i+ z=o@QUQU4~HtN7{%)Is(%uF@=1pkjoIVoYGCje^O_X{yZKr3NFm{deK1ZiZuwjO~V_ zR^PAkV0{CdBje23hB0#anu6FlW6r`_${R7ppX00}ou?b-r+vu&I3-Wstp&v=ny$Ll znZ}JKRFv<lcHDt;m!=VlK3t@Axv{X{(VElL>=<?8@&d8jwaeR9jx0^)fmM0fI6AAo zF4@cpWO7o!?sZkb>X;D>OLRr(jjf6tjz;NTzV1rq_5UhtepZ^)Mjpa^BfS#OdE3C- zFks=l3w{c-X-j1rDHYzt&6QkVf1NuGx=&red($AQr<dJ5fz47z3{HcBYxjIo@#^iD zy1gR@qPAp=%9LCjQa$dW1FaQ}@K;X$vVz7PP|L@|xqXfzKZxRNSYzRq`6ak{sN}VZ z-+_;ss?2S(j2JRkw^(|)3+_F$VZ*Q@>0LxGN%^jQ6<xF47*q0g3@ojHjQ$$v_s=|% zxg!+|k9<e?dS}H_MkD%%`o&fTrjnN8x?;|ww$vu+B}LW8>o7zQs8|3A1xkYW4Xp6G z^haL~!I*Ebg_!He(=_xw*ysu>!~$DxY7nfUbE8LF53FFI)<EszD-$Ps=Pt%L@8-jI zWXg7xP(BVs=(5r`7Zf<dhu4BH|D_6Q4w}~wvk=UqJciQD%>o8ayl-cU=r*;M#sSb1 z4m`LlQR_C7t2SK$!004vDCnWU3IOjuMr!)UI^M~xHY2G$ZFV``e3owCT!eB>vU$ox z{NEK*<1=XTdqW35vlCbV?=da}b}LPosaP6Oml8QfAV936Y{fhXie!-sn=$w45u!ED z0tN>OYI=Dwa^P8|q0w_J4>fyE%r{iB7@8V7E9N{Vp!3=ccmk3>xCdqvj0nei-zq(U zHG*Z%qE!>!Sm`d9X-qg5tjh+T4AN{ROs^s#_=lNa{;gjUNu?o}eF~3x-J9QRDi}gN zi{{aQpt0K}F1s7s*_Uayg`6Mno>r+w5WQA6mbGjHMB);G2^YX_6ZFS|+lCoa5pnwM zqZV&}ZkNyoxb3t0c&RSG>k+26LB}ug2_8!|`%*I2RfpWT^{FQXia~kJA(jIR70}_` zi=ZC$noNBj;qootJS|-{AeLSB<bAh8D&v9ec46X}og*$q3L)A?5^Zm;0Ud%e1-$xH z-n`_YdMNC|)d_x_dqPM)NaD;}OA*|{U9WuIIxm+CC~ml}V?Bg0q+ecPB|^~LU8TX8 z?kb##S8aGwr;I54<hUV9=Z^FV`Xx^o({n7<Q?DzM#VQ7MU22ycwHTC;xYq?%4M^1A zTW0xI_&$ae0weIZf>njM4u;4<NpbUJWQC}wbY#ijXZoZ$&;oIFfiQXI{Et17OCGUX z*{3EH(6SwD>yv|E`}@iM`}xTh(ARQiB%n8jXBEMbplfx-Idy=C5c1`GH;B|`m+W<C zs>Vj!sOvE~)W$2yvA&W=^YMMBV|KDBwD_q|A9pW;h+fAHgJ7DTp7FEsuh5n~|4Z}D z<R_zqv)`TbnJdY0Gj$~<Z>&w((*uf;>I#Gfur0{uR3OJ@&|s3BgO{m!jrw90+EPNJ z*Ulny#NqxZbp*5=@`l`nR=Jzjk#u{a%rwf0>a2B`=KN2AlxAVyVJ=K&uzv&E%wA^% z+B88BDm4fh+dPW5sXh}m%0O?@VRwvXA$&tv{HOrG(po-_jkwXH{$g_}buEoe>Dw(V zkWsCjx{T>ZtSy@0`K`IN#0*;UX|uzNO2nGo^Cx0QVspw$3@*PZgk88RW3bc9`<iUX z+D2orQc^3$ZF*0R2gWy#%?<$RLAWB5V6tpPeN^1q@sVc8AbWvIw0Tk)if3C-S~uU{ z7peJdzP7PHN)EgP&sY4jlVtQoQzobCz$Q6wg6bc9ssxsYGtKQN>Ste9N&3G~!Q0D~ zi^@tZ68(t)m}C+FUf;XyW<?Z43FE$=(3tJ9BnHATnB)pMgTx?7OgO^M5{s*8s;`ty z2vfu8n!_S-;DoWIS+&K}xJq*k#Q}GwiIQl?JH}e?7)a8EbB`t~-TY<+$10!+++v|# z-&bk7jZYL6++v;);h+AVkGNzzu;0mb-u(8#Et{H_M*8VTq+A<LX=I5Up4MPU6#x7k zTm$BUm+&B|fX!V}1Pj_99%qVIK>dLdED7`u4uN!t9H*>|@v;}X@6_bg-tj3wcChv} zz}(SlF!Y<di56)XW)<8rQ_;6~U^D_+eC)F?%wmwjlo%N!{+)^O7v1v9hpU$%KPu-$ z%Mlwk@yMBAd=pWVyKT(<j$p6F*ec<jyfyUlU=xgXsOb=y_Ks?sYhO;dnLiG26KwHx zNiDF>yXo~7?Q)6v0jfq?elgR>R7h_J<k0$M8gv{j75*&Nm{-tJbG;M~jFmF#e277X ziPF8nI0SoMn-dl(Da(YK0xU)+F%Bt|{^DPGU$jP|&L(&}g)O@Iz?4|(^wxKz(bsTj zEU$DxUGJIJw!p6t&PX|T>HN9$xnOF|TRU@dl9c3oLN3`9ZeHfE`U%59%>4KF?e{Yy zs)4zp*Dr};-zOV$P_ys9fuEF8gv<2~%cXh#tx*q*U8**J{5vn`+|S^lDBB!(q%z`+ z!W#U0NXw5>w2X-GX8N_XbRsZ=Xd})vY~2V_p88!2BAc8*fgV&;GaF<5qGAU8f>?{5 zArdADH{Whp5QQb+&NzAt(xE=`qTocjm>9UyOALGE?oeY4l~mY1fa8O|{xlKd(28%g z%EFb(-!TdAqo)`Z+E!VaaPw6yrICN@D?^b`7c8e&;z^)mI%5#9r?`!EJt5$qFWu27 z2(E#Y=5k7DR#fcCS|k(LzZ3}v<<%^u_swd0>#}D0ZT8na^RfLjBivzdS^%AQ_cUAP zM6X$&;)duXBJ-OCH}L$9u-in{-(icfEbrM&siIKx1)ydXarq?0u+mLs7XXqFAOcB# z|M2iQrFZ2XKl6L%X0wm+yL)s#Z#EZ}nH8xLrkQWkRO}=b3a@WpyRh4aWNeQ$!H5Hv zl}ZoSA0B+_mGZ6rDk8t&s0K5?qpn|y4p*0#`1tl@fcQl6I^eL=c}wM^s1vo?`9YR$ z(l{>n{i?11F$v3@qoP<Gyz4=djG{PeR$ZI)FhE@*#RIh|1BTYXQ0F1eFsDCX_*b*R zTL|qh1j4DX(e*hK_o`sHF&UarID$cbts4~+0FL*e$A}d(KN2f6+SQDA9Er#@yT`rz z>P5-)+6p$G98i~lf)+4M!%}VM{w4_*ToDoKaF=aBvJdk3WqXzby+1%{o+Rb%fG+1e zL*%yY8F7Z+!lE#vipJ2Hpr-n8cAl-gyRdQSSt&31t3J;{H=(G14sO90BkiwtDTr-k z1mAk(4dovtj(jQ82XJn|B=KgX*pR#5{_bX#WoO+4jX;jUK5D$)>gqh*sb1(;HCA5> zSnhOh$eQ0O8+arZBA#>j`;%vV7&*AlGuQRQTU@a*q-Ulm(lZjpb0VKGwI%7HTNGDt z2wYx7l(#mHg6AKkO{?JO`(zJUGTydJ2N}<)oN&6^<Q_+@`b=fh?feTBUVr=~UqI)2 zF{I67ynqbO)t;lL^{gEsNzF4NMo-^!U)doN78tqJmPP^|f`^s_I|l3i!o)EYa5dEh z;OD(OfW|G(Q9VHHSGE&sp@$5S#jhE1WBg{q)oz7y^~Bif%MW1KS&!9BXesRE&|$@< zu85*%Nj~CBhn>e}Lvd0QgG8V+xbVx+2$q*OUk3U$_@`wxG;|;_q31(<L&C{=Xdx?Z zw_-t`<xnCT5v#t<GEJd?&t~Lqs#)z4v}TyO0a1VCWY%}`6nMgOrW&R=FH6sXQnP1_ z1G~+5M26ff_Rx5A+2$Ya;R%B?I>Jo#!_x$5a~4kF1Rt6eJfQ#L4>l8y5@|1=>$4>% zH-StataNnmTV9Z#E8mrtGO{a`AK$ZnI}>O$8)+;i>-cHv4%?!Qw{m)o?6rDGf_-lY zB1i8ykr|uswfReU8j>%<F5nR=V<=Iin35Es>WuTZ&4cjMnI?c&=@oN*`rHELc+jOA zKMat(UHLQakK_lowdU%D&H-7H$m4tBPzkVL%z1D;H5)5^03CI0H4>@~Lqyd4g9Vbc z!-|z4M(%!+#~`e-aFtkH@=!Nj-vFjty%FLhem^E1bF|nmm^fYnHT3Z0e8g0qSkWCi zefDSzNfy?uoU7)kJB0jY#e#FR(#bO-3%+8KwMl{Mn2FYj<h%62yaG6Eo-;l^2R^W= zw-5>oZLt-+eA}38M1GT=893eD2M5wMJmA49c`u)r?v?kOw-V7gjfWIK<79Y)%Awq% z=QhpRESHKEg_(J*D=tECf6_+K6}OKbSj>qWNk=x<PseS+beN+xd2CKCtf3a&KP<L{ zE$}Rwzy!^PMi9uU7ZrviY%(K&%nH<Go^Y4yTHWGX=3VDm1!i6n*%3JqToJvpfaf3e z62*>Q{IyEFFNq5D?%uJWVK_Ms{nIv`V(6K|=t{vv^;Y`5`=&nZXI;byP=PgTjB6rk zJH3F9!sTX3l65rRchtdXn?L}<a?moOZRX2s=+YbosUY<+Y**nFVmy{}%or%yN4u)l zR|UJ6Ul%Ug*B1_ie`NIkNf?h*f1%W~)h%>k-)!iv2+-`ZQiWiPUf7#-#1`!u%3D>& zaUCN$%loLpr0;F7bpR+QI~sto%a-s4*7XXDyB(1T$Cu1-YebjGFSv#XevJ3>Wq!<X ztL{Vy4B(!ASFcHJ^)40!83DE~MVbt;TRA6>>cXjfho!I@d@O2d8p>k-1KsRwPO3#p z$+)$>?CtqXMR9R2!xX+&T4&67KNHCZn}G|_CIca_<UL-&Ft|^sBMY(J8$TgnKiY}D zo!mb1iB?6*<BRhFVJ~DSux-@H2JYF#crs?tdowVNb#fEv0h%v>fdvd%2)M49&XZJd zq+F_d#0e9t+ndE09$pNO#TBo=vzdUC+s1eBB(HjA=f@qvwJKm9?4RiJ>2Q1QKJ5gN zWzbr!aNCN~MY}hp(b|olbt~Qw9j%CX7b~-v9_jg^4EdwNYF~>n;+BSe-GjtDU1x9T z;oMEcoO4iu7>VpB{uloXl~?gG5wOa!pEa|ywx23ta-qA4XN<3vSNy`Te(QkxsfzEo zU0|6icSb&&--6;X!-h5Gzje{-^^U+ILA!8a2usfB0N3sE<Q+yKA)PXfvGiK1iU=3- zgvPd4w5Oq|?KYuCNuPsMc#xH7-r@O{w_l1v`PA+yDBHW@tphAb5PUo~(7_xe#r5$! zjve8)kP!`0%$rsgJLwWGow;GyopKzefz&Ag8LIm@jE=PbzB68zDD70)S9*7qs3lcC z*0;q1P18L`jveFL@Fjm=Xglp72cqskk8hTWNJ1MxW|pfQ2FBU^M}+i6Ebkfvn%^%> z@z-;*hj!)S4KdJHGqFLE2cq%Usz$cbcDJ$E9Vw=(3YMDVrwOsHzRp?o8W1;{PN@Sm zB2IQG6{aUlPP-7?_1lvj#NO=B`EUMt8jaHuK+VT$q~9h8%F)&arFuqDjf7fAnZrNu zTQ}kzmBAP#yb}>kED&9^zwO0N(YF}XNT3>DyuR|b`DXxQD6xJI`2J+=p>Coxj1oKl zobKA${na`<3b}V;PXju>6y`#RA~C)#Vj4>=JP+M<TVd*&)Or4p&{b*@2wEf8HrA*> z60vtrS!`JCK{?7Vo-KpZ5*=$suhmMEC=n>yA8_^n##m>xp(*HqRL1dFbtPx%2d)7q z-uI%S@i7Zvz_^BFF&Rv{X#iGS_fK)ZUJi{iub?Rw(9!BHWt5@eJEzsxQkBSE&`L9n zV5iPR3*B#Lo<zNBzv%+n%o?OahEd3yuIS<|LmGW!@|7Ea2;_?yU&P_IM<5?+8Muf8 zI{a_VCP5vlj$;J1NH=}i3>4Yf;<PYL@u7k**%%z4JCSbY6mcms#zqt#bKv?GK+99m z3nXV_McgcsvS@dmQ};Xvo~6|C4g%li`N2G*gWP=GnjCCz<@@Z3a)nT7=ZS{0u07Vd zY}cinESZTM3+Io9u?fmujuT_n_O=6RU=r-7Z2Ks_4{nTZ_Ca3R_};1tXH&P+GmMOY zae@kvDvT@FmRr?mpZ%H*X-tAKC$W{sm|K<IY8Zytaiyq*sts2jyK60$Iy5l9#yaX7 zjrzK=(b_SiO)$MMH=aqF5y%aa+z2G?08Rb$Q@o|BVAyM6-KaDQ$R1aP(%*QR17x|I zna+=!M=zm^$IKwHB-xjp9{mH^o5-L^iLP})hsC9;=5bwqzrsv(Pp8#mow9xFgRawF z+m{`&DoIvt&7y(V<4=%(G-zN!{&`GS4@xps{6d%fdM%lDNe3W-da88N_=+@4dVnGk zCnGaEBMTMm|52^^N1vvu+p)0?00JVB7Dx|Z_`2)kU+1U)zrnDZnu5|EGji9PmUdTR zO1b`at>~$V#L)Ku22mfeQPvxC+cBbqi(c7?&u+6NMSW-<imNWKy`TI~e{9CJg~Db4 zX6mP3YfvdNKDq!JoL=Vxn3ICqi^|1C^o3aU+7?Gi9mZY@nD+r7>VO8yM`$nX@ZdK$ zU>Q}5oL|G#waN?V7Htps=b=b<KMqbmGse!Fc<VORF3J|2s8&dvxaBI#XxmbTvM=~H zvM#Q1a6_NFru|shkMNO!Ujq+2aT}k$xqPoVjS7tp)%9nOAt%u{P;4jb(i&ju{HWi4 zJdO=bF*;{VVLPAz^BQ{@UWh}WkLPwjsKJ0L$_)Mt3XVU27%a~Q@>PFaewewW#AsG5 zFhR592mXO*R9p7}_sS*Ux*v^I{vkdSC0T(<mn5cx;IMnveYluOo+J1xgVZ{wuHN@Y zp)R!2d|^Qg_kO#MGJBg?k2a$K2PT_2LKdWwANZ<&(&7W?SE(tj8P?3JbA<KHLUMzb zFa9<K8#Tp&-CeW$%afY^<%%7)*E-StwyZ1d(z*5)gzAnPd(s;Ex~~XxcL+;0`sO=< zA8+VM<~lo%?NJ)x%(q*j|LglsD`f<5{Exp^%RVFE4iV*_(*R6O&tMH41mqA21cW5b zL=S+IX4i&*0Q~a!`hT1flUjPwdz|S0Q#Hy^kZbHL7qcb3y^4HnMMxbR;i5Fw$WeY- z5p@(~V@W?#|32lAZS60!*%LKal8~o%yYv(@x0_~R#oEF<{V~_D-P0~GFLv23ay1sW z)~dJ^U2DX=obOpZR0iT@2TF*GRL;t4rDzKLg3{^F7OYT>#+QeZ!K0E}6WhfYfI=T5 zYemJV3~tbKv7=RX=#tf}(9ndnUHM=uFA{%o!cw9j*Hii_)(0Pvc(kElmq))?dHljw z20Q8Uvn?)&u)h#enl2~UO%;Z!DaxnZT)4gb5@|(2?kKmMhX4qE4RGugh^!C4l}|3P zG2RU@C|wa|j1C+?c(YVb&*>i*l8$6#K0(3H9#jhtBTY2#&s{Kd$;1J{km||YXxeD# zE8*#AKEK}Wl|0Yzl1fDOM{c&ruGFKze96Fau*8iC)F$4csv_dCT$nM|9ReyM--`zy zecwE7vd7S#$^$C$O#}f&A6Ajg69dt{3}`q8A#Y??(e`K1AC~5E;dRW=--g(kv&5`T zI?nyWe;QAJ(CRwLrlmwoNAv~svT0iW`7@i14Uu7RB*@R!gtfO|sa9Wl1(wR!SoXH5 zr3Z0Yc$ZgA*;zje2{G^7JCOXQyY1Vu(YaPqBxsi50Rg-rG}8-qW&)G*g#4xDqG|Z1 zi>;!=N*b42@t*6OzmH&Vua<N~Z{4o{kX^WAgO%s6_^mzW(Q|zFcwe8O>gQ+keSy^$ zocBdY61{_)8S6Ibl;3HyKsau`GS3nRM^f#E{Is77bZj<hzKmFFZfdIE{3&S*@0|Oa zoSBDO(IOCQ{V`DCr)DTW=WvTC<3wExoTG$Vd*+5<EliGp`B-}BsMq;?Wlo>oqibR~ zT?}tATB39)M>(sVKSLS^T@k{omDJWon4}^5{$jt@>TT)V!U9Ie2rT%(Jz9E0UxxW* zNV~1rUKKd5evH;Gil^p*I5YCx8^W4GxIR6qCNZ!scfxkfMCpAsc{$$f%Y<iV8eagy zKZrzKO+Cyj+rOVwea=77QyyX~!a;Oj>DQ$c)h%JrxsA}JwGJ{Oo*ecluYK1==A2eT zo!iV;b&5`*DCNNQXC4dt^9TVk_G>}QUkm6CYEQRX1QQKM&Z0lQ&1$iZuIxLksi>hR zD2Bkrn8W%kc4Qm$ckpCc&ef81jFi}<i=vv9C2E|5Ch0_X`xb6{Ke8(ws<#CQ8N7pN z!(h8Y(QtIq;M{yla=0RXu|&ZcUUtYXf{Ski;5%Z%{zI>Svj8tV?YYsMr(;mx3hpTf z+(dRgKZD3ze$Z}BbUc5eX6ca)b)36|QAGm{od<(tIwDJEvSiC+t8N^J!`#_!?^}pg zr!{wR%qq~$#k>1rO@i(JmLZII%=q6cRtJ4>rCBy#hxyTH)kxyWBzRO?9!?iI;2S=w zhCxuH-$8ua#_QS<qQLn4%k}r>aX^4KtM=kKf{13$Qm$CYekeg`HS0EfKhdlVsnr@d zEOQm4fkoV3l>1$-!yaE?T>@r6W9Zi$apbUg+`EzJxLL-XugL(m{@PViE1W3dlV#zt zOvt_dXb=SDO~1}aDrW%E0U9;_+jMy;+$UZ%nQaz#vQ;C5@e$gy#18z2;;D%gDIuHJ z_SCG24tL0j0Jo=1$@J{z;0ECC#ZejlYj#EdnoprYzCbdqOA^5PU+jF81c)Mm{nN~+ z`TuEl)dZ}AgIzZiq^aov*q{nSB{jaHB~}km4hvQWU7p5k`PE#NsHpK3Ev}XTA85pX z0NA+tFPAzf2*@);nxP&5Kh2;60p=fv#s7`IE%c562T(-xuQ@)19z%=-8w5mLDecAp z5-+W%<3Bi^Ug4ziPq=x)fdIgd!9YO%eX`RxaM^24^y}#%jn6DEtD0Qjx4bHNu<)`Q zi;}i|Jfwg~_z{8v!%R%A^ZKxc@Z%WrLY;Cz@aPBl&B6vqaxlk(67a+ASpVCB5%8n% zbXfaItwh5__C>2Gt1;i^^Clh)_EQgd9xZaq{8Mle=C8qTTRfiHCF7)A<f2Lql2Esj z($hYkAho#_%~=Esn#OXA`P2ijRe9sbS%U~Dwk?+S3Vk094j7P85aO{unT>SJzjzYh z&Oc|~V53gc?E<8W?d&hh%f;1cI$)tA%ZYXw^CSz3Uok-_trbDJ?WMs+AyH6))(7nZ z8j8#~ezpgEbuIGUXx8PU=}}!Rtf8~_6PuJGWR<zJ*O+9Pvb=Qa6buib;CF=NWekd^ zq_F~$2Ev9H36bNY4&RjSn4XtpQ)OF|_}P9&L;S4)zJq`AgCrVlL)N>0RmlLA^2$>B z`}m|vXF?kpA+Y?d3YYCT6#~70U1=1eLP!)Yn#~Fn4zt5ZB364OuOLTR^om0=Rt#kZ zxBO79xXP#=MXXKKe^j_Yx`QD1@>V@6)3!SNupEWSRDJTsr4^=^%T#fPm)@$2kkaot zyX{*E)0~-Hbt2mHe1ZrrVV0}`PjC6m2JgjV=DZw^^MgJ#W>P<UImi@&vT5InPBi2B z!TQDfNtU$5%0cYu-&Aqe&^U{q%A+=%K$o(VpTiSiKY!!~sScuW-(XVVWwZs@IqkmA z8g(^Q0?+Bpa&2d{f5L;vWcZP13iQp}=|RdmGs<V7Q(3WT5-3$OW68V+{3z|%LQ+-j z3h4TgxG-5|M)dTH%Og@9c(c|6Y5Ka>1C7b?9H__pqXd8-rsK#cukm{N!n0W+@$g$H zn%lh?td|f;8q7tQRD?JM-3U$OCgoUQgKvy`BAZY-atf?nA_$HZ=|^G2r7JImhwkVj zeOBeZ#D<xkJj#U6k3y685598mOqgD<pMN$GCNI>&obxv5xNJf}fWw;5l<?VL@~6Jt zU|N8=bgR9OIY2H}09TpBT2#MmaTGR;2|m6$-d>2cBUO-E34wybTm*UkW3ikD^mkM> zMAovCaXjm3Q}Y(BdHGG!`eG!*19006<>E6Qs{7KQr8Diev#*M0v)^`3jOExGjb*f6 z$tBgC_YVL)Qpp-vU@k@z_DM4ciw?tYJrWL2M_h5jEJ);%V(`%~9c~vjtnInUo!-kF zSU!l5Xqy7t1zzV=1~kz2Qx)GSy$C+48anq1#-c+3xInkr2KrWkjKtzTb9TwPaVyk& zkR)suhdv<<S!EEmhvQ&IBV>zR#Mj43QTsUDq=@ARaFeDy;9E^HlegV;Gm3gWJiK>; z92NEwC7L`;!a@~ioSzQ$NK8Z?K72l_Z*I_4-XF~<#@DEy#)=*5bNE7;wXGfW`u87f zt$(Z^nTk5+BC@@r7o?bY#T_~I<e>#scv9!NWcOC%9KL=(e3wy{R=0_|WxB9d-;6Ek z^BFESt@5s%f!7nwNg&KHk{kCDoKi`1_qPndyHFH9MOSq0NnZF2Y(OB*k#82R?IW=p zU71bSi&gvYAPlLd<5BypBTKMe@-z?ZXen=05FF6+0{I56tNY2#m`3ywS<&S)#NlDg zOtRJ!k;Kb9u_i4un&AweV?I%GI>llKvluQYmj%@cAgPJ6goAapxbgn36J^BSw>afX z63V&D`6hPIqp$Q1N|gnOlqQ@D^T{UXlPLE$_*`9EJ7jX2vC8W8Hei?n*bR}iob&wY zF%F0+QTEJ6_L#<~Rq^@!iC`H|oG{E^;>mnSlrz)CeSK1)95V+<`OV0&`7&OcYx2{| z*_N3=4wU5s;%h70hf8rWCY)=H-jlE=FgJ=;OL4Q(*CXS)I`S=&jdBX5q$9w%SGg~8 z==uP?kQHXvB)G@!CAeB+Yr1Nor*gAfYXI^XK$=3`j>-5yP*_u!PT^jn8r^Mpz-xU6 zb83F=+B^6+*7m2TWALSFmRT@Ur$jvaf(|dRNGDAPdC+_~kf>naB(V1j9Z%?Mt|6AK z?K7VWT2W##soGk=IB(pAOLo|yC3o)oV5PUCtNUXF#`(Dswx!EG;c-HgWRP*p_h`4& zf7}o9KA~Q_yc$bt+oegtfXU~Ee-yCM4nyY2`~Nk!w<xkxD3PPpLaJ2-%u1)@qQwHG zP-h_SysBl;-o;8DCYM!JEJ$u`zD3!bQrp1jJhCjl?SYV^rW%IGimp_|!BKUM1;_td zxoGZ6N$lwZ8^g<eAkY%t>rmegQ2;ll3c3MZAR9=(X3Qpr(G^b}k`Qi?@aEjeQvkKI zmc=3rmbu^2RGzpwW*|+Oc0fAu+eZPWgY=S1(c<c(snBQwt(eEp5mbzkEo21^i4=aq zFOgZUwQ~~8+c}%EhG>CJ9MoHq>adMJ_XZ?hOU2uHViJm14Px}Gr+US}Ffdk#UQzy( z%JpGW@i9%BG-HlzF1Dq1@`tx9RO*-fRU2YU`i{yOkDnH>AHdH|sfr%QFk=i<*WmE= z@_^~3)Y<q_MZVWz32pf)%ol-`#jEPja<6^Jf*J&EQw*|XFp^>PxDDEuaGx6G5aUjN zuICMh*6j3<zYIGABWM|aC#?>~ED|82d(Ze*oiB?x4NgqyvW=qnV>L6(6>+^^l|ych zc_*btfIfKaWYH}g3_KGZA&43%cFh+=4iWNpMX`)`*{#$P#`}UAD=l(buJGnTHTuGj zB3^HH?xqx<{_zQZx4Rbh+#bUwoG$wd1m{qt(_e;7T7#&A`$iy7WNNl9nBTf@JNP9t zBKRd(B^{uxg0=ysJ!?f?k-Qme<CJu4@cQ7_F5t9zcTe}>YG#Jvwo?K`&=ohFFU4h? zaqB;rpN}mUm;U}mb8-j&VDdh_c%CQ9XV(l;@~F?7zsZy;iEz+{eGzlNibVQ=6h0LL z)*j3{`sUqBd8FEn`odAp#9FUjR#G=VFOsQz$HXQYJoQ4PEcjrhRB)bx&J8|DWGmvF z+B7Z1IGhN|JOXT^RulpeoW*~;5<Xyvh#kS>_}Mc?Eqdetbi6{usi+ILo(fFC(3?SZ z`bb12JpS}Id<&=txzWm5`E7N`jdzi#e2)`2*p^*om1o7`;|u8n#R=2is{64%W8+5Q zPqdvDzJ+5)djqF&7~QgREA>DU<9nm=L1B0l`7oxcQuKJiz<C6WZaIE|t@p<idb$E( z51BE_|1fDN4`R`gaW1AZ+K1c15f*_PLz{#hn1jm75hAY9Brtg`6J*8lgr;(9pI1M* zV?k`d^7Ahw(VQ6{`JK9`T9L^(RLT!Mgq4rdk`n$jU#FrqU))433Sw<_Y8Xiho)9*< z!2urKOcq(*Oh5)C*_TP((?lUr!ST7bk>q1*;)fL)H*IbM9gMH#LlfzxKvW;xRD{sv zffd$5Awe0`Q5R*8P<<sQ_K8_&#|2>wRJ3-KlABp7A0cFj?y<4hHcG^PPD`khaV}xo zs>=C(&-7tbGk5hjYCchuOcT~a1pDQ3=_(SD6Q-Pdvc?c-C4++Us>mL}YJJ$qS}<6~ z2{quptkq|JA3yWaX9-&MhrOvPXv_*)QwP27)Sj{ymyJ2~x)R!y)guuT-&n33utRF* zXE`Y@&@axc@k)S!3YcZGb)L!2CecO!NsH+|Pb@Ox%puoGmKd<0ypX`Ce^ArLv8)qu z<KKJ^QS|_-Vo`Mqx16Fhf9bVU(N2fgqXZ%=cGvKxP(=RHDk?MD*s!(?u>G5%w-yo9 z{hFG0!spv6-!j;h#er+%8ND&P>4xW~Sg3c%)0KPRul80eqb_AloNlYgZdB=W$ijMF z3@6|c3#szPow%3;1&L*CR!w!Y4zB;b2mG)$oedP|K9B%oqpRRz^{JmF^Y+&LQ?I-T zu{NiUGcf($Uo$zp$|n=XPDgl9Ik7)g4LtF~A-OJe+U;w-I;5_a#y|rZ60J*ERr%Fv z(;#-lNOB9IRtN*F#~*|c)=tWB;4gdJ)|pIs_@myUU5^A2ZIBVPV61!R;_tNQ(*wEL z+}}W~Ee7Xr&hy^sRDHjmgEohEn7>rev4YwV-ggo%XKq!dNuceQ@8tV%XSAJu`<Pj6 zI4K|}HI1d~W^xj!uj-dZ54ef;Ru1!|&tv;7*!?wtN}8+m$)LOXb;wIQ>!w~f9D{3i zhiePGd+m?o3T(qDVm0$I8LA6|#J$!hEUE^oJAdyO&M2I*;wc2KJn{(IzwvLXfm2Vc z-S~UtJ(Rh1XV!IJFruphhDd4sT*^}mez<@9!tZ-7H}<dBsOD=HZImPvTuxriqDxor zyBVgxO9>_y;A=>GBz`IXpbM-Vi)o9rVHY<N;6&%tzVn!f6tm(-Uu0L^V^#14TW$r4 ziXpXx&m^@(`(nin_~8UBy)aGaR{C2k&QaPYN-oR7*!ja>oq#V=?k<OJ=9t0Y^3O}g zeMgheKS`bl%T5FksRl-m{E$jTHI!X5#FL!dhoo`OOvvDD<LujKZxq(bvYs;)Lms0A z+;wj2+)@h5<iPumdC+rpO+s*e2j2verNDS?KW$=GgqUwQp-qHz)51n@b}4|WW$4yM z__Kk?n?CdaNeHV#_*1g<Q)yOWH8VSlqu~_0URL@AHXT~GR^f$jA;0WOLSZ@-%sU9> zi>@e9KDOv)FvEEuquJq|`=nn%5@SWv+fIjXK7PkaVfuceidQB2l<DpGo3sNbf^h=K zFUlX6s6~QH*-_WlXPG~*di=K2HLr+(&&$rGo0}6(4U=)bg0%9r>+E}$&mC$*KOgFZ zrVr(IIIFeoto!=&!E$+4-oQBNd|ty_r*9Lqe8tEyE}YdkG!*!g$NM#PNzXjirHdnq zVU{m#cYYy{jh*Isd<zz*e8UFn{k$~OPA^^o)YvoQAk>`;4h|NI*fAuoZ-|nq9IXWn zwP$k}_54-ZpEgc*Vb0#I<zR<xCY<z1j@+toMfW^oAl(r34zw54VGiof$+l~#p1r5n zs(L9Xule#Zt%<RM-eOLd&G`mj{4izTohj5AQC8b(@i?^RhrL_#>s|zCRicf<n~~A% z_#21J(<dyj;i7-yHdN>4nFVU^6;nhIO(8F~(Vm;=fvqbU_bHZxfe^l6n(q#i3~9S{ zHs6vEZxgH1gd%El2{vk*wbe4dQyPdd7Ok({JhPctF_~Ur4_A7wZL5>#uF5(qI|^Lk zl)+3;5-*!0IXR=f5!eBS(V;WTDAhwFoxlvH<`07bTq{CIs5E>cHyG|l)tc9sQOMt4 zmp6}t!4fxgDZQ^E{I9s3`NRT9uzh?a1IUjBOsVd>3+2aB^O2Rl(ZgG>K*GuIoY%EN zWYW8tqnPCX(U6>8^T`Bnawd9B9WmXy#Uv~|Z~WeZP8fHG!deHsexBZ~Bnp~}gK-Ok z#OTc`wcN=-Y5icO{W-D=*A*I0nB-xyn_0Pp@Px>{Aw>Msm8frjjr4UazYVyj()d8d zB+l&x4eB}{DbSyd%c2;_8p7r8@+=2Cu`hL8V6*8T@cxc(^m{4h6@x7Q-izrzVdj+| zK%8<t&58#?sqzDOtwDZGiMaTel~UsbfnDKiNl)?ZQP%Cy1MCsc*{X<qjp?icyM}5f z0KP@Y&g6MbZl$f6TO`1U((xyX;#GkwZ37hK(m+iNY1hZ|KtXen$*-9pt+SA@&OCN@ z=SS#b7qtln1|jAJ-sYl2o}PGAnsr(kNm<EhZFeP(IUzJ4Kzu^7u6jR@K$QH<bwG*2 zJbRNo9Ch{gaS33BF}|w)w;1ox>fWo2g#TwHrDHgDx`mU%;D*8SKG<SnF%f^#s%TOa z^(a}tcx<6sa$5_wOa&{CkwK^?wc@OQjL@y{K0UO_^z(5e5dOJrMycbLknqz1cCFhu zTHDK!O~e`aJwN{r&VLIWKpAO3@oNfOf2`|b^QM)yqa!g1AYb?_hd5wCC{6Av3iGl+ zPLgLjl@&HFz!rGe=E>-m7|s_n!BA1T*kx~on$ZGxE0cSL$ddLOE4fc3oGk<5=|!g7 zhHyF9*w+e&ohXhz7(NK#VfJl9IF;mnoRjDMCKnD!qy8pbSE%;7sBD}P+-7o<ToF+Y zOT?uCA@^I~kLY21;a443_1|}Mj0x*LCAg!r@cqVGJ_;JU&uNRE`RCBgU));Xv?sDM z<1Re-g12M{7}GzPapYCQ%{=qzHAM7+0lwG7N#*4g+el;H0Wyj2BrOK33cb%;()oQf z?&M%V?jfNvI)p9^1j&WBanx{3vZg|^E*@>A$}6|jxT6Cr<|wRC9vzPtUYpvDrDg4o znqLn=a{B$F9zFF?Wn@)J`<tfbVlkf(RPPWwTtZU-T)`ZV6Q^!jXUijoyUjz;3kOd- z?vs$Va26eDt<K<e0|oEuo*Gc4LoK$f>(5&t&O3F}L0)zTtyBp@I2B2190*ch;RZJ> zpHDW8TEGWyTp+T`$aaT9TO`Yo?(!Y<pWVKwyxQ}$PRDbP&W#ZxrS6+8Men@<k%;OT zfm{3LOR(}Ud!3E!0~bdyVbq=jr66NedlUj`_6S*}#Lgiw@_~b8F2j&6vBUeRoj3!a zV-m>jaO+@`STHq>btGWcq<PpW;ZQt=hb7;B%<QUjNTvk)2)%$YEFJD)?YDDhg}~Sf zHUfxXMPmD4Xzz1F)rMKSC6Gq~szom`xTE&iVPt?8Thl_Kqq)QQyKaU+Q|Q$l8fK`s z2o1@z)4BYwv`I*I46)9D@KwD>IB6yz@Z^R=FZ+oL-@)y5d%&K<o02e2hTM~rGKF1p zv0P5b9IaOUc-HiwU{-%cDYI*vZ|e*~Ms=B&=GcJc^v`SPE(7vA(O&^xq44mT=jM;< zmY=zVe5VAWbq%=*l{h};jgp5f!1XqTTr9U#n)(zhAYq&c|Jh@&2Y_uM8rvRtBPx>_ zrGc({&NeKBu}t%t4PqE?b^^Cnh<C|N*S=S|%r%@Tx$??*sdbri10i<Nz$dTsGbsD_ z3Ia$9K@w#&l@wjnjxS}?g-D{QAO?jMvV_`R9D!9w?GKBQy%f1{DaVL@Gp-nU|I2#3 zkLd&2<<G?Zj_psb#0o1G3};E;9op0uSw@ymH*E3t_2fH{Kx!$I6W;eo%hQj<Dk81h z?Np4bR8nKL%&y;BLjsX|JC&T;S~Ah7hmUXhC|MwPyCeGIEyAz)Dl5P!3)ZHcZib(7 z8<#2MTknYf`tbOWeeae8VUiabApaKKHQ71mc-yVzhtAkDiw<tOtu!t0NUf@NTY3CI zyBdA0j^9+cD=C?ghy0M-)Gmc6rdkbyg}MnV-k*MT{NP9BSAEKFu4tW29VY_04ze$m zvJm3iRk*HQkZZD<(`@Oo_ZKBKckr@t{YwZV<1vzkRYs&|up`8ssrh$ywO`ZoBZuZF zcCc~Ps+X=oW_@|@qo$icJk+yxhxZ?*f4r9AXdDI^uMnb1zAWGh;Y#39zsY~G{^ar; zq-&$E6Kw{iD2MRX%pTSEJDbaL+ed#C@pQUj5?=_$ZxyHaufisBO(ZQRDQh;>ZPNlx z3^&S}i;kb7h_~pX@`F){fiosB(-LmEc(cMP?>wG*v%>dYw&WAQu7;o0%bA|M$5qd8 zO+hHh0wD@KH@P39iHPsyH?jbyv~?M!aF&dm(>H=Y#D72^D1(u%9;;|dqkg;PA$pQ8 zU%ffX--T0h-JN_g|60ras=enG%5L7xUH^WhlU6CZ8cV>LQ_}MM&{uFJ+QOV)5-w+C zI|ZVT&zQz@i5pJ?9L2r0VvcaQyec4i;`)7HH&(q8T|8&P`f8MjMUPg7kB1%X#z>hJ z>4y_TnR|eqlc7wJ;Q-1@XX4iY7k0PeH0V@=xpV%T18>!}ZD)JI7Mm$O2n$ROgaFUZ zxEI`rr(fNuZa96x*tKY_y|vX?3H7iq1}1EA;5KBZCG3O_=n0D;ksUrUej0!ZD4AMh zWwEU#P{zQ+R^#%t%#1=(9_NBoBbdYKj3abDBWRB;lH9wTRy3kWu;&0_7vgb~6M~y- z!eXd1F0`;Jl3MY<Xcfn#&NPkIYA8A#xUp5_eB<x%$faTq-t$t2A*+q(6Bw|p1L`^L z?i5wAb1LHky#^6XoCV$Rl`-L~Sg7m~Y>-T0A4y|bIE@VZ9P`JI=P6HKo|7&m&Ge=^ z?5aOx4;zkmELk$o`y`kG7EeFP`t2ySRC3KjAP>aN3Qd!P8$)WEQh77T62!Gcl=K$M zjd=Or#-~G!p#D>F@E=a(%k@T*&)sk8H|Q60%mbM=vk8HhrWXx>`>zj9i$gSEAM{^> zV<y~aGUkhv;D`ASZQ&CKK>jb8k{Aal1_S%bm&TU};QK$D`zHc2K>sCK@KOMr|Lv}w z0+<3v_=h%u=D1Qg|H`_QhH?mrpQfAvK>D9vX_XA%*uZKd5o|E>mQ*{Q2Yoy*k=kPI z0Mm<hdLuin+`*(tbySVSC^hhxD~d8Kx$-2$birl*jklXNzM-rlYUo{2O#C2_8TN1b z`J@FXWXR;|pd*pBmD+ILC~|743#v;x6V-&|BMIi6iPx|)Xex5tn5s%~Z2<x3_;Ta* z30@`qgFtj?Vsa{N(HB*eKy$$4{wS_)Dh7o%w5yCZG*`=#mg2~cleKHm+Ha(#t015d zQ21NK8Xt{|a~*#C!N=-=u1i$`;Z<FX``$v@&Edmx+q0|eSQ|-LvqnZ++v|~}jwgGv z|9KGABPvexu%UIeg~Da8hI&o_I9EwRbzVowci_<`1`I@&#kRkNXj~5l`|GJ}Mh9QB z2ZamFh!0i=%7F?f<6-4!L^NAks0Xr4nx#XxSz;u??~%u2WK~&9-a-lN$-_A>Y!uc^ zg>U}8tONUlPh|W+G&7=ATJ;5bVp{GZPw8rN6#Mf}@TKqO^!>r^W+g9~f>NqK0}el` zHh_6}8Dv-=V~^6T_li8?*dHeN`Eq;6JMez&h$xfOB}e$E$S5Uk!zs@4mcNHU^U*#T zA~BO7eujHSeR$$3DsB$Duxd!W($pIygy9q)*7MNgfqT^~ZW?rdRMjZ&!wis5*Dlb` zMP4ak{#C+R^3-DOQS$Eefqf%Z^*a5I(+XUwEV+GF&rcMN0Y&77$qnfuBaW1k7HJ6T z@xP=2EO3bTX*F~aFI=lL;WI2nT#!uMVB*sBKmHsmG_^WWF|)Jci1G^R0du?`ckf1{ zcj47Z(Fdf{9pN`$Zy)>1C+S!lw_(;~NnJe*%_(Ou{uC$|!zJlJuM6K0C4d<QkpT{= z(t7IsP=u%^F@4uYCWv0wd<rutaOQN<G=j8&gy+puU&L*~9L~V4wZAABa-+qAT7cA( zLdV+_shY7Bk+*)dJg6%_V_gbU`>{M@EovA7gTY6f{VuyVy6v(2T^CFftA(xZvtR)C z%HC*F&X1=@R4&}eaPiv$DLVvMHV4ovOOQdYXTb1xlkldyfM{L&?f!X}uKBd$^K|H| zcgDuvJFZws$R=4s_8-XADD12XXvc?>{=s(Lq=b?mMSn`nD10~J9*~PQr4FdAMlji` z+qFx3HM`0Tsww(l3H!z|`Rlp5PE=1JEj!b`TV(pu)#@H^RY+RnU5i(9$6Wwd2U5<s z3QI=EB;`JbSdXVBe>|Ost4~rRlrM76MXHN>|41{a=*-~i-?YP>DL*}JASq4sDF4*d z;Vz}fBrq_4sPweFN&m!Zk&5;<kzhZ<Y7ve0_GfVIiNKBg^PL-6ib;n$;dGw1{Q>O% zDs+*2YToiZhE7Y&1u*{)BD9R<0zhH@Wnur60eJq)!XlOf0RQ1uwKEuFet*G9AZ*$W z8W>(0cO?J~>VFffse5qPEjE>aNw9wbiMJNO{oll1wSX(|fAPz<3BdJ#@T<HD&<u+3 z4^FzbZZPD1!K6r<$#-b{G}>MS1h_AHSJUcP{hw&bYX!9bCxc-Zfcw80(g1sKXf1VJ zfI6^$(|9s>JC%IV#BFIJh7kB^(R~1<|MqRk?*sILBL1^CM=?J){;zRRK&Jtcq4ClT z`Vip$@7)aoG{C^%qP5drMgT0(%|++x|3nMxC;$We-|@*#0NDRKzR(Fk+JA;!HwWPR zZ}Z(8pc(St<5{`-bu|8m)jnGVtb_dv`brHG#vNbfY5N5KnH;V+0dW7X8nYrDAD1;w z)K8;dpatv{2hz#(LX0<qGvu)@&Qvlku}PaTl}^OYG$e;&5W+&MuY!|)F@Kks+&i}6 zl4-bp?wOOKE*repE@LesEt4XM*YlhHM1+dx%ab=dd^0I#gXx|U?^G<Z)FB1_Kzx_B z`oXW7t;j->mvrYD%^o*bXwI$Bf4{FQ*F9ZEPo4TB06jW!|JTdWi44nyg|2vcmKz`Z zFA%3LZSw7brpwGc+0)46vWXG@Np4cK-2cVbIYnpkZtFhzV%s)5HaoUDX2-Vu#kTEE zI#$QFZL4G3$;n>-z4uz@T%3!#c}I<^F{;LRtLF3ko;hz6;>`t<eG@3-kSbbKwxQDh zY86QdglNM;fOpQaY_}4(>p6AYxHM=?x)Vse1Ldpdj_FCO(7irx$C{9#i-IEOzFzUd zX8aB>|MeC>(5p8lJ#b#aLFyt+^K<T&vxM<IR<KJ5aO|yT(V>=DxHFxNztdG-UhY)Q zxx@1NX|e<4qo%7FP|7y#9=qJ0Z7`MH4)mk}Ncy1gWyU}%n8tpj`4(>-AMQLGKm1Mw zeqIp2KliU4%Vo*O9G?B{TY>6ldEfA!+cRcyj7bw&M%HX_ZD6b7Q;7rD3^+Ww?Xm0Y zxZZmY^vR`yfv*xpM;O|BzfQasM0}Tt`<)A);IHUeGk*8I@|yT74{DAG`wKCpW>&sy zFz!pqCvxi0$PXvYU`@w>a#=Iet}XZg@@abnsr*Eo;>w97?EGtaC6fZ)yl#>K?<-Zv zP0s+CE9n5%5e4ZjfE^3J0(0(UZb~WCI&3I;XJH?;=E=h2&iCTmxg7zCD6vP?7Rq7o z&#?n#n2(|s&6*1fZAsH-$Wm|a!A4O1$Z7Ux8f6-v)aV%!+tv>QPrs^X#2$(exaY({ zSQ|^XvX+GErzKfS$w{m^RUZf1svZ?n!8S!s7#<STAuqxKr3BN3%A)^g*9v(?>jv%{ z!_}!7VF*6y1EisdcmaB(ayVr^Jdc=2LPzhM84;T(iW$#Bl-Uld@T%x8^Xjz1De_2F zv#|v>X}v~;bI@l#V=Bw0jPEye;OjS|YIpQn3LX7^p$h8Ye1uvMgxLIF6NR#Y7p!qu zGe18E6mRs3^M~|`h|%=<Oj}6YQ!H&O3ze}9<;pxzenrATYh+jiXNc)w*BXx}W(Hil zF47pP412@y6<~`gb*mx=`-F&Vih_9(&eulaP??bGQ(lqiieV^!2boH12cqmP)RLwy zmzpQii=%|-fu;@<6O2i3@B#85{(4hnLOV?sh8QF{fbFMi+R@BepI<C`BhxI8qG5e~ z!4EXPSL=5k$b7H!mJsqx7NtRYGwc=fewWS|2vf{9W4t~}wZC7=4HwP?c>sW0dRWBp zk+2#tSCA8UKP}~sai?x714Ao{kvD_rTNG>Jg>|SNvqICn&}DvL{=%Lm-%HgI^^TDr zB2+t?uBck7nMTG}W?BV#MO8+wLGn;xgGNa-7BoFV0!?SlYbd~|*<gN+uV#9|(AEHi znE-IJLCt_+{XCo&igbh%*OHDuB}#J021OigyoR<~cj_^uHOHK3fHMSF$-DH*>C=C7 zF^dz9RU^Eq8Hg+Jb?Kw0Klx2hVFSy-i$Zk1|6+nCc!BNS)*T9YMJAYfwG>;W<mb=z z7EF|G*?MQ@|L|2?b#lrye>B%qZFGgxy~7oy#y;kY9(0Nd$1&lNqY*doOIG+YCTyqZ z-dCy65wy<}zr(eL180)6tDW(mp9Po%=yz6aDmaoS=N1_D4ey81F^4uhJbhBCeu7CD zN#(6&@;P;6OI;q@H@sStB^Yg7u|ZB~_8M_rK*GT?jIu(vYRu=SQ@k`=J+<|5Tr3FC zrRXNZsg0crI+@DF2!B~-C<|o`Kcr6=VScs62gCmHu8K0f2FhAJyGEQSJMU{2#cmle zFF_kV)R{-Jbs3;-MbQl{YIKH}B-tov9e(&_SJt`b<h`R|CX?2N`4@zX3-;y3nNJl6 zEQp2(L=pxaJ2FgLPG@6alvw9j;2+|Wh(yV!)J5sULjYLGLf|Kua5Q=qgI5AZT?War z8T{Mp^kmh$fzkv;V?V$avb1gLOD}jBmA;AnVzCc0c9f@10J&xI{Jqzlcv@VJ^FlOB zEsQiIm+i#|Ej#hn6UN1up!}(GK5w^ie0X79B2$fEpqolbc;DLm!-aIhZ>D>REfDC_ z5ANyeDSU6^qF`SlpH#qPMlt@`#Z!L($y8>5T3jh_2FygG?<bDKqWpUF>uq=n$oTPI zX(02-({xMMz3<Bw`E0Xt94=wIlW!Z~)(+3nqe48JlP#f^w~980InVEioVXmc{%vr0 zLaHa6%hBdqtM1DLo5Bi&KdT)=FD@&4vvn>xHPlo~b_)LLb!GEmon%Vmj5I3liwW8s zGxVH`12=?yNq3guBXu73LUT9sm!U7TDimB^H+c3Vr4v&m9j0822(B~VCfU4yXINBM zIawQ^3xO;RbQ2I8=aI%p%fljfqTK07`x*gwvBF0>j-J!B94y2osp-l>##ePuC*%lZ zGFUS&CP(AfStG9}+NB&S7TO{_O7O}eFCJKmfZi805)lO&HjAiyMFAFkJh;(kaWYdK z@|L@&K56$8xH`dWQ{hYiMNMRbjfR0SMe0GmW)28wDJc46A;%4LR(>Abv&lv-F8*N7 zxNH*bV?5ReYOJp0%X05ZZ~9!i&DD+H1ydWP3z@jijZQpB3&c%!O*5tWw53aoShlfT zz`ONEh4}bL^1#Uy`@oFXuPLmG=N%~h0&OXhbqM|Qv;9#4u9cCC3mLGqCdffJWo2(w z#E*@Y+S$Mli<x~TnVpSAMoBna6BLYl8*Sx+2&MCAs9P^P-kz7$JUV;D_Q@@dC2Bep ztrG91i$m8-8=0}n8I`X#y_iOMqVEFbz%?r|vx$owgpyn;B-7Xs(_2ePZ+}JfE;+38 z+c;A%Fx=`^OaAdv6)7H<#|ndlZ|~G?R^kq6Nq&~N(s{O2gJVK*dTHfe0`fo0z%ih) zsn?GuzW0NXQR4IqE46SjJ&p(sleH7f$@HgETf4E1qG&}&b8!(X_P9UVfAth10$vEN zz~!Dr4?(>`F|7(h2MiF7KO%P4MXS<{K)<U6W%`ur!1sQ<glMcx4jf<anEz?erMwcC zpH2%)KR%+6IJ1eVY>rM{UM^R&URhNEou}ZaY@50GIJ!Qv4V<hqkmyy~So~#pHs<-9 zz2R_z?kXqvb4jSzt2edF4k>y59{8;IA+cB|VnmRIfoTq1q!3;yrN<RN*LU~#jf(2k z4c}ww*K_8;_`O%5Wr3Ibw?;dXGNl6&Dk-p5_PPBmTMP}-!xTGRmP*#|qtTlk+D+$~ zwN03@Vx62>GD$-GYpKpj9a^nEQgy~QHAw7nSh<5oRed`YsR2};=1IzQb-)J7{8@kH z0Y#aL3k7m)GQ6V+UZLfT1Kj6SFC8nI1Le?&^v1h=o$&9~aq};kVPkacp$S7*ktD|+ ze-2X;);0Y#s_x!d^bXn9f^{bM)nJ@Xjx3&%a-Y>u-Y&)XrT`APVKOgti@oMmf7!?$ zX1`g#<RrV4dEAly?DW}Rn*dt2nu<I1dVPAq<To><T`oo&C{gC|uaB(^N)k#ycJ#<C z<+{0B+hm<Tj;kR*hObnpS=zk<Ptke#l+a%XwF=`~PGY}38}%7YgdZZ*U>emr{kXM@ zv5m}%XkM`7n2ou=uWXq6Pn{%0phFzh-u-tn90&*pMJnzEC>2!Hhnecv(Ij~RS`GKF zAMTguuae|{a8I5W&{ybxEpveZ`2Kg<3k-nv&wqG4B!KgOm!}{B=1~7CKX?!Utp6?u zTo3`1;D}!^syKzPIPtfy^5X&~RS6A1{Xbl4svjDF7`S!8GgGWu4z6N>M7MfQAypY} zmL==J_vK$~1Uw9qa$Qk0J8TDS19rjjx3`c%KLgyXhZ^RbX;KoR%r;}qavsy&ZZI9W z4SL#R4Uf-PGN_(Vxnr=#G!%z~tZ^Jkl<=8q3S*|oF_vT5zG)+?$oQNv{ABQ`api*H z6Y!*g0J>6Or3bUX)aqmw*~!ztA%9J(Gp~v*geEW&-*pnF7Q|7Naj^73=-JC6;^)WV zncDJ+fRx0Bqv`W4bYL%?N;(w%WubzU%OB54!jHYz@mSK<U>p!12(wZtcLLYKHmhh> zI9IO>&H6#?p&knw79}vcS8R~@`^vz!aAEzj6o?#}0}aK>g2qM6%Lw`MyPRn4Wk!)m zvz34TJRTRH)8+Ntm}%aNfSn8Xc<436BQv&#kf2uwM$^uqNJf-I2?h>vB*J*M#PWJ- z%U8$eW#!~>N*(Ck@N$gh?E0}pMO1ila*w3;nrkOeX2XMu+Y%6*aQ(f7F?`|jj(*+d z9%$aQV5>QQ@<(UQlP{B<_bQmbO%wXM%#Zi(I(mxqxS0<T-Mu`!s*`0V@F)uNt#!sy zliw<F@>3!<!k$qu;DJ$X%jf;E`e#+=lkfdY-@@gVfM3Gmc>OsJ<!gUqMu+@deXEUO zL&b$rlf|Ry15l~XxF;i7UVKzV#uw&34oF7*K#+0LimSB6iZY#atj#YY(57-yd{2>b zL0Vh71uMutReAd-$}jPzatb20ugvghaeN?QvZWa`^S-9Tpn6iaC(r|;1e8T(Aj&tq z!;oA=j{;N6)<MpUBu808#_ju)%eIqjmUTYtD^ui?)#`>WMZ>s=pNcnCfkrdjHqb%- zr<#nrsMd?r-EXAalV%p?;)WuE-^YR15bYvJ<~Rqq>mj&{7D}`vXcY7CEMhh!9mKhz zf!@6VOeuSjfycJ950J@Y`~ei3M*isS3G_M!g2jQ-F5XI@!^wj^K51}o>A?u-F1p+7 z0hAy1d4#w5hq(a?;ugK;0mn+;aDZD=Mfx)Eqc9L%0lo|g;}DPz!^CFjuQyc!3}l2! z`PQezo`1=`*%8BkTzrqs={d-S1BRlwuPDLnEPdypg`%TfYG0_)EdJ55v?+Set8&0P zY}VtY6mJeYjU7FI&oV*9&wz}e3BE*QDC8gL;KajGmpq)7qM*r<OK1<)m<_Zk1E*pg zE%du;aAc=32xy)4xJ_>#Q+Y0{>f27JC+2VWP+K@EVXyaFXh);jRzx;RGm*V~!N>fu z0{0?G@+IF4BVkzY8a?4l!`9`_LqJ66@RS}5nFG`f(_xf1P?sg9HKGv)>rfXRuxI^> zY_O+|Db^Br0<B1Yx#u)i39-m4fdd=7GbRD*!Nvi-f>p#DMtbu$nk=Gt(%&AXovfV7 zEItAMm%5UAhz0n!97~Q3po98Xy|2ypkUawp0^*AMkH~v5h=A~)6niWY;1v2_8<IIV z_!IV5*l3<VmAMFj2Q)M^GO}~A`k!g&|IN++zcBl`wwK)+7wV^AZa`{5oR5{vWS<nS zb(4A9v5noDUX7F&6gjtl%266#2k{Tr_6_gHOp?;3Bz3T}jv&g0ft_*tgQ4^tvRgL9 z@Y6}w^k3sHFi449$>fpEK&;nsgl1zJg#N)0i)KWy%#kGKS89Ed$iFn+o6Bircx#b; zOfimxmxUhQ&fk<zM!49~T`4_?9V2=m{Y&z=rRTT^O5OMpY_nRG@M~uVnJ(eq&}eTr zUov0kj*n|kT54-|AXK1l4kp%`t`Ex}B?2>G`$Ps_-s4}7?}x~4fC(D)=}>&<XQQLq zzI;3$k>9!luJ-(@G|Sf38LI``KWE<G#-PmQD}$55-Cd5j0@Xvy7f#j*I{~JL-RJnr zJKFDzQhQ@bAtY#Bx1zOysgo;$*^!qa)p1c2I)3@Up+P@5ZhW4;tv*@%scS$^80+E6 zfc@3Ulh?(kz3ass@Y)XRCz5T*V#wmj-O=AWa5f(0pV!Y?-n~Pkv)w%8(m$s$RlY{b z@&0n0w643|y&+y{62HH|hd+8*PwXz5)Z}~}#^-%ae6N|&RI0H$vz!PtQ7`|?qQCsX zih%uSv@-yM7mq|AV}A10dpAH#_uZSaJ&7t|2<1UQm+2-&95{c-Mk+N<p8rKv;OkcX z0B4d~;nUAS2cK@)4xk2`^K(a^&RoqVtxLlF(0*-8<Qb6blZAocjgZIVCo6?V+Z`&W z4lCWlB(HMcJ(%d;Wt-3t(YmfAeFXL87<PhR>|RN9apu<L*5`aAi`F4*u>+jwwouXU z%Qo{eG~$;q0pZdweG5pO2w~vS|Lg<7n5G-@NWsAiRQSlXB<jFY0yqlEg(xn?M-L=2 z^y0hxj7Vg^53xP4BBlB4Zjy#93&n8Dpy6r;xWf^G^R<$r=1J{x=Zglyta>;8WzxhV z_wN=~(_zSC*MT$NcYwSqh?kQmmxJKe^1rd8Mp|Co1h#{jLL~}fnj%;%gX!8A8Hng_ ziZa9KtMx<`$Y7&o=Ub5e2v7Nol@{zUfTjSklD*%%l|eV`8{RUsJ|&oH?*o=|v$2#u zHIvet{gLmk`Vv1Ss9syfMjjku?1@xE7)(L|l)#3?m<DN=NrMtJL9UfbU;#Z&l|<$` zbn?sd12#i(Wz$Igi38`469-8_nM`9(SFs@jgbi^p7H<OFJsrqBl9)-2SjOD9jp!7@ zjX`)>3IUY3&0eL05}+_=46+JMAN<Vk95Tu^dNoxBk9Tl1PNe?pivHYb;LPcnx3^RJ z;rj1?zbjC#d2N1F&&E4oi>TJ4?x|)$c47z41067#Ge*T~2t_ah6HNJI4vlskFg>il zQWJp-Lu*Ea-%7tj@v&t7JSVR=rOBhd;Dq5&h`vCk{j5q_s(o>);(wO1inZsTSxt1) zdX?u}sDE!n_+@ek!tN5@nceY8a>w6#v!-jS@U}o!8<73exnL&;^fpaOT%M#f3SB$~ z94O9?*swy?NLm8o?wG)Yq_<9{Ppbz9ZJ9)m(=Bt9L;iQk7#@`Fd$)~3qbq2djnJ-w z8^zHGQFcDj@x`bo0BoG^zCF9Rt5Aa$s2>qQ1OeISam}XBRV>_Vm$=XL-l1$YkB>+u z87feL)?HhDsIm8nZl-AGUw&Du?+!IL1=Nm%K(~s+sSo-EC~L?nEK+9z&5wy>O;%Ek zfUirR1^h6s*i@vzz-L%;`$p_qocR6;SeNY>vFp0uIe>#&<HzJwwzHZQEh=cHvh_7k zbP;w4M11K^V;ttCB>zb&Yu_20M<470PEJAnYw)iPGThb1HrP+h`_p4UN<g2NKCq-0 z#-24+nK~L?<mtx^sY-$lBZiah(D1{<CXiHgHTcEZjZjXHYu=3%7A*y`)ek2Sq4=sE z>OMTfVUJv|HtBiK9V2WAK()HnmIDN{7qGx^NiV2j5fgjtCaMV#VIQegOMI)WEZ$x4 zlQ>d9TB#Du^kj5>c!&8K3HQ3W3A7%4C~o_>c!;bF%$~d#`=;~O^NPT4GDZ;@xICvN z(0DU^op9+Uq_c99s$Rg&PhVlT9w)64Dv|n)orqv4=YGGdBq<eXHj|kn5JKO?^^8!q z@$oSW2O7ujJVr@x9X8YLs6asXh~RtfMEKYpW{J!|LnfXpu?7>-P6C5r4p8qLLp68I zryeH)>5h~UCSeVNVf~Z|JIUu<h7t->w4sH);uZ(xRALSaY~wT$7^eefr4c5HBU>Mq z1sX_8hrzUimeP<H%paOer(yv%<{CqqUPU0bz&`t<;WZXbggqJHCc_w!`kl^*5pmnb zso6u>1RuFM!B0fdT=`HA186BwT>~twH6&QniFQ5GFP=~?^j534sf78P6ycB0WFiuU zBd}ArzD_?X42cqo@Mn*gWZr7tAk$}{mqQK}^EuGfew2vS>wBszIlVa>r}~g5u@A%g zVK3>_2uMgglKb++cCke}kq0ap321DU<u`idia9kmq<(nA8QzFhXrN>8S`mh>=5#+i z<ZTEm4a=-SGZ;^@npIGKzZprA7y{djEQ1b-a#lS7U*5eaJ4dTfG?Z1b$0Iy79$rTt zo0jVo&cbwF=iGzGkq-m$l>pY&Wpa<0ZA&}~ciF0?3V}0}HGNP=reX`o!M+9$w0~*J z*VB$e_Z(T*PLNQy0p`t(*mU4yQX+o?6Nf0u<ohhL9&yMN<?{O4?Y(#}HWzyqALch~ zzG%|6Z)(}e=%mvKc|RamE~#Zxq13hA6aq8V%9yB+px<@s6w`kH%*r6(cs=~Kkae@5 zQT1o_!PqfRHZ^gJ*bT&3`wKFccWOC_gv({mpxedC5e3ZS0nw$SwVgpQ{`j@`MH{Lp zP-Zl(hNS*g#%BkpOLJG4o|cpbHge{`8Ik?Az!(xS)UROi=O!dLZuB<Q78!m$!%f*t zcxJ36wD72~>Tkm9<Tt->n0qrh`u&`D?tcHG)GLFMjZ5#~ubuo}BW%PiqH!gO_$Oqv zhLwRCD$qrS2gv94=m>7Xg4r|X$u<ZQ+IGdxb6Y3exZA1oXTNMowG?iU5vxw__m(=% zA)kKLc2_M&t@w8##Z!pxZ|9K^k{xHiTbqtGylXbTov$vnbQxL{WABmA7mc=6qu12; z4;hx0p#Dy#HOV%7V`h<^q;<yP4~}%0$bZm5ioPDrcK~W5VGtuqZoB<#6UI&WjpV}) z->mF$TjTs*$qp~zfe3|UfLN{d1R75`RnuuOIO8?R^-{!o@hREGI9u9Fbv{5faV_O_ z^<0z(=GID@S(;7az&MRDzg=9-sQ?9%aTK^#qLp|EkLTk0-R0a)i@mKndDpSQXz2LY zZEP%2RwWRN5iu()M3#Ksh;tbO3ya?JN>()4h#f}3*0i>3@YAQW{}Xj=QT_-Wmd0~x zC4=k7?DL|WOC#-ANm?1b6AUfTvR0%wRA{zVegGmRy7E0(g#<FfT_flz0tb5j-TK~> z>Fg{(=GwB_cJK+Cc=5M(f5<Rt%DdHgA!wRl84WOhI>ZjeOv>V#S1!UQ!&FR9iXKGv zo*+Qfc^Sp$YC|Rp^zhgNTx{R{4Q!-q+wN_qR;U<EKa!Z8IZgLwn6`^mCnrX$)9Q&Y z*TyWYGjcV%>8-^jdz00vwJi-II>}(EWl!!^HP#&Z7rHvX#m@we0KaWpZmbDvwdEqz zp$MS4Qss~Vi9V+6M!szEX=^CnfVUgHW%W1s6GM%bwPxdri=LDL*DM}o381rnatxh{ z*;>wD@>wZ9vvm8dnUP<Zt6D5}Fy0YFG*F=N6{ywA4MV6a8jL&9*o)9mOeF>w1Ta!$ zu?X1p{24v8%`TtLzhiQ5T=5byZFkP(T~~qiB{o}=kqsPr-V0tZ!TP)=^F;7Ass%Ov z$s^BCdECiuO%3y~weT6)s><x;2Idv<c!`aU8JhTyjFHzZy<SocCoo%VZfOT0h>y$* zO3t4bSyFe=2(qedt|k}7!DR*WyBGNdcM(_l1rg5cD9Ut=>IIHcCI+(<HibA?QH#LB zH89b=BH~X^3FG0BRgxWbP!kI~*`p4>8y)mEMvgi~<<9wEMuY0Or)Zti=haleS7U_J zegAN_v>_)4*dTrM42T;S-=%}dVynGbrXzdpG<{XhLk$I-GFG_FPF2RrNHwH=^gsGD zx8qq-jTUr=k<o;ta3UF1yf42yd`E!7?8<cf^PA}|GrGxX&*5xlo|cU`c*@kXf}m+| zf?Bjs7?;ZJ5S}`052-@W$$jzxw4>3ct7d5g6&JAdf)ea9U3Cf$-8^R(%Q<W|VVsVZ zpRI7Y-c)rddFY2q3#Em^`$|jw6D|DYx(1rOPmNg(Yf3llvqP*bp;}Jj9dy9<9LyS- zlgc$HmG|ocRpIs9{$&*iACdw=J~kD$`|mT{5%-&p?857{Hri`EF}shJo(m7waK-Oy zjZv@=OIa#?s$I4c`B^%00;UC+NX<HK<8_MqlC-w=f{gPTds~u!QK}6lT`$T;qk_G& zrWYr!L&KtXV=b+oKt=8%WKw{SNz1Ct_l}J2m~Dsb>lO>Alc(#sP@t93_gVw0LDyQx z`A9-MF@jg6;5WRd6?U+@**&~dHnABZJTQpoi<Zqf5JUsK3aJF^UTAWc=?8&x<D4a_ zrty!_9>3_JLCb{@>6PJnBU%DV$Ji!OZEz}US~CEQkdo@OjfSjz8`i+sF*f4o-`k7O zlVxd?l4{W-2t)H&<c=1OA|y&o83Cp=ZN^LY>j@`wFifW{{9w~rNRU6zFZDLyrv`E* zuJ(rXLdvV0?g}*hJ2boO^cGmiaQ4mWFf()(Vi}d1A`X~(VBc3UoW%}<iUW>!TaFa9 zEX*$o{?2x8u7~u!*--+aGCo{IIjptM4NuBFNfR3gLz}K!$M9CkGO10`qJYqXnSrCZ zoVLA^GRkx|ApI({+rI<?ItNbPr3Ea4)swEufZpk`Y8^z_`=L$!HLoj2uR*^BEqz+T zGfZ}xdyQ{HdsYOyx}I#GIuhTeYkgF-YCI)sO@~hw5=}o|8$p0`95%IIbCPvmCa}rm zO*%~ksT(gc{i_{N6bQubE>SSt`0qhZZ0_4K7i!tv>Few<g$9Q@+Kc;c8-)xmak(-{ z$GmcapHI+Dx81i*E41twWh<(b)20?q{r{iRT|6Tg#VGSj3jB!x0zw9Y58`3x;_Q-o zh6aY5+A@TI{Ga7IDi@&P9~xkk5Ag5kI~YGe>K|H5;XB~ptU^=lcfbt*@hjvm-kK;M zI`VaoO~ikE|FdBP=>NL#e-i?!?IHjo;J1~SbGfKuao0?UA7{3Ka;pOUFhVj(6B<nk zDrb4iz{|LVipYIRu~#*)7@F(x@f~~HYY%+VsCSj(EW;>`w0@leHbdL9FL_al8%DHb zk1p?g&;VNk;)LgBue|bae=_qF3Ty(h=Jz_PtQ%r|xGZD_b5L0dI8lFAUT6VrV0Tqb zk@iX@pB?sFxadQK80rwdgo9{3mKK#MsX*o()JDw0vGckgwEw2EhmXl3mzMIk0ASmj z^E=wd{VA2Re{*dD3rc<IURwRJX?^<IqP5VzPPS-AE6|xx9{;pIYvZlEo#;F<oxMq& z1wKl4Wn<xd;~RDBQtZj?q3tgLASC`~8mSFrlph4%ywy3%1~gT8&)7J|WQ`y;cVPaU zpp(Wtm~5==1~JB2`ok^+jFdux{x?s1%vG}Z5=_}3oK)Kl%0MHd*cMd!rDNl@9K)gs z3DG((QX$ivyLB$lVx6NV{{0ud-co(SXyd^G1L@P-G)cfs0Bgr*kWVHDuo?Jk5GiNP zl_C*T^)>ZKB$)1npt&G3fbM0VSe;g95|yIxPtc}254YgsOX780R?KS^P+H;;YzZ$) z_i@9#9oy^N@`t=5LE!cA?__hyU~+>3;=&%yPlD~2Z{2J#hPwu_l0FPBD1io_6%&?_ zzjSuOu<Cv<h?KMGhz1?k0Qa0NC)4hmBOPDeZ3QXDF7Xn!a8bZL#Dr&X1-3{S`oKM| zDSuc$z=W~O*w-S^UbssmX_eD&WpPc}57o}0b}5wl=@jq_9`NVhn9veOs49k%%(Feu z?xEBAKPfmJM05O{$^_;gMbq3mnS%O5+%Y#XiP6S8q8*(YRNc3?07WmWFQ&2Vp-^F5 zaA3}sW{n*MJox1(4-0pW|5jSCV8?tiS`?@w5xnmy5gCMqfXr1ir3XOzVhIiY<(DsX zoq;%)0=33RJ+9ggE{)^e4q-s8E8<n@fjPv3-KhLs&%-+t=Na|;1F`qp#HM_q;H<_E zR%LqX9sS%nij9nhMBt{ANO?dpAJ&la6Jh#etOOF(V*HHQ+fn*e3l~faaxQxm6iAC- zH7FC9{@{$rh8y=I!zeo0w6zAtL2HPLk5d{x=S_ss>QG8xu1-w8oU}PBV%%B_h^z&6 zfOAzVwB%)*D;}h&SlvPklTR>lDf+TNB;Q;Ofty%C7-Y<9IZ*4_F;ej7CP=H2D1Xxr z5wseUA@5`NDiJW;UYH=(8YuaCOiNRYo^j3xIL(3Ds_uxnocUJTI@5~`^6=>^c5sn~ zGH<%@(_QfPv7IRuGcdDNd9~(NF$g-c#vf591?<AS{0plKm8o?MH!!l4SVRWnztob| z^isY9Z3fvsH|4Z!OjWTCT9kF`TAwjA5lT!NVE5B#({Gx^_`U8cY!-E?(V5;lh5c>< ztA=~oV%_udWKFI$l>eA%kI6Z;%zE!*-X7#Rr#N+J)|)Y=5=#QuL5EY-BmuOb#i{<1 z05qI`HOKk~RsF9`scO_Y>*0%?nt(`U=7YgYl^gk|#m4_&OKXw<WH7}4GHdeD0DY8@ zARwkF|HzotBmc;l|83f&(#ZnIftZxE(zJ2rVv#$+K{LjWT!gKhre;q0V#1a4H$O_- zRVwF&BY$hbkQ6=S^WAMJmhAkz8`m3bv&y9WAtBAjd-##fYG%4gB7bzFUm}Cb&DFMw z9X3ssgov6BotI=U2pdc;)g6!Ydx!%1U?5st9$9f5T`YuT_9mFu0UQ0+2e?%)1PkKT z2Sx-~8R9lzUOD1q$!tV>@x?}mtOgIXH~I;CFs%3&-<7ll3k%;gaC_UoC_hgK`#Y=d zcLgYX9bB0mmUKo-IXvN@f|VNF=#afyF3QyAp@pqvgnGl-lj4B8126UJia9)@pA`J0 zQTa(qO$)1QYioa+l%(HnR)Ggv>KDEtAKI0=7sAViZ3n9jaO)lJ<vtH@i|q?6xao}_ zgZCdU^UkMpciISKC^<6}6boAQ-`pB{<-JTSN;{@mGK{3Q_)EyKvIbnCQgj+SmNmKE zd~wvU)U(7iH1+y{7blLIK}J#Y`!S+DwMaN4s-up)Y=*+F(g`$hXFxh`qwVuWngkgn z^z-{byG`$V^Siy=!l9q-zE{wPp};rqr`Ow7zf5RK5A3{gL$3yLSyD!02GwU7Fl)Dz zRT;Q*n8LpPEktaEYqaT(N~WkKWHB$_xlXk6B=8HfxmP(yz9Z&LinCOn>}1!|pzp=P zc3>y7o+TZtogqxogg^l<&u2htj9%x<Vd_wc1kgvo^9CFy5v53rG?u`fFJ&Gk@q3HC z0FoUY9UB&85Uf67a7Eq(cDqobez%7~dHkS6OC&_;Fvoqmb4as3t-wSh)Edef=)``A zmrzD-R$g<aR{FwpfOnise>XTSW)0YDG1GV-)>Mq|`_06h1Q6Ku;(52*HiOhfAn^8Z zbbLG0m%HixInI(1JVCjbwOZRB$~9<Lq;F1tZG0)Re*H^h9yw}AaqYBthDi7T-$5iy z3RxQP8b%=0;I-_pbM-wSvdlmb09De_DcN1tQ?!~Jl836e0M(}xSqaCmrHU{UD~f$D z{|i@s#cYuw1Nb!6IxT!NAf1#RI2xh^VETq><4o;SU2_&_tlAfX#9+2j(V0O}k|{RB zKH?{Juuwq9QDB)i#QuxZZX!mnX_Q^Dw%e$HMO{v($NvFCX|6lc%>IYqdS{^)%d*9c z8o@ZKLtAXLCi|{IT3GYZKx!p>!@(_ae4e_Xq7^fj0dV`I;q-Em!;XN#N)0)2Gbx6q z9yPFote2c6dS0Rrcgbyy)NFXyu}$uv#3HkbB6hSU>FOq2^mbdx8DFgw$w;Lkae+^* z)R=Zrm8u$3MlJGkPZuDK`NiVf(pdWAEsvd=R8NJLwOm6wNl#QS7RAl8a&A0Za`rCV zKn_Gk0k@Y`u0*$Rt3BP0*YHf)gWjHc#{ICFpe#d?UDo}|Lb?VEj?lP{T;%Dt4h#dw zOF_!mwf^j!&~oq};heS*xo?oE3yx+M@C?IG=!^z&{kG+|?pI+p(l{|Sqm!#mAF_OR zBg>%{D{S_PPjkSE6=kW8ULSoCNIn^@Wv^%N19pPNlXIr0ez*K};uyr)F0HjbE%eCw z(%7nKNI-^~h(ayEH>;w?isID`mg<pXvHVSpM!ma6QA>th&s`zOG+AHez3bq~kzz>o zV%FDOeng=0oR1}kAf3hxV`B%qWQRU$^eqkEn*<pNQ17=)+M(B~ctrc_;cND_b{{4( zC@|5~6OVd>FRrAp3(|e|5Hm9vvp;BkFaALkZFlt-Aow~cygb!4dp=6Ko-WtTZPedj zT@Jf512Hb2H8?|8$cga>2!<z(dn4@!4Jp`#(D-Gkw(+w@y1q(b6<2bfvMCg~$&ZMf z_zR|TOUUZ@{i$|rMFqEBNyOM_7dUf6RA7NrTF9J!nNR~$pwR)GsFSfDq5_Ed!4AxK z)k52C_wF)>u2#C6KB%96*oJ1ufim|M;=YUH;ygh2@qyz#n@QD<zWI)TE1J%uL&+E3 z%0(9SII>*19UA`qh~q!P)$Pa9Kj+$M`Oog!)e6|1xzg3O^{Qdw!l6$TSZR?8?&$9K z_b?*o(6hoNY(rQb_v>-_#XLOWs(QJ7Ti8D!{x7>MMH%pKmX=o;KnC$Ix9o3DI)xA- z2uK#~Ka{S=C<5I7r{i9OmWSJa0kT`U02dAt)yyQxjm=g)P8T%0xxE4TI_;rysD!-! zv{2!=A6fldK4u`B1;#dys*E0#;XV3HPZLtD4(M?!<8p~?ru8`20Ve2F<Ouw{j?3eZ zsF=#RMEJ&F%)DGcdxscX2_fX*=b*9aXa)fa=7vP-NvSwfsl+UCe&VadDO0}i*z!k< zv)3H<$d#d_>mu$yMa*VHP}x}y8SVmhSNAvwW|8Dq`^Jp2rb>Kpg>fTL0Yl?^Gsg3* ze+$`+*NbHyZeCK=hu^omA7~E$LTzd5b#=5WTCJUAg-O)|n+~fPfLR?L?-5xE8k*!I z3Ax$MZ6_-uulF-v9Zse_caNTRy%JXng0r22S#G-99Y?P7^;=!HS(jV964}+X@Qgm5 zTkq1Tn_k(~8&rntu?20;++cN?kBAEbxmG~@3ENnn>=;Ml;O5Te)=mJZZU48APIUDr z<?mLbFetk~e|u_FX=82XkELa*HHDTY!&N?MOtxuj#+D_;e0=#VD@?iO#@*G>qnLqQ z_D&EnD<2!KoR}98W$vnK3@#C!F+#alu#>wAlm^{7$FC_>)(>g?>9T3;%pAoYc^m0_ zD=@NEGK`@F#yt43CGVTRnbnbN6u6XO3RKt3cPRvbeb<MA?UY!bo*yR@3;S!4XpT?9 zXK8$)1c_tbL!p16mRUT!#6D;mWvlGRinaz<K<E26S*{BdD=y&`ic>Z?b>{Fh2j^Xv z&4(e42K7&4j+gr^%AdlqK;|uKz$wMI&hXwxjHm5LWK(@bv(rV;YKiL2utQd=P^Cr< z9q`qF?UBZm_q@0YPzN<GnHIA3{PIyRPa+PF_U#aU3Sl+y-J9z&n5Ds!d3aN=8?Vq= z(F1Hlmki2VmjSboE;>Q+>qpvC1}K_+&b`VqSyXn0zX=X{i!lp1odw>`chBE`NOaXe zG`w%lXY(9PXQc6$bK<PbW8dqht|sbjrCI+5dI-+Pge1<`8=ncEJJz5zRHuum=|KHV zVsRXxhBC9l{%Z(BIBrms>;jh76)gK2I1mqs6$@r>oknIfpLquHy+*PSgH07=a9q;? z?(Y^@$X+RTdK8g=K6lOs5!avDXS1otQbfmZ=A<AnF*f{xpc^?}W;sqg1kq51I}Bk; zKz=BkX6v0=ib>zb%__zwp>gb*k!6;&fk9^`2b(dMtbBv$l8}jzyD4Gob<Xi(Weo5( z0;4qx#EDHpzg9g7W1&?2kgO|;1{@gkGa+OOwj40oLX5}}TxXetFfRR8ILrj&o(mGY zyw1n;kxU3(W?>Ow5}2@F>MQG$*DJ1UAZuL|*_at<c)utk<nHv&OD=QrX_}{i)xE#V z-`HY)C!Q0zPfM;#|3%#oYuk-z39`eBzU{3Y%)FKgiC3Q{vy4go)m-^fZl-19?^IFp z6);xf_3wVBQBZR|;?r2*Z9XfI)1G-po5o0a9k&U{LXgPBRamz{)B6cCX(4_sz+sFj zU~sqGdyB-#?XnDC<}zGFIBsMtsOH}x>TIwxH9~C}0eu8Q5yhbO=v@%Q4_g)X=iK=N zfe6}q!J}wOBd0G9;x}zdeEFIGHzy|Cs1NYQhnV3&Av+mS0R;j^z}nsAV`LxP6ciMS z1H$;KlntNWrY@`N;g%IB!l6ne5QltwH5+R(n|gXMggINjaX)o0extB2-U@Nqovi`q zSBgb*3Og<~*(wo-$gb}ZAznu(clO2irqjzw#;x%8xS#fdf7ve%gWl*l|3J-8i9qe( z2=^Wb_X8w6sIEtaG1t+E*6Fr!!Z6Qpf{pJlx2=7Ma<-UnZZ@9B>?C_Yfs_tg^)m#C z9-fS*9wUPlxtrNPJKEpwgVRb+J%b@P*gOq!d3%H5l)mjWhC?h5lET&*8~79UgJ62q z;F_9)kkIg1<Li9#^aJQg`J{!Q4_e3NpP0ihj^0-ai&>evr+P}Uy&$SV|Mv2($Ns6a zTJAm_ek6132n|N?-1A?71%^wruyBOh0IF*28{^?pa$+@)E9nnEK)s;$kg%y|Q55hG z5^xfKQK@yGWN6Cpm}#O!bP?AH=);UUBUa7m{jR+su+O`Eo&a`sy*E<JidksR7bzCH zk|cQOyN5R`)uO7#NOgYi*>V~{rD`DPr<dBZ@0+$rwS?tHMZ5FB2mX>-I66y0r~Nq< zZPDFX*KIhdP7E5(lYVtVX5vzB-Wf0EsE}!x{?>I-%-~WAWD9*mR+;pEOzT$qLn!ne zZ5eC!$RzN40@l2kDv~m-4DEmug*HA=fjH5?%iTKmHtG7pm`mKNT6W9pq&qF9+>*Ax z^c1$S4y0!vvtD3=9;jU3Y5`?~Gp<|}S3>c*cS2$8z;~m5B=A?6^ll~&1l-&?`0h<u z4D_Bm=XbU139H~uN_ZW~UHqOXK_lAM5*5E^GtqPOu5d)@`sST2okUY_tIKWL=^>tz zo;lk4FMF$8z)u^?Dr*9%`~CG;I`z?594M7scUirkx~i!nd_XdZWVcm>7a1c>Du;fT zrD-oDM-x3WEI+LL*qcPm>a963bQomF=6u%}y#Rt13C*e{E8PUx5Mr832C|_LPhl_% z7x$WxEt$MBF0qEwDlDEdz_B4VOAP>9aa92+l)OPPJK(Wbme&(to1aGd!ymV!z|F*W zI<Ep8C~7=Y4^$az{JpB<k{-}iMUJp?f)R!_gXX@tnuXWSWIM{0=|q$Em$}Adiw689 zT29^YAcf{z#^@f^By=Le^)6d~hczr!4F{M6rUr?MO9KQ2VzQxPsbw)sVGo#YFzwA^ z3^Zai262af1y)%U@(<?R`q2O!Sqw&yrKVajJQcoJQJ|r-v~69Rmyk%F`|!}E5GaL$ zWE)8QO4w}6x1F$iNLNb#C7bIS^U!?GzFI~kC<I-YlDT3kX2k^*Sc=1CrL-C*p%GeH zSWs3-9E_S}Xyo7&){KalQ%nLFua%++edPRowsz)RyO*)b9VioS(oviTH>SIqCv@e3 zO^}4fP9QT!$duth9aqSqOV=ZP-rI%qTa*Z?7w!55Ec^*hN_<Ik>_k-cZtxg#h#iz- z^(?}UFD`8NcmaP7h5?LgMW7%^urm)QtOl1vvq1&-Z!2-qN8gpI9}p6_FO1g=rrE*( z#H+I#E+uHmXwdjz#G!sd9UKAMEcOq*?9Ug#PoR)>irSO12G=8hXZP1<`xWEKYuSBQ z1R|IL_s_2(4GZ@pS`{&69?lGhOgfRrLiWf7`BU%lPXEw2Icp*!!pQsy7#G&ok;5$j zn7bmGnXjA~F`Sz44<P{P1_y@8V7bvFfZjf`*!Vn4#86o|K(a0Y0@l);Q&X)b6<|lg z2rNssDNaLi<_U{zOeoeDBQg?mQd<)ZRf+J*)ufAbbY8n_I3y2i9E}ug2#zIRqwNpy zxD~tM%8aUto)Up!JFYr|sJ}GD!JI#{OYdYK@j$1NJCXMN;m6??>XEDg|NECr8CiRV z?`T%pj1T$|t?AOxjc@4F8g}_38?752A8?eVtJ&5yVYH6FYh9QmI^S_Asf>Q{cC46B zY|{QmF)Ts`OAeTl$6Vg%B#h+EZDnjKV~zZ%2#p0Htt!=axnoM**}7)|Rb}(j4<7X> z;aModX8&P5vpgf;?uC#`PhsCL<Qx_oeOB)*&uKT0KS50D?5#pHR|*qPZx~IS0B8-5 zafSy!(B{WZrnyi3^HeFpNBrub9feSEk<@5^4&=Szt$b1X)H*?)z^qXp8cNjzOxW_! zNmiAZBh|%@3=<Oo_Zi#yX*#DMNU|&hkTD_|y2Gdw5fhc63wEYa`i|k65OIJLEFJ6^ z_Igy?$bk`GP}wDl76EOc;G`cq1SBQnA6!q${tzW$wsFr3T`P`GrTX#N33^|@#ff;s z8>0IyeNw$$RxRxz*Ll9)?q*R|qT^ZN@!|K}`-5GC@%!s@WaP@iJ`q;;D$_vySma9e zVb?Yo1=w;pHTPfexB2`OQ)>&3JxI$P3kfhTs}EaQ6eBUS$94H(I}%=$P#};ZBO7B? zx=^<VAFVDMJODh2iOG!`is+-&7S)ov2(;V{Cn_RVVtkx_G@e{tO|iXGXYl5nsuhp( zUWo14(j(-ROXO>e&*ZW42YeTR=bS(A%FB}4<zY?PaoiXd2af>Oo4%Ni*DJ^zJ_A`4 zOb8KFD%7t?q~^fWs=9UR2KaKEVrr~cA=6U$EL+8iHl;e!GAll|KgplnC*-{z#764) z;qOcO1V}suzxkY3fG(yn9@&M(n$Z)k-thu8pCc*D7QRQJ+-6FEKKovGNMPT3L?JRL z3Z*w*eucu*bg}=FKE>y3Vkk=SiAWrSgxy{yPGTmGtji-wrFpv?1o({kZJHC0C|V0G z6;}By8=K<X6Ld0KXNbnC9CS>Ci!^lV>f#QWp|&O7p}cK-L(-D&qEWb9#qUW)*53C- zA4RQV9a=X1lFqa@-@OVduUuUgQA31ljJ(4lNxvXS97Mz$0^F!4>gObA2$rH*4xwx2 z@&-Ld-G{Tk`ixIECQzv5>YymZ*dtr%y-Kdq;he4UXI2Y?VP>IPvyJ%){&Z&EwP@TL z#HQKG$c*A0{KSu~I+xir?=XRbt2B36D*1k6Hwa}**i3pOVGrLY>GE_DrW&?4TfY*} z&ZJ%>ge!iPPTJ1m0FYE<>s9kv7F>E3UKrA+$ntK;bvAM79w5XyWXReC;~o=K_<gHw zjn!mt#?7!BPEKTp4PmakfoqKcthtQ@yVF=JALm4z`Xw|RHYR7@;;yq@d6ucYqKB7s zSlE=|PV0Pf%{Q?Zj$dTlrr~6;wdp#<fut`cIvETkKT*1Km0|6?XsyC;Xqunbt9YS4 z|F>R+`0rN7X8(bgznTFS|H+jm;XW8Ne@Un+5dZi(FP4D+2>T;g0cHUIii7Uh0GR$a z4vK9H(E6vzv2Pj86w6mERT}CaT{Y7c@b4Y~b*=!}e^R3=zs@>YQ9(d@IZ|hQzJyw< zaRj9Qu%%MJdjimbYg~07xh36PRK<VO<~x^{B8IG*<{A^j&&de}Ccxt3`Z=(Ii93vs zS&>*CK`&xo(Qhel$(vxe0Y4JXi(YS<waKAXFv>b<(P77xd%t4K1i(6}UGs{^+^D{8 zvSRL-LN4QCDSSK3Ae3+)s2Aor7gEe0se&E}?a-Q@kGx30x4Vx;Cj`vkC>$t;+ccu= zzIQaK^%}qw+*{I3ydWZ?ZDE|25;7%!%~+JUMd~OTAk~`HjP39ETmRC6IAL(`A(ykR z8Tl)Nk3W)(SJ0XAxVwsP@?CXtz+n8|O+gk17=}m8l&ouJ)YO3+a)=P=@$$9JE#|Pi z9Ilw=UL_2$m9>=9h@_-5TbA_!r|Br_-P_kOtI?h@M^=X!4*h5ZZR}T8;>L8kEE!$1 zsRUGVfMa>4VbQbe;gk7RyStMtB>6n;TIL*e#`XDx)`SM0Nugi?iY3Nmuho#@+i63e zt%e5sVxyofaH7pdjc%>F>AU*Q2Aol4nG|N|S8@et=Q@c5j(7XE{r8@k4^$Ar1C(lP zSPEL4CO6}+a;A8W*RVB+cK_MAnT{7JO)gPZb}ndszI*?vjBDtUvSV0^)bjfJI`;d~ zYK^(dsq&I5^>mYFw^b85b}&x~!veuZp~2rL9t@5WPf?M~6P3%;`2`0>|6oYmB@Uo7 zEo&-pv-ZjyIDO>0ig)hYv{|`?S8l|#iLTYr7N}j*0p>fRmfLVDyuM^Op0{$s&Vv{2 z+XYJY=e|HOXG18T=iD@s9k<fA$%wP9Lidtmt#Kfug5T2ZELz?pjYt%JD7&v8;|!U% z`Fg`|H46k5qPTKcsQP|HVf@PxFAQY)1~m;dU5&v2?I}?GYlVli!3i^i&<^?PQU6fT z6pz*-y#3hg_ZJ>s65kO3`S$qvlKEHg^KB_uL43Xm8awd`G(Ff{`R4L-XPfP2;;<W! z``C*O%gGkTJX<l$?CtB+OR=myoRh%d;dbDMs}dGoJDaoVZ)#?Uwt6W}9+xpo&Q~Bo z`G(<n<Hl*@nP>T$)%-WFzB(D>P7{T#MWSH)SWp2U%nk6JWE8)`Hq;;hCp%1|R^ig+ zAKnS^awwipV2@+{%xOd0y=i%v3Cuc64BYM;a@a*-UV!<T-WFUzs+~g2lw|#;xotu= zQ;}O1TQtwiNI8zUv&KDXs1(+6<`3YK$w$z&gvN&n)BQ-MA8W5!lpbhsn5eS29}#!) z2YE4?_@v>KQ-Mnznu4Ky=U^*xzdN*7bx{0Rv*xGmwqNuSwGbSW?E>z-R=qYDvk0R; z!xJx8ivYm(3i<eo=&KusMiW2~77XiB#0P!Z&9mRWr67&@twoYsKHemTvk|C{;q1bj z?b)`3e3UUjwzQ*sZF)#F<q7q)w7#~ova<2+?clT_iEI1wv?)}ut7ALf$?+)XgQru# z`ty&2+fnYUf*0q(V3{8|vc&_>eY9HJ+{Gs~{$*ia?{$8ftAL9=XeurhuNru_zu*mS zf`4}j12@*7zda^D%bW9RhZ3;b&Sh=SwQ%Olr7eZswqCr%fc><Pp;8dMF%g_X5WER` zDakxTf6LSew=Io1MiaUglMItF8k-K}o<=^Xbr70>F@U}O;3>^VO9^!&MhLBVFOv%N zfh{)XLM-?6NnHjs4SY17-RVrPMBC2!<eTW)!*Hvin_s=)hXz#8`8d$m=Qzzv9a!<{ z%<I!NM0ptfu4&chP;$AqmYCX<^iy^#$JZX;%?14Q7r*&~*Sl}i%5S?jrpAkW;#PiC z?cek|9lz>^XJ*Jy=1&^^npEv<t?!1SY}jztIq{<75%jCq_Ck@JGt%PEU|AFNWgmVk z*u3n;1^kvb#-+lt%ZvhEKz9@nx)e8pM(%*&7!02&owWi$$E%~W=+yS&h(&%^vuk~m z9Ov0^wJO{y4~F;8A4(})Qzk$@U2Vmfat=$iA?PWKHAtVf!(V1qykykTl%b=18n0iR zydcERUjtEQ6P*kT+x(R!6vO|WV|rin7WqRuF$nXZ@6*2EicA#<#d)lw{WV}5EGK!T zY%Za`p+xHYhuBjfuG<WqCsyuk^D7P87jaQWbet=g`|_asIseX`7UWepDR|a~WH%_S z14XdZ7A=pZ+*48vLnn<Mn|7WtvT1r%(ezre;!Q>dx!wbx+c)JV%TZg-qHVCUYfWUJ zZM?b0Xz)M-X$%1B30Kh6SGk|{APnI9`$aNa%GL9|Nbvn+f5??|WcZRiMxGfwLY2wA zuHkQ^9w@o{`A>PdJ6s&E;fnZQiO<oshV#J~+L-2)d|nZnHyMty`Dh6~#{RnN{QiC_ zT!0*&<}k(6XB2;${Eh|)v`61?3|y{S@uyISAupvea=rjQfhg;`CN&=b4bX@AenC7d zbj+RE-HAc|=|^(w$c}!je^jp%`ZQU5eRtlyien!XbkSSMHRTP(I>fAQtDZpWxpu1( z$H|(+cFA_&CW|8nw^dqJGXmrAxNUw{Gt97@zr){xH6%)ZJQ(+);rs+*VIane&2`I5 ze={<SF&qLm$mOf6&@GD4ri?8~F})BZXjC9jBqOz}sj1by>f*y3C)b?^_n_jVTWNp~ z1_Z+tx6fbiaNxC3l%kQ$>Qhj~+ij`qd8dDQ<Zo+gau2>r$YfrA7_bky+emy@`a{SA zaY4vRC;s=*Fj<ZuQ~lw^*OJ|oS${00{><An9oPd2_f{8<|F9H1pVf}{!4t;P=Burs zlBzax3f>%wlmRzq1n2J&Zf~CTO`g_9_gAG|Dqjr!Z5GCUZ4MXruaW04!vwmkS*VOS z6)foImEFHmJ$<|$E>%8aO)&zQL^YZ;#MWkAkR{e$@ZQP_g2qK;UgwRxA^D}ykuTg? zLGFPB|A(%33X`PWy0y#fvTfVwvTb$QUAC2F+qP}nc9(6t%lK=pcYohn|Gut$5P1|C z83#F^n9qzc?qN``0fBTbC_4VQYs)~tT#g15fxyVP)U00K%eKhJo_vxoVAH*&t~g>G zkbh&-pdVj|Awrg0U%O^O7)j=XmL6RC<nJQVq+W64P^T3!m8@bDwXE@oIy8}wNfaQP z^KF*zW>2FzQl+#}bFl9t7L(OSj0zCz)l+10gOx!ANOSE6;$DQk6B3vB&4h0Zm0Dtg z<1*Q)9w}(GX;Lf?yqY*)!Bt*@=^09Cm(!|)X@P>fiV0t)w=*r!R|JE;Y3nMg9^HA8 zzTVL-!$MH!p`3biURv0bPNHimW=4)4WiBdhyT=ekx6wM?_jPXD0u#+;3P@O#J)*hS z8vW7(z}gXq9!SOY)fJXGjY*dfq7@fSiFz4l368o03!mAkm3OJLu6XTu#kw(PqmD|I z1#^u^Ba(SjPC#4U2nptOAv((WkyrtIIgf&UAx1)413J9(s$RH=c8k&(!b3Y9uy!SP zBTmg(!4V*^(kvaB;q-?FHaWrcSHgC)By{TmOykuBtPMRhHI3B3Uy9q~hT&ZoqGNW{ zDUc<<^dnhRvm1a<bxTPb>qV)hV*dhSyQDzcN@m&|7ea;J{87k3@#B4I$_|N1@qxp_ z>n<7((sI4@&JrrsOtV#vR%hUFh}Oc(X58IECUltPQUQ&GFMW^3?;gZuPK>Gn@TB~J z#bsh<5GTPi(~8J?&)hJ2`lB`tZCy!GIvPklp&Kz%{~yCzWWioBa?iX{?j&uB#4fNq zXeVV-a^LuMM-M7fyWYNs_y^y)*>v=je1&xoCaOa121ef`zIL2SumoAZeKfP7cjV-? zJ}I)F;Q>FQSZLr^)hk}>IxTx;F5R60MTx~zWr}B058<t1Gzc&h;b?O-(ud*ay~+;c z@$4EOgbv_lb{6Yku*)2@f&%ShWE`>mW39m@@rH3GEwLM|WZNF)$wt-r=bZcvJ8U_d zH<}W*@zzPAI<=+y=R}TJ&v^1{0d-f3dL{JeB9_aZ#{?I85#R!;J;)^X=0k0O0GVHn zQftZdR>E%XX&I{pNLCMRtgOLU0#d8<>1wM-Eq_RPX*<C(rkVQRZ(o`>M1SyG(4-LO zZRj@U_#P-d5b9wl{aW|AjjI`Z$7lT39_fQC>4Xps4sx?-jNP!kSGjPxu4(0Jv1Ln# zpB{l1KLYI_SLG3?4oBnE)%srn+U0`#zc4NrJIe*aLXssGJ%7nE>+Q}ES#c<rRNEaz zFV7i<L&6r4fs?Gu_}lNgbrQFGy{M_SXnW=>kZ5y<fZ{)Zxq<W_`iJ$^w|<sd!M^!j zR`uC={;k)H8>D_*{y0-t1RI9)Q=>gGcR;@13w2;A8`MT;6YoFdMM`%EpcSR*9i~7N zOAwuJfJ<rfGFIYJvobVV9^^nKdPJ~%8gKiPB)H{;xl}FI)Z&jfF-q642!->8n}?hj z$Y`icb0;4l9`4-1@1Z43XaSiGV8<(<90nyo(NWP_7?0N$s!IJjWE#p1rK3{it}P@U zf-I!ZYoIz{t!roQ;a5BY0Ksm0RPP_S@S+*TzL#gjyxfovC)Q)m^>reLmAmPU;#_0! zR!l>kIw}R>{duQ1GuY$Rqf4I|tSbb^vOft8kgP|LJkvom@&z&%cm-M}giNvEGpUvM z`RS}5b{}*JP6i7Rw-BDn%ZXrA9Gn=hYOElMeeo9Q+b0voGsYnVD1H$5Mgz8Ki>c!A zrLdEeMseJ=<kya}RUfp6m%N9maEy4YVbE5_OZ?mr-c0~D_oKp-bdKfPDTY=luVZy* zOu*ng-oTZL)DI<D*iW#cRFjrXv-3M5zi4j6tg({CVc24#3v@#a%q^|LW>pC$coF|X zP9DdoEwuS#%1}N7P_N&pRmnw_2^--Iab?URb&;Sfr5-QRsxBOP35t(%JX^^)z*+_p zzzX;qG&(G8MrN#$&VDbYMz(B1&alI`@a@GUy4V)(6ClT9n9<D=ni<D1y43pH)2J;g zGJx>e$d$fg5y}uky`qF?fytgEk>H8{FiZd?VZi8DIb`$*$es*rn#faI`3uK(n>X?K zQW2CGobKQza>>Gj_G1AK$0e3NzguxpE!6Y$QxF>Q#hNP|6}0dNse7u5P!MJH1n2F| zFQD?;<cwVOVV?uH%H}9NIiYZ7#7dMbuFt_hAoHV-q<i47OznK37h)8zHX8JWQ)Bou zRA7j=F+$oz!0+GmD;y6ZW@>CvEYixX;FRFzFuG)lc0aCJcU2JIS+HZu9&z0oPUumj z>FyIzV-@kJX{8kg1_95QiJ^&VeOwYcJ1M#D40bv%zp{Fr`?0RtT-@6*v$4`*?V*I@ zsr1xG*Fou8+WY6~nkL>RULDJk#Q6fmC2fA<zGWG*0dAH4#)F4bSGJT^PdWUc!sj0| zDtedR4nKS1tg@goEfH6>=<)Z3SQ`4Bbl1A)Zo;Ptfxs73+g{_8X7n?vD^4EIwNL-n z3!ST)#t?yON7!X7I0Bz+ZM@9VUHg$YF*SqvCIg0O+eN`FJ9!2b<YmHeE4C#ie51c1 zh($YD4-hIC`eYJtE9FYt4d)VfUKaYt5l<A3TeDMm1ooUfx@J*+0agJL7Y40jelQq2 z8&ni1c&M<B)IU~Bdu76fEvfBYZ#Q9{vG#{8kaG0jxNuXqs@57+43=S<xmw@_U&VVW ze-E^MBqjEQU5E7wx1M*2(sm8q&g3%`hPGV=en5ld1cgKV><+}zoumO9wo<`~&2a5# zu|T|`4>|uqSaEGxrpz@_K1{8gSl!CeCRq~I3P*zdI!Ub*x6x?Ei;|Ee+V_(cbl_lM z82c)X%|5rS%Y)Ypi>{!XI~xwW>W`hBo1NXWgEO<6qtD~riSg6H-`#T^Ybq3I;ak69 zVgT;mc@PE0&}|Svp%&9_<7E;#MamzI)$IO5Nq=tjhaVeYGDiJw%KzCF9Cmx+TCN_j z$@t_m&RF9|-^ODkp}I0t-_>rs5@jU5@S=Dva$hfKG-6^{pP>Yut9JX=0$g?szW>s< z9X>9}Y#@`Vd@boCU1Hdu5wA|%A#)Y+2Dozw<>m45#O%0Yx~G^^sRojEg*H^-3D6Ft zV^lE2bvDl+(bYWu(~ePI5_?uR8!L{Yq%hL5v0@r4>}VGt3<E<uL`4>&TboQPIdB|} zo|JMw8v^EJKpcD8J4ooClb*|*3?zIex!V8)8j-2=W3V@vnAT;2lt_zKTd|k+USB)g z!{ju)vDmAfLUlnO5SY{07iy4Cg>{$`nU-_tHB`*n5NHL=uEZb-Pd^zjr1X-h$^SRv z%t+}TmY{;?%svq)fhWjcM#!{IDp_4FG$`~7^8csVNP&v}FN?EiG>APID6K+GN?SY# z3*=&ns_OUAavu+Z`i~MCCK-h3Ki~!7WRT;3xRrEiApgl*G*1H|`iIjHl?(D;n7GMY z5cPlfZo7s(Pe$JZwzHJEdQjXHnL?2N;=36Yf_Q<zf8T@{y*(Xc10)d8I%*2hHVAGC z!^}Sd#s9f4!V-|Fe;nBlfA2f+zejFc|KK?RMuv|6<FWpK1v{!5*kW@beoWV-o|kE! z^x624;%@xSCogi9RAk_mn5S+`-v8?#w7j*Z%dWWo<+HCNk=$(Y$ETbO@nSOLiN_~f zHd4+nmejRvH_%st#TxfOiV@F|IA}juYTXP#%Ex5PE!(tanpG+iW1E>bX}(~_np(Kj ze>?YJys;71BnH>}9kwbbmmPQiMScS&Q|m<E5K=&Cfgc^7pBhpn?D9?FA+49zSvfhg zemLSF(2YnvM_A-E(19h${Gi(F88@SWApnmmf4AbvlC69A^LE#xCun2L=pPT87E2Bg ziN+oRiJ<?vEOwq0C6yj}5HPXp18^oZw_V}Ki<~jNRrqR1&t45sKl2rlp&3d$uO)NN z3fy0oOUm_@XQ+iEMW4(I^;A`*eC&Uen_(Cp>hQ7W!&&q-f#|udC5$_lCz0bE^S)?} z2N|IR?@UDeeAL`2UA&{BKT5`m<H`f5;^{z%FlN#Gwjr9T($^2tv};hVgj?*757=(5 zVuV&jpG8dJQQH`PK-WEEldnNq#c9lYYF$Uz4Gj==^;_6+7!suXYS48DL#aDb@UZeH z#qbi0yJ|z~APb@F>tlS)a#vzqW5}^)<Zx=}xZ1M&;(M)gp~PZiZOX|St<eW)rwdlX zlCed(!mcNcj<N^Nrj5O%RG{RXb$F7pY29KvUD0C0;yzw^wJW~Y!ENs<g<Z}`IfN`T z6;YSl2rZsFL%wy5wohwP4kx|wUF+!bQM@s1bzS9joqYN}jk63mrdpW@LKd6#Mo3L? zbgJinRpp60*K$DXvJBf#CN=}y#$es5rY!I^Fh>}t$R5F{eoM3RdVo4l-p%`4b50%7 zIUz`WT?XmZNf6*Xqi7w-vMn2C12JVv^;h_<HENSv3oKYcROlUE5EBo-91jplmKjNV z%|5uhnuGUDpZIT^SpSWe?fu<y9lp6Q^{MGRQPy`C%<wGhSb}gQ7?!OYf-a9<0wwn# zGwAqs0`22}^k*HY#N}orVAE)IwuR_MCJBhs9eojP=cknF10`~qHN6f?Z?;K%yGVx9 z!z{#&T}9KM=l{x7rB-MZ3x7@=8~=7Y1pfFJ%K$e;x&Z_pQh{Gv_4{biZvZ*?$3r3B z`d>5kpjHr75YX>$r);)^F#Ye@XdNIn;QuDu@)4}e$9<Q0TS{#2_X+=}SW`xOK}G-` zqokElZ6fmmDpiN{c#hL<;q0)OzD!qQwDV_G$r$=XvoyrX&;DS>qPC-Bb-z{<*cQjH z-cm{^YBpVemz;3z4GWEH;KFrmenSN7_Njo<fP434m%;REdp^Uem;50(^VOD}vR$f3 z?oTc`76DAJb`QpPi_Dr-&qKE_LtFr$n1_Pb%_G;d-@VmQMDwP~1*#e2#x~_n%h#8e ze<4FWXC7TIht??A18vMbokT%B0(j@~9t3l@*ZEKI9w7s==gQKH5TTb#vcdLMW9Cit zxc+hmqmwSf^g-=+6{|{`2rRzh*dcX+W6V`-43UH9K*cO*D4|m|JrMx@GW7!_Y7h2j zG(-@dN>}nh$;vI<sZOaqp5cZr78q8<*~7U|V)dLwY2Ht>3CRhrY?CboH0xtUZXQlk z#NHg@0vDi^vry!M3GN*1T!yDjcx;`xcRBCfTwQzAlUggl@$UkK=P>_LP;SV=$Ies} zQ<?$RV>RZ#-x7fig3FKou1W&fd`XN6zPdurz(2itg8n?J2wlq@9AnLu-pHz_MB4n^ zTK@R`C@Z73qGk9t{D`t*+}K=VB}MWsnpDE{CD7G%*iP!89&$o(JEEulygwryX)}9H z>eC8|G1nqXZ&9jAmd(F0!vtfWsm=F(1k9RDgwhZKxC0wfHL@J^8pH!E@?TUK7q@u6 zO@HNY!NX^Eebsnm6b>FIVEOC%f~FLDS;8Psazj}#?Cbmupx6<6UiRAow=0${$hfmy zJ|Qen2@Y08{-v11NN1o?g-dI^AT7E(2wnGpzLu+8>uK>bWeJo1ub?m$x8rpDiprt7 ze<$$*<_z>`p?-!&>#9EhIyMWpyzu#Bn|>qZS}!}Z`~C4@g|~<E=gVh}uc0<=sqYbF zCz>Dz8l@rfF4_TsJSYfT&=Tz~ltz@Yel6P_ia)6^FkGJXTP{`&R~AE|(LwRa4=lYf z+xA;n(C_@2RI!Y#A2h4`sW3|CrKTuCka6d!Zae*ss-Q(t<Ib4?@!v!Py=Y*Lw!mdM z36=>sj>Ov#Zg>hr+qe2w(c=5-?38hjwQ%0|qZY1fiy@G$wlUYk3Gjt%j_7w4q*27? zq{TvTOx)IbrYfsrGR2QAQRr&pO*=+meHKyD`;*h999UGaD4gVWRRsO<sDG1W3<}88 zr{u3$#rfIE%hnnIxEi{wB$>iw?&&{H-!4#-Mh~i2Fh>Wvu}e6QX}i)@VS8#Ecci^G zgH%>@1@bm7Wf3hBi}zkT4GQ3SVkM?3i;?Rp!$;sBy<G)s<y*}=r4SOUD!`FL_c?R3 zk4CSW;B3}dhJ}AZK1h?Pj<h%LhS4N`?pT&U0$yVzzVv?skchiKT&Xdnu0yWnwgr6a zgTxbOMkDR=t;|iw583@JinFErzPY5>?!ODpiYGP2uur@BsqV#8u}{J%ArwX=TvNW- z)!(y)ENKHzMgk=blQ)~Xc`CmQB>db4lqkht4A{x-G98&z4K!fb&eU~HVb5|&i1J8+ zxz_~7VBCxWh1WZ+uts~O>iv!7aWk=aW`(484b92Us_M>m90`oD?}ijvP8!rhG~kFg zl1VhC%gi+ulGHJ%8Mc&aJsd36w2aaVN&!mdO@eG0rUEs0c)!c_IeQ6AnQjtY;^gIW z)g^{;LqoN*0`-Ly&CJD#(=3iv!)>m|Yed0`Q)sdP+MF~})#)kBxm&m76fge24Bg=r zxPIJt<NsL?%l6@4$6?>E>RwtZzqdFoi&jkMyno|XW74;=u|)pW=PTf%uEpTbNxRqh z$NM1`N{~U6HVe6BPfaAd?;VuHbH^qK;K^N4B3=5KF|Yq8_?BC_XbzVR&39*QtbZv| zH>Gn6;4=Qo5%#EJEC#pDzX}PDX@&cdhf*GEdbJpQE6LjnKtirR4iceH)eG!A^V)Sp zI&|rX%B`q|N}(+59rEv8JX=?$)&D^!gwSyMvKoZU04Fsr0tFK<iH*G3_s1w|DKU(L zG!$C=tjE1nn}*ePy|lSraK3o_n_vi}CE|PrP~{ix;Zv0vMca*j?b59Y$Tk7&nlo>} z*!vy#V&*}qzrZIrLl|3|pZv9XdJ)TCV_&#vv2_jU>f5|=iPe2Qn{T^>^Xzc7rr;Gm zk~3H@4{FG)<1twG2H`^`&Tno<vImn9QtH~YpjrES_k?T<z>L6iTx>v~kgwuTxf<C6 znA>;Um$-<puSSE-8n;@Dd@Ln`@xe6IRDL#>zY5kll(my8Z=;%a1)Gt|n*Z|1QL<(Z z2*`?h9gt)(wP^KT?+|YO0NH$uuuGY=K93iO9cj)7sTDoCWFio^K8~LowUSHog@0uD zPe1-IrZL;RHd6l&ARtBBl%P=%n*TK0t)n38KR~~IJ1NP3K)C;xthW3IL=gPn2sNDb z|LVcj*Fie}L8zf`|JU<aWg7$n^xqfJ+54}HWbc94LHwJnhI9(T{-58JKLxq|r@<Gz z0QnCG+V=v40_@)e=C!m3+MDl2egGmRuJ^kqFj|B|`j@u*e}K>bS4wY^%9zbMBVyM% zO(?qG0eNh_o8Y%Ia^V1xkTRV8vd9Kn6L-~#Qi+UeT`&&7fFYWkMJV7t+n?rcdj!W7 z6i?RQS}I!wWHdM~MIB(#=O78}XexkIT~NwI8JgceRM<u<O_dD-un{4u;Sh`4koe<P z*kqv1?@o$TU!m{6Co4J$f?~9&*wEIO5pSfVmdlEyBHl$A?jYAFmcv=`5Rgkt0bx^} zfLFY=0=h#$U~5}_^HkGv0#fE?Aj39Y|JQ?8_TJ`s(Il%16Ff~dlZQ0ZJVEx<z&4&N zf#DkKW5;KYGIvV{0O)A&1$^Xa*;l#oh~fF`yz@R+^7HWW|KuAp4L^KZ;d7=Z;#=EG za@x6hbrOO6xc}TS7CX6d0vZvu7ZYdU#+;usOLY}ats>CkHUe!)14sF*@7IX3A609Q zWdG~$6J0PC{ItvIyhzH-{DW?z+8`rU<^Iiq6M>;(3X5PWKwZ4=xkXt*zEbRTmsLmY z9)8W}+3N?fG9{v#0B7**q6jEMbgXK-d9_wiCY_EY5nb3A#umk<3vX-7RySy>BF-+z zLR-9Z5~q7JpLCQ?gut&7U$H|?J4s62fl6XW2^VQA4|t-ppl)F<&~&z=qU_30+1)*X zk(1mhGxcT{0LGAdbf(1kATD^QT(vC{OK4c;GAb*vS};GGvOrwi6QO2{e@*DTH7|DP zIELCfmlZM^<T+-S<h*ObR>rd#jo%@H+Qe$Us>;z!Q{D0dz&Wm+wv+a%Ue+Jq@5-5t zHcNTHmc;e!Nv@EWP6$IONn=9u(C*eN(rMiO_c?wDAYI$MEJH-{dokEVz0uPF-WYq> zFDDL93?n3S`cA*=kCuRK;aG@I9#@MuO+#pL7=iEW=ADIyrvX7-c(k7VO{JeQN(b&D z0(+gxjm`dsRRdK+^w~7kX76E6-{}RmKCxZaxO#r+9=y7Yz6>>Lf<G+8!1f5y!;ImA zx%S~rnLM3p&`-LVyR>)?#w+&Uh{S(oIrJpRe(&6XfVAQMu|rHP!omKR?4w2g0fY<u z-?bR=0>b*AS{!)+@%v{JF8%S}oAAI7kapmI7h?|&ciPAICKv$yZ|5Jt$i~F!e|EwD zkAjR+`zDI9BYsxv^_jqa=SSdDH0NPY`RB3J0_kYdnm-XSfY4=Gu_KqoC1&NG0IuUa z>JG?%!3`k0&+xi-a=fY|M+Dyf$xP(_D@>6@Ore;V+@6Ri8h98Ko1O^BB!bV6G>>If zj#h^4rtHg-q6rnvhTSU7yjP*cZ!D}suNMO=GEK8U%oe^`Fho~^;c|kA-XFwL4e#vG z(9UA$#Gli*Ny?uAbn<_(ygtl$I!G0EEVV2AzMmWYnPJ<qo}q7t?l{XaTr?L<Mu-~D z*KIO(z3f`Bz8nyzHKz@rqpykGt<Xt}(Hfu3LYWBll0e5Srk_i{6M6A}(<)x}nKq<K zlxXT_lOI%j$>V>VAkM=UyRsXZyunrMH;j7!8IVND#9q?i1mcAL`u)!GLcagBu7?N4 z2oT@vgq1BraeGlJY{s_RH``|3yqaS6Eqt!;u>geKro3-HOMe2YHpmPZ$#W_@-cX@S zHR^>}`rzjNU_*t_l}(E^5@Ne*V&Cn?(~>R4%hsaeNJs!PqcNB8K=?C|VibY+!^e5L zX~R&X_~R&n^SkxX-;<S0k_-30SIbG<SR|UZl?&rR=!O5WeQP&~gHHF2EU%r8?mv~} zlzd-(hI`&;%6tY)>?hRmXBXCH4nN3p;_!<bJTR0MlG|v8vt9!AI6G(&lB@HRt8F$A z3(2?TRYc$Ejge9kJL{5~=sH1Xoh|brOGuLXnIfq)T~m$D6ZO4TdiLh0QZv7XQVdbE z`x1_qMK8DRVj073^w;Oom?=idE7CEZ7=+mDTv#c{k}Lp@tL`+9e--*lv632qBj{c) z-tAcTvk$W0o=*9l=FAj3^AWR+W(45;<#uy6HS;F9x7K^<UrOV4?mGX8p|!|+a$M-* z6lxNd?sC%_kezUnvkEuambl#B1!`@P=&s$dROz`c^-HRC7R_vn<s&fL!L}yGM@(HQ z7;T%tA^Qyw?GPYe7a4Zguwg@S=6;Jf$B9n1Ty>~%lUOxdueG9pO;IbUtZBN|>EgtF zytcBpqJl~_(OaJOdhYAw*O0YMQj6tnilrY=KxOT*5-q^S&8nAzi(F%5Z5HX2*&-g^ z?ox;Lb9mCs!nhBn@wnQL+zg4EYA97rpm;QBXEp|Kj)MDV@a>oXmwcq^XOZv<d{MVf zvXM@^@ZI0_+%?KlUDrjkvSrRU5AHv@+p88e*Cs5XGKTPIWx{$yvg}3k7_5*_E)wao zRvjL;H>9dbDKI(&gr}S!Y5u>x84bMr7Q?mLz}`{%p2Q6c31B@Lb_c^4pS5>yz$#Zh zkgOO4_S)&6j9qFuM4JKTO)Ni{I)+$U3cUIF-!qmmY*VMtg0w2Vui@XX|I>i{%N0Bz z5^jF*4L8Kb{zv=<4Gs$Xzug87IOr$TzZWN5cu?;DEKa)cpw9nvAxkKr|I2qx=@<jY zZec_PE&eC-VHFefzc>n5SfG*rv?!&xp#Mo*IKu_)goFRrz(H+;ZLE(G2&lC6pOtck z8WbMze+CZ!H!^Wi+tU$;BmQ5p3PX$NA@E%FcoZ2Yw8x1nx)p{r^jgiX@=J1XzXg!z zI+=SV43)lfT@m!R5>vY>Dzwya?M;2f3JCa}I2g5)+^PNbRny871qoF&4~mdfi}QJs z1@j|m2Sf;PS0Dis3KO>3treWC^Q9{7=dz_7VVdm|dQRDG*J-RK2lNh?-AT@RS>o#R zi|Xs`lAgZnthau#iJuW7#mp?nHy=CtK@B$_l=2a?tz2%9Abeg7p?B|6V|x7#TitJG z@9&op^^+a09K)!BiIjxfZF))2GW4+l@Q;E>$(noM-lu>T%&kR;(MjC<B*n0+JN#-B z1u3&)ViKdPj>;uF1e{aCBu!x)Y1TLch|Us8mQX3<A63hD?2POE>|XYk<BZJitLZP) zV}5y^Kk9iJrc{<XZsAWe506ZAP3$Xb;8{!-ZJ9Ot?0%)L9jTH#qoUvadC6GjoZ7iK z-g${gp&$V0=0q69F#zJ?ZcQN}Ar+A==;Rtybsdjx_g9e=(`Cq?8)bwG?kacn6y(2r zv759cmW3i}6Z@@5Ig+ruLrm$H&NNMlQ3<xXvOAVs=HZg;($s^w^(r)u`U8+oGqUG& zPJSG9#50DEdE0j@dI$)cC@KxHRtF9n7@E)Z!kGgKWQdQ6D<>f!pc_)54rg;0C4RYt zS>zcwFb8)qhGABM+JqdcZCI%^_8rf%kYIz${e*xpZv^y4mKS+_riU%1<Wt^DXaYyc z6pS{hO&HVcy_16~hp9H(G|Vh2ex0<66*H!=&MZx_;zCpD%P`8GJ_LK^S_|2x4H72< zah3tbD@RWxyX*HBR1Lk({tl>B_Q%_lw6U9AFlM*HCrH5{fJwv{w!!2@D9{K##>7ja z-NaS>?w4~EQcj)Bx?o16$i>!(?sW;vDmZ*3D-XG@{j}JnIf+;64OiuoCY6tWhX@jF zSP+*H9TLy~c#%*F{4x;}9Ed-b5VK#jHIW4jxvN`Y{R}e_jU*j&p-(i>&F5hu!VFU> z3{a?*YVwWi)iz@Wk_GYFs5iw~9LNq80VYxq{9QaNGm3aHbSdhFS5B%;{M#K%x^@bb z>5izh1GtCPj78d){niq#pSYoE;RLXC1Q7({vk%6(bOtQj@3ZCmC~Ox)x6bKN#zqKW zS8JTdQvrhB7@|lb?adACCoM;23{6cN@$1d3M7zv23hKXGS20he>wPjxL|7?|mQsz? z`qka~LRmFEl2JH>QlhMI3}>clg%7wtU}T`?O?!Dtc&_8fGJO^p+5x3z&uCkbXxd8U z9nC9Py}~jZr!FJQwZ}$CXHpdM5Uv9Zekm{lOA!-F<{HT3d$+`hOq(?NX+Um@9e{hz z;-dcw6_A03f@qNrJ0Whs%(|RDjs1ZwPYPvCNAf0rTye}3a!hfpSGOu>`ZJh3>2`?X zb&dUzt9*|dbarblgH0Br=J`D53_doK0<G)<Hxp93twzig;W98}O>mS}+VwjE6AtNE zGrY*(WEJr>M77d^xS#$<=;H#yIPMwVVm}cZ`L5ZPG*G~HDE%~HuDy@}@%s-66%UNq zz;*-Q*AqrMWNpZen;K(tpY^#nk5RrEPrXO=AQub<=>r1KOKdBza-JQ0W$T^Ng`PI= zkU#u{j7x|=Vc@~)sda=fa_cq#{n#5T1ftxx&Z(ju&vuFawZ8gC=pv94*})sY;K36~ zSo7P0<r4i>v`nTL*Zf_mwx{vv$Tj`?Fl9;PbbHivE&`LFk)<;DhhbU2yu*Mg-N0+; z*|_Sfq3}+8-0YZEv<0k)CPcxgR`E4>`x+tka9=CFwOokcU$W;t4$Rwt0F_tOzn8{x zh(US*Kl%qPxmM|5e<YAm%D+d>2}&bi+GwKO4wZEjD=0*rm)rx7V}pS8LkQ^E2d_%O zS~Y1%%g{+TkPx4GC9f|%I|{ToYYgkFr3*l*4Cm2`rg<R5G2q8J=wO~HngtfD#I{bt z`T~cRn0i8a-(ntCDenXTx}*?)>&vI%7$78PgD4{q@D1Kr7MxKg^`pthohLgmjKOMu zxZ@Lk%b<6x(2}Q$SP{psHJjrZwbWC$o2`U19bWyWr!kfK*CN>b^#r#(&1d62K0k|N z@QK?gS^o5TnVluV50{X65+pr5;2f_mBI;ijDeU-yxfQSuPtmOd`h!%Hm(g*3x9Df; z=U8-q@J{5lS{iR&`b@770(lF5wgaL0IxaI|k-IM$eChD)022zRis=}gk47+Is>~qo zA9-^69UEKr(<rP%2;rtDk4v}yw0Zwx02g7afg`2TnD$NWR8<kUur$=9O@m&)@red9 z&8?w9)DYh)BUP3Hpjg)$2bn<no%>ZSYPbPdZOKlCJuW}AW0m@5V4Z1Ds-cP4;Kpg5 zesOb!@;b~hJ7QQ=r(dSaCL3K=`^ScY0NwpoaDvZV*ikir&7B=iR(_O#lX%ZvaXq%( znm$wL#o#~STKclWhRc&K>Az7jxtvF7_yO!$GB?7_J52n|gGf$;D0-{v7g*Tslq{vw z)PNnZz%-ect!>okrS9Buxj>N(9YTEyYdCXI>?s$5aURR4G71cXUIRxRWhRQ6Fl04r z-}aNpHmqd56a7W?cPuuNmaE<T&+oI?DO1VP85u)hI$G6wJXND4Dn=hUx^oL?+IRse zX7O&$ZS>4=fPdO`B)}<K%9lFTJHNUxmB;=4Pr`Ng2Th<6PtBNPX#A}`L@a6q>IDd$ z+BMY0Y?CHR&ftcpU>C;9_eUFP6L9OKue%l@b`AVg8}l5UufY&>b`*x)&Aot(3J)+? zWrN)hvRb7UpsICyol1w-cY1DpwS<mrjtPO^JV{sp+{y-R|25@MimQCF6GlQOb%fzK z{y#-yjp8Dt<UJ@TfQ?TZ$*;N*3j_W-FnhxM;fCtys^iW|!W+>N5n5O9ZA}7FymLO; zBY=wQ!DE&9Ml&^Hv+?Oo;F@W``vTj(oFY|St-2ASp<wvo6r!30<3NV&w6*butM!KP zJVZReZvACo^>jNU!)BIsgsy1mSsL-jjmn#4#tRTfPw2)7dQBr4c_*Ovcq-#~#<eh{ zwwB0rbe&i+uHWpJw7{%SU7cwyO=Is;%#4cD5Hk%D!&R(yytqLX#&hSU6&tba2aqwv zr5yBAPv4;|Sy_eqsfFat9`yj_8^rKgNh>wL#f8+05+IJW<BHKhK!lai{IMG$>ByFs zn^_m^$Q3_B$u%Cv)m2xQdjFS8y^_opmw7CBLD7&cT2@~$W2Kynn7o+h<xGwdR2Ygv zyz_B+FYg4)l0?A5_1T!{0_p}W0#OwHM1Tk+L{Z0~b3>JUq$`~=RLFs4cEM5`zt|bD zf0{V~mw2$`$zQ^tz_CvgP#`%p*EDG?S$ry{Us5w3ZPJyz+O8fbg0nM(p$5^2P<e#e z<}&PFbs&p)sA^geq5cBb>f9{qLWH>)So^pYh>F=9dSs<hYlGE@Y<bLh$X?dKjYI8F zWrim1($I8eccS(s_f%|4zP!8XEldws0N>atrC+~g1FxfWO-D?jV3qi@1OW0S8y%iH z5u=A~*|XbSjl40=S?t2r-9RacGmUbQuOx}JPasP1^)gA=ZDaFXq)v|%annHVa|`Yg z#Eg9P#k>++zFoPHqu9lpfv#-tvW~A*mL~1Kd_4I$0Er|)C$)w`{p3Nr`YZrg16)h} z9Iaa*-iG0>JK8b(<H3hJLZe9=;UipKT%<viFsltc6(|Wcr$hbntSG_7tf^@QQOA-M zf5)Ig^Iwx$pUaN(K)#aKII^Xb8<<1B1Nbf2<bQa?D%51q26G9eNUM}<YdX{y>ll^` z?B*}QF8o{}>8$!8J;fCBw~ZS>AUG>_&}6hu7Kfv#n7*Lo)@g#NGl&Qi6`^B$M;%t@ z1=R|{TT3VjB@pDkwh$cVOZD9U(^_f(5iv3z6w|!<QU`d#+JXhhcW{{te4RE40_cpw z`R>AjQy<~n#&K)4Yv?lkHuuT!E*m~azwa6H7ddr?_FZu^gpM``&eAb}toSFxKw!8Q zS(0gxtG0>CY|hKxf|ycNfvW4OIi5t?8K}W{WernIF(~>Pkf}l(Nb-Qz=r3el|F!i; z0%q#KTwXsNprht98|}q>p80Z^!Y{uW{?%vAYr&(*_NezJrDfkstF~Pw<tFGA%d8S0 z2ay;AG8x7vAv9Udp(s?qq!8NGgC8Axj&iKn&$nJ9%IX7jVidW`bd(?TD(MML`!94I z3<yu#{=g$OyF_#Q%IsaOP#l-oLX2o=Euh@$BqQyFqyupoh`%(C5&bigAvz}9uyPbA zne!0C_1Rf_d1#3k_qmsZMs`w_`{RLbAw`pDA$QHG>i9hAe)CcR;s-&tXz|LB{dR<q zb;YY6TB~hYfAjSs+i-W!&P!loZ6S_=(FYMpJ-!#j2F>d;SC%Pz0tJ}D!Bxde7$r7` zG`UG&Ugbhmmr{b7johLoPpX(l5Yd0YXhHekY$t#XN0T7eW@Wvs7|GKw*ABhQwKLkn zfBLR5Y3eG{TBoA`)c9o3@ZuiF=qflRO<255P5U}*TNhVl=8;P;)2)Av0e#Ai>SKc9 zf!z}^g~N2Jm?ZJys|Y~|LEoIhYHi1UVmm;>#wDcf$VLSlNJG=M_SBuktk@lg&Y<_t zS1F%1<3Y1gB;J8lJVGG`D~Eql;#HL6^*gMV$tdpm-#M)SR`M}yXiuUl_<hGr*Qy={ z;p!zTmy;K6^_`gJ(Ns$@XFV%goQ77efJ2tbSi_0y(t$!pRex)?v1AmOWr>F?g|01I zhW$|;bHpJNcxWz1o|I;BklqpYAHA!p-UN~^r>=jub`VJ)p4=qj4szWjLh!XgF*F=@ z<~&;|QeFNHAQM?*!jB>5vqJKV)@_pKltAG+?Wsw=ip^VJ9wh6lrXmZ3awuX>2Kb5t zg9aUw1M2}2wknTO2!1&Ry=h!b)D4F@a~C6q@9dAAFB}8s2xw1eX%V_<9Z3UuHm_Tw zxSwP$MR3~4fwafwa#5ekwU#BHLgx7RJT08AZewQxY^vgxewqhS6zC?upqZUN1pO5F z&S9vXlhvqavXcu*m{Tv;F9->pqPI&JJIGBI>O>on$+B%T<WS%#K1{a#i5^3>$5~rc zngk`$EeJ#-R-YbG{KWKVT|~xs5)(U}UT-MiNkIY~T#dC;Rm8FBZ9M;1bnO$W;V%oK zQiOdC;Dy^r?kmA6I7z#qn#RO#?lB)Mp6zCwz6CBIu$XdEDZPA>H4Lb4P|=LNSx)b{ z$?5hU+*8x~Iv10t+Z$?^iaMkJU=o-J=oyZD7k7~mEYE1^9DJc8?gyiyM#-5~=HMXc z!5(nIb>@UD(dG1l8Anr5GgNWv!+JO*A)Rv-fM9^MBnk)YT35y#Ti=P0l^+VRDIhn) zYd*n+VD=Z4x2MwDIiJmV9qopJZ4Tyx0)ME+)q5XaI9w^@L5WfN2Y;p_%+yu7+$Q2} zWuQheL&Tz9io2?tGMfB#{Xs@&r~h9ptkbod?Gq<oQ4VIr<59dXi-;{gTb|CKoD<7U z0I=M72>W>eE*6PB!abnT3S$o_aE9B6ntr-jyMyNbRS=_ZWF3*-$#2Zy=l*<e$K|cd zR0z`A@tl@V^(g&X217dwq;fP<SAq`B(b6Pt0-j}TOB}7tHMsv3Ct_?9;j9a0xB705 zsT)h2SoeSgM6N(I;u+kbto#ixGAp$pz}A4!FpMXh8Y<zP3VjxMIJ$1$GhzhY*ef!h zK&JOi(&hym;&$s`i0Vj!a&Pt1t5KJ^H6iI&!PAz~tX^`v+Kuj-S#i_Z-*1JrRn}o$ zn;BiGcLE;w)K5vlENg?A&-)7CR{FJP(DOFu+J#-PZT1rcx0tqt*ygDoz75J}fE_#2 zU^YsNbudT}+GuMF7WZ|oT`Wuts8fHg+7rDS3?mn`e?-C1zVt-m6k;=*cnO1lLjniG zYkZ3_qt~&x(PE{@DVV6frDBxAtt#G|-82y$-pMe^*oYS;d}X6^lRqJ+!S%@~#NafP zQNcY3F^Tqa17<@Ku$0o+exxn|!0ad7FVdbOm35P;hW+ZpWXT9@Lxyinb^L6<GcG{` z{_+7Z*ol(q)&qkF^(Qe8DQ}K5kvzN@CWRd-ZCtg2)*^()y5NG^4wMCm=V)hjd+-VC zU3(frgr8_75@XTwN-0Z~**kfbJRa8kxC5b#B|PN>l6gz<9Gpc+*9hA#02?>rG$fK( z5ehepR-4M%WA;4$jP21(a&tbdWh-sKlh*`9+<2BG0W-iB-#q%7`i0QR!Oqs@_PIXz zvVLP-a}B$hJZ2SMjF)HHPOpb#b-3*<8@YD<!<Lha#}6DsZykHg$07$IsH~QHclX35 z0~s##)<KR4nuYD$w-2Kh5G^Dna}C&QF7#{)oWAqAJ=s;?o?h$CYlI!?{H*L;>WJgK zsB8f&S|be4ckN=hp#yF9X815=>F{(~G2@%H`N7kVo`Rfi&R2n3nyjV4&EdI{;P8<Y zD)um?p1h`@wC^vZfdt3<d52EgT(N}mP0+#G=|Nyc|Ar)7!@*bv1QZi$Uj1ga#8iQd zR`I2-d1(N=WG#3&21ReQET%bB_x}>->Vm@P$)f!{-`(rz)zkKIU+MU)BzT8>k6?es zuHt%pXZVe2(j<09Np?xye+w<#zIdqU`Eg1!eOGLv0pd8}@QO+!j`8K?@=~<Fvv=?0 z@Y3aaEC2kn<K4jpKm@<L-Y{{hBW}xG-^%InaC4h50i0MwV#ht)Lm<6TcvGAgotXZJ z1WV~0d@mSRG>5t5HgS5q{s-oB>~s{u+OpByL@h#mTjoh%z^BHx1kxMSQC2gT!(xYR zZ`1PVX%9d9OQEHD6&}$l1IcK7xaGIDcPLQTY0QScJv>}5;G&q$z}5JId*7-vT9BFG zl3P&S-<!GlBV`lvgY=KASxFO1_<P0l8oo{K3h-iZSrP*N+>csgm15>$Y+GNIn@Q+C zt(jp6BorUJ9%rCqOrM%^(mwstl!i64(?L~o@%T9%<B&QFngdUG<vfn23uI9H3Dm_| z$-ps>JUoRX0D;I&$~F(ttyB$7-%oER!ueo0?)&zZXIrVi*Q5@KzlQyE8AGcf{e#CS z2$9ZMQDz4BDG)-8_Qv_({DD+W073oo`!#JTwyH)3=Io%y-BD-~6K(@1llI~OhG>1x zIzo8%2I;~r8ib9-9?zXufr7Fan2UVViq#zoluq_6K%1G*L!NqXul%<DcE~cx<5{Tl zn-3A6y{KFu*=J;co8#Tn&gIw(jo>jQ=YGf+U)c|ts1_|xFveR>ZXOxu%$Kt8aqVN8 zfN#8f8XdJaR6N6ggQwd7DZEixjf^gC@b}-@>*IM$uj_o@@)Gd&cM`$b{-=U-wKqEQ z2@A^tAg_3!Xt+%<Hk3Q$=y@un<9Qh;$7Lc?b8{@U`_ty#S4moHVdm!L^ZqxgWrZh3 z_bDTqscRH^3C9H0p&r-DrX6bMdBX7{W5F+WNZs|okj<ja{77LpOq`hOz_?8K`H5wB zA5}DxYEJ~~a~`~TYu~$KdGmmaRY}x2Es8c?0A((xyf%4i@~}KY+n+?3b^4*v;A<CI zen}plJd=*Yp}FN4e7(ooDbuJf`%BVN`W7&8`yV@M%_LEp!ECS}z*Wx>@=(3{>z&j( zd2`p?b!5n;s^&Urc33ff;J9>m*Hvx<g|@GYF7qZ%Jbu0QAd35i(1s!QMs)sic$o3! z0P~M#aB*gDiZcf;R^G&w6hh`(Bqb)$Huj``vp4o&PIWS{aUJR>by2F4Ek*aCDL6}l zD|IY^@u>=LP`0R5XiI?1i?IC{mLumBp{bvuz@mE@NBPZ=lf+HHaMf~*?aWOtWVcbL zGs9oEgO3RC&CK0cplUJhNY&wMx_4F=KyT$27AW@ykH=%9+tCX`cMdNvZFbZFwlfSz zkzn9QRBjh71XufjMkj~NxrEGTK1IWtNNt9#U|)vMG$M(J?XV}#WN!28_93sOD@t4Z z_I1q(T*ksBkqfT=)udaE0caqRCy_zI<n$zyZcg+9Je-g5hMW-m&34ThQQ5<{NDX>2 zv*GtWaD1`~wPcY}nF<2-3^LnT%Un#Zx18&5SUT#(Gv^*X`QQHB9^m3y)`W3+Xq}H! zvFWeU#8O{n8n^ECx2j~;o(*mxz|O6*+5?D5=SOY<c4T6DWe;#okh>>0ebVUOL&C8? z`NI)i4aGaEZd)^GZ&``Cf5_sP1M17|6}63JfL-Kp*&z~e^k9ou+FFZ)I7}M&AxjNQ z4H1)P-$%yW(7KjO31Y7nj){F2Y-@H2=d_56ONOx7Ze|Ce<cfgZC${8{-3I0HEk;U- z>db9e+cQ3Ot_os$Y0W+V%(YGM+lpUq{$Z_w5+tlk#JA#IUCZHXDPs}n0a%zygQDqr z!R+?S!-=f#sG$~cK<&DU`$s5j0PqO#F>xwAL|2*PwNXSexz8<Xgc})A0KjviXk7Ln zlaabuQzN)PQj`jrvXQsV1W@}CF*eO91t#pl8ZH2K!{pF1P9lp<HVD$$4C+_ZuFwJ2 zWZ~*PSAvJ=mELH!BNSU-00ADzM3>pnRpC+ZJC8WwPO)5<Ogv)e*!l;jXQ6eSt<Dp_ z^YWXfp{8rCISx8!l;D)s3Lyu$8uBU{mvYFR>#{o;LBHLSx+k5%@M3aq*oy4!%-h1Q zsqz{d?n>MK=6Bp4Q8&VB2OhN%!{9x9L)*o81_eGfOEJ}^eypb*fd3+hc@6CiZ%+<A z%X%y~o*27-c?b!@Dz*Y+^&u9-HJEIu>y_c6A9G|fwCOvr$CfhZ0xJBp5D={>0N8;I zq$94{5bEqaJ<P5ahRuEQ<k&=zl}L>cmPXK0<&HA{h%r>UTLU!#cCpeP^oB<>e2%3& zB)r+NfC{NA=J)X-z(c1z-J(9_@zKJ?N6s?evpuELw8NlvMT_Cx6JYxlindqdVP_a8 zjl6+?ie~O}Zl(W0p*w47(h+VXogc^6UaNK>6n!49S4CGB&F^v4O`U_w$A3XdD<XUT zL*GzD0tKH?8q~Kgn9^(WKsj6<x6F_nrb=@R81|>HyER-rfJO?qj^XYm?w#gy)ClR! z@6cE;56zAZ^gEzs$v;RHob!F1f7d#|1fgS%PILj-vs%LyUmE-<f(-0dF?Ecg2x<R= zRIS@)*J<<hkCBtA$>-EBBBtOZSdud_K?SEcw&X!;q#!b3ibWyRB<<FG{Xgji7l);3 zp%{8V18MRtfXE_9^V+6yi9s6|TekvxA6@5lE$D7Z@uk)G&*IdE2(-rxMC3K^G#+WE z;}kSzxy#6)Y<a75iyfw6v>26Zz>u>lZzGk!jHSRtd(BlvhqG>8$dm-MR?5AQyo!ww zqv8((DBb`=mF)L+PbVOF2;X2oROsNT=#5#r=j?ejKzyc^4Xp>_Dm-}$S{B(d=WwM| z@Lm{eRG7%qqpS&e!@^TEmT>K8tH;D7p>Kz-FGzBRSYm)6Mbpj@W}d1xzauxp9l~^n zf74L4`+Mf}A{SrwlyW=xDP$p_0Fv~Mtqu4b@{ipXH4R&0#$-l?pZl3Pzt@W8*T{f) z!c@2qAjcPzDGBDrF5Ahmk~|Ip5@vcpAn|Xp<5MKB862<pgSQ63`#E#7MUZH~^q5BB z_$<<ub~gFBHc(?z4{+jcPxfIkbc1X!cthw`W@|evi9=G}2Zl|fOewgAi;1H9PWO9| zk*2ee1Vf6TT1vLW!^dQUXrimtgro4sr{0hofayo*LQ|Nnwyr{>zj2=LuGpNx5Y0X- z=CQKUz(u6Ri(4c+*4*y{?@NnBGb@(>D|l11Q151|sv!0ydQeP`+!I;$oV<5ypRcsd zhdOp~hiXQ~)y!b9;p63oHU)Ug>yKNjM?uK$zD5kx#~?X2r;48|Ke;^E-MZc`4nO<w z0a={rFygy11|0Sy?CtH%izEgUn<HC-$gSWaTyj5h%W}nO@UC{mV>Z8Re&Qg8z_XeJ zyGqM9>UgdLbFeyN0ks`Yx*!yqzp7kRi7voU3vlh_dU6x8rY4T4Gbl&gLezSo%Wa#J zl9S9!q=btNvRc{?)ol((h8!AOiL)fI0W|xk%-L%s!gl6$9*o5_n(k53C=zAYKg`&e zSTrsLHRyb<dJ*aX*o(mLZxD%wULd%W$gaL_XGk@=Tq@STdjO;UT8#;<hdl3<JfZ^L zke*rS!t3>r=oj6!_$Ku9*P4-cO<c=+9!t1!G!f_bN4oL5(OIm2^!d#m1N|JG0Jz8$ zK!R*#%?w+97FXq|G<8crSh~}F%U)gyogp_MDQL&nzJ&C(?jt*+ERHplmQ36sU0!ej zZytQAJ?4L87DQ@}7&Reau!6wn5hw>>P@dvbhMqw(`{+wb8}_wv)tFpM>52Gf?!Tvb zX_hjrzmJ{FFjOJ3rI0*VxGrwo0pkFd1`51dE%%L{ufn?97wd8WAcMWKE6~MbK1!7& z_jKmfGk~___i@$~3?QH@?+Ss`4UrrIGZPjO5rOCz&ILs|)mP4|;~z(?Vu;!_V~_?q zCJ~1EYAXX8>oNN<^m#7nDT)c9_G<LI#T+e6^oRo@wIr{n%@8ji-8KeHz^Gb5U}X)Z zi(gm`kdtS#f?8^;omkGhNlL1DpHkJx{XoK|dJSzdvgGE(8cuZ2Sf&CNsJY1RS&`HO zDpJ$|EJxiMV%S(i-*FXC3F`wX6_9$FDaG(f1tUyox{2jIQZ_E^$=A?a>{Clc!oP_K zglhz+vAx(Dk6})k4z-e*fbnvmWA*NwK?R|7mPD%2*xu5&w~zLEc&FV}VPRXo!>W^f z;VK9y*}ua@x8|@lR@$4JjMB%`IZZz+QDto|xg}}+_#IpWahm3Ly}{3K%PzT%Me0?( z3VyP+S4SHU$+S--7oR0kR>Z&^+$fqedd`bR*T^Lxb2g@D&urDj1OBpa6@O4fO`ToJ zQLgtRWMLh#4!lNPjAa0BN=Ee6pC0{$M!4b?Dt7RZcLzO+Nu21GDSlIv|I+;R11?LO zQ+F4rJ6g;iTz)2)4nE5AB@==&CmZ5kbeeAeV?#PRLI}rAPfxE!1(YlrZGXwir&~vE zCOoDp!WF|5Vtc9@10ZGgvX4(?vFX{V2IUW?a5vvwbwz??qo6+t_t(|TY>d_K>ol7^ zTFxb7yM=()?CSktVLRhz%-ZGA^b`O4tjadWnJ#GOTv*!1%UsTSb1J!$!LCMjOGeGm z+kLU&)!|E{P{gy|ww0xF68Xv+t21jIIhbO4Hizt~;SyNIKH$jNeocfw+B$*=94YEo z`24FfxbB-+F3(|Z;Y5<kjbo!{J>cek$N1@#CY0oE%sfu*CA5Fci*jbiyXbP-Lkie% z_wqu##`sv#zYbk>ZknXVDqeU`k@BUFrj8F$;WdHoW3MJ_5C_}=+a6XJ_&1z*g&!=> zIK|<!DPwxd5a2=Pqy7<FeZX~ybY#<4Fb9FjH@ob-Pp974<S)p1_fC0J#IfJ|nd(MZ z<%Uq!O5BWfsw;p_+|JkyyaHnoNAzQywpx0YAYB<z8Dt}jin$QpZ#I%?n$n+OlN;;k zo<&Y=$4)6!h<E2?F%ti)Nz|5y_>YACLqE+#8u}($6hI7zE0wDZeP`U2i#OpDLu5%M zT#!Kwf4`u`iOoD=H7O?pc>{M;Wz!saLfUfP(SImRSt};oX0SXl$4J2k*xGCm)O2wm z{3i7jXj%oB^*jQ}fnd*hGUvF8w4gTSWbmpd7&^Z1E|O7{@R@V()B5__IB3valau8S ztA;UxG9b>ZxZ-%wM;i3rQ?ch!2TD0q(k@YvHtOuQ)Par`+V&T+Q8pR6kg{EtFuuk+ zoqsl_gVs)N^#Rq5JdkhO$fEy3X0w)}mQ6@-?aRp=lx7UR?7R<T=!*c|w5&mW>0)6p zG9??DT-7zG!(KHdboLos*Ysj!(F*M0Tfj~-6M!{^PfBSyd><`nD}_nk@|larquaIc zs50e<>%@CuY)JV1S`q$>Doh{bYi4@pwkKkOx+@C*k3UB&P+-vL=IOL*4blw(2B@oF z0JY*D*7u$NkFa-&&a7*@Ka<?CU9oN3wq3EERO~ypU9oLfjEZd=6(<!to#%bV|NGwV z9zFVCo$WF9KG<trYt41d-=sqXgAUh(3mKDR4UA6)u#SDdpLIE*6_5swsl*OxvbDxd z;P`D8!1xpAt^N80I$QWI`V1&ejx~LyPq6REw#j(7-5$jhCCWlb*3u$z``966p$rAk zbZ>&q?YUeE?e;i;3jg`#(mN8@>hF4J<m_r=OSKsd`0dvYfhT9M@6T+o6tI`5X~+1B zbIa%b@6bq_U(5pbA3CIW-!Szf+mhKqOtV&hJkx$>LrGZ&U{LGS*|{-Y&&!O;)r<Wv z6xMZ2==Gnd)*UMSDRXU!QlW&WzyF5+WH!W1>V7t<1)x&@f(*m6%2HIAb|Rm;DOc72 zz$eDGcT;69%$?JuVJq3X&QFe^JP2bnKOD>jH*l~wNU;fUyCOaeO-p(iB5T0UPkn>% zG^|BIzJt6q21Z+{Aftm3E7wP<7)XwkKPG-lUP1*U6AtAgcQP{WJ8uK6=~GXPtG&&P zESP@%M(Iy)vRdTBt+}tMWD<grI;1WfTWQQ^Yfh(?oRxovJwv!r#KCM$xi(O#9km9* z{Voo$mhd6kj8dExp+q!64&U9r9&JCWUdxD-Jc-?}2A-Uk9-^1}!jZCxQlT>nK_S|S zE3uY>hz8;$ivCe7h#sMJYtS@Sfu2y=$frAQ3dYR|DE2E4?Tii8Q<o;=EBpg3vT!_o z#Y2*(1L`BlG=v@CGRm11TSymfi&Q`FkrXTgwqi6+u%h-$bCcMI=-EHAtdSfPy*!Jv zMYqDE7pPU?x7}B~gbqgog8}=pHYWy7(0crbWk#_+VKiaz?=Ba6@4y&jj@rS8jXr}5 z^o;z)-}N$=0vcI@gWN-qbvc1zoYZzISczW81<8-eilNS!<KGa!i9TYl>d6TG)(Okj zYu$(BZ>+e%h7Op?6d#KaMHkuby5}ZE-6gJB+<=sgC6vP*s`th;USVDnN%Q3lca%D# z#rA^lAj^H~%wa`Ebp^cDEn1XnYl@5f1Ujdu)d}sV2m3!#{q|Iib((J)SE+|awlt`0 zX{ikA>R-E|DP#OsBNW4Wj{<%lRWf-Y_dy>wZ5XFRfS<@mmh<oslYgi1f^GE)rzOQ@ zJ_2G^!V9y{T{PYMY0y|>KvbWK==tPT&7QHjzg)*wd`Ml^E>xT2ykZuk?Yst(Xz;Wb z4nC=!;d7oY1yh*8-Epgm;fML?Fc^BN)HY+%raV<CB%Q1Jw<4GGNUt4m8+yibsKvP@ zqop>9K`p47go;50zRVnRlJsNo;&AiQRsq4k-63v&45+jTxaCDjVe936nMfiWbePef z8CoHceb1tVQCcGuE<!$J2h37xA~#cXcf+R98N%zvM+e3Uef?l^`4CGg7#|V-5Kg>v z&B!d<!`98kFV^@6VrePh?R#zoP2x0-2nqA5(cQ4+amZVF-Psc>r@t(}+TV>=7yxmq z3<&fVi+-Ma;9MLRGdE+~)k96y96a_9KnZ%5J#1%XYF1k?H_gV&Wit8#6@I4ut-fg3 zmkvr3=s-u2{`_Y4i_+0ksX<3<r7^=<EmhRt!Z<B-ilO)?rJq11!ZJJ|a=u0>AABtc zJ>IY`V}?Isr6K<0q!Aul^8o&zMG@fZ9=C*^mj6aC<FjM&@69-S23SoJxxRA|y?sLG z^kv~jV9#tw-096<4?vKKosY(+UHR2&($v?@rGv-tZhFwbnN@KROt(h2H_~rE)ouLe zr>!jq%E|4FVM<Bwj@ryuC`KOU>KeSaQbu9s&`B^d%ikVtqGQeQ?Ul-?1`$A_nsOYw z1JJM^-A>3`W%E2Xd754LT=9jj6JJ?KHrGaWdDCT*tFq>2_glB`n=cV_zpsIQC5}Yy z*))mfLjDIVF6uDMVEd^~r;;)i-i39^ZFlO^Y4+*Q-_51aKF9@9l#_QT(SN}Ukb&@R z@_T%oecUFcS(!vNth>3dUAO^PVz_5?K@FmlryI@oRR_I-b$QQ67>Zhy8V#T=!pnr( z*@U|+YcAFKp5GDFz|;Eo4RUhMb34~~6;9wCpY-Vy1sD|4?jnNpvhrIX2Bi`y{_={| zEU+kvJ+i>U^WQ1PyyXc>{ARbsAjgp(b&W}tD%8>^wMus){?Rt4VfPMXKahEX`GwN` zsF6WNhat%8)BSkP^--i?x2IMvis65zDUMAb9T64NG?&?&F%M>pe{hRBXFbgn^Vk__ z;oUU`1*!fbZqU<`$|Sm3wtTsK+o!B3=uK*ZW@n20jtMbadjc~u*A(nn!Q19bSC@SV zeZUOvwj|su6Sqr3aDfjb?0z{k{k$gXj&HHU<L*RG$Yj^EfkZDJYMGC^t~W<nm^s#1 zq%8S~9p8Na3|5T061$&ZOW&h&QdR6v8b_8Qvb`Hbs~}`h!%DO%YOXfmBl^o~bx~nC zV)I;%3c2pBi$-iB<9bh1eyra8?||agAR~?lEKN;5VpN|q+24KO@@wtPnKJ@^dfA!8 zIO<u9$0q-<n4)eJkr+F?valGjoL#+LxNBT$g;kI`WyPFK_J$Ahukhe%Q<v(3%4T04 z-j3CpNWqpM3$iC-g;l-Pu|I%9n9eJ1tr05oHmMc1eefN(dPAQED_zkdD%er)1}$vz z0OuwJ8_0aJf!z+^)A8p*!b0p3F7<b?H!;i7Vy#GePQueR_BTj=!q5t>d*;j5jk96N z=`le?%aqLxwJ75`Hkp30+5$Si3fWdv%?$BSeI(tp1v%fnKlcdH9}`V8N1g?!ez1Qa z1);v_r{5flgTZFO!O0nH#z>n8rv%b?0AN81nzw2EwMH+26>)IxRhI9Rl4A%RRWXsO z0A*)g2rfb|uO5jkCr7y!PQ13|%*`@kJ{=jAIO!)c_P?4Wtm$=J%#z8oWRW%?%=a{H zc|t;7WhIc<OIkHzZuZbjO%w(qznP3uJVm+J>^`vOU%q5tTDn=q{m*fi>AR>>`kK{y zw+ju_gHvwcaMI1k95+ORI$XQ1;ODo=fWt8p5A#&}KqI`~0}GdBEp(Err*Hth-pP2B zk1Ui;41<_1)phgSTS0eJtI_>8xbaiYHpbXIm6rNvZ)fL%W13Z;)m5J^6liZeee%Ht z40th}^7Jer%^^kC5GY)6svm9DF8y<hL=5~~O9S75kQwEw5NT=*L{lb1zal{q)lXMb z-$Mb3CSsC=#Q~4n5LF1Q^U^s+(Yy!8Sf5EG%63!KVZ^a7r<FHb5TnPJsY_F!Xb6og zDhO9?#w#v|8SlVc!x3`ctVw}nudv)n3Qz7u)fm9Q%*!Djm$0RQNKEy;;QPBkZfg#T z7Ssu_1!@H{s-8b=+CVL*{|ts3;&u(LskgKj;!kK3jQQ9eb&3B68XmH!8TukvVAlz+ zAvb<3<8&lw`t6yAj-KEUEHtrKu4<!;V}rX-;!AjdQ_Tax14Ats^e~ZVH-h$?c?dOi z9U_flTMNmklz>(#e>8HfDIE59iV@`AX5#@MkH-Ef%&Wr$Q*?e*o-&b&3eSxr4$2jT zG|#nf9-MW-3Nok!+hml!45%9spEDaSgJss-dsox0K7_*zqomjbW2LaGHp5QCBq=1E zqny(LelVpW=)mgvU#6yrY*{I#IQ^LYOtGMSwh6q(8UMh%5@><ZF^yT7h0vU-DPlRG zDEDtXE_JX~vjub-wV{1e$ai7ndD-BaF{<Jc2(Az%v^6LeDeM3(_`gFi-oJ~Vnk}=x zEkZ8-4j~McZT5#-GhS(AfBjI`m2VBAHM^T96lok7j4y*wr4@Z~5~t4XuDj{0Lbt{4 zuvNBBeqZA8fjFTG{B<v|vlfLE&;~XJ)Gd{c-_lFirjAt4`1FAa)5>o2ZQ<$446xux z5plksCE4v=(`I6atj}VuizmJQ@%U$d{u`sh>`PFo^POSK3e>RWh?bILdQS}6$hxSo zO(IM%1`oXuXqk=h5kV%FPaz6}u-~urKIaEVrU~Y?p;jF@fY$wI8oi_`TdRH=kauFF zRX49k`QXUJWx=(f+G5IJqpKUp7ZQcVJ{VpUNtty5(g4)OL_S(}vWwO7xT#Unbq#-5 zJmt|m@%M3Amxmno?vR|;NBsEp=>4GmV`sX{?Y7jf@D^rgGrr#|7omn0-!B7gE~>@F zSQNFZuxsByKO3(Ve(y<^jj@XdNFa#bf4(KJRC~xzj_uD49+Cun`_)=_ElSn{@WI8W z5;G-y+|qD}dwpakMk^_3eWLH{$BV0gG1G(pG1I~Xy*Tid>3r}SlvE}_Xu}VmghfI- zsVIM}bs9{?e;%?niXTb8UoxxwdE(n(nMURu#9d`Lgw;9IVYIhc6YZ4&oRiFtC&98O ze><YBhQ=!5(yH$&#rx4QhCHRwfL6v1PbUu23MnZbsFqgVRQd)l?i(uUa1&>bI@*t& z>*q#Q$4D?gK5E6hZ1rd3aHPa*kn}mabaelVVF^9cT0S5_`;Y>Z;}{R7q#fO;a>+Cs zI5I?jrD4fFjYRkSnTw+?*<I!}o|5^Z3}S~+-<X#}x+;R#n*~rx3;B7!Is%`HF0iup zBlBrU@&<T{#cz%t`0VwyRM<ib{I}2a%Z8Trp$FjmKe&ZfVSPaEzv$yT%!nT5FCN1b z+P}yZrd0$4xc@SAwvreDWT5`zH+8TC{4evR(h|`BugSyF4)9;hms&f3!@mwvV#oh_ zp{XMv41kDU^IHP%U5p<C83d%9J#825iv=^ihJf^sgEYO;QT?Cs|8S62<JdT_bKG<Q zAu4o5Xeg{kr?pI0_bH|pouxA(HjD73cZEpE@{eeVtiH$aJAdwe?7n}6oJ&PAj=I(4 zNQ<Gq_8Ys`Yn`+9ze(>n0+&do`PdEY<ivMS)^jL+kfht8U4{gN1Eu$z{Y_fNO(@E6 z?QDwxfo6(8iGW=GIIG_e?v1TIx&l)<4*bi;^@bBX&Oe9Wo=|f*(bu_SjzBX0Mjtg* zLh|8EH`W?Cn#3Pxh9j`J1_@C?+n{>r?^p=^`C#Mfh=Iud%?%zH%r+%-hX4jV&CG`W zhP6(Nfx?Od3I3W|2c+WQSi`O-JF-_RNnzzfBSDUw@IYxCi3Mc7){iHE`N<nxcYrGy z2oI}H;qgX>i0-Q)A`3B~G!76&?()(@3u}vmKN%_xp{*OC)k7C|;^LyENuYSrqXJnB z!h2n(r|%L2*Z3oBfdannA44A(^SpDEBALTKu(I!3TJDl^fPOcBsnBi59O4}8?JqkY zW~_5}B$2N?8jARuK(N%@IWg>h<N9pkbZvZjoAjggb2dCDc3o^d`m_CT>uY}v2(eH7 z%`+j0<yf~96JF^6HnEe>hc%8X)?Pf8)&jXd9U+~pAnd6}4p#>cA>a|Z$KBuNg&3+O z5AX~ji5k^=fugc2?fKn`lgzC9+^oWf0fIpo9KRR^H^BQ{TeL<<mAY2h%N?939Vc-? zg&5E%;wF9&`8WgJ9cnuYv1OO=)NFWtP=i2ZBNpO=L>83}usX!S?N0SIC5;jBew@Qa z$_+*P2Op52VOL4}Jq3~^v68c#Bz}Ip3LY#_{-JtE1FG5flisj~zpJK%4HQJ|7)<~O zxjm=!9oA0>T-*^6TX~b-H%}g19<Q&}(+KeJ2)Ndvylr*RoO3)(a&HRuesP}Z+*OqL zbYq0**41Ep@6($yZJBINHOaao4Q)>8yMHeB1vIjroZ~4_on3aG;$6CSyuKo*`uFDU zR*mt(05|=4<cQ7$!Qv<blVpz?U}B7+?GIdudS$5;;*Np3e)gPbb+cFTLvE!V^A`)> zsM%@zdP)5n^t<!)wa8ozm;mAA3sKe_*U{lCaN}x)v;=Dkj{Al1{y(TuHAuZ2;w9G~ z)odr*94E_nCfs{ROxl|cYq;USEIJKKWaW_rffrZqk4Q+79C%Nc{h?*NKZ71*P&eZ^ zl9#*Q@8@6VWnbSA+VzDSvfmMjj&a_w#LnCvn%x4fFDqS|*4e!3vSaNzW88SDZz_}T zDs7+iM-S?#>o*ODeEE$p*$`}=N-0s$1n$#?MW91>HWhGxOHhsH)N2{79=Ch(4)3WZ z0(bNGeV~1oXsfdf>ttV^DWw&dqKC_|WOX7z>2Qabuyr(l7o)A^LiT5>Zi9v`I)P!m zfVOrM9;Xlmtx&P74VOAP;oNK+qCW7V=UGov>(*r7SeDTEj}X9_YiECNmkf-K@h-iW zen0(10nc5EVM=$(^^ldXdbW1f8%M0p^kqFK9w;s~I=+c;`BVKJt;uq)Xi}Fmc8P&e z=2Gtg0XNKL=nj=tw5D2kOT-)?xb_XcT81Ey1N0yjk^;-MPsL-ReEic`T~+n1;n1L< z_<I9Bxe4|RX+)WeA+jIBXBOB`mtU37K{YJ2Hl00i;6@cZU^>=o?G(;j)td|}*TDP2 zvg<QfHoQF0G9Ib6`ebBtjObEnaJas6+Lk&ir%J`Z-%!3Hy3!jUsLkn-ZF&zGL=gkv z7h;hGL^2?C>A#2U<ds%-(MMrp$noK#K?AdDwjj;j#W<uN8u)2c{Uj)QxziO=3=cBe z>pmvuirHGc3)$zq*%tIpWAJ6{y@3a*e2Nx`Ea&G~)Q%mS$n10V>@N$u24-u1d#>}% z@uRhft99LW@fTejp45%TzS}&unpj{<9EK;Tue8Dq2gl*(>H%&b(2$_u#Fd2|Of&)A zGBUgePwD4P7}stvT4s?lQz|)?%NJ%HCh-G+pkuvsadk&7&^IuPKnl2_0boE5%UbXv zI@P>AZ>uqmJQoyg3tp^r;#Lg~m}!q8M^VQ%vEZ#%4!;zhKgHwUE~`EkD~{1TRxnrh z*0iWF>od*N+CBQY_n#BYmPz(BzdCBb0LcBvO2~pKkVxv7UbRp<;UrxXd03tl0l-Ny z;v1rAXgP5Rq9@xZA}TK}d*FUXOBSdXIVW^Ss8saSsL-w>W;8Ka33?UvBmQZ7ySbfo zoz#0ThkQGRtj5Q(<^dhfa9|u%##=><Bbw_8c<OAwql4w);DBqTaeph+U*nN_oA9Ul zaBe(5p^bb4VFlL)7#Yt?`1e03%#$WJeEq}uNIN^PJc^__0W3I)MnJpWNWUI0U&9{X zy%!?--iBe}9T7DQmKOCU#QhuA0=K3)<l%IxIc2O%>-+HUVw@d1NlB(exCs4-3<ubv zIa88(^)%3@52)-jNnYYHM<po?nzGhq?A9Xc3(S(o31@nh^Q*dj`%!tj;+<OKe;^Ha z$hx%#&kJS0<!ar%;s8+%mEcA&NnYLPBLoRVjc26_7OnN<%Es}y=7kGfPI<pM!<H+= z(HUy4WBF`tk~tO3T7Io@Qf!wANGx!EaM&rig5vSRSO<kW1Q=1v0k~xSMBk9V_hzRN z`pFX+Kht@?|5T{C`O^#GEEq>jnt^q|Nf<1w1W+u0iv*?MD*zVtl=c979i%87+nILa zd7QE5dby>3IO~IuQ-TXI<UVULvW$4s5dHE><M$aO5Wqd4t2VduH<t;Jts#@BF3}=~ zBE2tUr=*?hP9C*%>IoS3Nl{9u9-;%Cjppe`cd`G(!em%XsuO9hKsIwM&k4pc!@MRP z3DD^y6vhuS;|C(vB45dX_u_poO!@1LPm{*+7BnJl{v;SqDD42c6Lw8&d8}Mab*q&% zIPaJ|EC3T$;4El&Z-!SkxFz|0W4?rJV0_*@S-gPK$dg5E^)il#f6`l}=!}xsY#F37 z!I9B!E06=yf@SslCG*vB;4Wf;N<OPx$Xr{ETdpgL4-e1`O{hJ1p&WDYcH?$8+Sv>p z2pE1aOcf%kB@<GINSXVcDtAVpWQ7f2>80!w9NHPjidzvLgN|eCmnaI0u0uH?CatoR zt9egSVjA!(nyiuO`PmLxj$z*LXlzHx&MRe(dsR=@nbt>iIemxMMbn$7QY#Dh=}1(G zakxtaB?_!4XnH|U%SMVM-#?uc9Rq*JE@e%SOn{^)3`DID)loNe`<l2-#~MpTfrER0 zeYw>E8sWh`6?dmWr%sCB)~?AS+vb<&WeYJAl3(b3ubUyRbkKTi@2{QppQ<q+Y@l*n zzeyQ_ey0rdJ*y-+6Xzj)&87R;bT%+$ZCV_Jl>?SD4%B4m#muW{`yn@WKTxC~I54J; ziM*StDRCas2``;2ERaYHnj%VuVRt~JfZpb(Qp>SAsrL$VrX}$*F+tckzBVB0<ok9- zKA`jnKrRwi=lgWUI_V%;mBa)gDWySnD%?<4pr-)Fk`$L$(F&Fnf9-%XKkh<*XC@f6 zw*vAtd)b#K+7yQ@R%Pjs9EoU{?q64U{sDOxwkeC5Y1pMy4LHzL6Gr@i=0B)Y%<^Cx zVV3;0f>7_QzA`RcQGAyyfy0Kni@C7`Hw4@>V{1GxORi}<dR&0z3!CzRW<s9Lh#-P- zrGKr$82gbIO%hH+W^Jead`**r1agpfzy_46iY2&_F*z9~|E9s#(5uEAc4y<oyKoL2 zzp5WVu;FJT^4|L=zPoh<@AuTcev~b~jfA)ka-mRHZ(4xw-IA1Yv=7#g$TgK@4w~>v z4As0&6=By&L%gQ0tW&;+4KEK6gVYNI-;skL+*Jd^K<*!%1yEo<{W`<#&7N}tYhb{Y z{lhJg^KnNea1LoS&Py8z>f~jAqLfU*F;b0_rx^@GVOH5&^}wJJ!hpw_8!dEYsd#fo z*v>&c&LO*y2x5Kj?BR*1&=*I4dQ^Qj-Va2yHU}ihfxRsa_QS|Y30A{sdTvZ>uDPf) zs34sVOuU^+i1oIbL67kg-GJRr99UpL%sgX@d6E7!9*MMJ1RR`huSs6{C~JCq<BSBP zQ7dtg@5ISIy|b|Qn97)P>n!ZiX5aGu?6__IpUoSdZ^wo{E+=%S1Bso__cwQ&9oBav zE4vxwCV2|o4!Dn6D4}nS(5m8eE=pA?E$Se)_ovdb4372WCfRmN&uPn*(tN<q%c>EB zV}FmCKe39neXdmCI0THQDl8%An);-YUFw$_CaPOiOI7d_jiDQC!#C(O7iwMzCGCOQ zXrlx3gc6K`6eeks&J+af1{4HYwhZt~KG>0R^GX{th34cRtz_XpyN9NTD&(HwXEoBb ze=0MRpi2<-`Cd!($XQ}w)5-(ya7vRlH_o=3rAffEN=<X1ppyEJe)J^XZ7<T*k#%@+ z(l&A|nO{1I(ljIQ5NeSX=5+Ds2_|~1V71Emrr9#zj#F7SKc%=DRTpJ*fUR!GF1AOG zHsn_(s$<64#Ha0I+cVMlk*PA);IH2xcv+SwjXdI;Ja*&P2-KE;5m13tq1dF}nsT=% z^sn)dy{-$$m`>oy)@bMYHioyBCctAUt<j4ddS171w7QXHV<)um%G{-qc+bcdK0Uvo zpCjuC4?b7)c+8AskXuDv@r}W?bhrxaB~zK?<a>7pBjO-+=VBS(NfFI|C(lKKoR0I< ze=;!oke#?s<PJK^<AeecP46J-mv~^E;@g7;P8VrG%rYPxYK3cV{Z7znAZXT1JFL)D z!~C<V?}(}#rh=%J)-W|Xab^zWjlzBBVn$SBHNU$aECe-DWL!0C7iWk5vc31T;XcD- z_?!djYM54!rSWtUIdvt^qQ|w?4BGk@WS_rB_O08`t@>M)_2K}qBy`I>X=L3Ej(dNt zWL+nxrKG0?^-R-!AT=qzS-!UUtqd&t45l(<)fs|<ozh<_7xu8fMBxr@1??IKkJm`U zr8qZtl~7^Z<jlPi+1}eIvX}w-BX!9&dgo<S(SN@&^Emcp!=%I~*jGrYzAZ?ad@EZP z1?Fn{+UXAQDk~9q%>b6Lia)cHbc{H^tL1pQH7e2Da_%-P@VGlU^IPJvItf@*d_rhz zP<o{0XfZUwCB?f^jts}zzDLJGtTyp%5RgZ~T6>Iv5fSk&|0ZpB`pFoUh-O)OU?Gj* zU8VNQqeA*kDkl9PEt<gSz#x&}S$vLmp((AwBFbTWNr(uzy-Dp(DOl4Uj4jO!m&8u- zls8WI@b?};ds!-iUi3v2YT1cjcwVu<%`Y(oFr<vGl6#%*nGfCH-F_ZGdMV3iyR-5` zd^w~)RLv`YDaqUiD}mItWpb{8f>>99h&>)6#b(Oh78{G?`(aT<=!OV0XPj_4sZO~F zyR16$5Y(`4yt0SV)=y>mJZamnd*aJ>K3RQ02-B<xS$PrCO$$@9o%P`8AEv?zzEs0y zM=!INAm;7V`-H7I*h&t@O-lAKjLVrO+@io<%NMoi>`%b|0xtehKDL7atpB5YV21$Q zp#DRm)O%QTZU5r(@TJuUBH*QEtRukxqeJ|E;A4w5zrZ<a=pS1KKeQ9Fs;rE8-RvZj zVI&f0<k$1epxLusFT6Lf-cVOLWjo3VL&3oyPoa>B%CM4JVAx=*4AOP{6dGGT1D&%u zDXltOpMox)a&EJnr+qJ-?Mp__2etQxCgPTW)<uI|+NwT3ZxXr4S}vMBXhGL0{8pmT z6m$~eS`48C!h#`B)Rybchm5c!eJck?qP{J8is%tg@<%yEy$Y|jTF#L{tSg#0D`?1= z8g|B$9W%2ZLbAz^n&s$+xV5(_VF}YMl|bvy7xj6v4jvRj>t34p#JzwrskHIEB@4j< zJJY#WIJepxo?_qoUNuMfq{(*mD%D7$l^8p8H}>lEk1obwv%9)@=7C=huwuuP7hC~v zG=r#nr=YNa1#w+{EggN4rWD>)hab|_WbxKyNQ^TOZM{Rwk%UI~Bs4dL!s00ydKz9x ziz+SyYNnOA#caU{KN$?m&2ZY!uu`jlrxm1`I_k<3+~$^%fMlL{_rLYl9JhM0u>;^8 zqH_K*gA>o@5_JrG#dYN|agMoAL_>%Vg!sO{)}QynZgwBugDhT$UwiP+`T06ugVm58 z9&)bE3D5bl+|A?LBev1!r+0qpH@ei}Ezar9v)~Whs>$A(Mp>n28?gk*4<Qi)57}%< z{0qvpU{#k7m<u&n!>Jpw594!f5p7t#*Xa%`SmnVF<JGFelc<h@IWmRN0@bYN*ohRP zlF-ZXkiFnmC9*-n2~prh@H6^93xw5MypVoHy34mr%v&lIgM3juSapv)Qz3QKIWZKM zb=9*~tDNVF2yZbg9eqC6ryjb16*oQ>kJqDx`%vG*w%<i#-FhzhKALVPH>U=29rJD< zH7x!-rV#~|rmG|M=Bop!1uQh=7lo{GVa<|Hj!ZFQG>*mEu)v4{)+Xh?F&Hh5e>*#j z%e1M@mCmg&s%Ws!U@TG8DEc=0M>LmnM3Nb{6aX#)g(WK8e#ja=EsB^7R9)ec#x?!r zg+q;QZe3x61?x;d$-Y^!uafOmaYi#yugiZWg5BuLT#r$nR@LN1Fs0kE>#+<^u^#iN zAHeu=4>{#<d3{?tY(T8+*ZKICc2T$qm2HqqaQ^Pu_I@>9S7d!6cgwc%RI<y}V4+RJ zw77_ez3LQbnw3dTc{cnT_;8#dZ0ru#`1UY&cvw6i%`)lJ;@ot<{CE0QGOp*!=Rwlq zY?Z83qqKn%5Vry|(;I64NLz&LK_2*a;wt<D=EKnCT-3P9HY~XV;Y|tI98f9O{X#)! zFS&ZYwi6C&q;m?uD1}t$UUrsJ21j8FVAo<KQvv<s!Jmg4UnX7-Og2gjXM2;1ze0KB zCoI)PozJWGpEej2pFX5#*f^dT+6kHfZ<Q>JS&4!h$ldC+T6&}%5dhU=<iwqPDc<^h zBn}|_p5bT3<hx5GLyI9v*U-hAxG#23f&4m;v(QAA0W%?c1y+MV(83a>O9ZWgRV{}Z zIn2RANJJy0S&xkXgx!#@5c6mt?)CcKrppj_*gcDnHToewD39j;A(F3R)w+J~ghW*7 zK%Ue%HZ}=Y$vOx(V0N`?TAWFDIkFcQP4Y`DZ1PYmQ!ea<IvO7tZq5nN&~JR^8iZK^ z0CSa1><;zp^FoUQ_8z4rVIHhxfr1fO6*4QMrJ3Hwn77OW6>}sNo19m34EKZHVQit} zyDMUG>=2Vit=1wAkOJoW!*5*S1geZEN-dt;4&C}I8G|i6UWnV_`NF6R(IdC4O8Goj z5u!4ir!FlsJz~2HA1=u{mK(ek1i<<7QAkN7Vn^mpx$~7z2c^T|rc4^zTw=n3h+;kk zSxw^87z(Yx1QW5lnt7F}PddsO_%b+%@<48>MwNsK<Z_B}Ru(sHYR#i9E6{hzk2drh zOOZn`L3CjB5jn|Wg&WC!yIm6_qRAu)>6(z6f>pul?S#P3S62yEyw2PoQaGJ|a2J99 zTNnNTA04WRbz8!LfDn;^fRKXVfp|KkouC2G(mvM_kpHO!(H|D-|BU~aBE71zF7uFG zd+cN{qf!@bM+6Ev;E1*zjMHK~x{&-s&92hUeP*wWJbK_T=!o}d_$bT%A~i-8gCDv4 z^^V*3VbD`Fw0pAaFK9%6!mn0lSf4blB`VlLe{Ia&%LOD6R8PE}bl~B2Jj4PDF7986 z-o)0c{>Mc3U|3(mU9$e68F#&H*}7~m(w<jzNEfUZVX#0ZRU8VY7svp~YHbqu)8{KH zM?8T#um@6Ok}3x*m{_WVSgHak7}ucQxLHTWrnlZ3pSW@e!8+~Ub6m^{2O`UmZV1Oy z-kWr+IqFv@Z@<t34j@M;B1WK3!N$)HzY*UnMH;OD=B{fqJSnkHbYg_(8MEErt^aK8 zf8&U4)T8;i7&1Z*mughLN2~`YV);*aa1rkYC!o0Qf|>rtkLRlYl?Mo0btK`>#ye3P zulbQ(s4cLN*J3A+1+jX(Cb<pVk*h?LM`=c%jTOXs4~mv}0@kJugFqgThgTf9t}SXx zGh%|&1&#;EqR^;P1T^z;m}(Q$b?0Pd`!!tFO#2@S&By)9CnS{Xcch6$YH5i!d786m zT;0wmM4%k<9pGwVWqXVvU<W?ruHRpz(FdDe`mX|en0IzaTfdxunqeCPr@revEiaj& z6cJy1=%}PyAcN9^(@4{k1W->uH+N&J*PbyYt|lOY`BW$A;T0dw1?fg|m8ZpgAx&tI z$WS;(J_y4<i4f-eU>LS6`PdYLp<{8w#yq~d%N%SY?z!V)E4j^EVf%Xa`Wh5Zg4`cb z=p`mAedcd#vSaQVpE2vVH~iyF27HCKVYzQ4aikMgz}_(Aa=Ea97Q2_6@?P+C0PFJ# zD?bNX>Tk9Z1~i>64}|5dL7S%U>x7}a^zFj}=NFfk@Q{=5Zr<*7!;tG24+^)w&sb2e zjkW^tyN(IW&32@7Pe;X#sQ&!B(v#VjY8Mi!!;(;<@$=K))QO0Z@IzlYM;N&^jfwxL z(78Gl0}n)|igckpA_6;ve<3G<XgGl;YAb9uSW&?=Wmaz<Jp@AQ&()^c?jt;p5%`h} zc7^U~o^>@hBJDL2SaNZe(m@}Y@67iGr-OAW4?B_e0hJlc7ivJ!W*JS?BvP=F5wGko zyZtQfIKRKHr&Q<|Bz%Gij9}c<=ghQbzD{m70B2;+6|98xlqV}ac2vh7EC@&-<JXCd zE9-Y*$Ud51?-LzCH2_w@0)cK!K|+CK{qEQY(IapG{p;dDgc)X5K=`#`kfl%0FwRlZ z!*p)yK-nMVdGi4%%=Ce0kdIi;9e?%o_}2+;09^gg9ii<zlFXl~VN*~7TJdNwQjQNG zK(NC^qM4@co=+h`_=hmt-q3-I-7Nu=*Ss)aXoQYexZx!@u$#Red!F+09O=|i%2AfK zOG(oVAIOr?!|)A}{!b((gx5qXCs4Vht(3hCUC`zCWxCra!jDV=mRakTHTAkYMXDR! z*k!v5dIZ4p6C)g!6jtn@n%feDvxKV(u*$f|n%-VCr}rWh0^64>AjJ3(lrUY~KoP?s zL}IH%i_?k1b8_Y@$ZU;_l_MQYlk85~N022Fj499mx~ie9ENy}P8*L*xTVIwx1)}93 zu9r$~$uir`W3&x6STQU#?Gg%T68RiKIGvS=+6l8XwV~EF#a`(8Sqiv<=-wPR@R<OV zw;?tF_J%oT^{2J2Y>mjT-#B3BHe9oCUPw)%Vctk}7cSP3iO`|!EHEo&s%O5H_uKfS zkP8ZLAwt<jYVEoA+bIL~6Pgrq0y3ANvm>{nPN0L&!n^R7G;k{MF+X-BRq?Z@sX%0i zg`XKhK}~XM%pzc;*-f#^5v6Q}fUp*SeRMlz*z$hNbcbgtEh9hWIo2p}ok_jvDBP8! z6_=m{FGPxGI_W#b=xX?zjQExi0k6CA2xg#Nkdx&Agbij~af?nMIL1m+vSjSgTlyoN zb*l5;^3FY<owvs6e{DLh*H-vy?C^zsHOn!`x^*cr+=tQX?R6kmCxET8!0mNzW+}Ah zC1?=TIv#lRAJq?s$vMhAEo<d)=iiP^{SZ@bN}upF%*URuU8a<npNiCy^+9LT`2*Yt zt>VwmreoZP871D4loZ{%21mM{EXVdxkh1W(UFdiWMgF*3w3b?we%lPGG=$pj<%Pr7 zgw^nei(v*(8m>s#3^^q^0td0!pJwCm);pF(z=o4ePoHCBpn1MU;F7%PN4IZBp&9oa zCnv*coF2L6K^S{x$mCuct|qZkVQfISQM|vA%o4725;zpzjyp-765B7**y-Y!(?AI+ z!{ZPY!8?{a7Wvcl0UHuUfdS^@3s)EN`_dnar`S9updrzzsN*s+z^92ee1%if{wI&X znw`1woLnHXo{<cHivld1-GEjRQp|A10Rvf#2p8>1sc@<4(dvt_c8H=bdr3oC%iAJE zYOvHIg5$|6s@5oYFSU7v5qcO%kv?X=J}hFeOeD5|$7W44uj10~uL5yTR&+QW;?XEe zqAu~|IqCMC-|1M2z?OWA*$Ns;VP1+#AYZP+z+I%HdIbi$1|K7O;8ttl$I)!p%7XXf zgKuH1YSNf-UMz9cq}qG{aa8ES$(wlJQuM~6nrpI{0x)YsqUMa6fl8Lz^a3$MUl{F_ z?`g7N8eLgYWLdkf!dO!fb0|Mu1qtiGO@&ZejQ!wkGXW74xWTm{lCB%8w+4B@6>}D^ zf=f=%wW#-lv88U|x44zyGHh8qoOUDxf;yGwLP*|sPZBGQZ*#sdJSV0HJ%_2R%$?|p z?J7eo5gP$e<s@C^?IcjjhrCCbsdruAN!U$fxjqMLYr32OP=P;`71`Q%sS|GfhWcz| zT(-Me){`tEz%3?f&*Nmq3(uCh@Az?C&bG4waNG;Hl9nn|nY!#vmd4mf$gx`II@<TQ zY^L*d=#kJE;5SYYU0{laLO&!~3Im`Z;%daLo@D&@o>I01N8eV14WL*g%!og-Tyvs| zWk^l~<Id_=pOA%{1h`4$3q^#9TE%2n*3R1J=TVIUzj%LJ&RM>OdaHUFmSV`(jJ~3& zXoyQlkwnJxFN>REImY$5-^oYY?Ee0YZ(ab;c$5o|0=Ofq4_4tzf=jt|{q(+Pdo{!% zRVKX(;r6x~LJWDWSoI2|`&lXqXKXu|KFwI$v9vh)=Q76C>+i|k{^-S_s~os-^(0}0 zX`QO5BoMV>zY1SCp1%k=XrF#D%*ir94%VEn5ln8*x*2m`7<I|+@$K~dpygF(K0zNV z3z@E!?RiS%4o9^HeQ|z&%Fx_XuwPO(Z>d$sLG91m!8yPE=ZM)T#%<|_$J6P}i<^;S zF@-9*%;G*D{jZ;gPK*&L7bRdGqjBDe#)0K0hCn=${A7K+C$)v`GEPRP;&rkfbPh6p zDnZ%B*)dFoYK;3Q%q&7MUAaPZr6q#Zs#$}>oRC;WRAo?xUn3HrW;FO!<8?0~`i8&x zGkFl%0P))8&%uYmv9ZeI%}3;X$Y%`<B7fBm1y-L=`=N4$dyhrAbM7!hiE3jVqUgC{ zDS(ejE5@_|kO_!TeIyOJ#`9q6SUqgk6GP-qLs(JdF`BS^AqsZ-@~I80Vn1r`Dh>@D z5+xt3@hw7b%kS3N>NI}YBkm{a*qGtlCL<0aW)jfyI^_h2*fpiAU4p|!!jQ|dR<cTi zQ_?m{Wr*l25<Tso{|&fWiML12o#4?7djduZPKhM_9j;*N`5j1JVi0~k-VpLTXxD8L ztERx^L`Zmi?f&!Q%;^Rjn)_-0>IJlOu_|(>XEiE*H}O@9{xcAO@$9GGPBXD%qxUgM z6+;5`0`8js2Hcogwmt*9h^K%El_ZqE>_4=wDC|?FNk-0;V0jDuz7Ts&Ktv%fl}6#N zy|hj9^Q~lt$g{R3RSmr7_@j8d$M)^NGD^Pa>1j0i0G9uylA3;HkAfroLsf60yxRhN zWtS+X{jdYaOY0~G!2j=K)5QS1f3r(2%K<F^BMnhj0H^@}0V|6cE&1YqNkf6~|AI(k zHxc0eZ%r|=)c}rv@u$NL|J4)&Xav~&+g5V`L)sem#Yu1fH&GmDYHs}hM`l(ta+qgA ze$O#5f<d5MJ9RN(QdX{zM_0BY0uN$buiJQ<^Wbtj;Mzo90}i{*6@4#-k&T(_bibOq z@|lWZKq>Y#!389fC~K@~El?#`A*#W`g^uz>^7IO!9|{0NP21_3*TCu2YW}z{)lFEV zi7QiR>lGpqPGjCafu_ol94r|t^kn(v6jJxQ$$NB@;W-K&PtV^DLcQ#-{{kQ|R8^m@ zlF47ZjNNVk=9+i%=En_A?)`A4ySvfe-Z8cn9T#YHCwdIpc6xSm4ceGd6_t?TRP=@v z%8)BX+H--`l6a>m$?8)J6$CKsI)Moy#b55?eRRURK*kwy(6WQtgff(Go`{gi;=K)E z+RFX$+HI4n3@m3iND$4)kL;c&^oRbv*`@osHH4%ZS}+8!3(L{Ela^bH(ZM1X`A5SE z^5pFM$*j10aYJFl`$+?w-<w_^?z>$RL}SZ9DX4)>T~Rji&!A2kZv1zZ3*)%kltko> z+9+J6mPWEyt9|w~ZBf?&re-dxgInQbr_!x;RV%P~r5O7!8X<GML~e;tT?<6|(hpGZ z_n}uqTPZAl$HP<FWqnnBMG&RJnQG$fw;A(YIE7sTyQ1IS$B(<4)NL2Vobo-Q0i9i& zZ*4%IlA{Mzv!=xw>_qK)$W!?6Ft+SE!9AGz8ttMM3AG=Ie20mPJ;KWI44V|rl*q_@ zOtK|nh|TvWc;0AI>8>~9<MG!x7o>axAKH!(wx<T}=~eaOvcB5aa=7W;B$B4lP-yUN zuaf-SM2fFlNd2)$^fNqvJ;3|v>$++`b2}6YsM8{07-t^DYAq2aOd&4n+j#RwZwtdl zV=%2-gFf~wr85OIE<a+J`$i8<S$I0P=DOlOK>zo={13>yjm>>!<_kAo2=gx}xV`NQ z6#Rbze2533(OY-g084=Xh^tJr@z?iX|9@H<(LX_6+noRu;QxoR8lv`Hah(a>Z@RY5 zL%KhMjlOB-tGEi`pv{+nX0k=naSB-R8}l|~r`qrJOe=W(IZ7iF*naL#avo1UfZnfS zD+Y^3*$+{JObIMb1e^K^D(-aQ`4ccyexMskekx;nb2Cbnh*ORk4s2tiTb32uA@+tX zU^6T^{K09(UO`I%p9%{{owpm3^QV}57DtaMdyKm5dC{zHkl=xq^X>NS<rHlDy-lK2 z>KV->(yx&_b25}!uN_e@dEkgY;v+}0C#j4xn&81*urxYwVbbvWJ$SaU8HLvd3;t!m z!`OrC+GcfqJo9_y*OB(cX_!&{@^MxI{0t<^Z(fd+KY?}gz?l_0W$j3rQJs4}LmK55 z*=nmYVgg+Zaa>+@#kSVC<Ju1vD63Y<xL8Yv<eB{kszUtZJH)l3Ow$W{O70C8BMyi3 zh6Sx**WTs`o(A^=P7fL=4<|amR7H3C(4Tl&7dDfjH5#_Z>p)yvbe9S(Bf1SQ$PY&2 zIhYp_F2J29gFjk8c;0aqYOMW8ax^GL%?BL>8yLmV$Cn!M7X?|CY7!hhlEjp(p|&i( zWj%gEiAG$*T2|Et(Kn_HkGDwm-9J-?`3}Kpv=VSIcjPE>BPl6$w<oyA)snA}POcm2 zgMJrY6jx7p38bi0GfgPhD19Y)#cLw&bX*ELAUe5UlWqXeMCqbNQZuXPuSr*?;I+hZ zR@~_J2zW0BiG<dHC7P5CGt9(WAeeslW%j#N<B!H}-rt#EKB|d)AaQKNu!St_Uv!8l zaH6Pi#Dom9uNo0?I6Pi+KU8;!71W8$>z)xxR##;T1(q6~xu+1qyLhO$W3k+VDLhIk zfAtZ}txTL;Cy}o4!tK2ad(2fOSn$fXL)Qkp(X`Ouea~DbQ8!F0@o*hVJ?0D@O4xc0 zbi5{Xi_*AA!7+SY^k;Hg@A9{cOAHz|Vd`6Yx0n1WJt`Sk=QD2N>TQu?&}MtLx`c_e z1n!!tN7%*yw{5i-6VtQX31-_a;Qjeu^Xs2l*4z8vjg+6gfD6$7^j%){1K9p&p5^@p zMQ;@t0Pz1i&-RIz1w6khRp-B#7_vJE@c)%9kk&o~AOzZSbd$N+q7+obh!qnd!}#`6 zSB_p*@n3AQv7QyFrBD?>!{~@XAcd3ML%_fU(-0{6f8Z>nKScEO{#@<IE)pivP~c<z zlj*$e96L=)>14%)lPBgOYl9Fc4%%SHhyp{}5@U%hDVIl9<WJh72w}AHCq_a7%S7Pe zM86w@jR;7MG#(L11nUf`DayFUhYZh4VvOA{1AgxrI|Fw^VS>UcOtFg?J9@_JV2k~X zv4dlxydmAn@y&mF$vYiwB}iVPaMsahg1a4+yfrb~Mw9bCgJ38xV5h!TZ>`;H(C^O$ zeN${Y2PO#t9pf2p(EIzl-uQ~+p&j#TO8@RtwI;Cqb?tg?uEXQx{Yd5Wr69l9){Udp zy(M7qx@B!#QZ~I7L1_vNO9z{CFxrWQINv<g1NLQ=!4-UiX0?b+)5-eYE8Fcbl;qb} z<43nyX*_ogtSBOx;^Zx5Bf4;iB3VpApZENL_k3*+@bBM&KZL%2m*+cpWz%<0_6<to z{P=+Fug9yq?-pUX3O(<LRF+gRJzY)~)Ot<h5M$qheEyDQ4IzJ*FcB_Pl0n>944A)a z+qCbwXfHZTP_U?89j4XW<MICe<9ci?Yi*xw1&;aNd9gU@8M1A)z0GDbT+&%2X(g^s zHobF(m*?%^c)*)dm_@V3Md$tDlrG%K1BC)OXU0oMO#WAaJf8W9e&<&CfYZvhW7d!A zaKhQL$Y<uKs-<0X&(en^Hk&tTj3j+fY)BS!Kx~eWfbYxG>J^f{&+Yi^du<64fxzbp z%)vMzp$|;%__~9AbMEKEZEo&6NbV<Jm=~?y#)DT|*V>7DN89Q}b<Lh%<pq2FKHDac z`wMk~Sk6`S&`lP{(`Db&^YBSIcOUxV77=DEQRk4<^l*~(M3Ag?WWlZ^fOeV)jUI|h zF`9~RxEsAIl-4E@P^b^uOyzzO4%^i)AwU-yn5-I0H}d;W5n}A$aC8>usB_;2N*I+E zZAWH>_{1&zsNPoYKKLecQ!&Il99=!&?37vS)WuB{;A!4{Q+!}St~eA%8^jb`xe^PH zb#E4cTo^tM=L1l6#}8wOD)a99OAV6`wYfK#U>kG>R}+dE@0T@1QIJ1FK9>0DGEgQp z5P=m`Rn@2yzto;%RR?|FvuR}&DlW1b=ZfGQrZUM?#mwz5CG=-rmXKTdcy<=pY2$EB zRdwd7;@Zcom($d{2d7eb4^bm0)6ASwBEergE`%}6fQjWIm4a>URH?@}D(2?>T}Rcw z3I(OT1R6Q5M0v6kHp>ZJ0*w7^H5ts*F8=FQ&{hP?SZoUJw|u!}fDEsU20J8CuoI3` zfN0pUir%eR(2(52bXh&Lmk<Kb|5)1m-lun_O4;{jcD#~;1d92G&|lYQFU_p6;aLI8 zAo2b_xlvA6okLyPcQ=A&5OUd=h_$*%zUflp@|WfzWORF*pfnpEi{=&x7G#f*9ibsg zw4!X=@Vf$pD-ZKQB@>eHL(l`M*o4USotq!{MKTuTNou$>4SISil3uRB#06H!8*%s_ zAn?(1iYc)ySL$idmgwrOn45)=8dcoR6&Pd=Q0zn#3!EviLwF3;*5v40x?FOnX4FzX z!gh?tN~LGoc^gTIk5poEYGy)phc>FCe{o3BMt6-U3N6GpyPZ2RMd=Y_QtfCgi~A4X zcjZ{e&9fl7vr^Le=qJvBiF<6SHcin*I=1yWeIq*JSjn=hX5Z(Yz{+oQPbxD|tu@w4 z#ne4Cn*G=GIM)IR#X*;2Sd8Z350spoqH}yT`-h?5hG65eXKy%uj76t@TSJpzzV|)t zR9nqvLB}{t8qV|aJOx)<#m5!X501}um9Tz8_^+K4!q?X6j8nVM1QG;9{6AgxxM_Jy z0F?h((wUW^(STp6Ea-lZwL5cei8zv}blb}dBN^!9sbIpH_vCI6Iz_hZ?Eyvmrgk5% zh~=5|yb8Rw0GeJH#y@`Dq69B=5%Fg)vh}75uFA;8Fld(8Q2HWexR8M?csCNH+fNfo zZCI>pmQRV>cZpOodx6h<4@r%@eRY(msjBI+D8Ze1GeBJEZX!(k{td1OD^>cU^dF~? zeAst%9ji<@F`?g#r)E!H4U({ifxEY?zM}2SD$$q2Nl~||kJFFej<J~Sh{eW+3pHd3 z<1{K4f3pn*%gZ^<XP6lu4BeM5-PM`l9f|Hc!jmdV403ZX4X4$D-FS&0B8b))2)=s0 z-2cjFX92ouS`gL<_*a}US~CdRjf&U>C)>}!Tg&$^sXL8<ttDQv%0UD-yM_$lc1vlf zrNg1bz-@NfFJIbB$~cL&t28L$4_mvh2P<tfzVMfxJ=^ivcn=V_)Lm6If+Lfqf#-k> zjSbmGNg274f6*PKz363l@9|N><Hx$j%w2*RsDMvH&|XP&mbw<i$=-BQ;_<&_s7_)b zyXWh}@PS8K1lS&cbFFlE^NWuv2hY^7)+UD3S-PPBSh~VOMKj~cG&Hn17Nob@-1%RB zeb%?aodOEcxh@{+)?HsjOZ7-~N{j*{Wb2e_n(5bD&Rd!fM-q28;7XUz)H;w>uk$0i z0YFIjB%;y2UUD2AKM`|jDGsI?d^cMgC`hm0rKx~S-?gjzFg@TBAs2xm7;o?z$1?-` zLW-?%uO~Xd;!4S$wIOVPgJ<wZ@G1hx-f7NuFc-xLk};l&%b?>#p}#YBcj@2RX4|#F zuP?fS=LJ-*+s(HiIQ~>Ne(Xeiuf3ji1Fq%GHsth&vDeX8wn7p5mU3<k4YTpGL*FNi zQz7bQ;2ZFi=5LGnr@vt(5l(FQ_pXv~%5(PjfA0-sD3>X~$S(F!kflkiGB&g6CN9tX zMOCQW0O8lov34y41|c?DxS6cdmLm-z6v|MV9sm(Nb&@^B_8#@@^cI-ONC=P61soY< zhYQM(N>X7fWJw9lvaj$C^)qk^@PW-CuFnI(guGq%p8@ZqC&APrqP`%+{kgohZgxKU z+mW@TavXU(4D=hCUi-D79K2oHYO#WPgeL{~eDRCT1sScPoz8P<1z0#sAgwy7DjFV` z?HNvnWl~UK3HQrkX}tzBM!d4mA&|T*Io+AY<)W!Kc~)#ANQDRTKs&|X;<y@Cr#&k` z6;6i8(Fj=;4ZrM*X#Ni3DNW~y?2KU@VMe7Nii$a57DIwpN0gIk^Kp;@+G4jc{35}F z#s2IBS)Y^cC@tbkjNqq@yah4>k)o^<RVoIgm_`!8*@p%PG<Qe%JyVa21HJLo$~ps6 zF{yqW7I(siYn6FFD=2(pOJ@{g&xKIZ4y*_fJV0@LhK;<qH+7|&25C|j^Ax9Y&BQcC z6p=(<Mx5H4PsUcdj_22dVfsU-Ez;kJFkpFkG=9E0n101K=E-Z)vEmd)_-B0T7J=ZG zsjaf0k2mT^E!C&DKx^(zE0F0RU!;mBUiU|?3d48)i^8l=NbN*J%_MinIL!Sh(_(qq ztz_j~794N3{)R;BM+b82;Mnt{*h%-(NP&u0x?-9YXKQat*<-qcA+IQvUjTI^6y+MZ z<!=d9lF&~2oeoAr%_n6!y>C82mX@k6KGBHD)KKfx5IWTLMG&Jl3Bdo0u(u4#tJ$`N zkq38ocXtaC+}+*XEjT>5ySsaEcXxLJ1lQmWfdnq^&OUqR+^X+>Kl;zAt|e8gd-fP} z%sIZ7*4ol3WKW}!Cb=betVM8d%9~LP=$77wFS>(EhtSx}oeH~?NwJtF>ZQbgnUxh^ zMD|vlZ77WGlR&OGP)!FB!UIvVc<VT!%pdR)T^SU3Z;x0^9ub`_-6&?SI+i%PmF86D zb*AZU7!SN(Dq8u5+6{pgGU4DqF0ek)O9X@`_13gMd|glSE$Mn`CL&(7(ePYr2hVv7 zRM^|2@*bELCjlS&q22hI;UyUDXW;SjFF91oAEcApM=%sf3EzLn4gR)Csj6t=B2qUS z7bV{|Y=z;O;1zb6@x0)toa6*nffl%S<d<(Ic&qg%c_zywgGCupkl3j6bUl6lp1=pR z^XZm=<sR#t?U-p8?093>k{g?6zp9`3LXH)?6K5?{K%=iziWeGyc*y#TLHirk0TBUa zVC8R)A~*f{HMj;vMIdsDv43eM-)*+)yN$P}r74G5QMbcr^I9&HG0)Z=I{j$e=bOmg z7lK!={|2Y)#v*Y~vad<G5FcDw=f8Y@@zQ|1e?UZWh`8FvXsy`<Z~If~Wwi&+@n0IP zbPv274Dlak;Ek#)z~_S*(1iWRDHtzJYVZH4rRr9<`#}82Zy!{bSW=>J*1(BJ#d@I~ zGmO<jY5!x1St=fHbr_mNtccL!+v|*cW*S(C)#7bI^M2<s;l}JHg)*x+wnY03#vt|$ zcZzfo-)=!MJX}o%DXB}gvk=Q@M6?3(1UE2se0`TR;^1eFI{A`v3Z_s^``8L*hPtNA z6xs#1JhfzM0o#|9*^CbEC!Ncjf}oxL?Jd79?m>fIA5oLyu96iiw@>F!zZZ9{n=>JD zR4SWp@^Bb`>&RyW56_axQ?Yey)SFB+s>XZ6UzIkhU3s<cW9(=gr)l`VF3wEtA4&r~ zL`?Su(V<b2KkT`F7xi!L7|t0;Z^~qJv|mk!$WotC9E8qq2}h2dt;DnVnh+}>e%rm# z$L{uXag;nEj5(4xw-i)>Ja{H2C9&&p<c5*;Ebp(U)Sy=aS68-t{x<AY<c7wyXF;%* z19Le116*>t*^mOa!LnRX1QUTjl=2yfFjz2!1`g}~JN}RjQ(T>XeuF;T9Ik?U($Mp? zo6P0tOTyEPGFy=g1qagfiAqgH@&r7SS+PikCJW|5=hpWN*0^JsU3EYt0$n!*Z{v<c zheva}S_AV>6qiBg_cr}shv>bJaShN$!{L2Z@vV6*C|^**tCQP3jd|XUL}vnl=_ig> zc7fXOA)aP-CD2$1gd;4P)EQ+x2@-ZHlSYG;1xc|g8MWW|LVo+(p=3^|eU$OF>0Sp2 zwt}uZGJNavI_z4i@53RZ)g4&DI-hYM$i5ZNm{J>4EFGvnQ|RrCPi54V#eugU3ncyK zl~laEFH<C&Vi7g<O;6dDUyoV{_!JnUhc}laxPt;9d`NpmgGOwsT6^I?B`GJ(Vy&RT zT$?X$#hjZ&B2B?rT0O$y!>B^Fz!DQhV|fEn%it(nwK5yfXkG!{q!a@pc?ddT7vS)k zrgEkla!}&17O#@d^mtj+9R=Ceb08ki&!ecU@UT@)owM9!%HLDHV4i`%Z>^Qf26ap& z+5=_~xvx;VGP6`CD?Tv(;N#MTv&varwG$V0<e+j7ZhKIjWqlLyIvE?~GkD5&j?@hP z!}qv1&=hlqwAS!dax~E%!V$;<$RuKyt&zj)J@vf9J9LzuO?EXlM=dp43Y=AuOhJ`% z{PUC-@2REAF|Ey0UbnIw$F|dXKMJaUw%BVcwA^<Hb4w>F^Z9xH%rS@i`+WM35+;yP zLuT=VMQ}p?myuvv%^m{GKQzL>6)>&7Kfo{k(A{=de-Y-TSKugM;Pi^MX&pBoEcjBH zn%c)`eY^pe_+wls`0zJ7@AUxw3-Vu#hUc%p{J%PXflL4KKZFJY@cd_cNn<7j;I*29 z0cQS~9imiyMvD1h6v-g|>@f(32=M=llXnIHO8=1W_?X+fgCA3`KBn@)-~r7n9o+wa z*mqx5J%=noWS^&6&4+@WrGELnruyY2X*G@dWO22uM+%}ca7>re{`r0Ah|IUAO9Dt< zd1XTQt<8)qJ#(q13IF<H))es(LDP^0$Vy#NT5-w{p=q<VGm4J_WKv)X#`h*OKco|D z<EjPa$aoChH13lJ4QOd|S_jZ5KBYU}B2Uxg%LlK712dRA6*Z=#w<1&EX&aV{o8PS& z;^+>EnkVC!Uv4&oKt0j+40TQSQhH&wT$l)uv-<3X_GFe>&9$sCER9QqvvbSn?flFe z1=xmvAz!n7ufd0PcLl@}y&3)8m?k0Tq2ib<Drp-~;w;<xQBU#s_%s?;)QXnsOt30F z+!>)N9p%%GcdIOF7N05W6~tkNNu)h7K5vN{dqcdo!F$m5`O_!dI0+-s0&-cztqVJ0 zfL!1(DJwuX%0{`K!bZ*3Ul;R=en{rv!fgbaZ2m}Iqht3@nhWUT+R+NilA3@Sf<g-f z*ldJEZ;ON*iiVm7bXBoNA`(}P5tar^D~IAGKlK&NSx)gM-#ZVpazrd}+-PYAhrsN> zx6cHGMfUwjO3LgPW{`!YnE=af_D~t;uvb+t8B3rqImPD)$Css*u9N^gy#*3~vu~m; z-ea-eIMj_g!2)KxB;EQHT{_hM{L+ezW{BHv`YnB#Nr@7i_^e9SrgnsZl+t_6wa*e$ zNg8x}<%=0dD1?Er21b%2U05}0i`QJjL+c668i@=p2|>P7g!@|&VzWe40(1mYNu_J> zZ<Fnp*W05B?}rz!vMU5_9Pn#=mN{$Bvq97ZmDXvaS$d$i;$bhH+1!<Ab-{%rZ-yJM zb~O&}W$p3yxaMGv4R4ipizL?5#;u?UiDz&R6w;0W+7k4SE6XuojGt%iYSt2+cCb$b zC%8bPjPJg@Y3f?(E=D&BrmgMrFTgZ=yq*N#2*bgti~Z7=zZu1U;_?uA=_wjy8Ye8^ zzgaE^SOCKx>)$+Nz+Z*iTgU*_KiMx(6iut+kLA<wXZfV*pacG!JS%fR2Y~-8=zrD| zJA?T+HYEQ$=%-@=kp2hLw$@+)$N>MER#f7b>iTgu5P<%ZOS3ut-}a|S_<-0yu7LSO zfdAH)e<uQ<fg${>V4MUb4fW%7IMU`D!0~}*c8=z@Rv!Pep8qKs|7ZMPBE1q7ySPk2 z<hPmHZ|RiJ&iN-s%S&trLvRreO6yH1GU}SHI)*TvCwiH$S05@2CXJVhtoWR@jN^<o zi&SC?6vs_s6Rk*HtQ~3+8gQ*>{yj3TA@~yJ;zV>{xM<2SGxW_}9=o@_Y@1C+BDp6? zF?xEVnUgaAs5Lmu^`Re2>B_g?U73L-l84|XFa!vh)2Eh>pK|b<Ifa!-#|W0ml<vZP zMXBQ$KmSapB=K>of6wO>=Mc+w@?KPa*$|&rLZXK?tDrX4d0cYUI7<4-!GtyljX($A zi2PA1jS`CU1Q7V_`OT-+_N+Nl*KqXc#mS7p&W7bZs$XJB#%X{#f{Cy7dUV*wm|u?s zyk=|{T7}jg9m?Zs?j;_W4NEyzfeAnmx?bsOZ&}6f7}u-!%VDTLphq|a9c$j7a9Ug9 zny#T>BOOyrrA5QPLfK}$DqHx`<XVk<dYQ@!y!|57zUY=)de!lyy>aFGQr)sG=4If} z`pIjjKj(=sbl<;C;1L^Yn^P;;S141%H*9J!Eh4fhF?3S!L<>Es=%9x_6X`w@0o``T zz*YmiTU-eh6&ZcbU!=VxHI>(No-vd=Pa+cX__%6?;6b9{T@f<S`$j@c^Sj8|CS_Ny zYWHgAJMR04CWHA%szYP_t<sqtMv&nlUI7$7ni+zEqSaZqTkAbXJhzWiJ367l)}6Ln zW`T_K{J#3jU#!eOIpR*RFhRzTAIk!ecB2Q0mxfIWK>knoY5fR45`P*Qc#;40U$&3~ z8o<FTpexgCr~%wi)rs<IAEULB8t~B$A=$Gy&4B^H2_@+$q4qIas~7;h5a1u)mT9M~ zA8YX6UY4z7Yygu#5i)`kAn@O3&T<0m{+zTw^8)_LYkTqn`2Wmr7XbWa5&R(VvC95< zfr|kC<HFghBLYALApR5Bb<L`1v|vC$YViJi;?x-e!e4<sty<#aBfpfSJxTybfDpel zLWLd~H6JNOj#DdQVsMOYcnYq<ghEeA(?g29Dawn46E6E0P}J5iU4r_Os@C92NH=b{ z;Zz&j7*nWyM+fenm&}EOoBhLK$4@~5eWNk}2kIkoRc%z0QwR8Q>d&6}=ZfEiu!}wT zFI~*M>C?Z8HGq+8=5t_$D7ULBiIF$f?|P_8JIfPrA`EUsC1@=~ekn%UFp%Fi=xY89 z^ihBm#SS$>ykbD;hk76llelQ%;p@<{-)^efr5|<=da*s`H5yFYl?0FjZB5>i+gGNM zXPR3=S8!`gv!?ZIt~Fq|-_~<&sZ>pMT*9^?W~#vAG)BMk<GAY+$+tvJ3NC=9kVksG z@3uxwsw#!5!=IS7>$b4QScZ7)W<!m=GaEix`@eF&mSuIjJk!_*&x)O}eg7FHV4_lz zPE;YpRpS0=@A~+<92PYRJnN-6rB8Rk3o)d-z>06SP^qK)0j;0!#nbWTVgByq^?14G z94y+n2=mL>)FAgw3B0aWBCqCi|I4#?jUYJvBDYtlgD<bPmU~e5+grc9gS&g}Ht+X~ z^EXyBTTW<mahH%8cXyOc!p$FTzk3#qV%c)se%JzMGrqVXx>;GY0$W?XHTeem5A4!D zyafH2*24PrVya|Y9Mv7b%=Q>RuU818YY>X08%j8|%McEve}~*n{58Yfe&F2iAkq($ zCdz=F;Y5PLladWN6b7UvKaYihwph|ami9wqcO0jRdx7{A_i|CMweuZXxTL~QXgPsG zBZ^sl=y1V^bVnsF0T^6=G`lJ604(e5-QeN-{)6E1!d<_3qHOl9oVHO@j9unnc@dik zF1r3ToF}sVF)<J}upOYf{|WZzda-yt)4X!);@SE6gL_A3_uH;~t4i`1H278jV}&zj zA6$MHrW0<5fq4AOE+70Reejp34yae&?wKv2-rntP9$O?EKH$N2p>GSaZe<u-T;#@` zVi(V3TU%C(S9j2*kwq_fU~6a2rTx2MZ=-t~IBkH9HPW)k5M;MO-w93e4UwsRL&1B8 zt+*`#g4}plMzb`5Iemtqz@dJUX#7fQfg?jWXIr(|Y=(5~nq~13ZSWn=I8q^<zA!Gs zF<E~;Gz{l$GY}vrdJONvsaQU}UmZ7Yz*dk~26+a<$8g%gX*pyz@X-fk5}z*_TmM8c z4nflp_-4A4Gfm+-XtooAZksKKVwifv)og0k`qBwSHs0rvMH)&cb%Hu%)di2SBm&bi z3%X1~O^!1tRty1Ck`+aXgE0eEoZjf&=)*O_f<y}K09-G{g}dyaw~Y6HxrU&|J&5&U z>B`!#jTui}F0boeKsnX!5Q97lfX>|!!lr@fE)zBlSEWsV5D?UF@6)38$yba>S;y>u z(SXzoE&2k^&2|fmUcxQ>ptg!e7^~b*J4YPTeR8#PNue=25n!zdX;55Wb{-A`Qx8IG zGE|4T4CLo5n+eKkL%BSuk#NuZ4YLx_x9V*Jo$LW^-0OAA0+ivuEXn;=MH4l>+^wme zA~-Atp8Wj4flc^{Hik5gSM`S3a=SOw@h5IV*Nhap930?NC5uQudAW+f#k^M3HCj!! zKm<|`(y`0EIU&e#yTwSm#SFISj#ujtlyIqGHE@We4<lAd5$$wmiRxMtyf<zGnrA$R zBxQDh8IIgWm_fj7EyEHf6hSeyV;U^aAJdeZR0W#!gnmqr*BuTOcHrZH-=ScJ67P_B z8J_-r*6K^B$>1EC!r}xtheHo5MV)1!(Ws967D18h0xHnaRO4>u17BXCN5PWAk0!Ms z2mGqIu+BJ=p!#JRgVW~sTZ|ZgjJC))G!rhDGw+X0NQ7vEjW$C&geVrf&eRk!2DI>% z&^Hu(&~MkSn;|`CfrH-?x7651O=4Jqe6^`M`Pymvn{j5#i!ZDAo#ATYM#Onivpf&L zotcWy;FELw&z^yPTL$gCmR0Nh3ODG#c7bwLs@OXeX>0FgJslH|@&hIVhAL0OaLl1g zG5tKdP?!)Ik&ZBSNSwUvp<80tpEK;^6MNc;@jkf&YINB=tpZrc$r3Yv%AIXKJS<Co zG_tZQH7QILutcF{Ax|~?9g*HdgV3Objhf-#WDFcOEIiY;eBdir;0Yy(@6g_*)CH0c z*Q)W4Bv!--6m8}^GUNFljFijRYBD<+^dJc2=8&M5vRb7jL1z@qqLfg+HC=$0nEO>J zVszu=0H4bxptcX4L+w4qAReZnfpNTORp&R=y!C#*O@7@l>IfS@em<O#<=O^#$L5=H zS~%qw#d}IXjGom?hCax2BnGix{sNMT^$N!(bnggP4Ht`$nN$AKHqFAOoXLgv&=KO0 zQD;+;s5lnPyPXt2+UUtngTe6<OdC3^PB#!VMOC(Xl^jeCWtWfD^K&oM;<n%aswBcu zk{$24QVns4+&<Ab@<MN{8)QOR?Gc%<CDb3OZF}S*MoQxzCuyR>Ij74GUaiv(y+3xo zVv6k35bEnsV5kK+8YePa<1PZdEw-ouBngpt?NC|bjbc#7#_3oVEZn=yz;0Dm%dZDA zt}Y~wY(@q-uml^UCB(*<cCu8E`VT@#(-o@^tEj9bBBaeI09b(_U1jLwnV`Gv7SmK_ zUm-G*AZpt6QFl$qJ8k)~rKOfPgg-@sG@M<Ja+FC&XlOqlSDB2EER%C)6EbpINBG^l zQpZ`q9eU4ll|&JuEA7`(B~>p4nY_ubVy%Xk7m!dXY7;2b$?D(3B5q8XE16j>n%nr( z8lZLbnQC3<?Fax9`tYUCG{xD8D?l25V9e~4y!ncMIkgq+>$fHi(F1+LIVg7Z5HdrQ zEJ6=dunvW$V^CBulB#{y6R0O=t5b1sL{#&lpiPEgctZ-;0^t}JI<`n@<@Bl|?-gzh zx9WBS$+Yt`?$A1D>LO#CDw-1gTJ1sa8Ul+4`%Yl0p2N%Xdxld-JtaZxTp`HxMUg*i z(AB3dGUoYj0QAohPskJ6ko^OEphEqTEJ-T?;DG9uC#wI9{|hqss_D5benR$rs-5c# z%9c52w;Qx$`;Bdxw3mV0*4lk7h#g}+9s#Mt+Tf#N_%iFUA6MUiF)GjYOp@AcF-v$+ z!#RtRR&OlKI9kpw<+w+oZ5AG1%wBR7Oq_5iji)LN$}O*K)K+Q*++FTtR@W*$fW#OV zl_QKUtyfyV>*6jE3n;z!X20QW+4?4OEsDkpd~ge#L6JXsQgjab>U+DpOy5EI{+ky( zX@t(?cF&m)yK41J40<di1hIjYgLGeZuKzvINezCWml6E^_IHLM7TjZDE3^isOudH7 zmYn^S|E0u(8IkTO5Is&w%pfUDewgrdp!|7Kx<m`P)`QZ6c$r_pWm*h{oMII;$V`x} zW*Ce1Lz+jdwBGZDna_uZ4?8E?n*Vn-7^oD9>=2}@ZOAgEd9xj#j(keWXHBf^!_iJm zGTDjh3%4SV=o;(sJ8@QNzu!w^(&7Z;mZ#)b4XpY@+6Us)K&@f3qMK_E*W~Y1W%vFB z_(*F%#={BUeO<4eJ-o(#?4Fd1-Dolqok=t25*PBw!PLI?GkIj*qa+VLg!oo=q4npR zuHYv|XL>;3^$dF=*iT=%bQ~Z=S2W9Fm<{33cWu`_;Pz^ci_(vaq@oJ4UqY1O4p{aa zAo)>2;ns4v0^eO9jdq#ph<e)2861h8xL{wPSF@qHFO073>&kFJ*AN!enwJp{R%c)s z>DD0!s#R?-ok0VvMbn|jefTmAx;tZ!xLO&c=Cb3J;C|n?cSqz4<zqj#kdXv5216Ev zzUEz@Z%S}8`k`%hRcyWQ%vJ|BV}RI@m97~6^dhK|1hzPyjI}3r$sFAp1=IiBqONhw zQgHuf#h&%8BG9`a0P@VELnMrSmd6mt7jbMZ%q#p(Q(j84jL{4Qr_y}1esvMx$3QbR z<p5H3yAH}{kG7YI6iV%c>-%KC+}aT=hqk75JL<+isl?$wo2Ms)+0K3<eYl;g_smS` zZ4vaVP=B%W0&hzKhJ&3yZ=l#gP0r<6CEgoKZL#b%OsQIvfy?Ww?>5A?RMw<DsJ;Ee zsFtelMW|lNT6ZyN_32^<bgTQkEoZsk_}R%wv!sopXYXG!rVr8~jb07F@*f_+R1E<2 zhx4=70dW22a+MAM@(+v9XP^#M`N1Nz!Tq82HuV2u5pMJWLx1p1o5^1o?A`=$^9Lqb z*!>NY3O=O1f2Q|20sbSIYJGJAO#Hb#=Jpp#f_4XR{<$pV{nx7jy#WP(vKkxta&`_M ztSAH0AMiwU{Rce#TgTXH=m&`SLtLH*{f)|~g8_?R;QuJP-a-L?<x6<O07wx3f{t?0 z9}oN==ol6Kfx-SomHa+u*B$xTtq@_;68b*UD8xws$h6Lz|0U^a#fk&${K0}RiGR_h zA1%rN_kV6vL)UW%g8%|DO#A1(|8<+VTLh^8M|pd*wvF?K_(wueMfTt!Fd72Y0jzQ? zl58@fG4`UWyHa%=)*1v}^c!)XA;`q-dh0jvbA$J7yc6RMeh?u($%rO2^$Jl$Z?6{) zgU@~5!4!VDqT`1oG`ET^PmcriIVh_LQC(x{z_Ub4PKCy7bSXgaR7_E}8T*m9_c9ia zPLKEGV)6Rt+r>3{xzwyYN+Yiqf!XrBGA*$Ha+gddDM)XC{$Zw$sT02EWwv?tF4WCY zzK9Y7V%o1rzDUn7y(!B*`8zFL`x-Ou=>~SX)k1Rj#VNUk;!h;eD(hOb5HOL^M@pH= zKpRkSk*UJq_H*A@<MWH3EQi^A<Cc4ks}`RXXS5@cwDUs4FtXx_p>$obl=>DxEu1_A zhrGF95yKT+aLdvlzP2PQhtcqmN`7(<x~By#0LS8IF1Na-kh}Bo<0dp<iEFe)`57H2 zOky}=+!D@x5=6JpCubtiW6A?NZct~O0Ia_e#v_vG-=~I$Bj@Xweb<KrCn{c1dKx#( znSx>{#0a@>OT-PV)usI0>vf|GCbA+ODm;rK$r0}%e-|ht;_NC~e9ZJlLePS3!M<0u zztch!%ya1itr>nE3=vE+O#;fV=w>ugR(5$O(VI;e?lN0~v!AWc`oq{m@Y^fT9nb|6 zzk5dTYbIOF{(U4wO&+FHu2^)C#>BKR6{B7@9aafs8vVoGl0@iWX)Hgc-L#?32)9o_ z8Mr%Nugs1;9@2EWzwe}`rXjTM4GSD2&eM<V7{{+m;R6C`rSJY2TCg~~-B3=r(tBT* zE^&i(C%hTWY!P>%9{JN!qn>+6zW`Aji=!~Hm{${(62Uyk-L)KEzadL^=Qhw{lQGKY z!{H7uMd6?@yX0Wv2vHSgDsR(1uOrjYADz3+3V`aGeZ59nv=w)OFTaaA+EeZ;Mzajl zlZjxOnaoO(!8*We<6+AE?EUgf^%QShA&F1=Q-N9sQ6FY-d0T&2kHVZX#|1F8OXh*N zMZIgX1koErBHyzAB45DfTZ*V+P;LQ>P7yhBQ}k9@-zxuYBuijx@IFVxt<|nk2d+ih z3pOb+6CWki4fkG`p-&ZWYEQtdER!vmv9oiE`IRK}ZEcCJ4YAL1Wa>Dw-4~tM@21#B z4kqfJ4MC{!ct;@8c=n<Yn2SK-Vle?bP{{pxZ0@5Uys5ekqIgE7{GlmDs4ATUae|jW zUU(ZxnEa<q#gnK3aVSoRhRWgXhmyLfJ*hjp((?~J)r`x~d%+Y!5ieifhI26b^Y<2H zhfe!xEyFH~w7!S)-@jz;bUs*qSIN`EtMTk$&%(>^CXNm)(xIrpiQWO;TJZD+ViQVg z31rC(P6y8a#D{o&dJ*i40=DgSZN(`wV9rH?AF^VeJ|MjIA-0i4W8o>PWm?di;w*iI zhh7$#FRLNwaD3IM^h)z$*gf1RVFC{l!Rdq@xdj$+(tgEWP!~jPsG40<COl-x)u%*w zP8M>$m;=QBZnR`f+%N(b`4A>&J%34@@f@lrK4s3sWMc|Yjo4VHc!A#Pk}EQ;3r_UZ z^?9BHpjv4;h&5KOpGvA>Y*`+gI|*p2h2a!A>E+8P)>K3m!o!eHx?SkgfDx@_2Hir_ z_GAw*@Yp^=Ov+7u!nR4qu!@s8tolUzeEO>JCG8qD=K9{Xu3iUNercta0A?-Y+X(~v zbUxo$7PkrfeTRc=HZb<f!|I5OgTDtatz^K1`Q_2$S-h`VHFSyJSr`pwosT-%Sut8; zY_L8vf;Dt`Bp7g?c~!lRX><?US6KtWHha1f5ie5l4f=dXfo|$61mh2hG%f8ZsMAwO zRU9jqO4K>(wpvag!(h+WFwXQZ8cEObt=1$RN{D!ogY^Q5*C4L`pj`og@fWbZi^b6x z*p?1^yD7$vW=LVUGU;x0$AH+)=~bE92<YC)#i0GcuV25$H7-T<5!0pZo9{l(w+i0f z@*35J6+zjpcGfBwbo+&<9l^@d0;)PkzkXGcC}df>Wa&-?ZXfO6;%O1xu}|!5Z|L>} zmk2U`o^(n8Bvfg!hAc>}psTrmk>F~Qq8UDQll<uFlg}E|xJr^`iWgh`DRXNaC96>) z#%qBNIrN?r(*;EX88Hw#M8$Uc)I|$4s8WHl)Cezfp>6eWLjlT^3Qri0@rA;&E0R8k zEtOnR0n%|B_)FKGejIs_9qt<xPv}6BCwfnad04*$<E!B*H2Mx}iV3Yq=`M1@NrL|_ zSgdira)^npj1v9k+U9wgMNKJnWn=$&A@iEy<0x02kZvEGytUByG*C)*T#5l3rDMxS z+^jQuo#w~aXJ6|Rc&mUJ4+En&#>`cZAgH(da||3);5m{bER_*=R^wzrQ!0i1FacF` zG9!7RHHO{fw8en4e_Zr{JATI&w2pMDphG4&G;|Z3<-j-*MAU8^+Ba1Y)HvFopY_hc zx<DWtu7)-<aTVOtG-Gt=L~FX*=oo9iJ@mJ;;H<-z6$xVM#6ceS0)aO>uXo!|OoZ?{ z+<IR=+8nau-+1B+v0VSI>Fdr^e<<}ZfZSNPjT$YhmA{TkgqlYT_Y;f;H%5ilcfQMO z?qie++J73v-2&xFP4}z$5t^Y7tyrrDcy`d}S!USre;wUdmV2w$Cy3NVhCrGH5)lQl zoOKf=Xvn$!y0Ozw>@iv8UnhZHlOuXady=H72CCP(GOkgYE&-@l_P)NTa-iID=dehU zK>I0@QobcK&}Bqe;YL>8Ut3_Ndj!^=6gVjO%yJ@3!wmMZ2Pv-dQQc!Ko*ySnOKSQt zAPcGCFFU(_m~U2m-x{qlR4R89G!BkbE}FM&vX_8*6RZ^pqeVQ~!AZrj)&}_zjvKnq z0;E!`Kn+d$V*BDb1H#Z@{?*j>;FE}&;<9<o;A&ZOe#d=h&)4mTmhEGdJDgIs&vKZD zqE5Q2*4UU0m8oBXt<#T&zVG<h?0Mu8tjCsywv_zPH_UL8Y@S<TAj_Y?;vrg(j41q( zd6>)R^>e{D0_`Cs9SpZnH;h)84q|D7>l7%u_+4U{0p+8SQ3_XOxaSD;XtV^2IV|gJ z;S(v`jJ-h6l%o);B~J?+v0B*au$yok3xjI(T&oY2VWjzh#nJO7x^72}0d+;?dbeQ8 z*tGFDrz>7`iwX!%CuICQVm{5JGIXwOPjG~7rk`PZ)LGlPmzA=k#uph5^vU7E1vMbO zT6J~_ZOf}ETBYLhO4l4B`}Q381|oda&rkv{p?s~#+7|<KO<-(z;BG3)0~$Vrm<lIV z@0>fgos0-+5^ZoqhZ!?y7o;Mhf~rCeH|%$w2_LmDl(vO~zA7gx{l%_dFQwPjnSY?c zrC*}U9@X@lwgio*)vHXMChuDkhnN7@@B&SY!=x>#Q&B!m4EgU^q?X9qF5U@Ga|P)m zbem1o6Ua1AUD^vZm`(8Xv*KWojBeY)p)ch}dyNbk=bFiP&1FA}V^?OD3UfBEhK{|+ zE)JhaH@TH&a394ACS0EC%)1HAMyjV-rHd)r#9@f2b0jEoJ}&{%?}Z^X?eTyuWtsU% z#VDHv$?J3RUIwQsGF;hGTu3m948E|3C)4j^MappuITKxqTvh(^wxe^l8;T?d)JFMA z5?nYOt6ryc+14U&of{QEBlkwV#RXgM{GF7c^SbtMgb}yj@GYyYoE(eMArh}@wyEU} z_VQfz4}7l#ChmB|_!_@65axh!^hSqM_p78a`3UQk5B;!j*9}{=@1WieMEYOC(?aKh z39ei5(_=CjCi!ha@VcSuHn?4XFgvv1aM-YDfkqn?i#7Upc+=k6-yR%qpEnZy8s1ww z=h{C__<4o}FX`9yGyA&_V+gsW^;rMsLP_XV3%d+ygke3?we{&vIo?ZPLYeWw<hTj$ z@M<Ia&+h_A{TA!L+gBM|v5tvYy6xqyhdDw+gwFP0p^_Eox%iclH8gNd+$BA~*j(P- zj=~-I?Uy5Jkbi@Ro(w|bWcBYJGY;N(&Npv=TiFGli@qV9ftn6RuaadXWMnFl=>IxO zBJ>10ovAStTO9g?yLgNS<gOn}PwUyX3*TLR?Es(T9i40BD%!oVe$P~5*FOMsq=Y>~ z8($wi?{ByCOl2M7j?M?hSj-U_f2w_(9Dp^ZFlSXXmDR7a9Vx`7Dr!W>rA+PLq&Y4H z2~fc_Rh8A;4<5&5PqS_u(ozSHh2rR~&0HB$_a(bd$HMNJL7y}RMwUUY$P+tz9c4yV zy2(^9P_Dnup$Ldnk7-q4eE)naQ@!j=4QnkFmLAcf^a*14(SfMWI0AWH@fkw#l9|`E zw1(}(6@T+d4WZJj%wX_w5?p1zSwCo#5rG}<lS`2fE<4eq6`BkVk3kq`=Q1pIMh*@& zBL^_KMUN+-bG_G8Z3E~r06jt@MV<{eyC3Lo(Z824;r{wuSH0IV9QVDLE#dv@Zc8B* zSxPZ}D{i&Ni~bd2crpiVgQ-UI4e7tCxqp}?mFie2laJ(~Bg8*_)A7=-ZV?dwmmDRa z1mN>86qs5L;QnulPp}-I_Xiy2SN@%T->w9F{&(N>>W{qQe=ue>p!yF;MQ->Dq{=q{ zVE-UsotD2LW_k<2_Yd60?*41KdN-g59N{AkDQ-jHCN%y5w>8s@oT2g4`X2s3+J7e| z)BMlDaDh&mN|M$TJRdHI%quuz7EO!|j8U6*{wB~(qHDI~N+=cIgyP?O$R3O*Q#EW~ zNF$%VyEq)=3`CFacp5R@MSBs}aUW&`^BD;sm1D6;v7tuDm!X?BY5QXF{csg7xq9J? z^;D)&NQ{qbWhLu5(27uuPacCcb_2;Xo}Fx@HU`QtQDo#l2IPNlqRrI(Fvrrm4TjAt zzP~$fwFx<Q{S^)knkOk+Mw6CQzji%_Yt3;ri?o_#(CyH=dQHe`!eI94+--W^v2pEt z`-)}ADcJH=@|oUKj7hA$pLsu%d%w<CURK!HHIGkOg>S#KfL})iYhy@MgU624RWpAi zKqLdB7{`tG?g>(OWLtck)p=m?`%T4F!oJMDT3E~+=DWKscb?)t#tI-ZqW`|lzMln? z9$P*fCcgLmjD5fT@N(enDFvx<jP*(jKllW8B%}JBM>`x$tOa$Zr<-37p-`v9YUsy~ zB56i+d7^KhV?Gk1PZe080&PBtELG#i4T3BXQ4PFGdqjEMqYzr4rUHn>mqxrQ>pz2P zyTV>X>>(QvMx9?r9{5w(Hw6<#rqxPRQyAQRc0{J$r+)Wy8sr5x9;GjPEXH~rwd0B> zY0gEW13|7L)h-^CoIt&)+VT${$7SH^?>wp1393Xw@i?j^fx+NkYTU5DNf?Vj1d7Ul z%<p)5A=|yNSpF10C%7C{+FpZ5eRk;sbU{$+3W&$~A;3_Mp9G8LKT~Mk18j0FIv}YC zh^0VSW-WEZFbRGmT0-lKOC8MbnP&!y7a(XB-G)|DQP7>%gVd%ccIeB_;o7Iesuyv( zR`_$!?qregkzY#(2ybAl$}<ordUTusb5G5iJNlUCrNuQ|Z8%X=aimA*KV2Pv-o$}h z^kr+fpQxkzY&%!Chm2?UIG5aTLQ56WzTH0sURIUU(YGRK9MHi#^?k0^iiCCIdnMI@ zhfuNbELP{VP*q1|WYe6ZhH7T$IwR*}mzfd5s7$J31Qbodptyj3KRsE5V$1zcV7SzP zFl})qsbq~jlFa3@w9F!CFn!^kKe(BK;C1P7Af&$p^N~#OE{dnA0ERtyjnBYt-3T_~ zNU#pW)PlpLT3_fR(RSV0EaiTMJMW6`HoM*O{PsH8q$M$tbKqi}(!3x2W5oG7O_fiz zg(l-sa!IMtSF^}YueG{DZ6yqOpcv~F0u~0L4(xrEr-M@!g;lhiWTi?RmfXQ4cpmG1 zv*5+LaMUh;<Vb528#So_2f`{AOH_xNp58qQPfQE-<Cr$=9f6L_9b-kA_3#Vw>hw3H zk7n+4S9C|EN_?)@`SLP3H@hf6PZ-_AQg)cBV={lYLTtEcV*SCO%~$~*AcBpk(ek2Q zPspJe7F5hof6Ri?5C2?MTNe=k?e1BhCVtoxEagI<+l9<h-$+-dJ;2fNWYR4=>EuQg z$wR=K<@<nlqw7FJEVQZ#HIF=JXt$%EE=W#OAvA@Pw=u`%fv#;nE(JBIm4pe)>F?-0 z1IL9=)la-NFDh)9VM)m_Y7a7sn)FoD5$&6|8)rx3A~O^mPZ#LVAzuVlN>wSoYW_Zx zWzt^N9#LBEHKvVN6I>2Dn@iR`zF{SyuZ(!EEUYj)s=t*v{;N~KKeQyt$cHZDf3{Wq z5diI<{WEF;@aez1^YjGZ^iR=c$JAd8;=>fc`VU<>jcV(G0R6$O{aa9>{q(;%!Mr&D z74*M+F0^TdqCN?MfaL!CLu~dv{n14Ke+ZVQbadkIB;5Q~YpJUYW9-V;o;E;&3~Ls+ z*@_al$#fp=!%r`*8^SjAT-CUEiu(M!g%ZOMc8Jr$rUxN~0zo{Xi9N`wxNOcyeu8KB z?ie(bRZ3+JZrm%b+lqs&>7}Wpxy-mT0@b?WBncO&$2YRd>5Ydw-I>hUMXJ?xF)7HZ zF{K*_%^+y+0Jw?jndrg0$=jV=mH9ruhQ`X>$%?ha@0?Z#`AT2YAO?+u*2;%5AYMRm zxIC4*2`}R+AwmclN0zU)MXohcnx#`qrRGkJM#cxtFsfPKyNZVgAftWsQT3<PfzxPR zQwt~@1K4IrSH8@-`dZ{Py*!=aeIuq)h%rnOO;k}^wH;9n+$Dk;4eIiD^OkW>txvgf zvoyQa@(Cr&aAqh*<kpEwW*h~RP8_onZoCx6plU)HXoP!&o<43q?2J--!J-WMb<lCG z#Z$*#xyN1S5f}-U)&q*0u*_6Ez!`BpCL@PW)xwM}U1Xp#>p7&wzhPwDDJjruj)b^t z_}A9#BB9=Xu@7qm%dIPVg{bh^KZ^Fq(Q0YkkE(sxTjnazwo${L9JVPhY!#%vY6%t+ z>6kScju*%HWT}R-#~CL0kh*pj?f_sZ<t8ji7mvNE*qRC)giyDx<W43NfrCePi&90z za$cWn457A4SLgEJH+}pdho3G(XpZptNqLN<Jlfvh5aeDARh;)7dz)Lgzl-Tunk*rU zxyA>j2Yk;j1lMNIubM=mCNIMg!e>u+80)D%-jE3MuD-L7n9H$a7x<2y#J47}g+;!B zF|Ksi`1?o;E%I|x?cSBZI#3211}>S>6AJ^~Xi0%om<r*|=a&49Q!ta0b6&iR+AFIv zGl9B4CSWbUsv0-5rXsWYmYhkla)34|xlVkgk&|$XJW;HLc&{y?gr@){I3UPmFsA;P zr@q4EJWCxpe$5`{T%S&Q0PNFtwz?VtOkt6c#mfXF@pa+wuV7QV1Ry$1dx-EFnynQK z13JTSB!>={MW!E%=j-0?ZA_{+RCyAmZvYZ%Bla#n;Wm>?A5{}UXt4(MD_Jm<rVx>z zVjK&Jd{Q*?I(3J&dXH?!Dd@S5@Lk-5t{+_)c9o#?!iq_tPz;_^<RFF50s>PL{GLaE z{Y#5^UyzAss7+R14R9{U#DPIzlQj?Hmk#q{7QAlIJ)a4~G-tHd$P9h5?xTN^{}lL? z^A2)YPu?^d)+x>cYYZ~Btf40bl=5^jJ0D;YZsb!MA0zTnc$!gJy;IP_tUBy6Hp?6_ z%_nNZCK+d|w9^PUdGyetU|9aGdv-Y$iP~;wx6V^14L5`SK_Eo1*+Xzx6!et+XHDho zo8iTs&Ei$uD_C|O6ADjiPWaNi1OI%<69TX#X~##z^eIkTIR_sP;eNddFPd>^e?#`c zfv{HapaTOi+*#AL8<IW`r)9E-XKbu)@!V81JOMQt!%82FZ?-fYHQ3s8y>ko?6eAVJ z<!)!;2RzhbXTan{uwO))1~OJ0wH`tZ<t)TPEdaDCW_U@#^KY)Y(-C}%nEagVbk0(S zuP*T(SxdhRn2Iu!(3h8UG{&x38_;licn=|%i_bzI--$wVIkKoJ$t$T!yX6=9FT_R3 zMV6K53q&g>xVdn5@M<AGohkQ@H!Jkp7OEKWO4Cn`76M05+D_ngg_IcjB5gSZY}vGr zlt4TdFnBdD=*WHt!y`j&p$WLnrry*;<+^5G7p8nj*N8wY&t6dHu&+Equ#q83lSTS8 zl0eyE`&lr5w_l&Su<nqWsyM;a@z$uvW$hf%jc#~*D+s8|KhC<fW?4+sKls=oJ{0=V z4WjHg(*dbMu!~Z(e8t$%2O&yU>~40k;eI#PKbb$ASs`-MhPEay+RT_oc(0bC7qaYl zlxRL+vtYx2m@u{fR{TkY?|^}%scEan_v~{9x=a6k4~d&WOR@#TnJ{=h^^JIF9<#F# z>4kiK!OeX(4>M@6|M3x=xQ;@y*TTNn0>2N)(g&0TAA&9fU>P0r-{rsOwquzq5PdEq zy7~siL>O;+Cb&y=JTX7d_*QJg&)*m`xLL-lK$P6o-RygPZ~SBmH2e|^|8DjQbAj)> zaOGQkE=oY=uc-}uAwIFt5$fGN=`nc?ePXr-#67N}CRJE%ZpP)M0no^e#8d{fm+LGD zZh_f#kG9`QvSw_4<z2X8dmQ9Z0@|Pga4%62>oS$s#gH2@2yRsrpD~JJLq%mqvz;w* zf}5|UjG+_q*p+HUT(D!nN2vQ#NPD&mYF+&ook-1u?GvW9Y1atCbv`wrumud2R^rf- zT?EsCxb6_p;L~9R-{X>MGz?8&pZBc}Faz(&R^jRK#dowl5+Y3Kf<5N%R#BNYT@62# zT6pc8&b&M~=n=qt#r81Cpv!nZFZ<~7Mzj)F`9KysFH!gAb&a}%FUWINKxm%?dq0?n z#SXsxc~Gh+n$F*$T2ywYF(wBkA|{VtcbF%f@Rm+|uqK#1q3WcPcv>1MG6nu_MjM!A zk6U{2sm7!h@U&I6@8N<J(vdyDK6mqr{Yca0`=^jPh4Xuc4w3_)XbuXBSr8@_PMaXR zcxY)sItpt<9k;TQxXZV<^vHX7AqddJ19k@m1ec&MqU4#R%*!fLEm=~juM4}<JSjuZ zx+40A0nSEOaIlxbLs;=NsDsICkfK2NLc_@19SU3uX-|T+^k|PLSLgtwy{Z$LALZFD z9!S!;AmmOM_*f$;f<B3OOwyG*_+=W`s_}J6RLoprtqkG#OU>jHAVv!avk!7|i`%5z zE~4?-RFTk?rIDOUFN0~l_;Ofsr8<MmAog}0L!$}iJVWkX%*>>Es|<3Dj{ZP~(TF0g zxk^q?X-9X&*!daHyKB?lHJ??IYgTI+qi$3R#B2xfqvQZnUYo2%zb^wkV;R=iE$yh9 z!5$o}g_QDy?poYf<gtPVaCHt^^5~YOa3FS{<o&_fn57J@3y!BtDo%IfYJL#g)jXyy zEYK&ii}8r@f6`1LuhN8(9)|-?4V5k<=bC(ze2$ysgxthX=VzKDgroq^nqs|X1<7v9 z2C?n&r{aM@sT@Z%qlJTDCohn+S4<U>gV1P`!#jyCWK73jD;AMKwhzZ?3^Tbkg4toq zXBTEI*+glHoF_CIP6_7KRf8;|Mu9xh7=w-i5S2JZHEl(5xjQiqAf^LZzj5ozk|@bq zp@5uz^<8$^?LB<``aO#KS}!TMUWESK>zfn9hAaJQ1N|Vg&sB|9bV9LK$FJj_l468+ z`{#@6-q6}G2VBeN+UtAkXI_t2LTQ7d-OunqaEM;Qo`6D!(Av4zK_JoF<aJ&s@Kp#w z2=5Jc>=)w8yW4ZO^Y1(08Po2~>sf7RZ|B>~OKs@3J}@S98^J(m*Z};H#i%$xuP=K` zaMS?F;P(ON{C3W@MZ0Pj+!BkO43NvbI!o78Y$O8eyOIj2JUG(}@-mX-7KNw$t@K!% z*Ue9-+wna6-oEyERj2I4o~aA!#_u&WOu68pQ=l2%I=qm$@G9cKBAz1ag)B>NR*|Oo zw`j*IIg8BK=^V;+qifoM(}Pe4_Cb%eFXw^$;BBT6lIAd<kAp$vSsZr@+v)GM+qb9a zyCcXnL@2L{=B<thVuyl>Su#sWku(I8DJi(Xuc+~56y(=H28gri=0m_X7C{dvt`({6 zq}v9JtRPeubW!wyJ&6Iw(~_y-;-t|F2)>NxI7Ca_^5|<dc$$==G6`aV>BxF;?6Y;G zOtGt|vpM~6`)d>eCKh_R`T`Lm**3?W^^bdZU*ASGeigOGYm&huY_j`oL(cZk<KkR6 zNQ%QaxP#Lt@ckk$my1kUU@N&^4!A?j0z(C%Wc^WMI;Hsom^oRrd^7{|yc)u79YO-` zIi{Vr&o^e)py<pCcue9{8X1u^A~!W7T@nNgv{;vyp1#zWKX+(94AKB@?2J@Xpbcnj zRnxnYk#qwHWH9{s*K@pdqjIk7yKwZ^k=apVLGnpHK_Hb7UprC!{=tsP>%)o*;P{%* z-`Eb81%~$-xYn`JwFv>Ee1~+1GD-MAAtS9!*4;s;9`29y3ATOLNcc9s96Yg3vKfDR z4!@*QV;!V(4_On&3SJsPGT%xXUIrsvXlOI+A&~lgTpv>$OJQ(SVOuz1_JEvgzG$9) zz9ze5EGQzP5S&NJ6*jblhDzrN9#c3nQz-4oP$nt}_-zSn(0^w#>Pz9z7Ch^EyIGU% zrSKxzY+d0PdZXcZosb8CPX$T-dZo~m?#1zAY`=E*+g_;|?|wx#P?My1Yzfiw7V8<G zM9@isYswa#@=*-RE`LdZ<Q|-m!FNmM1d)JeaN-IuBw|jE*99e4Gak5on2Gxm=MgF{ z>_W0_4U|5V=fH5~%s&y7Es@Uhg>?~+D?RFpkf)koLB#yYcrRL26MAs*gep%K=<0xj z;-nWQQ)V)L!di!#pe`;X$(pDX3SOtUhl!9>CZSQRiK4Z+^E@-dC|!xCMYf@ycPxYq zR*Pq*fuOv8L>udfnOY^;wjNaB^yT>1e9><Uci_Qs+;{&98cT`zP=_XjrTH3irbw)W znlA!J47^0VpS}GwDl9G_>F8)yWijA6$P9^0D)+jw_Id(c>SEyb$F+qoI$|BB36CaT zI#70NYu=roAqN_2L*E&|KBJU$2kcyMbiAFu9J31e1QGjtBOq;0P;Qfy`++wb2=zOd z^#UEjwwHrdvqWQ!Jk9fUVogxNUpZmG3eT<&hgZHgm%XHVq|h<G*2H=4X9c+*`VtZ2 zy0VTM285vdqvZxyj9IVMbnBBEDk*636YTY-R=r{(ysNODd-t=CcWIo2F}<T8y#IWe zJgW`c)_WIr^kh^Hi(NG+*zJX3X?uf1X#&y>I@ADJP{SMmog|j;-XvhG1|X(ky$MD` zw!eC0*MhGaEko$I46V^*HSU_lj_cTXS=dHH#~iytOWqK)n?f4yq^o}#n}2~@b1f62 zzZJD+GM;ByBr-vfIaabji7I^KWisYOx*H9M_<fTxwf459r|Xu;C7xD=w}U2jI|4k4 z`zcWaYtY?il{VYHzb{kkhCj^m4Ro6f(~W)g-u4;RZu5)CX!de)=4Ij)J)c^+l?EYI z9R|+?s-q6b?Ff%4G=>c1O{VLc{as$1C5*i}+c`W4j{#)xbg7SN9EAGFA_MQj?=ki! zZq5k1p->AeFWZn*&=w0fJ(*YuiqF7+oa5z~o=$Ni<lH)PfJK^U$%MCN2u&r=sB|2K zFTOqv7B^Eni2PTSkx9m39Q&PDBXsUkqL%=B!&M~V^L9i?PMwZUOa}(M7u*@zUJ`kY z?-3Q>8hv9k%Qmv0BgmGLjyMNA0fb+5ze}&BTSXyK)3G&4fI%-R$_9sr`zrwT^`Nvo zqichyBM5gOu#g`=lUil&`V=8zxqK?Wl#|*=(63LP^miq$66GHd-qni(-YDmFg3CJP zniebFA4+jrG8;()D0r~2g8RXlf=TIc5OG2rl-nO7dt{?xKt|Qk#cD8ld+>g$=ZAG* zjnrI;w$xOQT1}I*RM?n@`*s1DpEaj1VJ2h0s^vR57FvB0CW^B8Y^j7Xjin!+rKA>a zUM6!|Krh+1DKgtL5PmH%)SYl+M~jX6%UO&K<9eD2BatdUCa?o6%Py<5^)`L<i>(S< z3^O!5Z+On!BB??Y!sfCq?}$sRt(?79?&U^gsaEx3(Ov0R{4R(|fwg3yOeIW4LLEt| zkn!leTwfNp=}iAnJwN_XN8|O%M&Ws+=h^Z?=K%%hkVC$|4u1WIRg~Gv*OI$Ei%;*b zM3TQ0k8289{pTx}v@jaAtf9h<AnwSECRMrmw9(PFos6rjh;i(Zf25kB?zM@dTb@yj z+byo#`=`f_od(jl*v-xZcdqQB8#E`74BisST!kSmb*f<aivrq=X69MU0Q`)gnxON$ zCcU5CvAfSLsJW$TS!oY`)Vxl6N2nhL>F?!|ZlimsIE%Qa+O?YfNEhs~jPK*<E5<9p zJHvz#vhp>eUtPbfNib8d!}C2j7vMnUx<A2PZ7XH+_lfl0dy!B9(!(6S-@#%AqbseW zjWE#8kCL}NjLEpx0Ko)?!%CzMv6}eMdK<dP^1$%BWt~ZD1WoE3jmi{-t|sd<xhs#p zX45)lxDQ{$7(r-?6dn|l`&ZkAzX~%a2~x^9*X>GYHr>2<#sw+lLaeB@+Hh=(6BX|_ zxCFPzSRux1PF8aPty-R9krZZfv-5p5G4xa1a}V69d<9ExUwSc}n?efS!0sQVs_+Qi zerZyLg3A|{CXBI3p`XM?Y;G*js*tizP|p(B^_p>d*3%Q_@jC=Ur3QmsyC;uwwyhQ! zEUWb=wmH;<7Z;v>%5;b%n=dSi&UOq*-kXU?bS#mBb+Rr6hTjP~&S(m!Flzb^tFZ3E z4;;}d;nG6n{H~b8_LbehcoL2I_9(m>;j<mluW)C)-FzV!WiIlPnYz7%Z)kAsy_MU{ z6?@Qj^@icw^h583o%ae0O}s!-X@TI2v843CPjV(Nb1yfE?3}eMC<90Ts2FgtSAU;& zCLv^U7GrWDVEhgk_st<Z711xK@?OK|nV&cnrx|O<=gw{=!SQ3hu1~HSYO7zrRzgI1 z_2mDIWmG(6?O*bZ(yG}H0(*iC_M38n%nXJj5!7!|Muilh69I{cb4HiUNf3~e3Wj>* zqr_SI!9GI#rM7~}GxDdukk~j8*f6-)b+>=Q5gs0J3Fr^a92s=xf);Rzoe7w-;+7SQ zGZV!5vDvo~;J{rST%Y&Fu$9tj=Zo8C51%DZf1(R*B%)di;hd|NxA`Zc9P7y-g|vM$ zE`mp^bQGJcbI1rZDiD(ZJ_1raf2>)p6JsxX%%tDn3;KCmS<0Y3RL9rFTh(%983}56 zKNSa~6@gf#oOh}_g84#TteRhIN~{T!R4F@M+L7Lgvd!ZVSrvDwrPyR8tY$0*>e!%J z?Fa9YfB3=QLtN?l_35@*dX!Vih(*K2l4eGdq+@vw9Iyu3GR~Q{6E(qVxqc}<g}oC5 z<uco3Ll{mdF9Q{|TcSU!oB!tI4uXc^=H4mMxd}8moiFYjU7h2nH{VLxyc9y7|3nuX z$2vo1$&IYY1~p>$*5maxwDtOyv=k(hCbH7q){6hi9Ak}?W!g#AuyN^;UnC{nxU$EA zF8AVVjS`*L_9vgtkJgA=l+j`Rw&(9zAe!A6eT~+_i%FdvKOFim1)%q%NIn<X_SE+e z+~@=U4_)sZ9ci=hYeya1n%K5E(ZsehaV9o9wr$%JPi)(^or(Qr@8_Iv@AIzp_TP6` z_qtbA{fgH$Acq01A)a+);X=+uoa~M~O9TUv%1qUGnPxWwr7O~sJCkNmTGu+xY2X=b z^CNt(qRxs5zGqHl#YI-0#XE%N%-z9BQxS)qFYBbi<%$uDyCK9`%QtBP-!7V%EyIrm zkaG~S3(d|K95uZOS{gS;L<$AM{ue(_JR5wT$!-s5$b8th%8Ydqs_M3&1J);6fU!G5 z-^d;1E9VZ7$+<DGVvhb^>pPn8ONCSTAuH)2hHm!SU#|#kDLRnKRYV-E!MG>$0pjgy zP%*iG=Y?ZxA1&Dmqn#L~XIMg2mI}YY;2JoLHFx*JE6a{bO@-v-g?ONv-9o>8<pr~E zr{n7YLXZ~|JZi1rGhuW;i1}R|>p9W@9RXx@sdimH9B~IG-yvk_y99GHf)Z%zC<zk8 z@msvCYJx?&1pCM>8B>#SEdG4$*QJ(k)!*d@6s!R9BHn*b41VY=|M@xysS}Rk$lPPs z6P%tw-BwpQ+-hkNZmqbY;=9uleMr+i0AC>hw6UaPYvAdO2Y`>OV;j&hl*Tc&SV*(S zw{_|TYvEzQXLxOk=I;I!8PC{%{bV3&zwN-vQt#Vz#a$(x@|y&2g%yiZ5d=j#H`gfS zYU}2PQqO%XqNWN`E;b{pmDbP%CF_xhz;G816^K^}^@g8BAc<^?SnpK^8~0}ov&HHI z(h~`fHPAtoPO!@+oL1Ky2a~X#(kAanR@Y^NYq@xz;zf@nXJK5&u9Axm@9`NgOqT*U ze92atta;GSjgiCS508bU8|4yUq*&M*l_f|8gcuR3aj=ZSgT%ueBIqhaG)PZ1q#!i~ zCxvnC6LKAU%1T2=2VwcjQuR9>3a?3k_BB`@k=_$77$Hg#=>&`I*SeZ>Wku4pd+qn9 zTXbGDwsWyT=L0CvQHcSO3Q!6D1a;D@dxlLz=4uI~>Bgdm4nZP2+~0RFBS#H-=kuL- z8p|-t5jbyQFs1GKxE|G3rcwBR>W!}R!PHgA;Uc}-^E`Zx#g{G{rMFgt&>~X-q0tm* zAm}0#++u}j=ccPfXBw&DEz);!Iu(+5HEglc(=EqN*LN=2a5G*Yy|-9ortF+_m*^rq z$}4DF%Y07?JkrbO7x~lw3OmLc#L`2}IP9L(N1hvo@(aO1?}ufe40Jk1{B&;R3j10s z%@KrW>JBHIs5#~{roMnsq!1VZCR|o$0FHzq$2ItHlv14KM`KU+xJ)#~2S^nRsn7CB zDb7soFCPH&I;~ja!ss<YhJ6k2vNg@j8Tj2(iH>nrF*JjlT}I^lYo0B^B3k{*DYukJ zNMU@grp+L`cQ2=XbEb9={ted=P7Y9a!|lUwn77d8KWZW7vxLFXAl)c{KA>8fUU5b~ zqeMSMSDGT(f2tkweEANj1+p}Z|DF_j@f@P@A;!B-gASR=JXDagEu>QV|40JJSR$q0 zZD1f#_|^O_q=Izp>18Sh3zT9=2roB=ZjCkll?tm#2d@cc3KhYUmtyukM^WaRRt#2} zkiO|VcfW(2ioUBkx5s855cy~hM20&*0Zj*irdDFXau}Q;^2stCg-$4g9GkhL+|`$d zK?A56a+trONRAT4nJOG-m0($ym(~=fwdx_HS|sdB_^{)n-bDTfuF2b)V%(CQbkI=` z*7y$PC)c8d;0}hM8}y%$kq)qxsUD}$f<&mbb4sdv<=r`|f)fl-;9inpRut_%!Lh&~ z84Vv&3zZxk1j(8?3~6L~o|(!32)qXpZFVKH(E;;mQC}_>FCv6O1M4zKZHYTGF5iwj z#v`d4R<QqC$P}{_<)|mu5eXdP$4D@_Hj}RB1Q(6G5_Q#7r)_kbCAswP2d~F#1ukzA zJ~s!iR!^-hr`c&GAo{>8hPF)utFwiV83Q+|mzsgq4$7_JcA+}07#N5RA77i?>y6lu zGi6$a2Be%x_w(dZ#a3B)vBhv>Wr=27EP_++b)T~X7%Q2?!2HvqFyNVA=3xvwn7Wq% zo7|3SZJ&TD@R#qA-u2QJ#iOUXh>S?)@$VU#C|0r+=WeH9AOh)0lkrOHiK3}uEfKs3 ztEKhr3#^(nm{aleQ~BK&o7QDQL37@=N(syY%oAn4L5@*ih%NT_D_}l`C_l_sOuz$d z3A6jM1yy_`P*pwey3LS-7GY0sauLlqCP97mqdw1J!ewcrn$@>*snt}PIZ6rLb?iR2 z<cf2Cy(}LW*h=1(oo~@}M4esp+*CdSs}UiD&<MfrII7Oy;o)Yz{05Oi9a|@xUCftJ z*E{-6sV#BK=Wj}3HzJN<39&u7=5knXQoThT6Rd_$oROUOjg-@05K&eSSy8D1wnBbP z7_*yLF>kLw$Jf?MnsZAILz^G97TcF<--cfc5cfm&flqg_Ufn6PGUh%xhynFUd*su5 zQgimDfmCC`#?t=aJe=PUak3o?dGN{&hI}&XiSly8;cPN1uWFKo8!X5ETso-tzmwjJ z4#_YWB)9eL*nYrt_B0<r2y0V%+JCRvIa^7%0n~ct1Y-j`X|5sd6Mx>T;wGQ0C+s}y zOxRhV0*lv&5=~2SVZw8ddou~<k?nMYPdiuj3!Fsw$839P2x2fbRSdDD4BnYF&;%Uo z6UC^nAM_NiL}?W{7lpgK^~%q{mxuL0Igm>M%b_GRtz0z%3<e~R)Q~{@Ahz4zbh0R_ zvkYem2_-`z2-4aiEx*R6cX<QOp5nuWtx@=)fSLMLnle(L{GYP<A~qlClsew_w-rk{ z8*eZ7^0prd*D{rYL%;YOZqG6phtC89AU~aNZLdGEYJlqs)ox7|I4sWAqcUhtq{x)v z{iU{^@rUL<RW!fr#yZ@dmO;(a*tdSF%pPZ!WgAc+F%+2^|Hgt8nb!Q_nJ&;o14bRO z4rDKh5%!@sKKemK#V@L?cFxZ48O~nfb5oO{*e`wt!wpIc&!w+Z!qLebkG`UTBOOr- zV(>V)=AbH+15osm{jI{<hAb-^zX;JnHj-SvZ0k_!a$BEYK6926pYhrG>?#vY??R5r z^73}C-~NF@G4eNDvg>`{Omt8-tg7}f4*0!x6Xj5@^P{rovi%t!@+I6%*T`c%rue~! zoz92KV3A^~XW&J)i;6&h!5&PnJ3+ut*USA@`uq`K>e=~`xc)YDM%Y)X-?J`2?&YR| z_2>C{V#=?+TS$My>jqf&jG*nwtBrR%%`6I3g}L;P=IO?N8m>?wic1l~*o;W41rn0s z{5YQ@$yVVqVG9zZ)D(c{+Y#<H4`$%(Nu*QO)+bbQURgYQ-$tNDISfzQU?r;Xj6Brb zJ|gChG^{I3W#!iOn(22SLoCpaD?Rz9xtOsd33cH?4h7=)Y7;ME1FZXt>zsx*Wab}1 zwVj+BdmoUvltQibQxA!XHlIPe7-*Dw>a{VXXz$*af{{=jUxpiP!%L&Av!bRF#XNAc z6g5Jf^8(4mPlYA<5H1!UMVSgjDbyG<1wRkq?^JLY$6CFkI$t>%h3s`-luR48oj?g_ zAZ#-`m+}(x42xBKgr{@Q!y>cyp|-PaP?(Q*OPa#bm~bN1j-P*#c?dp{1tI}&A7Mt~ zX;V$VZw6SP>h)iP=8)>S`m1k%;18lz)fjOSzn!urI?u;IOl!6%Ac3b>8khfRXLLgN zZRU(v_LCr<P#@L@6$DB;2p!xnSTfU)Kzkm|e9_Ecu38;?fX4@y@G&NUb6Og4SNgB6 zgTi=pror9JjJb<(bLKZT5MU!*7A%ZVgWa9M?u<<$0F2Q)3&7@4k|z>5qQY8AiPze% zQqH=RXbmpUCc74#rKf#hGAIE%no7+MFFr$F#i0uv-MNh=rbrgm*!WJBB2<2CpgG}; zyT=MuEiG;9W^Wbm|H(xvCM7I^D_HAdkOFN6ea40Uf?jb}YktlK1q|X2-)4Q3>ECAO z6X`vjX1A!AXtybOTo|g!HjSzI6m|FN2tKmrDGw|Q&QpM6VjM{?F|W>-&W6!QDKnlZ z(z^ydtuw)oSZOVG3$AEw9lA~`9*aInOWv;oaDvJzM1!%F&{&FGwUSZai(xO7WFlQ& zV5mweIS6D@P1O5S0ui7|Z!A=<u?bmg#qK)Iypcr+Jj|~~!+%j1+r=^|WaVEK^Nu%p z(fmX%r_~&<gO}it8B=x^Q)AQ4h{CZHCpI+J8zs!id|+%aF*9fm4TvfTP$odGodEwP zGHA;~d#kRMdjXSLJ4-@vI}<fCe^jl!;=(p`^KBtcXJkRP4+zFImMzb(Y;}6()%w{} zemv4)eqP=;j#<m2s)<G~#$3g1QbfalMjcNKnoOsz3cu|iZ^^@P-&6aDkyh<mT<xFh zL&~^$)%ljP<^2rv_VIqy_4YCb{Kx^mk8tL^fj_^@0pAX7KM^-SKW@98Unqh16K47y zSwdYN@O)`hz=>si7*)`}M7<<BV#rKwPMTELKj961Wt6!jMn^-w_gEUj?Z9~1FAQx+ z4Dr^RIU}%3pY$DzOmxUK2-D<rnd#|Pq%09iU*DZwUZ3olxTeu}55c<&dNu$*M>yOA z;ZO)~MSb93N0tAcUymd_<`7I2JIRtJ(UuBp%CVYY15qPeX)l{zp@~^?sfX(ts9quo z^{1)w5i=Yerdp5iQfwrTN}7E<6!1-m_<tYXkL*c=FuhV;`)zTSBt-_n$25$3WC>sh zOZhf@?J0VH;c_@0t0p{IKCN%%$0uG#i^;9EJTqR~GTJykrPkKFpmLzw#h!zK-b5;W z*VP9Gz-z6cr8WwnwM-{wIcGsJ=0~S%*OSh=$|c6n=+3|x*JoQRqfE|PS7wb{1oSu8 z5n;`9C%j)e?PsUqDu7&NhhcL@D5E|1EZKb0Vw5`ymCz#SWo=TCkJE$ZC&E~{LMHPz zAN=4Oz~-guLWTLynK@o;8^5LcWKQqhslh>UpdtRQn3FvV)!iuzD&Z0wf_RjDtemSC zo;hViTQ{~4)URfNa)NtQA$<WKr)OmG-CxD@b=>JaZj&1{=Yo=R4(V<IzfdM;5ZZY` z=v|El3s||Lf7J!(yLuUvU#Lm+Kixw!zU~LsF7!y79C?!Po`L0*UGa{bH=Xi|Od;)t zeqGznAw<W<`-~2v&UkG~oi<mPj=dpaXa{xnio;pdheswXSOLY6mtz`U&SeKhc?&bp zfuMtD@04r)X6z~?2}`079U2o-$;($}WK~W}M-pB?1HI<R#@#wzfj2;qV;w6yX?5pq zWmV0{5PSqS1<&%Cn5J5bI03>XS29$`0X#~(4N$Mw=ej)&+46s=T2PBp)D}*xKd~Vn z<Z(NPF;?#DYIWl$VL{Av{ARmz-sN$LN}&e!XCs~L5J#<+JzLjabF;D*XTmg*lV>a{ zZe(26m@VvNgJaHIi#|2~J}sGiIal@B^7~qqA;2chUV9437p*{(dtzXiSs%!=3QSd$ zDK{J)yV417%<v_<9X>P2VZJU;)?K;+y}^iNFu@iF<7*gVSW`Ze)be@D7vaCckp;Vh z?=tWD(bc?DoD26Pd<7D?H2CeU@O=h}L$9-~5wu4C*Lx5A`IvJz<~P~-gLmm>RO&z? z|KLNzrT|(zTQH5?`AX?dR@q^4Mc_8p-hf(Uy#{&sv1J)}@{EfWutquebJ8sw@F-;1 zpbFk-G&ZT@z3GQlvrA;@cqcpQY{k7!3mT9TFW=|=*AESyc>-oH@}l8kj9CG8LBtgj zhfXp)8;WlXl6>(PbqxR>nbM;ytud&H2WDiXN_wMYjTA=#(}6n1P*nvv3ncmu$@2_v z9Bv~B-2owb6-n0px<HCeip$R}@4tvY#+bf<iV$*_z8+Jbz;%%ee_GhbwCxZo7<pSG z=f4C40o~;y{ma_BuzmgIhsPh8l(l~U_MnGph8E;X`ht$CpmAqv;^-qK&h9|zC8%|? z4KC17iAsLRqtX$z4Jundav-B&vT|&i;YdOx`o6A){Twq|R&Js{7>^r{Lb4GRiGfI_ zDvjllU`KG#_h?(Q2FF&7F0<}c?fngR&D)ZnzV=S;5i2mjnZuX8{_hIWF`h2rX0kPf z#(Cs98GCHGqnKKrdDb$`*;~A<1@!Bpj`D!|Ll#08zomXjD>=fnZ$J)`3(Sdn>?fvA z?TwO%D@v%<bRbJ4WE)(FMk&^Wa4s9cXh?%Q2#HZ|geGo>xnG%pvCX!=eFXj#k`ZU{ zdm=esafXCHX*Jfd1v&jq$u1^cb%>?9sa-{G<Z~xoX2>`%Yiy<dwpUkH7LE|ZA~rZ% zG0(c>oSc@R`PN483h*7dK%jFjeM7o&tVlTg6223BZ(m@tzM}!^qk%x|hz*_(p7HB~ z4lD7uI*ABR+EHUCR7kVPZAl8Y)F%xtN<3AH*KzU+64&W1{;fX}Ij;J@sXBeOHhe=s zMXDBrjuaF&k95L6gC@G`G!PTleq6dd`9Ax@;P>|!BO%Wm&;TXF4A7H_Xh19}=}7$* zcJ-;cHih<Wukqk+i5Zi|KqW_yT%|%Q#k<utnO`1412fLg{OxSFh9^!+8%Jt>ikL#f z+KP#Nn=QB1Mas2g#w$d~mHBHPJ}9nlYg>$GT+#9p=So-5ewG7pXp3*xc1>1P<_8cn zf^YBkPE%xqnF9GcCP3aczTq1XG~7dHUGN1ccg8!#K6>Pm?@A&7I<qAXD5-pl571%@ z$69q%0g>oF0l%-M+CZleXucP?nnDitb(G1&-ax=t!Yluh9qD<VtST#UbZ1&H$MvdL z&a!-&8P{MeX;mxdx=Xj@ShPM;;GHp{JL&5_aZucxC;-MdP7kd)w;CS-*E|<5i{p&D zw)FGZQ+_9furRe9)oSABK(MfmBX5%tudh%&4L9M#8IM^>A`)bNcHWyyZYYh#2cRAH zO+fuP_fb(*|N5w^Pt?*ZC8GcM@OK{Bpe&S;st}8y)hr_jnCCm7DWnn?-#_iK&JiNL zA7J#O27Z8pe0X?0DLE;tt2e-u^pK5LtK?5wsIO<wzo)~u{r%|u!&oOh5<&C;)d2Xe z&<>Mbm~LsRO$+Tfuutk34%-xqJ1?hOATbyb2N#cdV3`-o1v+-f*R6wt`i$=Cf4S&a z(tND8-XYrMKx=BrKmHhyhtWyP%1Ayvy4H9%4@8-8jjZ9`+)}4(qwiHF(N;O5q*pwD zWdSeS6|PrGSCzsh?uzR_N=|kxiZ&lU{;Ourj`Zs7ihDs2QMl+PYJH&6$~W#&j0L>< zp)E~7*5#Ne%=$8nPxWiWd`h%<Dy0W)itfZx$>4{${P81W%fThLo)L&JOc(Q=3PzXf z6wtmK97?&1-eQnk2k0GxCepxj(XsvV0+e+`%BX|+7Rz7TB&nR}rxbY4<!Uv>_vw`F zCV~XP7|Q)tIGj%#>v<74a|uI75IxOyORMKnK-#n@P4*)2$EljOqKzL)G@13#3NOrT zqcI~{?d&r5Dy`a$e37gpLF?Kv@ORKv7I4RFSYTd8YU3$is~nQ^s1{*eVAE*^cDgW0 zTD*j}mf8lR`<rajGp#n)^9UvH-bj)i(n-xMTwTjWb$f@Aea#^v9Bjfoh*B21s)$MF zXhm+m3ltiuJ9*v>4uG}70uw~d<uSMri{b*iO$C1@EAMj!n-?y?rzB6I%N1$_5!kOj z#tNIj?6KMC7iJKNiLa7u|6anG^}R3e>h6{`GHWW7v-RiT91%Q!WgvM5WI$LK(@O!i zXnd)Xp9@bxqg|O28HP>)$CJz}bn78SuGBA1QW`qgIX02KrQ3uhNZfb-;Rbl*Aq^%3 zgJB!q(r`HXh2gNXw_}xBR1rMxPoTO|Vw#t9nqQ*MIjI+(P`5H;9y<K`bis?hnvFS) zoM3<D*8Z;Kw_wOlbdh<9$;=-?wjj&~R7f;o*CSwtpzuYH_h3#>$voZV8`vEHacCmO zN1gLC^QE4hq~U-U8j{J>Nq>Sn?QY~_<l;5y?Wt!L1Xdw4E{hf|0~Z0iEZ~XE_7%X+ zy=Q4Rm6wb&j<w$&<KWk^Y`filFt0dcwA<An>tFfxmi^e&KOl-s#6*=>9z4=!mtpn3 z((JzrlpW4p3J)bhVeLfD(SrZB8dqW%hHh_>C2&*S=;|%4pV%6rYr=8J^o&A%hu^@U zFRTBPO+^c9*g_T%DRhskAP4+y5`(haPKqc?43&wjRx4QNpz`^7>v{0pv76e_M@^N= zWny!~snr3cOMIn$kdeQw5LjSz>}@folhpPdmSMDCN4m{cFQ}gcZSU@U9NYhV%0-e* zdtYW2G#KR?EVqF6#uBqqLYT1QTcPQAufoszL`FO*wjhdVlD1eN@eYt?859J$T_~B# z88Pt~m#)5jm`GEw=damtF=8#wg$+jC{2%Sz#U#!SmRPQMsg6vCpE!CdXjBmDBRF7d z+M->(E$p<fe5f=c?}>T9&sSFE(+{8BU~jW>g4X^qL_HU369fu*a(A3SDs_>5FR*>N zL<X*5c3$E7nkr-cl0;w<5%CVepFIn*Nu$$VvmK`FJb_*_Obi9_XDVm8$%o-*nIPel z%0W&a$b%?|@xx>6lGO?0+T<79K>*5UX8Uy8AWkUm9s)FWk?c#^@5Hql?4$KR#l~RL z7oo;daM!sQU4~IbGhM0hIlHk_htwCBoqHwxY5ZgShpXGZYLq~>9OayV<i-W&97n!c zzjFm!7C2amwn@!}Lkd}wl}R%=9(`ReLc{IZIdC*^`nA%~pSzQh{IgJ0X#~jJV0Zc5 z?#B3X$Nj~_X46XBG9?3V=w9OYxGf8Ikhzm$dQ=UfPcDZ2*GnhQdH85yk>G`qD7dk_ z38slB93fr!uKK_(9(U(Wer~?^_oqAfZ=2k(odI}@Ag!G)9t<9PIlP0=flh6C`;K;A zZ>zATOP&bD#%=cD78`tQOr%+eP(s7C_8{B*TaJii-}Og~Anz2WL+ON5e+Q)5u=<J8 z5CKDZe}e$!0C8a-`)TcN?fa5;#G_fDbhz-`acN1K4AwwZN?gFZvV~LqiiNJvdfO_? zV`Wt_*ID}MJdOPO=?l>fJaT*i(b~bjgxpULCiG@$H5ATYVV|x{A!z39=&5x--54ZF z(R)!$-5_J5uMj8KOG^<BCX6GQ{$THr5-xj87V~7+uyfeYJRx;D#>i&s6Z&urilGr% zHBzTD45$FR6|lpRS4Q$P+l94fi4vL0n#kDErMd>2J)q}M4hnogT?-<$Is|q@8+fGZ zRl9g5CnxAa*c)jt^>f3pMGDZQ#jgu=Sbh=9t_$mxC4nhj5`YtFYT@uSlw`MxYzO0< z1vc|U%{sQ_Yyc2*{4y%G#1i+J?ZW_<>YoMLd#b?elzu~n0#WN^H5I5|L4S2oX6!2t z;#4$IPHY@3jv*xKJ6OU7$47#WHj!yJ)^<3cL#53gr}{R4S9;dXc<9NCzEcxbUl!nI zyeb+0)T|EvCpghc>$GpF>w|&ZJ0uX+ep`XeWS(r$KV@sfH8{N!Gc4bXmm9TolEy)q z=lFn8Z=62LU5!e0jo9vJcY*fh=O+7b9yzHl-%rmZU7v5ZEi-=1xBgn5phc@{?>2>^ z>2R}KOW#vzx`SU?y-a;bDAsEe!*(d=h$78IXQqu{&<fOA=3wSiVykRb?aS9E#gnez zlRC(y3&u#u_}ZeIi2ZD(O#<wZi836Cgw+A}h+16Uh*DQE$79fK<|*u8%2AzjQZc-e z=84Pe3C$)b%megQ9Ke+TD2fKnCV4Ozyt^UaLH-mAXQvKe&TpUhO>y`dglG>yqJ8Z~ zgEhFV_2FezRjVT+Y$69S-|>=ZOWI5OBe_rt6Ar^cxrV5#u`UYqv}ZDwP*_tG!JGpt zO;=`X7>!`-OIU_n2Rr<JMm{=vei`yqVVa*3FPaJs^uEn(Jnk%R*j#fV=)LXxz?4hi zYPNIV(f+Pl#daVcY9mx*C$|}t5BQ~ZNCH-x{Py0-rzFLd$-ykwK=6Kdelq7D;D8pQ z1_Prg-}3U}bX2m|foBV%^{`p;RKEs<>s-!Sn5QE!5$ITF)OQNT)m}+?Q00w?E5;jd z`V;bq6_kF8qQR70l#r}7a#~&C|Gl+USpn<ufy}|aX$Im~bYH3(T{9Ja-Wmxl7S<x% zm%q+AD9tfV+rHjm<TnvvHFwEyGxJ%^GBck_6nz0|3J;|{h6!i$uCtV;8oo1dVRkV> z^s-mX0#z;x2f6r7JifQ>?_y7c$_<x7NBP#!y>KfoIt~QA?5iF2boi}@ONx`yHDO!U z{@4N3@72I|`kPQrF5d)*k5!H{#%GEY(l8M5PMK2<bhp1}F|W<C5m^&7&AGO~`}dn3 z^*WF(o|KO4E7>aZ>=eW&dp0a!+d1?HS68exc*{V;gKvX2Jv*0GC-|dHdeMGzkfgr@ zQSj~l1%a0)6xU21rg1*KFCakuYjIjb=GSgv$g%fEnsS1+!~2=M&UTD~nn;VffcJFk z>agwvR@zP;olS9XxQKOKN8rHB2Is&ihK2Ix+|QDy`zodasl^u6DIX3XF|$cP1}n~8 z)=gq2J&A3{kAq>3<-fGFwGaet#|P=H_2x4+5KB+Exqcy+Y7WTYyc*hB*{Q)?AhMqo zHpK^sRhyRJ-3jX_Ps46u6fVnb#&J{M?IW|-T&MZ2#752}hPtl=l*uT>Ib`66t_JqB zW`z-S=P%mfTz#gJF`p`cS0J~svLL2=9cmV)WljXuwa{b_$qT6wG!SPbF_bOgpYi^G zp1w|o4cRoxrL6vdhNO`6a5fDcPZVG9KPEW2Ka6qw+wTJ&qf$3~Kb{ud?(+nnxCY?% zNh9eH*n&B+i8IHnL{`j)rI_w<Esmw~wabC{Zv6Q>17Ax(mMTXRxMj^5ro#INH4E%9 znJyk}8~n7VyH9cL&uSB|+rEu6>IV=7e!VCHi!?WAO~U#SN_7RmUHXUK)Um_c>L-DL zzz+2c3DvYqy*&Ud`(vnN^DZK__vK}7PCG$B^JjW}0cVq#z{S$$KI`yb^ftAT?FSx> z=?-5gbTv_15W8k8U{9w2)U{GR?s5cw&ZRbwsokqdJCmGc^XPL*=`<?xDDt0q>X*5Q zb+CFBWX${g0Y+&54a=33+SmuxlXo-nR<O#uQ)ywgoL+-`f@O!?v2q!FzIE|REIyUf zLJZ8WIcNi03zd+S%a#-K{2%tNUq*w1<C+VyLXg6}K3JEUz<eJ<C6bc(iHcHXx(ayd z#e$VGTW!QBk~Rez_^d6eXgiB^cn=so%B#(60v~X#Jqspqn4oZJCOt$QR>_Y~kkG8{ zb=9RJ&YpE{n8P;g6HblCZNpE<a^^x!d0hjtdgc6Ci)S|O0*F5bg(}XV(M*cJXCC%C zU(tMh@W;b`0>cpzPRvl(k$2pw#mBD4W}{N%8l0+A-n(^HQg}97N~wwLh@G%&E<uTc zNX-tFpkmdyvK%{Fr@AwMFr-AJQ>cu;358aXuw|6xh2A9ZQcu1HtyfAz!y@K=7Dl@W zTYy5W$)==2x8xvz@HNQGm|U{gA4^Z&H$BOq^w5GYZU93;1O=x1#1+n7#8!pf{h{7B zW5?)G7M=PGgh;EOra(R8>>WcpANI%c*bjCB#EubXGRwGixG7TZe$2-XZs<@&9_r*M z_gZZx1&A3jKJ~bPcz<Me`0h#B?+NLzaCH8xxk#~y=w}i@a?#Q{McW^xRZy(;_F!xb zSx?}fz>V*e-jE+ic#uA-?Y1b)?@9=JBgTGH5tiJg?3pxaLiHW#QChVDHnY0AT(Gx_ zVRiSB3rjgDb<OoD+1kBr5)zE?S6K{{4lrWdEH`pOX3b=l$kZMk0!rP*tIihV=&J+_ z7ogmlIUDH+o<&;+c>aYTX;?k4qkAWJ@6Td-K;wzs`6XZdCFVm)T}x)$S?ofXXng>Q zNreDxCpsVElRM*6e7`KkMfC5Vi00nyg)F^1iE2D79Z4${3Os^7?p;R^!ApU8F>&lD z*|<oq0w9*E%UxJS%@qu)uDL>W&qmo`wK;;Bs&KVfrK*bEX=2rb6Y7$naxLbyXMSR} zKuCA|ET*HKBl*Wggz0s3ZbZ=d+XyXf5`3tcaS?I)bH^77dxlxU#<vKIW)FtJ25t|W zlNePZ(*9J*x+|!g)n?PIFDdl~(B(FIuot$(j6S<z<;?{*WOtIIar6u-FB!RM)tW8l zw^nY2_G@|~+g&0mmJhR!CB?_sOo)6e5Dv25vLLd6yVK$E#r2^eQ6XaVY85k5P?BQ0 z+z!ayo0X}b3F8|BNGcC)u@mnZ)J^(}c(8;yX3zAvKHWf{&cq+GvS;kdRai8^Jdbpo z1&;Cv1*Srs=&7>b=djy`1DS->=r?t&4W(J)wq&uE4<VCzmTqwLrbI>G5I0H-Jcsk8 zphv*Zx*-_kiu_Ghi~4=lYq*h{m#0E24QsPd@bt`Ihhw1MLPeS-p<GM=pIu4CB>fls z1aqz5mWY`9`6ISi-8!OiLjF1B<gNj&q;Dw}A#o*SR!>U)J2RZ0C4wX$9Q5x~YLu^F z^L=a;psb1E_`?z-LRNjV{G%WWD73~az|G^c;thOx$$qM4b5IRnGE22~+$V7~$Hj7% z;5kMz_KFsM=-g*XIAz3JykFEfU!vwBN0rk4`L<>e2XiK90k(!a`B0jSsM+nVyqUsE zKad?q+oMy4toN$5)_t^_BdAcy&+Suc7q{|<&!vV-Yw5$%+BuzbGuI*nsQqMDvT{M> z&6M;IXlX~N<Fg+XgD~=EBT1{ozH`0!w=gcdAnW97j5ZFNDKu~w*b>G{^JQ1VL{*$F z3k+}VU3aZVImQWVV9Yyh<yuma8CZ+Zpy7Tc2rh%(gV;eWFLW;ZDFdBHFZYfh8t<~w zc2qzVi3s8M!gN6rI`eD<Jd~_Ac{F7xF6nKa_8&U$X|k}kPBfA=iSw;T?xex25K(Fz zzN65j3!R~-3~o+X-9j3ahcP;ElXi|>>duIg59BPP)Il_KuEc33wwx~9;?`rWpl^rV zJgLB&AP*9d|LJ?%$&<+dGh~eOws$FbW2kIazzb2b0?b^4dwT!@ep|3J%5h6z>B+C+ zYJ+s1hgM_vZIpW}CrZ-l;K1tR;p`$D`*F|0XuPE$o-bLmMIItV^(%2Y$TJktxiaaL zs1aGAty}8oh+gw=!xuo*n1JdGVV@V9)wxXvztd-+_2m$=!mdD5bHAXa!8{#{D4E~F zo-(!LVqs-~H{kaK5PtejbqVfht{+x5$3R<DW8ZW~@8H4QIWc_+wFoI4ayHF`k4YQu zfN?*!W08*`kqQL*V;ia;!~xqAg+g(jJ+ZsT$!65mQ3koWoC_*S!eW2kr~5<0b|PvW z2bvbEStJ5-PU|HdlbrTwMS)Eb7zft50B;+d`eHYVgDfZuJn2HF&FlkqaKB?cUU#{R z5{hetFiBMB9Z5*Wk~+u=B;|qtyn*yKYw=VvVb0%GjWZ3|F?_U9jV77L-OO9$T9!F| zUJamEK%on-&gME*5@2tMMwzIy5A&`93%Fz5wvcyPUl$jVOrcm^nnrHCo>2rocPz)~ zBG!sTE4dVb0wb=ifa-v>BS)`V6mdBHQs|)Z{DtlOd&cp!&ua-Yu>Kr*&W$ocea{31 zLgL3YD2grZat^iG<GCn>`d)gPVds@@19+lEjt_D6mTN*}dqqC_NCgN?2IZhB2170q zo_7)(jbE8Pj{<iYsGjP!Fwv$@*Rj%w5u@OUwR(X-_aP6x28w$|L4wPVwUu|YBn0?C z3AYqO<f#`oY#?6!aBMgZhQi}qBa06&>l6Qh*0xooA*_I?7nvg^DS!U_>04B7>uM9d zTD^He>aNIdwzK@#dcyU6`pSDuKlp9KxQbw={O!5q>-!yWFnWnKeMZ4ey`G?ZOs(Ub zbz%u%gc@X>J5<fDy9fihSF4rdClPw##1Z~$*Kx)fvho8d{&l}U`o7&E3BRxRb&L0; zAkFUvpm#y*-J<+F*KOi8`)n>_i$s>Wq-5}mki#21p#4z%K!*B_u;Vb5!q03?^nC<F ziD!2|YWo9iP1}fzSIt__>ouzk6-v1TudrZ&P6bI_T#J2Y0ai~Zd+F5YtNPd0=)^@9 z>4nbwDTk?<?x^5@%*45zr&pF83-GWY?Y&*$yMuV0#&PaIz|k_5JPfwlD0Y}Qv@RPP zk&Z&q+?QC#a4NJ7>9Vmxo!%{TaZus=Ep9p+V<zyD@6O|8x2k4`lBr!1NzzOGs7nTb zZa?@FjVWv7q7lFb;1bY>cr*XRG6k5DeEU1)h72diK&1hzR77L*jYCTe0`LiTc+UmC zQT;irst~)QB$OAJJpb@_@3w+|dkQ@Do;!yMJ;KQUd|8f^sHniMD$32{?eD_LO~mcx z$qnPsXNUruWIS-g-Q$&Ud5ej8ohG>yXw-B;amZ~vvq>kCx85~->Sns@`OA5g1fG-- z=yx<){hG6!(TvCH3N7_qYG^41!!G?|HrC(lh|z;<lfH1bTSRt0anlEa^O~3!c+U@{ zJY6$S^t2?c3$Lk8A|9MmaV|i$_$%ZwQQd;eO|maey{+f(sy1$NARAlJak?c7+?&#+ zolF!MAIj0HIsK^!{Un|fvEMZ4vvX>2MX50fk8B5}LnwpLLQPLg<Dh5vAUbip@`%AE zhnJrIVS<re>9u&nHsi*jQ=OciIO<NR`f#ucu5wCLVZUAY+$>}{{|BxF?JV4Ywn+Z= z@veauQtf*9nF#Z3CPmfT*q~Jx$fFy4LpD=Hona5M<UvOhan=aEJBz9nG=E{?^LLEU z5$B6`o#lWaKT}M$x3hf9t~p3+)wL_HN+DyJfZ?c!7O>Z^ds8Gcjh<BZbr3WPuCXS` z$X~0t%q!3NrOmWrk@{yd_sj3?Vd%T1qHwxiFV|UAHX;Gf{KlqG%;5%V+a1{b!t~)A zH_9?P!k8Tgka#l5YD)#pwFk5b4xj#gwC^P7xCGRlh$XR$S&r4Em3=|W>a;Epe~ZjL zgT(X+L&VQ+x(mSuS2%e?dsj89Psu&0M_69<|APklmvx6pK^`#rg>hwr`^R`AMFKzs z{vYzh|Mb*Esab!SUy(m9^@Vex$qcjggXxX~O@#dlg?%gW;+^zoWwr|w2INTC<HHj$ z-miF-8mLB+dA)0?H*eSDhC*CDM3mx~JHsRkZm+f`9jIx(Y%~RUFp}RjRN=}b`*3!N zsM8=NrP-~3ei14vN!z^h2vY+K5y@-|-+B7;XDU^AMY%|yn5xl;(HOYKFGTfVdD34> z@~|WQ(x>uQekCWXP&;IG6{~FN1O@z1{Dm_@cx7YDkPzeAyq`IoJKd^=b>o1e*S~i0 zFh|n5tnorwZ<+c2ZkGK1_vz^G?!=s{;&iK9ODj+a_<;3lnw=YGf{b>C;N3`286cgj z`RoBht$dDCEv%Nf6j{*#f-~L$9xN@(l5FX;_uf=I-tv(XO$V+QnUPyAKZH5q1T*NO z3thxKAc`e)2}d>NZ4Qu{D;Ixyaq8fCz4_J1gXfoyJ4GhVQeL%0sCG8DAb-|TOAn6~ zjvZbCeAEgPj}q1-Ei?7caH|+N8Gacz$SBO;F}0$Kiu+>>>_c%JoaaP#GpI#DEebr0 zFZ-Qk6Io4bx=d^P%3}q*(1+xfB%5aOQ*+MqXURcR2~o~*&(?$_F~p%6PQ{WGbJp4x zHMgrr452wCN?UfwIGK{Vwri>Lo+-Lx_13fj3Ngy72+6gE_R%}nQ!yM7)VT4=MiK-Z zGYi#l;+AiZ)Qnj|s|ObY2BEV`Nk|IQ>NAlV!1m9na7tC`Rx@qB`US-NY#=3H;De>m z@{E$q?_lYIKf`k_xMxu2=s(&LOH<ynqKnt@0#7|3M$_`K`+Zra*U-oOAp7M^e`s|9 z$>|<5c4)SYlBcF5YZ0LnVTVU^Mw3liQ^Sp;-kAWkvdn*K7gvXl8q>j!P|>_NdEhry z!q{bIk#9D^;3tkI7C?*<%Ds=jO->k*B&6vfkFvIjXCxv0xMp}CATUq1QK4LM8Qomb zE~Po8i{YQ?`n<SYaz%PPCV}UmL%N;?{@SS-eam1ubKP_yb98LmMCWm^&H2;)QZ*4y zkn@r-X;2QnXgU;uq@zuT@qUq68nf(oUGDm3F2u5ey6PChV4V)J6v@fNv|kA^@DXHK z>Y2%nI(A_#e1_|W>9YcN&}!10`Ye#|7}a9q1+oOoYqJ3CzD&gD?I8?T$?%T>c7^=1 zd4=2#hEllfN7)z8lOIR^SfDJYKZEUZK}}&CQsPhg(S1ehbM3ipCwcYK_D=ZNt=Aa! zO8)#~?`m)k!J9Ml@~~~^cl4!xG`q{^->44(H^Ie|_pvyittbg>SEDR()z7wV!T)px z|DuG=`zJ@<e02r-DYFy+`u}idpeO;b5Qt^a<>J#hj<hvjkm)nTf7E-|PyeX*{x2O` zmKHGb4`dpL8Nm9V5>%K0A^-5gHdz6z|3BCUn+<@Aitw+WR?nh?9Q*>5J*Nok0SHob z#Q_Na`L=^NVCx@Op0DM=!s6FsV~{C+%5Zoo-Y*E~{}0D3O%ibR53npk=D+{IpbUWa zA72>ny_K!m7gG!xHf6>e1}{bS6#?o0DS}M_;QJ44r&$H?U$mWP6~G(Vzu!XeN@(o2 zFF*Dq(mzEIz9As}i&p)A-opRvH5=8v9alN9KXc^sq-)H0dkmntg2@k>g7@p#Em8_E zY=pdf<HNL89DZ>Nwfa2r*Y#k7>9)4LtP-8MFUU`2=o2|^iDnbgWjZO+c+V;FVhCb_ zI_L@}S;**O{U$>FEow3Bo6-u*l*Ij+twIC$U556L%mkV+QEySV*m1;%%;0hYiJl!* zGV~aEgr4yAzNZbY<K&=C;9j6wGqRCK&a9{!?Vyq-4UYVxGX~_VJ>9Mj0$dTT5hpsa zYHw2bkbQivBMR%}4U{;;%S(E_IA=oJaa+lI#?mo_1??s-Tt%osOg$BFWYNzpRJ8MA zPgH>EJD{ByAJrGqak(@|#WGFmv9HFKL2l!5$yUg!(jt8`0|!Tp-&ILmvPQe+tiyH4 zl_aj_PS2Gm3(-ov#y|<_7o!fge;JVCkE;Q-=LG*~a*)KzT5nd~-yx>cq<9|ONNVP& z?7H#c3O^H<+UKW==f`7UH%MI>hd5OIo0&#i0;v8IL`dnr8E>20oNLYIW~-U)mVQ?2 z();a){tEK~vz8iM+VF7}v)oKl?6FKCF}L36=7X(`t*`ra<F!<P=Thqr<x&ue3XxvL z(`5cDFFBl!7_eehbrw(y+BA-0daq>{x;Be%y<6f#0uEHx+!EHn5=X8<6BJ1GE7U_t z<hNGH`oU18rarYnVKXV2+vh$CF_w|CeBC+bd%j4Yz2#SbhNEL82)4xIsw>tQ!)S)N zK=<Q-RthIsVz4x5+1EFuqvKV_!5E;xj8_We9&$Z=R;mjY$ihQN<J3%H|2w_DPes02 ze!4_Y!2#b3V#x$hWQv2giQS4@&1KJIUUc}##<$27>Hr*lbCCMo*0G|$jBqf_+?zP> z!quOibGf_!X2j5p?-G9{G1_{qPHP{zIa6-UR^tI_V;fQX01rNYaT2fHSdVU+mqQpO z!;S_mY1ueBcai;<dx($xGd??g#n0%eDpxWeS<|bIPoNc0UeU|1j!aw`a*^)`zGOd} zXgolr&;e`tz(K`!9g6JNH4)6$eOEi)pGTn{A)Omd#P+z!0raN|Yc{T0auv@3F!g<l z^*e*ar~<8Vi4LVW&CI^ydpT)<A|BmG<K@gX#RP#`YoVwNgf$A;DO;!XdCG@n3JI4n zt5O4gON~2Vi0`Ul1^oOYjkJtu>5N4)kb+IjvqF1Lk|$?M<LBj$nVP?%-UiHlTm_Sh z#ir4HphH)9_iX+`IVJMmRJrc7Rx#aPSrxA7q@JCb-vtX8s#GmUm>BK}ta^bGlk5ps zFB&Z0AC@F`9fMs4=$F5VjA&0Kc_}{_X_e_USj&TeRev2!0-r~Z0(V>NJhUk*89JDe zr4^vRUBg1gU#?CF7g9R?44!FhXKj~3Mqx`SWQEN3Ym;^@uf<T5S8~YTW^_Md9hC%w zF6El<QOpT~aI9u5iTQ~sUWQKrWtBbbE-L?UiA~J5zDD-7z@0Df)BrWtgGR&VDK7WG zQchw69A`jEEs;L){%Onaz-|qg<LQ6qhD;A_K;iL=`{ka3VEwI6)t!%8-X|hsqz1;{ z{=3;rx=wJHOQxuTcj9Ld0cYGzHm)HgVF~GY;S3(dD|u%c)I2daQ}mhTErx<0cV0HM z<SeU4#6=VteUKRjY|kuqCSe_*L?^rSnkkYUNZg&beJ-Hb%tc(nHVfBOMO={$?T<&a z%Hp-O9TaT2yyQ5~NoI%)Bx%8(v|4(uL0nrH5ByE7)fd>}IxR>Y_+W)1l^P_2VPofn zAc0~=poXU4ZQ6Tm^+JL;-kaBW&LG^v+t*{%m`JgD;ty)MkY7gARJU5$jtT1uHBPh$ zMCCq09*d#aN6&Ir6d?EnyJ32A;-et}lY<nwmQY=Y)#GJ~<tVq|6?4{H<Mam!bK8kZ zrTaFDeQ#3zD^aZb3<oNdoe-Bc&<g7V=^=Rahx!3BDq1p>c$2a&Ihk9@lPb=l8f1jt zEnNT|h?t;}{le({QBwcgK71$t5-dK10(A1oOLKrnL+0*b6$f#KF3Xi8zyNRl6}>Oz z5}ymV$cI~NC5qaMFhu*+1I1?T)#c$eD_OU)Vr?=3WXMQ08|M@7pEUj#0*+G;@E^gX zqaI-Vp9pk2Ee%!t3Ta!Ye@JcTZ~wzA3p4~+{-aztHwOHdmXE>&(ECpYpP2#v!|bFn z2W<Wm*>E=hm6$2*Z{Rr1`Zj>{f3on+0q|e?O<qSp%0F?MEoayq`jyBEfPeH2uP%W9 z(h{P%0`kEA9q_@r1L1UE&uyplxC5B}H>*ujqOR>K6MFE~Ep6pGSwo_ekTyE#LNPHy z8P?qDMKIFXGU5&TP}~K2vE`@thp!N6VOcUr5BHU$UXJ5;3IG(cX=62c5Hgb<OqsAQ z3mtS2U`{3fJD`V{$O73|ZLZJXQIP;}%Yp{1??{HWA`T$x1}MRL6%>h|Yu3|C+-klt zlqEoZT?06~oqMBwd)|YQ@r_*kvzX)|lR)OWYJ!v$seFJet<4rj*cF45#;`bY+KT2r zJa+y(aJ;q7>6x#EsR&CFVP$Yc7h-fksJPc&ZCk2#KOvsjD3yO1);p3_1b^bYE&vaF z^>z~cE)og#2+lHkNpNkRuo3^Ut<yVBPHd=ww=)uhgaX&5atFW7a<Vx}s)wK*r@*Q^ z%>>wa3k78j0M)0X_(fh&^^MqU6<Q!luBXcn=t>x93L+H_`{VtWkyu0}oD38aYh6gh zge@=e>fVpN^@BUPzS|So2U=1UA@N9HFRZ6F^(jpg!ZC#GY_tu{-t@j3HcDF^a%i^* z5y!Ai01sL#0b8BUEf`HW+2jO!lM`W=m4D=*J7J4=W?+)Ss;eE3c*MPvGkX-)*>BB4 zd;j7pJ;Gm3!uw=1Cmy_EH0JBx-QZ(nyXaJ5lzG%R)zuSryoU4qv_F4iBsC?eTo`>` zEX>Rf1V85p7-M5qN~N5hPP9i((`7n(AJFG$vUGm?*lz9lVfmpn8WGbyV`z2qPP*o1 zE%pwtB>1LQxpG_Dar6oDpBD2qI!&SQ0`UG{QAtXk2ozegrxzgppE{2W{IAv|1N^F% z|29!x`vLx=UZM2|;6eRcg(4aD-?cq73~>8T<0BC5X;=LkJgUQ{?4W_;r6_<RBL8dT z_rFM*qSU-?SGoQ*@-zIM5#NAJ)sUF4)S!K$TV%=O+;QSm6p^_MS`(cWk=3hq-?p`v z8VGXH@B?}8=;E>c7EvsoiJ34@XXwI^bkf-0pJ>uKdxl7ePST`UkpcU9#+Ox=bzHUJ zH;}@(!O-OG2SpfqQFmkLfm0DHzC~IUH@tMX^T;j-GT#HkFzciyw((t8Ce4PWTaipP zj`|u&(xyf7NTupJa~^ma;5)1(qYyC$;82A|wsuh5q5#Fd68#13vioey@xzVZxw+e; z;Jd)n-<`u3mZ#ST$SB1_u4rCOcfbH29I#569mkpH(zro~!K{;0QzMDEG!sXj7lZYB znyj$!LUw&b|0q&t9cca;u_oAhQ6F+tuo(e`e}TiT(=(JY{uU(1rP07uU2R+3b8u(s z!Px<CQv#Ivqz1_f!BUS@zLT_cB6k#?<lPz2+P8UmMoi77g+LVT!yz8(hMZ<E1p<_2 zCZ7MA-^`y4hOuw1hEnYJha%?hY!?zDSfJ<3G7a|mxbft6>|L{+4>S-iiDCD%64A{P zwSXE*_ES~hRl;E6JDK!nlJRdAnHO`@o9`Pt`TxY-^$`?+{LweJIiop`mpOAe!W=!4 zyR?Q8O{@|A&h$56XC{}IZ*`$_7?_}7pawxxP*8Jb@C?QJsm=3QReW7!*cE}5$L!xa zz?a(;s3YdS&H`v*Aiw2f{%+C@T{sZ?PSnGr)g5H@M8oj}if?;x@`u;s_w&uqG(X5@ zl{0o4jH~G(9gE{EXU078IXH9H=V7W@)N!l+->FA#dT-g`+-8<D-=#>>%z(oX<;9T- za_r=})^h6R)Q)o7yq<To*|U>R_j(Vu7i$}^oYxK0{zl(f*?n9DFt26y5gM2qQ!`U! zjg#4A5O!I7L>T}nsSsBF+R=!2QZgFwRNi9tnDjcdU0Z5Zv%w*$-@#r^(PR>4Fwfyx z#atm{&%Bs1XFP*K3)SMQQ-QOH9{PSO3{C2Utx^^cc?4S~+*N*zqn&@(3I%JkA;jc# zQUMVkL1%<AUzIvDb2LtEg*AgI*&5`<lGKrxb8$L3ivP|)g*^2(BJC`_j9q!hRd&G` z5}U4P#r02Mqr|e)kpO-0%*2p-t<y24_1@f}%Do*%b#n&@k_L+e4KQL*_VL5&c4yk^ zB_zQ}FfxNWBAwU3Qn*T7tOBtnxjt1<4n3Di8ChyBCXEOgqj{a|NT%>lc3B@i+KZ>u z&;)=qF#M1~aXZi^_fjc`X-fL9-_m-v^<*(cJMO6d#d^NxBUZUp$6dQ_kN^c)?Zm}* zD>&I88@w%$;DEWrdLXnFg_zkw@WBd4eWh+0rJQb#RFOi)sXm@t+X*mls=U-|vM(?V zG-A|HiAN#80AuZsPVdbT`Uio1bN00nK}O`()h|A2nDbrbeM-+VzDv914c(p6s=N>n z8qhd5=e16Pbju9PtDN)R({{LZk6(6c%HD$iA$$X%LH=cLf{Od^$*N==pc(w%!K*az zWZ(J~yb%AIS>vZrCjpTDxAcutQIua3g7=xKsdbYiNms~4*P2mH7-VB3m_B~^uHiJn zePJ!h(AHL&8}%umAD^rMyUO1%vhwk^@{y@Bg1^gEB~!!{Excc(0$Ki@EdFOEOhCBF zs=Zdg_aRAZnbcvvlmVXYx*rF?feuAFW+m?E1Y;SiCo*-Ixx>G`o~DmOh|^(R9bK(& z$iR080Gh((Y^sv{5ERs=Q@d7G{&WsQ#?vqb?-M<jl<eY}W6zeD*On_@>dL@GB=X0+ z?L$k_=sNR!XrP3FVZ=Ouhu|J5Bm~qRJ`&y(3><U)tvt1N+mTq-uF4n~M&oJcDc{X4 z_`BQecCLq6UgEvp*e((ARgwokGMLh=Z=a2yPb#{N*q<im&kuNjfZ{Kib$@m~9^yuX zD{J43lmKfui7YBbTw=I0W^Iz=bdEQ&RsLLi$=4PdUkfH<wNMKybX;RUqPbNfR<MFK z9ZPV>VlkyQ#Y70w*jiX1A`GoTw1UMx5$v$$4Tw%5H4Pnn<#GVx4qAt(O+r=Wt0@9K zd@VzdT^j+ZOmGuwdSF!Q0?Gtgw;Y&@%<hbZ&zYdy!2ql#=1)>)`Jc%TzQ)s16WKbG zK#e@ZRMrGKtDI}efT*^5`x;eLI5}bt79A?hr0lG;t{csrc4IgoSqkL;$JaMSSGI6j zM<=$8ifyZ6+qPL1^Tf7YvCWDrPQ|v3itRu5s~&xO^cej=?3eR!_RC(HYtA*JRAyO! zyRYH$1^ls#<JoFz7jEaVnP8K52(@q$<H{t%O_xqly#Tx5-xoh;!@zL?@`Ui$B=a#B zw-ZY+Xrc?~6s-C(wXMbqE2ng`M{vsPC?c(8AS?E*VbSr9tkvpe@U0em=M)&l4fn<c zP&A%<ZJa%Hw)+4t9QJ1HP4;G-_MR1M@hO!wuHs)lvJ9wm+XeY0(~Xw*Na+z=Pn0A# z`-~5}sx2Ceb`BC7(idoP9X!8aoyN>P=#P#Aou&;M-FXM<M-BmK%hhZ)t1+sv6aNd$ z(nHkPzWRi!Vv$psy+1$va4<xa|4*rI(y(*N6i0rqHu%O`1>O(Vx%3T}y?ih_aj<Ib zSk)tQ1<}bd)S1I^Y@I~w>apAH;w!XKLYvem6wFT_57&p~PEu4pp)R6*8mzeo6d4u< z^br-z@4|0s)HIHCyxEd)o+JvWIY9eD`Ps1U4kfVAh)Ct$QH;oa@!oUdpI=f?KPdXF zw@r#f7duSLu3Ilva%Of0l5a5{YRD8K5BZ8%`f+^T4s2J>xU%Ibqw125*bT;23B@j2 zf2Nc$o)Mr=3?DsT#FUg!zOM?FSVjdkDbge+D%H683e~>+?p*7>#PlX_N(Ux$IOUOk z>Yk^chBo$nCq2A{?)AK`hn&QHukR^i+D(JLD=LSpak<}ozyFjkOpX_H*;nxTXtjn_ zp|Di<FjL56oZw$Pv)liGkBwQ2yIJbo@pr~Cf`yY`BTI#&fn6MQa$5us{N>Xt4DfZ$ z#u^oU5%iuRLWDw4Ymj$n%m-o&j5ezcsLI|w!-0hO0t|=6O32xq&2yWMQK&Ku(~bG) z8%+XCWyAmEODaBx7daJLCP)RT1gLA0g<W#PLI6D7bD(Nk>?7cHHBnJC75HxPQk>6n z6eE0l0t!`gD|A=E<c)VBsqK$K+^eUo{V|l`BEUE#f_AW(kDCI_S%8sOD~!tb%gT)h zR`HZV5$V*;xdpKpiycE)8)_UMUGqi^j_LV5(}o&b_Ai?4Z`Q8-1bkixBf50Us6*$J zmYkeB$f$*zdPbHGsYMKAzmwg=XVHPIn}~?9h~2+h$ZYhg9yw_9^1DG!pgX}TLufA8 z)v>vYa~r@;!J)Z|G=YWCGs?`QTh{*h(OQXMhOm*;$^rTYHUag$qu<Chp}px?8!llV zWWOYmno{Io@)@!0$<Qnu4S<nZy@I5?MJBvbcD%r9gO-#krWL`gH7UZuk$d%(ypd}3 z%7Arq#XP~X93ie5o}p&7!RP^B;CcT%Ky9-0nd1^>s9jFEfdkPir(x#qWp}+mVmB}_ z4t2M=#qL3_pb5CBQkk57sfvsB7D5<x=5qIFc=D++Y-MjfdHcK8Dw0gsCGnY><AZb) z@0PWOBD!~JSMepTurv^2-TWZ@TE(cb3(TK28+t{-B_S$y`7>**(o7y*zyM~QoY@dx z4$?<h4&W2)p#gr{AnC}c2hif0^6cVKgLy=AQ~0*#7PYfG>5Ma(<KR=$$iXCn;6wA2 zaNf()_106)Xc-$hf9>hIBUCugBC0wc1Y$J<I*XsI*}ae4l2hT~q{gYu7bU`r5u4z^ zp-NbGzFd({ib)Qwvc}Dp&B@)Mr<cEG_b~u;{aMkIUV-(f^Ubw0%s(6qD4?E@1PaTl zFUHI2={uDpL&TE*SVFxH{&}Yusc-B;VbnN_wr>$$qaW;48Pb@L$F7rO@-zWildo_< zvcQoGUuPkU$TJ(u(NPXsFoWxXV-*Wb$_EW3Mz_N-fCPisj<V(q<|n}z1FW_+<CjdM zHRTI2r~s=uj@(2NU?MNjo+-l5UcQbf(NX`wBuUm6hUuekSo)RJ$-g|iu&%r@i-ftd zs=k*Ks$C^7P30+!sg{wQEnlUr`aBc%3W8{iEWB$9B<jB3Owg}!TkY0Sl)VKCV>EYs zQE7J35wEn^Jo&27v4K1YR1m?r_fpB4aIzfc9R*s|W$pwuM|0ZUSoqm;0~SXPtU@3+ z;okq8RcMqD5p&qo<0EzU{Ni;-H`_hFAeu6qB5)0TGkVziJx$6i;LAotq?1jd(*m*B z<HaM!6n0T!o*Cws*z}%C3rVWDiGya4m?(ae1_lL|U*=<vk#z6eqX|OLkm5+}*0S!m z)c~X|-WBTJbUW928FFPaN<IwZmmB6UgR#_Tq#o*9=ssT3KG%V@iCWNES|MEwS@eI5 za-Qy~I=vI1e}H_{tUAzqGC)H`M_jbJsZ|Aw|8Y^X?$gTg<W|ISnDmTQqepc2+>G4j zoI&UsLw$xRJ+UiX&fVmC{~jWbk`kowtjVZwZ$3HSZGxLIFRfBE#$cJ`))Xju=<x3t z`OhxG>{j90>2t_qg#8O?r04ukNTV(X5cL-l`C9Nl@RAm<0zecv_+>*uDr^aW8>%o^ zT<!B|kuCvrga2pLgs%Yn>oh7_0qBE5{O4^t!Ium&pKp`-v=rt0+($4q0O0?7^^q#t z0H6j6X*V6OANy&WFT%y#%QeFs?_Y0D?)n&E{nYh5MA~Yy$niKBU=@fJ399Rk$CGCk zr;{~in5Hnc|D%M@B*hIAWMqn!b<pmGA`!A3=sO$T#}xD3jPiQ-s$j1_nR$}zD;Wt3 zRvmnyx@QO{pCmL^qy18d(N9nmFz&n-=RtKKVC39}-XiK#HD|*1l|n_?+?NX%=z|n0 zU&tk)ns4>`iwYM-Dn(SWP*L-1t0cx{4JVpKP`6Jy6@h(qk?eC-ip%<@eG4%7z5`~- zDR<q|kT6>3vZ{IE?vVBX;c%nO4wrgn{qZy#%wxu&R(3yrS%SM%c+N7^Fx&p{wSFDg z`KOchl-I5}Ymm^XsCUV~Sc7njP;K_%(`0vyiF>m<UKSGl96vQb6XUGl;TxHjD5(?} z+s;_(5koX`z5Oo5$x^9**0E)4?4Hv0_Y_G?iItSavxf<W75kFebC<Tm#?z+B<7J(e zSr@O=MmHgbRq`+k(zkga;T_6B5=0uXSgIKU;gv`EYBT{sCKR4kVF0^2lZ$LduL2xy z54Mh8kHS<8j+${pTu7ELOHcD7Cl<{pKe1Q8bLlL~@(>Qq1_x48u@{3tUgLJUJSZY_ zp{ce;RCsPRj!o7*3*NfuaXv)-X1vK~9xQ%aKbLjo&bt3}SOY)+FHou><<<cl4wNR) zf<%8|*0@4ZoNqjC7$y~}RTvF^VB*Y6@!8)%mK>9t`!HjWSCdV)_bk&t<Y`w8aT3O0 z5+tT&RxB>wq;Q+)ZzZ^pJS!c;+!xt9J$lBzM2SRPeyHG3?h$IXf-TE8T2{lU3Nxto zi-4@`M4VI2eED?6(&QFw_ss>G#jqG+Rv~w&pUs62OMXRoN-p;YyrFv0xB)tW3|VY4 z8deJyo1u{^>lje%rL*FwaYRX+AQh0Q4%Lw?Gq5kgjaY<gioXE<0!b=4zotvtGk+IK zYx8nWtz~Z2*1~eega{^vcBhvaOj^j@&tB)0`!)|Fjt`)iO_NCplTHFXdEng<k<Jvb zCi5g$oMiaSpFfX4`ZP!HWU8>=<`>X6TY?T{T4r>+CzmMx(9udh!;l@+L*MI<d{YIU zW$HQfnib{@cLjbSPDs)7u7;n2LA!PlX(XbW)=*GJ_Wc%Bj;KSJOT0M(d1!kcKlp<) zTF}wtYR+D8^#F*Sk9!H+g_>@Ev-7%Yce+=Zz4@t6-hF^R6T#zfTI#fLp3C?t<^86V zV?v&IN$ij6x+@3ax;YQ@9kKHJ5ZrS<9I17+wjOa3ccH9yuM|p($fxA+=i~Vz=NutC z&z74%7N`*`Y`ImWR1o2(0#s}$FL1f<Z02gRvHtb-#&VblhG0(o`q#Yc?0`P@eB4o1 zhwqMl)hd-uij6eiNF+|XJ(7$Fe7axEOcW6Zz^-c81~Z#3Ld^S=Jf!)G^WVINUfrMC z-1514{Vzk0mdh4EEyRBkkT3&o4)y1NNCEMW>o|VuNCyD+-vqSQ@rl;fWzQ#?U=8JE z7yBR)^~M?v$te$Bip)H3IGuApY;=IhqKdV4WCo7x{bn0(q5%>1Fryhq2J2X&vHMEi zI&LEA*vE!xhKvuE0U!hqr-3EM`z3u~-O7oJR^W^bA-YxH*y7$4^&T;B1F{s@rKel9 zQBd=v=9f-xUo`WoM}{~s^2xqMr_a5IT)$7ZM3CETWCQ5gcicX|bMWP9L&3bIW_M~< zm$6${CuHdP2d`0)7#9>mK~Z2zMS(U#$lH}WUwTpNU^7mKEQd5S9ktB4mT+VHlhU#Q z46U58k7M?n;!oyaXfM5@fEYb;zVxhz&_FsO^8z7(BGVb7aq&YSE6-?s1GNBeh~p}( zC^s|alGQ!Q$*{JEL@CeMJt7+B>hw+6wm1`3dt-?2NBwh8XdtQMb-e!yYHbRLR_Fp+ zDStNpG#}tytD9;RbOs)-|8*=sA-n_1)&Qx&sYG$PGZQ}$z+tL#_{+XjfZuZV6!MEa zeLu-|w)#BB_nci|jB+Y@JyYhatOM;O`0O}H5ldDr3qO6{C_<0b=xV|vB(1Sj2U)qR zGL`If7qXH{{vuc`+rm>utBZZ56L|p^%Ug2l3VINCDjTd(h5%uID!fg-KazVv(u=mT z2EWgBPA|5x3EQOoNpR=cFnhy~eD80(xYU!FzZ|@2PXtfNu4)vC!t?6vV^g>Pm$6tm z742K{=QctFI<=?e^W&)kAj15ArmSc+JB3xre+Wc%JM!9}LzN@wbQmUyo?`q~lFfHU z<=l#B{y`nvn)Y^*@bdSEiIte$v?J#f;`@m)R@TW5+k8`bY?&1EGC$@o*UB^^DZyc; z@N{U9=#!1RYyp5pM`q`&{uN+w{FsxLZS;ABXw0Jc)v)BerDk$MW>v%~viAvVv#J&a zX62rA;Dvk4t|-o8Tkq42{h#w~kAjh;Hy<b91Mkb}4gb?ubh&8iyE{uJ#~O)>`4i^b zYJj$nSEDb~4P#)58&!sG_@l|)_M3Dzt_4TV1oDp8r(1o*_7qAPF$xfQx)-)wm<Gd= z3Z7FK)6)@ct(PWF>arHb{;5KBSea=#O%=0;4r8F9_#Kfmc9Q;lhi`|{v6r!67Gme2 zn_hlv2R|g0se?;q<EEiH+-1xd1&3`-Of%9L&eapsdtXdZT|jQrtO(l1M(*bOQfhxL zDY<lJ<h(mF<5vn{3{7A$g@Rn;m_N3Xb#G)EHhDhQ8JgW?WJQ|cI=TiJ?l+oC_)|-c zM?uf+Nh&7loqhZ|8S)<(lTJ|yVF7cZDDuc`05L;7FkuXopf|~ACY&W~2WS>~Q(;05 z(^0PUMM;G{ghRoTMIx6f6G>>5U#yTWoUOR^{gj%Q#T9>UXpDhzvi(cw>iG3pnN$Pd ziziLiw3<n21{D~iYVlHp4dRAPZ<u3Fo{wtcRo|?yqpY@I38>venktUeims;-Vrx1p zgx-YSstkZK5sTpG=y$~4h#~D>MHj}dlf29y0drshWg3-<+1z<j5qB-^B<BD>j{=i& zS$(hx1(&7tTq>XzQX|e3gFEXQyWfC=*%HEnSPQ-v+gVdM&vSXjcpkCG+z`=aY}*av z?eS89#5x_GY5;3vL5+3P$fSQ0Izyy`jMcBI2mPNvu?G!>*7Smm-cFRONl8i%gQH>f zGRS`R2QFx&Um>(f(kpSLkxFmay*=QOqu`+PwRF}u!MXs$UzUo%PsRghKgH6gyHq$- z&g)<=OggKzI{NJ=Y2$xB;$(+D<OO0&X4?ge8!}(KINlDMNnVES7MU29Np)NGOIq(K zpJ#13${0{|&h6>KRk<8-Nz)%V^y!W6b{fv+H&O3)?AtH52yN4krRZD65+ZqYa@xHL zyL}%5>a6665Y2~db+!;ss+|!|-P!9yKw6&86bnEY4|lf2rc&N7H~##|`se`Ps6_ry zT)<_|Y>{V~Q24i4{A0a`B4KN-^$DMhBL8&^M1n*_{3o#g%X{yCb6kovmcOrZp!+Op z)VlH)qKctX+td|DP^h%4OcoL-?C#}71o%rT28>q`r!BeMU37x{Wc-$~BZM06gtfM> zJ8YI$L$XJ~X9PhK{j4<nGX-J}ksyF?1g1}a?X(Cl>ejP54re6~co8Z@;Yjdvdmh|k z>3~EAr7uW@aRQlbi^`M=8eDO@fggW}7{jT<VyU}}g$DO|GzSvS$NlF18MX6cx2kz2 z&3B70BDDZzyk7v8QG9w>bMsX+doeQ>(f95lQv+ykaPLyIb$_x>KP>Q@vhFs><5}6} zL|ScIqCQP`V|#BAIK6_<H;>q$($R1yl=rFG67E~7!?%sGc<ik+N1M%12=g#Hqj0ie z&XF6}(hBO`juWv%3<zel9z_{}Z6IfERUizCJC``T%O<-P{(~Hn6af+{5dB_Wz_m|^ z@<LQ9B5e0i>H<Q5x*8>(72?l!B%4}nGqKLRp@qe3ae!(AJT$ft$Z4Am7NNMeS5p4= zr%d5#A6Y{r$`A=9S&5V)hj)tj-pYL7nGPT9kVMefE6jWB47`I0qB?cAD^4%yfh?4J zJN0W8ei0s+z;M%@Q>(J~_vJK0NDl1fM5w@H%G`+B#Qj+*R5VP(A6aw?QQM;~ABC7X zHPv(RLh)z_!0#+mx?^=M&j8#obo+2Fw`UWRbdci#xMMLX4{njo9lZhX7z+qbeoOj3 zx{y2JMEU}J#E0}rSa>h-b0b;X-1xa2&c$yH!jr~&ytIck4BsSQ_57?db)NJO)Ys#! zSDo?7?gQOvG`s?PH$*_+7;(|aQq;Cj$4jQ~f8*l601KMx^xq#R&3)SBxX+$p_4GSm za8!?5zsW&cqrmCG=8YM4cR!s;|N1T>1NtIw4zFcPGz|RGR4mKBIsRrM<+Haf5j%+g z#8%r!hHPG$;^W>~mU(eoxwk&X_anMw_ShJ9&F5Pkw!+lYScU@qXhut;h8w5`l8a}7 zJRrFz9C$d*5A)MiBn^*+2#N!zSvnO~+rsooioys%3%l!)t0VH>PFU+0Ha&AeQN!@a zMoMaO3vIZS2y`Ng?%*(Tc`eJiTom!(dU#<e=*dEV&N(H)V=V<OG_Q2We7dj!td$Tm zzRL`zOikWfp&;uWFYW?c$oFSE8oyM?_j~LJS>Uy++GULY7t>HLOp5qC3!jQqcg*Vv zs<O<pV|l35nMDrLXRz5Pk$8HNq96)!}wii!UJ;ml;#!8YG($yuPx((&ziefRQ2F zb%q!7QL$KEKwM(7Z#qpukG>YS6WeyS63?#8c;&Q1_qHCSo|Spc=b4KFrElMoYNHX| zlz>#3XZ71iE})!iX!b|1%mHMUf?u)sy+1uV>i#fou}Mmr%oaR|`ATc3ld=+nFw5?j zm>6^_&dptLs!B=g@8?LJB!BOO{FDr*7R?mW);R|&(tB?Tyxf83y#yX*O^z5puU+^7 z^AH8mE$@~9>J8gB;_piwLK5j!pBGfay@5(yO535%2xco$@69BM8-81ppwi%mg`4yw zBRDML{j|Z!&x&|f!fnA{bMuMmQ?guSp3tFe8yFuuO*uPDlgV4tkik9Nhi99`q@-a) z@Wsd+qhfSN$t<*auH&Qep4R=P0%1yTHBzf*E`I~vFrwR3NYs$TR3IMKi&Ubhr-9(o zy>fg=)PvsQbe+Zf34nQ5XiR$e?*k$h#F6QX3l|(?$nyAPj#K;e$p)jWaVVF&PDxGR zO%KT}0=|k)MPFJy%<R=jRC|g%ruVLD6ylod8<kW46gO&`JuC2^3cg^0NnPuu*qh&V zgOtC5CcKxQ2|AHXT6bZ5`|}2;D1!qIfe!M?T>NL>BMw#N6Z7_o8zdrtfY7DZbpUWv zGkybb|GRT<>G%!61pLR`PnVF(yYMrYCnNr)c)v^l5dV7+K%NA20saF}3~u}nfZ}}v zfD4204?&z4Y?b{V&Sz<=5k4$_Dl#-80_<lY_%Dihs^$@ZK#B}4JfAR0w5VE<%*uuh z5OMIW4&Rs@alh*6<h#|fmG}ANQQhI1lasHe#S^O3bofeA?biInX=ZwCdjXUw8V}tP zgXEXB_m17vt|I_0@OTdlF?&pWGpLIQGPuWTD`c_;P=beYtt+AcakC>Va)#`U|20$q z?pKJ-v`mXGV_`31D?t#bsg4dZhx?WY@t?cs@hsa+077TjHMT8g=uH{(ShI1D9m-1S z%Bf|xyv6P`7e&bhUl@ts?4dP6S+ivHAI{BAE+6ym_d5VLkVIDr-NmD-2=z%98f9Q~ zz%Z8q>#=3^Y~y7`dNGCWp)FwmJL$R9X#gL3Gq4+y^7;tDQ4aS<Cqb4Vp{0z=(<tZI z)BV_y&SC7sHzxa#gZZ1(8vQQ`4a&C?t<o51=hSfdl7`T5pvQnDbSYdP<UR~I4zPgt z5D&!N07xH7;2MQ5FcU)R0}S64oEdLSb~Hm9tw<wwo3}WM8E2BRdLQ>|Nip+}iNVA> zZvnOg3O}Qn@lvb7+K%Qv4zTFcQr0@s?B-Bej5ti?zF6&|02rjg*CN^TbBD2*wYR6^ zz(en6Vl=YJUIiezz|;1*iQ_~3Yue$`!HB<mpB9-W5W5hRz=@e<h}8+cpv;N~QPX6x zac$YuZbBT*X-7U=T@)+48<9!|uh-~`!y)3`vgiZTZdEn`8s`F}rNLNqt8Ub7srx?2 zCk${$I)^VG^?M0By7H-0-YztvQGgV@$wIt=U+Vy-#A79;ESA1OEYyB~^n!I6zJQ^d zzI**1*cFi*a6OuosQW0jbt@6Vd}a_L1fPWv!aAC<-X~>qfV<$y^CNnpT1MjLw>iHP zwd*i0?$1|;EL*s=h*;CT3N}14!xV)0<+va9wlQ0q-RvJk?h@RDa%?|MFS>?1ww?J1 zqeB)Ru@7)&w;dnJ54PKj6-s7n3O76`yVZ1!flj$O9cp{Os|UAQ`2*O-6x^Q*EBp4Y zOp}e*@5`2Sw?b&{c!~&pMUolg9*ipELW@RcT%k^((WpeYwizTx6X8rt^{v!lGOkP6 z;96YalStc~4aTb;+{A+U>BTXQ^Q?Yn%`okd=%?fJ*-l_AK`T`yzk#T1=Q(eXULAm4 z08bMut)-hXxKBqcv3eh174VxK^^gYJ=f0s9zS+D&%!R7G9zh63c;2h`oGN?FR3&~H znp#EEJw{1|J<0ZtEr5fKBV@bk56@RESDeE8Ha`e`hg^gdP#z7=fN&@Kz01wdk89Z% z5Tsrvd4*}XxAJEewY5q>nzKk@yC||r3%FGhd3S8=(>CI>Prcd2!?MhK((`+YDGGLk z7LwNsjlw@Jo3@1J&X7YT8GRCO4oEZq0GPhtPnpecq#__pwH~LV?3HFQA}^~|&RNT} z9j}l7Rsu$gtW4{*AA90$AJAZ2b@RmW``%_6R)sH<Nzx8XofgD%nLtJ8!S8jf8Hg27 z>F-Arj<*w%)t`s742pVML~##QN<?I^bbbLdu>C$5NP8JmqDXk?#HeW%Zg}OFoHj8r zDtCaXiPePsDb@!mc@-9mCG9VzxxlEZrvJg`ukWktG}Yj(R$VzUH;;Jyt@^}W|Mt6E zM%TU(>Oi^c7Hw$xELFfSB_xZWM&M1ly04c&6sZU39+j#70BS9nW?8cpvrFQ*c>VU- zwe1EKkWlT%Dr`EFbSITo3Omi_B*+sn919+s5G-9h*eEOjaV6)wj!pB~O>hNPRTGtm z(Ea5_b`PTUcbz;us8<*~HmGSf`)}(UgT2PiG9R3#cgL02RmTM^A<3s9^6Eb4G+hLK z%dtB9Z7|k?0vMwqgYQ$~*&~x?E{s#2<2RL_iVIcN^~FXm@}oxw%0E0fn@4dHK(U_S zv=CujUb1*Cvup0JSO3>aG?nli!1r%`Fg^!3|FwyoXvlYy{~Y4kq5k&zA6EdB|4Rbo zqqb_l%7y&d=p(N~(dfuDD^toLK!~-&L_i3&FPXleLV?l8m_nkLk(Y7xeEFDJ^p^0g z6jAD$3#Y{n8RI@2gZBt|4@A#^Q<IZC9oeIbkS?%EI5a!e2KSH`UANqotbhO`N$vFq z8qJ6+5iw0U%?K|xsmt`H)7%|*vQ|2-h$^W{n$vTK-oLkR<xa})8X$WmhHWJRKb*h0 zCVae10=OwcCbDfP`i!0rhpap!=Xe#epJjh?M1AvNOuufKbw0Po1q4^jj?$8SY`$G1 z*+mzk)uZdsVcJy5kNDN3sTn5PPg4j01@NQAch66myaaK13`6LbL}n!K4GEltX@huE zRK@BAM>fc5gJ!DaaKSN?0{ioA`*1-ADfonZ_8pNDr>RB}>kHnhZ+qI7GKe0HnQ5a0 zO)IlHS1lx>>b}qpnM_>uAq|3LqWj~eJ1KFIRj(qFoDbC7zP?`?2F?s@ZJ=2K*P~iU zHFF_|+D~-8pk41X?zH!}%;#SuvK>5?*(4bj6gnhbQlIhq_^zlQ8p4s{cKZtq1#{eY zV}^<H0DarQ%Q7Lg8Nv31x#;#AO5amt{rha&rUeLaXAZl;7f{EH4Zlu#!9pt&TzR@m zr#t2T1igOk+x01`>MtN&36rJ*Qou;3Y*dA@{qd(xwO4(?)+Y+A<4Pjq{AG&R(^v=4 zLWFLs;H&{!^S9qE1UH&jr@5s$pPhgh<h4hO|FkGdp0-1?I6VS0M`%Oc6$(BLPRO|G zK<Y1LhsI?j2M3IkJ4HgNkKN$nN0u40XIPYV9$;uE=Z`2|tJV9%p6?m}5oZ)9rrsCO zha7fDuD>;`8X@R1@xsr}kKqXxI5g8uQ4%5J)}yZBv=t;}o5=iLMKEnNcJtG{RKx2& z{d&2J%^25N1-96xX+kMEAz#~Dg=&y9Ry9wvK|P<1K$COp*x~m3X}_h0-;x!y4HdzZ zx$ka4GIVw9WC7h#PR2hG=-I$-<e%l%*9{@f0saIQo|=?mCm6w-7u%I3APa$ry0#q$ z9xJlG$QDG`x!kVRVhHjfJXgUva~<Wn#%uIL|Ma(UBk<*{3N=PdW3+EGY*6OZf$~So zoh<XV8|Q7Z`j#<`HN-5!t;sFgzmxYrjh$+ai+?P{r`bJ#_TON=xdW8`-8$tw1GxVE zed8I>{+H~V^$uYF_xI&@fYsmNruEB&&i@pvfTR883)_G}BK@}j#~%!`0}`B0u_pB^ z3?wJiT#1_6=hNZ~1Gx<GpPo<~5%OPtWHKTo8u)*D!q>oKFwsxUcq~=vCm4QeDcoOh z;Qx>f+NqA)&oLo)9a7Vg#6#4#SM@7s)u~FZi-;k8s&Lkm_bKF07U}|lD^<uBzx)Yd z#UyoeI~4UpzrDLQ=n?Ihb~$w6#9CZ~46qn|!6UVq>B&i@Nhgg`v8l|*CQZRo#xVte z69NaaaLS<<_2uvfStg4twL-rn&lV|>aVWFHOHhYdQQu)TM>x3#z~!^qg)cBw>*#Nh zXj<Ung-<r3$76ZsU^(Tpdy1gPAI|CG%LnQYJL-CD$JWFmB3*{MNmvFX0j*`338N=; zYPbv8h*$(NE{2q`dm+@&pyQ82>Cz!y9DoM(d-Jvym&R9Iw>CYy$1f&R&$>RX`+cCV z%xxtIGx8ppm*+R@C6o8BmPI|pZdtWUelyZ-A*dz3lSREpGu)3JSEgvpV~!`a*ESxJ zBM$o)*KHm2!2D~(<_k-|k#57MLpni__kB7y!}f0}g7c&7e>iP=4LY8+>|o?j)PYHk zvZonP8P{yWiqXaQ_IkBJ(qpKlX@Q|!loSF0ku7(EvxFRUvH}9y_|yQIge^$NKc#4J zofFgkKbygeZc=d;lBmMwjD$#=7-q|VVHD9-WWbR%-|kOED5&Fp9@ckJ9I^zX%9u8r zqV2l2>5*dcMt`0bPe8FYtOzqwegtl>cz`Vav<{(2kM`uU5&T@`Rul+D1r7oraqo8T zcme0~N2=xcHdbn~lodj!hk)O=4Vg~>N{uY5T}E@>NG*2g$mH1k%Uxuh)z(obuUUJ2 zV>1UvrZva%p-BwaDy0wbf8!)Xpi?|A`Qb73a{%&#|J+@G;HPS%L()M-y<4b#J}uGc zkad6KMF<D-e~{q4a3CB0GJl!zA^#=8JK{rf{|%!`B1rCk!|03%a`!LKoy93fHQ=*G zGDH7m{#GOWf0@6@YM)A3arl3fvW>q?p;F8&e3d#2#p?iK3;DDMwgwrWXThjWagXKO zc?XywKOU~gx`$&}E5YD9FG-%_yxn~fs7wZeb>;IK!-<+vtG<Wj7d93RQh~)|N$XG* z5#x)e*OqDl&9&KUu`2j9zK6CYhqrmuXAGzxt5;xHjA1_#?}WCRW$-yTtVpCyGy<H( zfL$-{FEY177ew2*jj7r?Y0GTT>J{@o7yfH<XTBHLfME4are+GuNdW_x_xn+Up2bM{ zsrJhgLpRQwc5cA)wZh#wL(N<|XE4uqf}c1KTz?FKOGJo6fsS18L1YzqHNsMx#YcEw zI`7qXfGQMssToqdvuU~|G$jY6Y21a2{A3eP!{jl2pu2qL+gn4UQVF$JT!cuBSfqpu z&qiaIa#%tH5kJG|xe299<<<ba$hJS#T)n@`>+AD1Xd1CPH?N9Isr-~dIjE*kgn5-_ z@A1+AqR}l}8fBBbR;uHa?XuxYpxG#?4#?;Em{x*ZWEsCRpnNw|tHk*2SMhU9NqK0| zP{kbdhb99VuBXUl&d{)Ez%Mc=;cr6<QqG*ajpkJKdD!xCzicz|#8~Z;rg&qPxK(S* zh&b29-T2FF=W{Z>{j*3zC3=*EGP^{qN&y%$K&cxaQA<gSNY+v!v8e0={B8-S0?tGw z;0#fakbk6Dh`=*|R`G?_e0NSE>0T^e8Qj}C?8S=QT~QHEmWi+vN4EDud5SFSHgtP` z>*KV9j%9%Bq!dxH!5d}|`3Eh;no*W?a@qc~n3#S1P7AlUvN~D*#+O;gr8%^hmGX0Z zAX*q(JzeiJu@&A}0)t{-3sgjVc@MH44@_1o)_!&JZQhxq*AgriKxc<=U|zb7CcmmD zul>a^dtsw)r`t`&E=LS9y%-%g_0hQleWktp(&1uUtlf?Iw9!Jv^OfXqtWZ!*Vox0_ z8^@;`*7{azvN@@({lG;&g1p>I_+ua#$U6EuGC-Mns)13U!AMa-E??5H=+bFnW?my0 zkBM|FHe*N(&vlBv#m=9#oX%h>%?}ceduh2o#;j2ILG1BmOPVKM4=dT3N>3CvuGlam zCM6M;rt;Sj=py1PA-Ofm5AgYl6N<OB=2<Hj!Da_UYc84Qjpl4u`P8D3R)<wMrqyp0 zr@xPNVs+@<&>S>ZS8-hB153=h;$%%N)*hN!Co&hh|IHbnwKY|P3i4kSODfU}EN)9J z6=c@mTBkq{$?@NnF^V2i=x;`tVuED;HzU9>L&Ae0{)3B*?=&uue`W*|sDJjRc&N5U zoD7a0YO4QYBQ2f+kb-~7A00yf<G-JTAd4Xo|3TST5NOhyK5fJO@cxoN?2-Sj&;AdT zy-Cw9c6AWt-M8Bqr7sWS)R{~yVs5@(hs=JP!z#L;UU3-9__tn;<<0osiL;wOD3(}e zWa3YI|Bgn<S&rIM4oQ_lN%$ehHw)wJ$sf;HJfoadlG#pJjjzP<?W~jMV}Ar#+bMx@ zXef+px)Nvy)fu$*sDR=6HJD7Yx%xP)ex=?ivfHmQ+Fe7I0dLM`MMuPGN(X?(SNZam zO7@{s9wlT^BN$f!=K`lyx*o*H1mS?l{<P#TRTvNo8|HGTn-8|MgHqDGGCZiBF2XA6 z7c_gT`_O0yPsckTK>^(USjv(1SkJ)u{t0raq&+*Fg#DuU<y4HApY=PBTyoPgNp{(S zi`q=3ojJ#vf-f5~hX#$l&m%IHVW?JPnjKxu9NF@WE}u8%`VsUamlsyl|LkTrEiA*8 z@P9u*<(@x}(b|%s<sKPus?qnxKo+mD*nExu#bHGN6Nh7rpr~f1#R>I2W+5GD10{O6 zg4jHtBlk=(T_^R&U(PFn^;da04=j5)ZMnPQ4>7(_{~d2a53Fs&eZv6d1vvfvb)m|6 zue2fWk(V6r=Q67?fo|q@CyS3x;Kat$=xi*Ix&3A%aTUqpN9Wt#^mw4oM~=_kr=0dV zy5!;G_OU0hrlz~8+s)>q@3aB9>W0+y>VCi6N#P7q0Sd+Zi#DSiCu159n>|nJk3^cL z_mer~a0EkzwMj-$vHZ@!SY+=Qa(>OOzX@%~IjYEolFQU*Ksw-YxYU*#jypnx*(|R% zA@bN?qRUOIRc(f?b3*1TzH)qXcSh^rZGU?hde}@zCVlK-ms>xI2W1ATstrNV^80+P zqeWX~w+l6#M#?6Sfi76P!y3|$Xyy|pg<y1t^Ac$GiO8SY6w(jVAJjkEjmyOv)DPng zi>4$F*&$om*v2I(3PPQhk#MTZPpdB@Z06ThA-sLAmQ!19Qq$mk$&ivOvbfh<#4a7Y z%1?;BqtCy7d>=1~^%VrZ%pXE|5s@q*zg+lU?TvSmiVjWf3oK9v7nPSc^Al&Raq6LA zwu*a!H*7}9ha~A=JvPVt_GSyl0)j|xeDhrFNG(b(dO1vT&=fghB!x;DGRTgXoV0A< zUI@@Joriw}2`j^(G#0R0AQysj0*SuhC<zvYRphEjZm93=SXlrQo-8Smk-t|&KWaPH zUTAt3=x7`vI>=D{a!}f`3Sj9P3WMYzuVqu@afv_OH-8ONxd&*1upJ9~v0EW#D{r1T z)(`nBzgG0#(hGj~#B{9FWtSVmZ$9GEE3IUNpbQ14kJ+I2Q9;aa?AcJi3eP#*EKw-P znbH461<A!OD!mR&Z#|GU8_G8kjkHcFT|@0Vx>M6rNiL3Gc5c-eDZ`YejGwXL9EeO^ zgsrpK+Nb}LGhMBdJUUhtfFA3UQ{WLnUm2jskcO_fV>C*-FRAXA&KeSenOf0r+#yAa zf-2WX2Pa!L&im7{L>M*s7dUk({pwngyPXW!P;I3_nM)z?hOl+xP#i|qD;zb@P}qs% zYyjGe#O5lN;lrwF^^AvI6!emEbLI<@bQ5~A7EESuTb4LUP06pNB6jtM<k#*dE@`1A zuKNR3Jcwg$HX|FHrkZcJL|~6vFqp3iZHTTR3L^R@2XGA8?ZEegAWYkDlXv)ItrH_o zU-`3Y8=S&`=M-l2R%HonPykGA8s*i&e7CkVWE<HhMf&5zsK<(6FLkHOiSPaQ(zDB- zRtY*fp|PFVo7Q(E#{*y>5gw|ZnW=}GsDu2VeDc|!6BKTK$1gdo;{GS^UJXz7J;{s~ z8NB@2gEP{yKN2E_Lt;a%0vmK7GFBU8h8XUx#ENU5X9vyAMo0>=@}-6o2%J%`KZ2s2 zz{w1eQPzG3TR-x3;zzuI;|f=1;n(O)Jd$lsy_yIy_7Iwu52y&k`SFC=56u}R!81~z zX-BeGo)>F)WY;sNj=Bjxyi1-OE6Rv$gHSWQT<m{@&<uIB!!SCbg{KZ?T|_X0xRWK@ z?I2G9<F_5c0x`jzu7e=7#*8~r2$f3v^>=1$g(k+wOA->N1|>KA)(vQ4X(Tu5X8d^k z_3y!;N1fphg%>whHugILB<JFSgt#J2yKeXmOIAo~b-EhMkDFEzk}7nwQ@<hHy}r7! z+o^#^H%1phuS<R2cCA{(^Lb6T08q`@i0P686C;G9r8`hftVYCokC;Fui(nLRr3+rP zoeuJi5YB7RZs!|ehzEVbA1IB^KdiG{SvNXrXo~Qbo9k(7&MU4E>jY}5uqGa=%-|H3 zEr|jYVL;{YHj+9Q*hJUp3)IZ`3&dbfPKv<k)A$nx=T`Aq<%__EpUdk_125Ot2ENGx z`zlA$3&QqT>x?9#8Up+sq^>9mk}U{*!RnPG&`MKL+oW2s8Wg^a``&yWr7}4023{P$ z81NCTSiNR195u~aaL6~s&;6FB$t^U_{j&n4ooC&L_5<P5bF1;dNZ4m-5jicd|E{%{ zK@wrKqOdXvlq5uF7aH~;kJ^@fyHuqJC_fFt6}h$0>tC9c2Uj*l<Vz$%f&8k1o;6hZ z2Q~l#^!!5v(H`S&9|6y$?ux8dgi9|xzwVF?0!zWQcaim+uRku*4P~cje!#>)XB>`~ zOPJH4f@R%AUmY}VK?8pGaS=a#CBB*^#!>Yg;ntTZ<}Sn72A6DMBUj<h-+s6sI2cpO zC0s{079SdYh)YY$1yWJMm=zuCYFnoGjzx(DDyzATp`yOb99++pr?&_PbN}{i54>-J z3F?5>;3#OWWv8CgBOE`8+^IYb1Xnin_gFb2jzuKz0xL2{6!PF^Q6N{e8na+THpD!( zumy5q%M}C_?r#{3w2z8oQRTw{J(dD@`+$U9^i3W<%CK)gu&Kbyzi2*IIUWmJ2FH#e z_5FFU<WSG(y$$Jo*%`kN7RD{j-;1)ShoDQb9*DX;IUg)bpt`QP$F1aQTbG+8jARwn zbV#j|qim0(bkxix$mElL6L~WEAOdFlT!$`i3b?;sPB!p5;QI@g=355>{mqY-&QbK# zlR@Y0@J8#`oov-uQ<aBdlJtC1nEmUiO%*9hsG^BAEGpwSBa5kwO)`i%21#BOMYo(I z<A)wIw0b2KFOv${ju=}#_}4m_e=aJNq`J8=@|xAgoNc1!9&p+-&^Oz|hObi&7az4Q zM*|7|_}t#ccCUVHO*jz%O%<?tV)4Te=U$n>gOpAH%tx|Uh{j3?^)#0(-Ky1N;@p3v z?<#bl+<^RE7D(mkft&*AXX}}r9&Y#Bfuupp>QpXja!%}eoKQ=(E;>Euzg*M^Y%;hX zLu5(%2dJC|fS~_2rT;XN6gm7nBA<=q7!(Ky;pZR=nFNiQI)(gsy#L=;vRMgI4;=9m zs1X-dP4v<DY#F6+|6wN+q=u<NA_D&lxcT3#j3%v5x|Js8dyc`kfzk*SVM$?OeF)Wg zj^wF&%O<9FT2PaxecZKge}-M9D{u-iF~=);GNcQv1uJQy?>{SP5<I#v%{XK2NAG(A z|Di5rUG`LOm+6X>_l48BN9!c_gYE;|pxyYi9MG%fcUu>;#w2$2ta-hy^IP?(S$g_e z%<glgO{U*&z1j1c8XaR|IE8Kw3JYM|s)fLds@57${xto9Cgb8K3K$8&0FiKi;+jiU z%#Now^vQGaJ_56HNRPx}Zj;@L?!n|MA3}OFBX6}WF9#O5VV==<y?bvBjaN%YQ=w58 z0wCv)-)1a0<H~%oRq2ohhc6q}GSX=oHVIqSGWx*Bc1#^}Ex0%i;)cF(iK^($t^Sph zUCfu1s+RXgl7l@#0bLy*GT>7vdzx#5SJ$T1#3a&w3!J^1zUP!JZ@Jag(;E13&qXR< z^;5A)4e{1$N%2JX8edH2^GLHm=BRmpFEFzzdK^L1`4rD{Pyur%#jd^)Q#D}ors#S{ zxF~Bp7O>)p0dSY9!b~n#XP*<-(^4%@mTuK%8|f&mnAcVck4!_x)#79)f*2|vNQ#M+ zv&`dOBG0mQqdCUeyrqwE>RH_?*+PIbfS~O0c%<>h(S^k7q2{~m6~VmiE7(fC1oC3H zO*9xHcflhWouHF!KlF&Xj|HeSKd&x`K&nUx3I2qS-J%ph{tCtP{Y%#@=F!@$ZbP6F zCGR`p7azsvFWv(IHtz0Ny1{~w7D7ll484nV?nv5#Uji_FKtt}Qa51y`b`1=#Q7gOs z!a<jT7`nBWafH7of@u9-q09B*+<+m~@P^P|bFW1l3A$hfm{cK_2(_GpCjwT6r*emS zO<>pVriOb(vmV;)=GA5M!$vbvWMCg!;1qb;t(;p-xFZ-$Hi)})>C_^Mf{o!_zjh;D zGh=%9gw@1_+x}+LEgILbSD3JFRjrmMv8XCe#U064s$9fk?`$qTDOV~h#Q=6H(NgcP z^sW!5FMPN8{@xz|oMJFwT6z|G%qVpe6Mglc21hj|=5maBkxzQO`_VJm$XZex=_AhT z9?nO`a|`V3wZjMLiP`=*{JHq^jp!RR=MSHlN?_o)00h~0cseeG*e@P4&SH_^Y8%L` z0tw2d)rPy&<jWw->|av?#~Fdak$&c24B`->)3L0Dobk^PZ``mOv&x5YcF<s8u`_$5 zgHRAbH5MX=6QI))yG)KsT-{iRSuCg?63qm`f|wMqKgi6RG^yq1@IZGNl3SWb?!Z_O zm+q|~fjLER$pbU!DI9ZR_H$}gme|s*<&J6<;7YV&og0dC+6A5xDaF9XwcsKLt5ZgQ zKmKz1pCz9+HV#F~ZEDJ<ZgXR{?|bF9U9<9_ld?c<iEJHn!l=`v0aQw*)j@0Qn4PRj z0gA6qwmvfbpaDUGiY}pQvHr9`u|bH`0N30SB=HWcriZ|--8j*UcykNY@$hD>eqH5Q z_ITghaQ{W7X%XKp(i)(mlmfPF$=4*KLR3t2b3NmC#LLDfF)~i^Fr|24I0iuj4`cle zD*r|J)2XGI@f8dYas5RU#|{Kou!!L>jDWoAfmKq-$NNW8u{A%EnGZ>i!ccS0sNKNg zeJ&itv|I}wy8;w%dg%*G+Mn+Oz2|W4WWRS);w^G%PEszx?Z$y<wqEZ3n542sYbY>} z&~k&H4i%_WnoBO(_7c5O*e3ZKRDf`CP)@LOr>25G-$7uD+8P{G;tF7>aaO47S`T}E z(6tX0T0XrF_v(H(3F-4l@j);1|H-V1#u;vy6BcT;(q^ockg1oy-TMYbFccW$>H(?4 zf8}L%T9KZ;yao@H^{l2ahbG9>)I!btnJ|vzLntAG-!qlFY7h%nci2L|yc<z*)&qHd zZBZsEdU(H}LCf1v>SANg+fM2){FpI5J*$b~PPYZ`@{8+I_*nb>n&)=w8*kd#V;=}r zvwSS`X$B0Q?!c{kxk76FDWZ+jx~e2b<uy7Fj#v{HD}E|4JRA3HlIutnM`D7vU1ZTp zHzRE6;N(DCX5;btYIk1HL~!yz^O9AqMP)ir=)lA)d}zmQF7*xvBSYnzys*((1F+M* zkAeYA318B|f3>Z};n_=B*MI>hIB);9b3Uu#XLis<RA-dhGIiIW`4Hid<?jcx@#B?u zJ8rPT`SB896ocI8s+R7r)ro3buLtsu++Pnfd?4zdl1Ow?b|zb@E@OJZ5E&D?dv~op z$KV$S+wg_3F|BK!2!hN&m)6W?bY>})0<mHp-WfvL6*r~@P7*CeNT8omoK}*ip;|9w z9S?~^1lFhHP2jPTy3ql7coG|%3uTIN1M^}3fZiZb9AK)<FMTZ=%U?86!Q23X*`6h{ z8?H(|PQewIAU#$DNR+VrL+#5pcs*cfw{OGH=XvgArTeR_7apz?;eot#SamdkWWMd3 ziDPL{s?Kr07z}P5QH&Qysy>USD;|(|vvW()*DTGe0&?Y*?T1m)n@^}The52cCS{8B z{F@7?7-e?h;lzeV;767aB~9}VCDo#L?xyFp=R+~Ej5qq;I9tBU(*<5;O5OF8wChDe z4LK?S<>u-+^?}t+`ZCEom*j7agGh!q5<FT*x8_5M#_PB%KlJvZU=n2!%w^|f>ye(E zF-ulL;TH!68J$c*Ud&MIvWjlpP?=QV#3KO26}mD54MjQM!4y@$Ak!ads$K3}*J-6- zAN=9@Ans>poqc?V$B$%CYiD;ll2vyzF8oA%l~1n(p@QI&j}e=)JD;z<(5ha|xPY0P z%(&>$s$F4uCoWQziZ{y;XWh9`nq00OsDYcIZ9ONm?<vK2ZC#|zshYfb4CVp#M&<&H ztk~B}?YKKFJ{tL+8Y%XtocIJ{ozd`XKHk8Y11QL(f(@R3MJ*Y}sSfW|4>X*y<f<sC zph+6$5C4>W7@!5&bpBA=wJB`$qLzI3EyJ%^${4GmXc^rkD(W9bkxA|_4C^4lo?k78 z<L-r9a_r<)bB0&Je&w=8S6eB)nkB^pNrTu(GA_x9x?xdLv86Jf>lL$QxS5r-b{43z z5w%&hlCIG9w>0mZlQd<D3$fpLdmzepzXyt_Eyf)cNlgj8f<@F_;V%*mkUhs3@Py0} zp<Jl&Z$~Xd`mT*-dGn>tXjD#XE6L@kBNP)!6^wOR@uYMYY*Nea@et=5Tvfhf{|}|b zKOG$rmP|C*=g!UbKa{ByR78kWWPM2Z|7)k7{i!{k<wE{!(@4JeErrbWdnkk?Z09;= zQ{&I3v?EDPlCFOLVl6``C6Al-{-Cp5cgiJ|=RVRe`BH50V?9}<$7HX~s9ae{7i*ep zTR1OC=?7GQbm<o`iTdd!d+)?7jEev^+`NSrpbz0t7RJaS-JXS;w4uSby5w3FF;Xo_ z#bR9s-9el*%SV(HRJ|#TR^rF|*ReHbLpfY%!iOI%ScezuHK|xf=rAT_s$WVHHEPC= zO}l)#TdJ%eAipp%EpB&cE7j*H7%loTHyxF6zg=fQI+))ydELy6q|lRcdi%J#_yEK$ zfP(cOr$drrrm~6$0Po60oAz3L+#fTuM!+MUb)lM5u0W+#Oa7xFA%oM0)on-F6(1zt zPUhFAm_<@|K1ZHx`>BUEH4NBLSMU>BMei`OP1we|f(;g&?<E+~Oxp8qU|)QM(8RcB zQHiM}W%CiP9sR&Mgh;R?>B~eTolRCJfhW&asNe9B^O6f3@^Z;e=FHI5P^Q6t{G9s} zuKeK|=uL-w?}Lk69HqQ1;MMMsN4ZN7)9&}{C;y3Sc9#=~!{qVKg!>c@S3$KPV%z$+ z8VSgs>u_F(gLxlh9kHGjI|P)SKepcD!?0PM5lXa_U?Pv!QCY>m+&;aL!*az#Hv@lX z6BVIORN4eW`xrJBTZc~suw#O@8G9oztvE4T7~BLwK-*%dfoql|<oZ~|X}Z#Ghkor8 zws%kKtZ5Ac6D7~Yqj8fWQ!-4fZyOzYyu82e^eXxl$TJf57FW+2s`{0!y*k$k-GXyc z0NBCR{XAN}^yag3E3C(}J7LI%j|d!s3Y$HB3^e3}f9{-u;Va?Ce~{=C^5VjMdaLDx z{UMrFu#qF0b--Q-L&H+yKasA0rHNbwoe<RjH4__HVhfrKA3bNV1I-#-JEW3a;{Ka7 zVIOF;${~FC6$Ib^Hh~giK=DCwgf1>b|Dj0(rcu%#lTZlTLzScq!UFCK%L?!q=)l^V z2#|;<xG&sn$&9VtC6Ir=S0_szS_LqH<4!_V)(=-F`3?GaAheOa+ld;|bp#S#UnKNO zbs2tOP6W(A<iGT5Jilp=E>`UZ6Y4V0bMY4Nzpt^?Z~6rd&xidaBVsQmQ(6-KReCl& zJqeqE<z@wPBjm7ZAC=r41OTdxCL7!AkZ(07!9HeK;jf*Aq}V49R*H}NhDel+VO5i9 z`eoX#udUSD3MD|l^s_~jFXBs3io@ZAn2FR|8f&x9Vki?hDlXHn&%vX^&^M*h#K8Ip zVeU<=`5RyZ?Qf^pjp%f047NFuHx`^Lgkv#bU1k&nf1Ty;G>j4atN^Z|j;-C9=yURk z30O>N7!&iWOEP}#Bz9U5!0DTkz?)ha$HYB^<<ct{7m4DD=LTwLkaI=P9a}*6mhZ`3 zt3Hahfz`+u5=KsBN!wJgrjKGBctawOJ5(+p^5E=1pL5lpx3Nj|5o{{*c>?Qq5hX^( zgMCSw?Yv2nu-OR0%7Gqqr3K7(yPl4`%Qv-=smw3_IioLl;QTd~XH+P;16}EYQ<NRk zXD}4zf8q_>DC6nd745s-Z(kp4tf(Ai%|AL@J*b0$D{QoA<S6)Uw4;#H=Dq^iZ;KG( z>^A5$IZ%ICuHboXh@8RP?A7r|226fhCz{fu#_R|Kjafih8i3DP^!qnLnmO-bsvNly z9L}P}mJ`Vf&Z6Jl4A1T|P2vS)!`2a<M7vfdMjw2ZU*2}+h-jZ}{FhknWR1p(xcewK zNt_e|f0-Mx9m=CI*{eNS&7b+f*!^Bml5Vi>m_gn`MJNzD_mwccI^?zY<#cCYKeRf{ zh2E70XFLNa6$4R>VnsvLe$;5??2k<WY}QnZbzEah9MOG3N$H}uN9E$b=${tjo{)ZT z7aIcTq0g&6dZ&rp*RvkA5~lP|oU?i&&bJGfh2&(X9Ng1-MgE9RgkT^)h%aC2QN}BP zm!O0adP8uuA;#(<M3IJo*<Km*wp-x-It&|sE&l)bddr}=wry<~ZQR}6U4y&3LvV-S z?$AhpV8LlLNN{)e;1Jy1o!}DmWAEH^_dd7k{eJYH?pd=&cdfO0K4UxrmEHME@Gf)z zuBkUC<Ylua^2NJAs6q_bz~1yl4t1qd&;^`drRF~7?O)A-zZ_Q;1?5?z-zVHyw10bz zzW<k?{M8otkKt;f1)vb|Z>ENT3*di^RYBES@K{YzE&!1~%-(TNz(3MsfEOV04>g4Q zBjctLJQx@SDM%Fqf&j#bfeinb#^e7%<7oKkufD>A@g|%t#z8bb&PjQpzw-S?EF57g zoj{Hs>X$`A=HMc{^F)oltV51q=TjZSaN~1=8s9`BxT$<w*_@4007FV<MZ^IUN1F4o zH>GY-w0r`UYPZ;Ne|-LGtYncHHP26Awh(NJ8=w5{IgDM0rR=zXY>J&9Lko$_01|XU ze&?9%DsoUP@%86j!6(5TXF>ztk_l-0jLjP}snApR)|LweshZ*uW=vey@#tsTc;X$y zUi8SZEG5(@vADW6${XM%bXN3Q<gYdH{{5_uCwG@$1_qh&WX@V@h1*W7i+0?=7hGOv z+mO^XiHO&gdr6-Y>+z#GYtC;<%2nghaZ#65JHn!fp5)F04i45lvd9s;cwB^o->2Hj zuH_xw*o5%1jg-Dl6s~6s|E6O0r=ne2`w6ud(N)-|Eas(Xf<Q1J-m8XJBY`?BGqO}f zo1Z@!`ykp~E0GX56GzP+%yE_h#F`ic;ZU5PUBaf|?XX9V9u+UeF~i}m#&*y~#4$Z8 z7>Mo^)F1_1G@O@ov>8Mx#?F3O(|;iz<~r}q(;YxcPDjwvV@FMKm6TVr<44~mRI0{| zAW`ZGN>pMiEMUYl3b|mxQlkOw5@L(_YDVgF<P4G6VrEtzJ*K<lIHec^6^>_NKi{0M zTh(T=6rM-X><s0Yl!e^0+%)OMmosTLn^!T}JYI-lL>o78N;K)!DIIT2_TG@KP_kW% zJBn91_g187hiBIM#qu1ss=7d;N&1O;d=~eB*Yg-v_ky@Vjq}v-a8|tV*rc_*wB|WO zIKDRCbCLe!E-HyVx<T3k>^@y}HtKrA<M=ssdfrm!wVcIYmHDjz*e^MMNB~#9xKBbJ zy4n3w`Sc;vqU0n;zi35n-+vN*Q=8-``Kn*(2-qNF$#Qr<kLzr8-JyoHsJJ+?D8R-h zibqp289M+fU5g`iB}dJ{Bl%&0tv^+p`zXjCa)1|!vgW!k@Uk}%X!|W4cxVr=&q-(~ z#(u2D1r%e}Hr9PuDz_HnP7=vaNGkZ~qeCG;4y-}!4S8V8kGZH6@GLNokLzxC`9Z4c z7YRZCh(wo2)nbO{LU9u5;?#!ZzO93_g*i%TBELwK$ZAhH2d#)#8~-^NzB-^g!2*g` zwAbTt1qEh!8@6H!=)xx@<?BL+JRrwDjvck~$&vwy2Rllbj;&PAj_S!rh#r=}yF}J= z!)@qXR^#_UJlrU^W7A69!{MyvN{Fn<*#O>A16v*5;1B$$*h4#bJB_uUH4xAO#bcJb zb$3@r!$x`|AN2sm0DkL(SyseN9E8!-JbpaigF(l$UI!^<;J}P3Td65J8zcq*`#Hdm zo0lyo+;;X__s6%E0YO)2ztx5Cx-OWgBFGm{VxgB0F)#chFo&@wo`HA*@Ug~uPfUS7 z+A`aTV%M{xnTk2Hb5Zds=zL%!`8d1kyt|r2rmiJ>gufXo1=(u>3L)1+kz+HgNt=vt z69YwF+_Wu?fi@CSAq?Qm)$)#XD4T>HAXSBaV<7N+bCcIk(6`aE`l-At;bbwA*osJK zP|~^@(U7qHLHUrR-OuB~<*onq>d^vK$Vlkki1EdE!%{S9Cp6AFum+$;o{V*4>TW0M zsQFwuV|9y%H>|S<-vBA&nzY+SYJ=k*#=0ZaE4AqjbXEzWy%(Hz_(A>L5bIa{wi7G- zQh%>|wUtn_^;%||jpAs?^nD^bT>rHi^M~LHfHC5{y@4eJ%Nmiv`1jPzeH0&{fR9we z?H1PB99({{-4GM|lj!hgaGawNR)2|OYfs#_5TGshvn~@KTsZ$Wj5laH*GHN)$yS}q zlT9uYh*8H*oQO}|rMQu$=Oi)1?fgYb&|}`YP^Fo@+c>UDuF_G4Hioj8Vk+=caVq98 zGEygl<V0qZ2JGaIk2j6m0F|+QubrqJF!~NB?9?lznma#GWEX?k87*gUr}(pS0A^Vq zELF%MJMClNr|Og<v2W?u8}s(|8!3C17Ei~^K>n;uo~SF_YcNQkjKe-e<pes)21=+p zOh)=Iwl^U9Y9^70y(tg`MwVc!mN=CaNnrX(rj2P)a7uim4}_E@NpCcDF2Ajg6T!S{ z3Ha{MOa?D~yOK&id%9Y-N>bKyJBoFQT>ZUWU@^!(p8<cZ9Dd62W`)}{89F!O=dkh? z&_D8A4=+hoAUXE37;6DKuU3I-ToU8^DuXhVShNi1b?>;aKrlUp$uO!x_~S_<hOd#D zBA4pzg>L>c%Y<4P<OE9QSNHGR*kQ*3AyiQZ*bgNY+Nen*IlOw@Lauk2lEMjYOsmHx ziyjN$B<0o@u~yM$8rU7=rEOd;J<a9nz!mm7TdZ<&7TQ7)@BYtvh0nU%^RkT%r%gDq zdCg_#XYK;PawC~t`dpHO2`>D)AKQMPLt#hM+M^vRkdAc`&wD%3w-*_CzFLgOerpYa zI254t^}r7iQrjGM5e|ZAhdE58u1t{j7!GJUo|jVsAUOmhkj^14;$WpWNP>US2X28u z4wY@zT1EXJECaU`%)hkEMO}hlxP<(uFC{BQa7?|4nNq3Zdw24PpWvv1O-C}R0q2{U z9*{1!vQ5@IfRNx<_ghl-Yr8Fo%7pSby7>-Le>(L?<MWWRJM)>ijC9G$A{IN>y($0P z4B3(+dLTjX=Q@ggzi(ici)(`9zkvv^{YHJ<l~kox8Q-;6ER;*sWc#aSRtzY=>WPME zXWZt{xrPK~r_`CX5(L0Nggz&J0gI-!$F;FyoRa9$@kFIQxc7z6()<ADSJC#ot)jqJ z$KtIGvEl)?5!QLbHd7pGg9mB$6rgIzF-eWh*?V4w^y`a-zQK&}>OL_b@(#$b#vC|E zn=3H`HzOoO=7R*``iA<*1}Sg+qa&B?ViFuvV7!-6B~EF_LvpxV!fT<h08bUDQX8?2 z>w!_70VRhWLAeeB?4cW-HRLvhg}iyLRk*L71Lx7f{42kn{%Xr)C-U_4Bp!D!dQ3I6 z`B^E<d99jTK+RHo8%b;vA`1lby2ex~J>nd~`s{!%4*m?}vh@LH(29-{$;9N-L@?#m zw_h9spXcKie_2fVY5C)X`ouqFhH188mp8E}?)xz)VPla8Z!nAzm%a3S_{g5p-2F|D zAe-@0^9@_HXzwT^PmYQu>@;8(&O6FF)6S1J3sq|1$i=jh`qD+)s1jJR^>M0_kyVG( z917Z6I&$kdW#bvdP_Nb2N#S(~ewO(4=gvJw_0d|ov+k!Xnd;yKNQ>__z+wp>!g+`8 zPZa39oKp(-c}Tjh1C|^pA3BZdoNPbNjL)kLj=CP2{e)O`OqvudISaCnB8u<eTdv*t zdL>l!z@p{2a}71Nx@`{JG>}R~32*HXrm1|4g`x!KnAGg7nx^`8#zoa%YvRkXVN(h7 z=ralc6Y$E9dn#|S8gh)Ix)fGr^0ias<cA2j(i4@y)Y7VdjIwOoDc043lnre&Ngu0n z|BR(0<rAQ(a=A5NAc`#GWR;3w_T|yfcK}h4A9}I3E$a>9eJ%$7kHifm6$W7ahj|qc z2C)4@raFxP@coCV_3mm2iP0ny2~hdt(27?;KG*rq3dKeIqjhVE1|a{l$3!$>;g9P@ zM0PBT&O3uS4*HLW|3o|h{eRbij^Y8ta0SuqQ<^9ALSZ1(1OO?JaAU{ySJ6G}f>?^S zt6G~M5PMGw=ks*CM+3NA1S7pYVTpVMPmUZPtHKg37)NE47>Ho@W7^3KffcUjay=|c zN$QG7!k0~Wt9ov^VXTVO8rHAVw2{rG^9h~`qPbbKdrO~cCDX?<o^Gy3uj@YC%!Iqv zl2RM;YcK8jvD38zqd<n9R|fEtiIl#z3M_Tzzh8ACG2RkSUwo1Vf{wRucA#sY?OvZF zrz*UZ@aLJviTB_MPZ1UmT6bHyxz)c8?(j#75&A?P&4kbqDlMs}R6z-3bfi{1+#DWS z4-~1V*8F(Iif~pVYxxo7IS!S0VZMSM1MVQe$6R_K9+jvB3~K6lyj}rE6ESS6M2<fl z0X4*ZJ2LjLYDZdGDgF&R1jp5l8LAT17d$cu<vKUtS4GXM0Y6ss!K&W)Yt<#`Wizq| zQW?Ajf70Ya!L-8U{N~ioSH>8?vvq$NzYlHMsAGdi9F#7?SWasYL$hpSF!yCmzrGXc zFKOr~Ra*K&ptD5zR+Q=t+jp<_OE-mWfLQg;HYd@;%x)`!<r%ztms^OiZ0+FajTbun zoHjho+n4eaQ%&{~zFc3f;5J;T0;aF0<8gd)0zcEtY%Z~-34DH!H}t^kCOxxT53^Dj z2okS?g5txzuA5XL?i%Opc6y`utUWZWG*0c<is`*2u-&a(uYw5~?~RKt-^?jZFhVS^ z0jW#1ugUU85BzlM!^ib+aQ+$W{>3)bN%}W)Fg^+3{^$CIOZ^x1SSA$!_(L&94n9dP zd53yQG@zal03qlc3mNg>$rPa23_vbPnJ-$rGMh<z!<+(DUuJ7LZ8vpJt+c;s986`i zc_a}?I}<<*k(dth%mh#XSK97V^+qcLZfksB)H$A3eyggtBgY=V&^!$mN#k@g?m<WM z(cujD^$@#jhlv|hmt`>eyZX6!yP0HmWf?i>uM~7D67y}buYM1}y&lz+v5cIPXSndj zY-WxKhzaJ&?2nd+e7THwZUp*J@)Vt-w}7OtM|lOh5`_D2As;z_U>B)SYpNMgOV?d> z{LY^i8<FJd=~}1Jea>1nDT5Tl?n{`U`I9KL+wC_!&40u2KZIm^{6=qFq{5CZwvfqr zU<hFXhXZhlCE_*BS`H{q&dCMS+LfEAM};)!r5`si%?`=ZSAZk}nMC(O`Q06NCXuS` z7gG@u8_o<Jr%&#IjVCg^dzF-}`si*+sUgToyoV&SsVo+LT$``Yw}dYNemv4$oiEx% zEE%i}d1OUFEXj4@GiO;nP_YqpwkVgy(tw?B4IO8QHG+%8ab(28m4bobUV%f3lwmF@ zIrOOh;{pB-dpR!H62u;=txXwZ>V4wSEASXE0l+rlr6YHszsm&TfY~6MmZ;q-WHS;! z>n}Q^NSJuER<C{@>~S^^`cyC@IFq(~D_z{XC}TTEl<*aE&uJ2L--Q~_Q@F-1c)60V zMqj@p5?Z}`cl-?XCSRWn?>4d~Bm&6b(h^G^5+Y_YKu!TPO8pByymFv&qJV{<LE%~U zN#T0OkslEOMIG<nL`b2@t4VJg2v)y5N0rFG5ZwB7)=lEpI(<>}8lf|Red2a0k)ETU zr=v>{R{$4ydOhwg*zyEJx?8z>x_`Ue5ti;^lK#G7P7hv@Q;13c8A-0-|6LgGc1s8r z>2euS;A2`d+e7PTHS9+uYt#}`VNDzrvRTR2$tF4xAo}O&+bU5rH)Q<pJ?hqh8fHPZ z*=gzkGuzqol{@oOL`7GD-V_czq|+_y>N-ep4xjyiZG!2qIho>}JAsvs8}lZ>_BMV( zH^mwDoc6?_!AcV*iV+^Lg-ssH0c+E~PDwv(i9YTebZ0;LRMF;J9l6wK`;6#vA!5X{ zbq^pXklM`dYgn6Lc(h{Mhu`$9l%)ZX0K+aJkwL3TsLZqMoRC==H#n)hQ10{`ZXZt% zCpT`Oud~~ib?UIjNwlUBaP6QUTY`qaQQJ5vCqDO?FLGoN+4B5Kv@iRRsqp9zgF-k+ z88Y?dG}YbC_zfuy5GV_L78ui^enJ+h8M}LU0d6UoKf6y1oKLig%J{*$j37Q77)K3# zx!0_4`hwTbql=eV74_7fkMwlb>`8F{#B|6b3Cf`i20Dt!;_X_g4P*NxT1Sj{`PmH) zc$uP^+Mh4`TR}m8HFj;<AVBe841657Zc0%k-1<Cdem{kjm>)-1GidX21sU0lL(boP z4}{(=HC<#vin-ycZjLs+67b3dcqV;O80d2V!sL5-o}rXY8J)MTk2KTlYTaTGf6bw~ zmju2ax;`{hgh_WI6PJ8;lz}c{xB+)lujnqBM(QO=hn%9%4D?`~KNW<;aqLr}QrUwO z&Xay1hN`6fAl-<>iPLu{QEQ#Y3QyRJ3!L=~Qr*Jn3$aTJkgK2yGJ*8ZVI2kMPOn92 zCL_d-lbM8oiDhqLBxj9%-2RHj3`caV-l%VTZ;qa*5mp?-x>ZfHxk}<M_>IA9t}jzA zw_Y}9rAC{%yych9x`88AVi{yulq$B$4`bp2;s`e>eVR0(eyRWuFXQe3wC$5+XkZY8 z+%Ji)2E%-=1ws>>Fm~AW9n7{HVE)(zOj0!|FF?{+vmjkEc+3YDo#S&~W!c~fToZJM zu)=a&vwrGX{N4CqVTObIN1xJ8wR6%7B7E;WqoHq=pO9cI;ZtSgrz$M<YfN-o&gXUP zN=s+J<})AJz%@v0i6O?MR3h;!rh%_t7<hfbWE-r|vk-1SunBy~ZaP-_z;_Yyu>D1n zC2iU+Mbe}1w4L%@s7B36E#w&Wewq>9W_2r}GFkPv7RR<lpgxQ4sNk}_SHm=t=hb2k z@R6SR0h0bOt$VJH1(YDlm$|P;E!Gw>b{PvUW-`lCMJacobqi%5Ci7mt{sr8o)Z2#M z2lm4u9(j=~(-=-5TP1ytPUo`$-=)fZt_OpWL5*{bl$L1qINcDfUlcpU>@ddn$<?ux zx3CYo#HmMZ=l`&cD0z+($B>YmAJX%Q$~aCZ*dOXO?uBk~WTE;l`qX=z=j?lD^PBIJ zYh8tBfZZ!Wqac<cr*j7`;w=!;(98}OEnKMn^Mk~_U3_ieUSLi%j}H2Y)`fNoEJG?g zWa+4dT>^yQBpseLxA-!AUU>pb;wp0!q96Q&an0zhAC+MVMV>p^dRs<`qDmy>uW9xC z$kwU@IrT78YF|p+=N4G_9{Z5Wl;6;;`-@8Qkv&cx-`eT-YZ!mhOH%`#smN*Ikazpg za2ixNk!AJw6MGU{4k9e~p-<oy7dE}^nk{KdjM00(MlGSUQ(#bZVnH>j+<gSAVuhiQ zfCiaQVy^DjkQD0@{SrCykR@|5nIGTbpBCzMLR?&50dr_5$86nIm!^{PfKF4jE;NWz zmoK^UEx0Pbzkal%cYjp36Hl?7^QHZ%O5Z^l6Q-cuLYQ1#qS!Lb9A&P@r79TY4?QQb zIB(7;<wV(0aPIvR#QLa?*gAGo7R&N3tqk5l-)iu#5+cf1pdXTpOnRe3=9vQN<^x(G zNXnbA3jp-sz&NPH3dNfd1&plJXS)mzg~^4*B$Sr2W81@ksVo*3D^XYvgCnsPUEBEs zEDnfov*Cf)3%?B5l-e6*$qJk%i)=v6P`ji*uc=svSiY9yBfx998N<_Tem-7O@%dDm zt1JY9FI#4@i#HrA4zS%Ncb7<e^n)}h<cqVq&p7OV09G{%|I`UJ>E(?W9@H-87*&Y) z`d}_)F;k}4Ks_7v*pThoaW~_AS+m`<tx~^yv_RR{PbX_(t^MMIuO$Dgg@8TDTDWAv zj|%679N;u7bq<}aZE#yY8C5L4#MSLWQ=ZnhNu3PxEz^GF?u-_k2`6r`G`Xv6Wpp;+ z%Mn;n0J_rysN`=Kh2LB;pgu5vzW$kqF+kn8Bxb~kGii45PQsXl`E8mj4q|OcS-g*U zirp3=KcuJ)bDMf@nN6<nPd++SKhe7J-IRq{hWDgK0l6qCAlqn~7rogRS&Pic#Yeg+ zwwk3A-Bv#B5Hi-XsFLOkH3&0<I{jeQt7kv00->?T15-Y|@Lo?T=_BG6YfJE3%vupX zO%|JXJNAhD^r9OsVI*%ojCNp{cwjp&OINqWnz8lPgvT2BD6h`<V_eZoHW^3Ufm~hr zbsvRePgd?IRcrspBe~`yPyCbSD^UDI{Ehrh-tFi<K_8t~Jzo`CW63{)`fZNA?L7o_ zfDlsBMZ3}NWs9uiCkgKx$^SWk76bmJ6-_M$c>eK(r-6`>C42`-;h=bASVB-cHZuIb z51LJi<p8cfFbTeNG{5GZo45e?M;cCogN*!NOZ%z;BY$)<@%4az($YZH0kC*Yr}coC zKSy4_=6~r(o0<V>(0^-aOwY;!=ih0M9yot%Xh7bb0EGV_yQZj4zy%D_UsAtbGegDo z_bMDxl3)q3>_53#*jfBXYx6&fKTyj6fR-o#c9JntaT#ZY%Gw#TE?y=%e>-3F)jvF; zJnBpf^f~~b0=CWBaLRRPB^?SZ*nD@XP!sfb38PWU0Bn&#dlJa7l0VE^m2-Zi29<9P z^m@rp5{40^PY;hFfBe<MHbe@uw|JH2{GMi!Qkh!{n@Wr1saEzlMxJLZ6xgdCD<wNn zLG|GZ*}Jl+hcxgaZ@T4MEl_w>VVEkHw~#ypma&5J6nGM@yg;%9dK1c>oJ@A@mn5uO zIPun?IDn0@+Su-2>3Q2czTQxKR`>tRMl@&cIkVEHN15KCvGJOl3gaW{Gp2eXrjP6I z=rw*8<QpBjD|HMB?mU2k2>Xo^*DZ>dM?mQ7Q8PsfE-ePTv&_a)nPhLqGlSyh#f8RA z5<Q)OHxMfwXK)3b#sFY=*TN<@Ny|&>xg0G!FpQrfQ7Zju58YXB1i~)3;4-=Nu)i&8 z_zKFO2YNgf1th)w>~{6*^ybjq#fN&FhUVZ1IkaAKAp7GPQ22_-d<NqSKc8@>+w_8A zShc^GgXi=$%`nX#9-2=D`_KNkMImEPdx>HnD}dah3D95`R51j=1!9^Sd41}0`IUe* zfa|3b)w_!Q+$nDFXB^Z0eUPA13F(Romb!UoPNDu7yIGV0@N0_>_p`ONlf{pWm8!*M z!`~Fg<5p7{Wxq`wHuSfRE`p7!wtV^4y|@M{FLkz&Zf(${0M({&P;N?SN^dz&`r=jX zuJN&h06pgL?^@!AnLv3GahS9zLMQglO-v@;OofQ)${^`^=bcmCR!x-{ytBQ|%BJ_Q zijS9hV4+XaXu`k<jfep<%2>6)M#z}?*q@7PSB<=<eiu98T%xn{15p=yZ7KANKX~nS z1o=7X=VI0PVIS#aock+?RTXeJTBqlyBtiR5hv?>QOgBkZJ-~sD%J4i5dbCN}N_JFV zursXheEntOf}|$mYsDJmjIyT%oY91hz_NoINZPyaP}c%OiYyX|L035H7iv|d<FmHS z{X0nKfZZp{)ODjmd13Z@5gZ*6pS{sVS4W*_YNj9JnKl;c_AZw0pU|664TOE^H{(~A z=C>@FSi78bD1d~IYm&U*=h~j(@{aEsRUWQ(naljw7-GTOPv+KtZcIofFWUyWb$x8` z6?b$DF*!S#Y2DX@R}3tkZhyH8dzhOenLL)dU+G&pOi^h*+bA6aMUL7nNV6=Ro1Jgt zzP7@KVKP-(9xVkBz5L5J@-K#r`Khk3AJn_6&?u;T<XyM>A2*@v5r7Ot$`D9!6d(*V zy@wU*{}?AfzQie0GS+>@izQu&JJE{Bb*v*tX5e~f>F4(d-nkc7vQ4Vau0n1cF>Tyo zIP@tc-t&}umppcSz(ZQt$~rZ8V$g9yDMXoMJ%NI}qUz4NS%v<ml=z0H)I)<lGYzB_ zCWsZoKF-m|@0R60^LT+>#cF4>X~z?2)>lJsQ>G2eO9B*l`+|c5OmlqEvF_laOi2l= zRT<0KW+%@J-BibCepabeb4Q8`zF}(Gva(i0tx+M9gVfWP#BUM1(1m3J6NhU`UyGc{ zUU0-zC%jo3_V@)`t5U1M7H>VWgGUYjJH@OMRjyfPpVEvl0rd-<efvn@gg!ga3~tX) z(wcl0f>+6cSh?KX^d%26%#c*R5L-sc@<wV`Z6~xPDUKFh6>=~%&Ri~$cgU`~QtO+G zD1`=&J6{1Dq|!QO<)Rdxo1n)aPL#km>ZG(lS!;Il3orI&xr39N4~QwEv{w@R3%h0q z>2<b?elHzfFTWC=Xht%fkw3x%51$k$17xT&B3Joubb@QTOok(Uhc-hIN{LfM49p#A zu7I-T5V3^lG15Y|0tS`4(k`{&&P+?&hf5bnH@u-2fl_3I?WrAK?y?Dm)`S;@5mCMg z3i|;jJgEk%26(PI>%aP;B}mI-_jK*bEYP70VP^NcA*a1{(TrM5nUkji<4N^JyebIF z43h9WTO>T&Z8bKiaFc7#kEDm^swqxkuAsljRC9tbZ582Mvc6E6a0I(Y+HY{`CG45N zqE<Ld9U?L+*C^DtA^t!gg|o%d6A9O{<%X53H-?+Rd@=QuxtTdW=T6_MKW!Gb%^Jn} z;c-n%u{g|hHKemlmKZn#WFk9YcdQRuK~-zuHVDgDG~9U(Ny(;CAr|RbXl~tG(NU<n zkq8o1&}^<o_<mxd9=9;7`IRi(l5nhGNc~Ax+;~JV|FG)wz$BILaXq=N7c3n2*rMn+ zztK>Lm8<feWa9{X?cg;oxUV}mHnZ#!u(~>`&@EpLXhwCTOP~_hh`o$BtVArDMPSCa z8VTG!DY6qbqiN1E@Cxoe^H+9)62<|Pz@k?2h`sR6IJ-(33}Q~&)F++-xi!5x&ETe} zQBMA%3?U|}(gmrIprfx)!26Ot&I2Y%&SRlll)Du^K^+z(;dXV-gj&S;gpEcaDz`|@ zs0O1#&maxHCV=;w$@Al>C#S7o7%r2NHt~2Aqoi%2hM}Lody7>?yh#qt(mM1l@KxaM z^<mg|%i!16l<G!b(|L5}AVs?)p8bGSmLvk!HBpI%O_S9PTc(~`5v~*yo#tC5Re{>3 z8eNcjzeA2g1&T&)@Elx+VzQ5$+tUi-Nf1dIVAt*x7eyQ91Sh}fq`g8uymP9IINd=y znLi!V{y<2wb3wZ3xMq?hLAP@S=qzPVjJ(F=qW2`iq&>zkRiW4R*<L3jt(5nq3+YZU zDO<_4fVJh;vJ_`#csAejbc(^}gpMuS^#bumP`~V!wBOFNsjp=TnYi#cwBB$ahgOux z%+1qhR+@VfI)<5dD$pM@Mp}198E@!br*Ubrv)gnvhjaOtYYG|fFTvMh?Y9xsR!B<! zqZ#e_J#GT`4~wQ|KUI;J6y*>1(~MZ+_dWehIG$YA;5_Z)E2@a1^j|vtv&s(+E7xjn z8*E|hggh#Oe@fd@oWA_a-QX`jj>yS(%Etf5I+}VX0fVrA2a~;X61o3rQ@>lh;Wh0n z0X{+h9rd%-V@Nde-qZg2C+f$21MvTh`f=AVaLi!E^gqzf=`^12qf?ymc<0_NKTeh; z7gnCgCwxTKkL2&3O{Jc$f9teWfQ_I<F?Jnqxql4c(PDSSi()XKGakeGNS5qTrvI58 zA_X2PvZ!E(Gmx=~0s1Qj0T+@*%CH|p$0*RuyKO2mT(>mLgcf>158hed?^IZ;gcFNF z%SkhMX*Nm}MZ8B3y5Ls`e#|+KQtDN$8;Loi{Nn0bLWk4yCnn1YqhIHpHAb=bzZ%Ng zB~J1(6{RWIGb$HOpl_|r?{?trH_Ye9dkKwin91YzhK$Ku)3OnTSz=$%UO4q8C9HrY z=O1^Jn}o9`e{J|!5u-49t2f<+7*0alpL+aMQVJfOVqoz?rb6Tr5gIF1`}_mHO3*7L z>nCG6Zbr{Brj`|s0AcKp3sdy0%TWy6?96Xf;~~yGTLux`8r3qN@k84V88Pw9s6T(r zkuo+rG}Ou@BG)~{M7-;OTlVkGS%bj<)<4+=3u#>7%&4ZZVuy?pJxtV`KVpcUnpSv^ zbf?55#SK8>BrYaR2&CzEq;G@&Y(`E@7x#2;xJfZ6ii?27l9Dk>Du*{!>e$Hv+j58( zxc7>67&+vx0DD4%?huqCIRl+a29fTm_Mva0(Qf-EU&Vqs8e?1|%k@Fzo#bEuXYsY5 zgAWIZSrbkKk_AkWL?-uh1Py6;p30b28MvAH<TmLQSSN87QTGg}dXRDlIo{xRtfP?| z8w3?{6jdh<r|5xY`GBjM@3;r--qP%6%er3XufAJbgl8>|bl<w7z_X}dey!Ms)Qe@~ z`;_%-1-D~*$s6ooX_?hCj-53Er}|Exy{j`}W-Q9S6!eaZJ${vMk3X2889n>D<>0eS z!HZ8krA_Bz`sOw=t@NJuSm2#VKb;Az>c7w(_YHT~yG9ACReysF>xf>Kxc%yzQ3*Nw z4F=9*Dyo*R-B8T)b;bQ2|KVSUi@zLn8Ypb$_}<|H6D%00cLYEHD#!otPI^<#Hb5N` zQcpG$1hWs|f(c+3)_i|8iSGlT|G0+8AOHJ43ls&%YsxzYbo~KE>)$3{pWg4YKENL@ zkW~U?)c*oS1?K?FKcJ}n>fZ?L`3gV*{kQ3QnG^kt?t6*Q@8$u2rBGK8BL8;^wdn)E z_0JZIPygNm_Zfiyr;6OK?3{m1uzaBZKr?@$|AuA_ZZOV&qOcDkVE%b%G*LssEQ0?{ z83Tug`CrOd6F)S}|6sLISeSp<Vvuk!_Q-#iOevdmBl%vkChVV*kxBkf$#pm|hJPj* zkjcowQ1AHC;eTQhH%O47LBa$u|C+>U62K5a{fz;g%dK(p-}jw>`?K%+;=d_w|2Yzp zdBR~f4Uxc<{@J@*IHxt~eR(zPAIpRc3YdTLGMcI=U@HFnY(_LN|MEl1eCOuD{{1xw zUv@+x|J25o|4w>CCj0Me14P6M!wxi!HB<e_o{(8j__X0@KKS*lZ~?{2n#p!Q&3j++ zJEg7#YM87ELW~Klz-V%#iVSfHu6PfV4fVSLZB;agBLf)_@xwcQgq_NEGDczcc*zF) zW5GSXQYdP}h&9-ahObF(=;jHl)pE`gEzVBQCnP3DoWdx(v8sBl<s)Q3yfJW~du{YS zbNxe^YWToWZC@zRU~OGLT)1<s7y8h|#=i6BWzFIK(1K+EoTLNS|9ruuAfW3pKso&_ z$><jzde;`Z?hyW=(^G+?S_4PtnwDcDw;U!m4PGIiq{B;@&w)c1$5N>syC8~Xov{yh z%RbNVu@5CV!nV}+L;dF5X%E1equ+kVD1$KEAD^dc;O4J45`LQsS@jf2*6L(uQC;79 z*XxXh#6~ICxfAr#F`0}}$ajnDC)0Wi$gwa<(Dhms36EWQE4!e7kKmkO(!Mf>qd_U& zijcJdz_Cd`ba*ialPX19cn705&eEXBQ4&ypxUj0(pTdACn@T8;bB+L()IqS}J+-l_ zj=<{{=&RubZ>hrT&4yXv!F$7@=nq!!(LyB*1*;Mi%8R>yL&5&=K>6{;oWaQa4CQeo znaTTSa5q9Qm{zD(Ts(J4;YAu20FJg~Sk>^`&34l&yjy&ihm>UKQ47wPfVNgD7#22i zC{aim<CrcsP-`?h<O&OD29Ya8Emr>MWv)VLmP5RHU+4Qv>t1{77VG7EW8v41Cm&z; zuDnYBBH5N`3DLRhkKYJ@qh=bf0Q;7q$=cM9cbRZ3%GdJ5Mt-b6M0c)nXy*b4yO9<# zgOIbKKVX1Ct9`SUqAUoMX)q3@OGRZ-%9}F5!^(E<DIq{yk{Q$h3gyUtx9-w_42jP( ztw7M@`xLE;-8;S24@6FgAJyWjXq8c<l!x4*PmK$1DW=J=a!L38zC8FTWDibef!VjO zb_Vg?(-Oa^=*(PgIakTM&cLx*W@wqf;&sx?51KOW1cxPhP6@t$J8p#6CPQ%YY;wty zz%Gq;QiM0mXv*~xNNGxtN1-j>@p;sXb9FQ<tG)qD<DNy%^n>>-z-_!W(Vz2~Y)O|? zXRf;RyE8zKxKyT8pGe<3#W+UETPv2GnaZFu=IYIK<%51e;@h$h$T-hUDrRiwJ0-y< zkTr~3l3l@;R4~D23~Z>ke2smbd=1xmY=Yfz8>g=b`7!b|(6*LIuy$S2y`+7Aqn~dD z27tG+sU72{dioXJk-;tPKG#vL=~H|KRSZY%I%LOSI}(%k2enoL1g6;ax!a>NgZVkf zq<xW_d`)TQGUU_Y(%Qso-J5tW>F~-0!7Pv8pfjI(=9ZrSc88IIq;$WMf&~LJ#{FZJ z7S02M^3P%G8xM>mkeLKskB{&CnqS&*a#A|1Mn*@h#)NcRn#_V0?h6s$;sxxF*_&-C zaR(hrR<n$_=e6j|w#3t)TxJUtT6c2JcQ;mqfS7?`gqgF+`yZr<ZbXc|Q|YQRmSoA8 znUw4wrSiB@pZn6$)QUd(DHp?_#|-7ORj%YbR6z}vFHN%V1K}tP_4l(FSo1jZGaIL> z1v$P>{j`)LBs7ejO~}&~7PL|jehu*dv>F4HhLpep)f8_yl>K<MY4DkC$nEmpFCuY= zxt?2Ux_d6JK+>kJGthb13FaZO%$ooGEMq&-iDaVvCMnBn6dSz~`+>r^OorNYEj7AR z$@tdyaR3O93oN}+r6#02xq<@GOLUyyj{92C*fZ#RQ|jO&BzkSinn^+wwCwHj7iFqX z9A#w@@7%BLj1MohSlrp2AbO7N)F~A$1jTHlK^U?TnsV?o&&k^HW~N~p@FY5Ha|!1% zwjZn!Nu`GW{-)8`pKKpmuc>t>E&i<d)*)p?`%%os2YA>O*Z4)cHMUvW)M+?@^+S!9 zS_6^7&QL#Q69r2UWUEt>Tk4iE(HE*wwmVkyrVyEKu|ECiR~g3G#Y6TRMRZcz5bC79 zF~mt4^p$QbQQdpKwH>X4`Z+<6olSkt=*}JW=Y%?^(aUAkZSS*tnvR>m5FC}*S)rOE zYEzr&4xl6kFEvNTA)KT6`sD_GZBAm>M>62O2vKr+4|-Y0jAwd^Ba2uhEUsGaAt-ag zyV%yPZ|Ua{A#tN-QSbwvsAF6><ZJm)E~NE9`G`=SC55-DgKlL3&b<NR+YbdFoRF0L z3i3P8(v$SM{cEI89J0hR8(QPJD-NFA#x+*W`NSPvDCFw(o4$ivi_Zl+HoM?IrVy(X z97!j{B=KxWg_w%01lHMLnj+89{2;>VCI3WKdrTK!*yeQ>N41$=dc?D-QUNOBham$> zI-|lUU4%R)gvsV#L4d@5pC5C0x-C_Wyoh72Mz?-{GiYhrVfc`)5YYA>R7_IX`D7u` zda~*}es;$Bh&A7ps*I-YF|PcpE!*Lj(vsU%_KNcXXDbjt!}8$9<au*lN%#eOU3pNw zh@hqlrIMFOF_z&Vgtk%0LrA%Bhvo!WIohc-&@{f0b<JeZ6TEN;&tbx-Yr?<|;@L<% zZ!f!;6@Y4VG=(Pr_S+5wnTb8_(W|)`T4*+e)Ige-M#56u6!S4!5nfb%n>CkPimd@A zHnNlisUb~B+iJt@kR~>Add%E`LKZt1DMA&M-HiaytS?{UfO);1N`(ps>0Sm@iq|QJ z2VtT^j$FXf@eSTdA^F2!v=Hd;`-ZW?PJ2Wwl)A*L`GJWucgICFdaWH{2;V0nTU**o zGB8j^o%n{<SsSL!X%5#O?IRcG4n6Ah9J0^FLgp60hqq|?G-8=OD%c5l&7~;YcP=S? zAX{1Xz-1h&O?7*tzH(84;IaY2(E2mJmifB89cZd!+DkhThKl;-u-D@K5)nauOOhW( z--r9S>F2bh`k5sN-A`+d*SS3MNULc*i-!k#NkLl?gdo?8U2z}TXgl5Yvy9QUnVI7^ z_eKUVnBFq*UMTzI;W!gi^?tx0un2&f!IvXR&6~RbA3;K#82j161j`BZnyJER^R&Yl zX^U`#X05bG8q(gc8}~~o72MDRRH1z*fO@ez^Mx@!#{&dGD;zKj^o5+$UA%aKpV?fk zQO3FM4I63xf|!AD3l37w%ZAlL<Jl}Vd1TA(0q)w09b8SKoB874$V0}!Q)Crf#slp1 z;=0)cm9bdYK~As5oZ&!YT&HEc*=}~jero(c8F3ly$K)@tnpT#4Gf5sbI6L(I4pKk& z<dlQE65>qe=y_Ai$odZD5f3->f7H}|uhO7g*?Xk509$%Q;@l)nXjuMmsp6)gX}wUc z{nf_>89lE)Awe#k8KCT;uteP(k}<5YRmlQd_USV(rb#+if3hqPl9o%8En7Tc8?IU` z_!{|J5|V1!ty*mUIAA1p(cY<Ob`doY{P|`mCW-#LNq^^P(*h{u!=>I2<itSlJ{mix zt9b>|nMC929_O?utxO>Ufq}e3|fHrnLlqCc?%zj4aXYK7`&-YUVlCb-&ts$E&?k zM$Qr9>{)kw%xhGEbuSgJJ4O0#d|aULPJ^*ZMt%RVj8Rp^`m(WUL8+!|Wo~<`W}`dP z?~hRIqvOl#XN_Uv5yHuUDZ88Cn{5$%9Fe`y-*#5kI4y%y=U_QvAY`Wz*r6HKD^M;j zDaRQ@sxEU%Ub*<BDulQ_&QvW6Q3q$n%+(m4c1`JFL^&<cb`ZiMT01GfbC<*hY#9UW zl@jd!nzb7`yGgoOJpbhJ8(m$%>l&9JaQ)MJ9^gsua}6pbT#oP9*frRfU=4XuJWz4z z<?c&nc>GQjEET$TD2}P#7f1hz-LA*ZG>u1U$J?hW1mSF|l~`03wEKFw$7>Vns`e|U zoj_?)EmIlb?qKqoZ}qOXObOFgr_QxtH#&_W8URf%^C3B9`1_&+T0cVVcp`%!jk8A8 zEsG<>bMax8{}MlRM&V|wpcWBisX~%L(Lh<KOp9()VMZV|-yPGbU&q@`@&3%1hYTbR z!bqgA>n|35oj9%F*J<eMxzH8OaQ~!$Eh1WZmU;#Cb8YFVFp_EgX6v>!l&aSa{(+z} z%QN@QNzKiRTQ!r$ONbtM&k4v4qo@zTF6^_Yy>@D|5>WXM@pu0{W0ShEfNOXL2Ll5^ z{()h9<o^xBn#4q5uprR>YI^Gp%9BjIBetmbzBfH+s}}|jlt+$?{r@Am@z*d=UU_fR zyeBfJk{+c{`z6=NVVO?m%CXi=ok6GW4J?#s4p!QQ2dlh2ol@GX-^CZz-)Fi`Ty`MO zl#1ZiO{d_qO0}ml*sIcc7t$K{Fj<o;pt7PUuxnz<RjN=7&t5FqBmh4a5J;%$GLONd zK@SNQ(q8L>F*kfE6JAC5h6<U0i3*cN3d=4UEov08Cx`9~O}}6+w6|o9Ywvz^!vOw# z{p{lw0rcyVg3SL>(r_J+F60b<Ocoy_*Qw=wF>vCN-Y$#~qH8YDPQd?adpjze%Yl72 zm9lQMt80UfO)YqMMgk;0^?dRDFk?Q=L@2qxM#DT2P45nX1oUOIR_K_t9}OAsDR^5N zY{bO3N_2pBMz^n?x1V=2vbL~m#JcN>LKOr$Ds&v6AC?s@pbdER0RGG|(2>+EhYoT# zW9=5ItZDnM*$b`+%O@n6)jx>A2WS;!s-$6gLr)JWPJw*nH$XR+*#w<NQ#3iYd%&+B zmzWOFH3~=Me&uANK46%*z4%|cRVF^Llj@u<d{3(bJ|{HOHF#2AeKC&F={8q#LAiQ{ zQg4V8LyOD^4j)WbvifNPHp{Y`ZXS4OcYL~gL3k90F5gN#>z>o2<o0HJa4Bv@6Ro{w z>iMhk)IXG9sU5g`)0Hp>;U;)WlGlmZ*sH1dDs!j*g?5$8DiOrM(qJoAAC;$B+<Z0V zox!U<9bB*U6B1*9DyElG(I~^e>V=xcyi}uMCzPAofV*Bxjz83!Lrs5g4gY=Q@ueYM zIf2kl!=PM=AsOIFWS%vW$d#(r{M)e;bL!598ygx_mk*rlto@{xmNA<Z_7=X_v-b1Q zrz+q>NXE+6+@+x?rIqn%AQ8@MaU+JEQHbYZ)btQ-lZOLuOhQdK#St|06*6MpuP~i@ z6`!y#`3`=?PM!$79f<U9pTOwC^xK%u7OI1d)t!P)s($K#s@<%v3H}*T|25k6Fp>h* zO2M%FuXF366bvc=^8F*wlfru+;y;G29Evc<kdW_+I1s7o``iD~zv-yL<RJWQVEm;2 z{`P+wrW^(^tAM||3r<b2EsXDQ{~qp7yMV_W2Jt`BrY3oF7%8Z~4UIX19#U`L?_%3O zhQ`KJ?~?6KYZ#>eT{>+IgYw7saoNtOHU53a!uP<=zZwYdYZ3qD)YC+23sVO5cclh_ zFx>yC6m%X8i{Dfq2s87i!4w$^^RLnTNGJ@)AO7;CZ<3|c`}5%^(x33r7iwgr|LQFX zeSt}W0FFVLhijnH15i5MM)ai~D6cM&Ob!6qtp~m?2$0^VyQ7J9t}sojQ7h}^$z2Zq zM-4MsTsU6jb)gW&Yq>=%Uy<o0HAY!LmwXpxcn4MjrI{CH4*Zg=tSFT$$`OmPk`IW5 z`S53_&Oy+4<>DLwTfZ!f@t`W{abu#Z&v0KFfTBn_Iw~>?*TbzO%aJpX%X5?X^i8Vs z`5zT4SQ$Nd6i<p0cU)={N|R37`{d^oAW9X{KH#bnOgA(Fyw13?uBaE%t7G+IMkw;v zEH%4TXG<_m7X_hXfZn>yg9;f~wit8^*t8_dpE7>85W5@W8E`DiO)9IwRD2`^Oc=o4 z0eSLrMSjF3gi2Ho4)@}SEzEnRkU6X62<h&WHkTeqhtE5`?K*vL{X(|M`N8ChkGzp| zTtrT!B<Ul=3`c9`=%@8hG7_R#Vx(PgDVTT5-58(tk4Wh>m_H|2(ZRWXaoI(MG5^$% zFfz_d{PjA-p!WDGDJdnrujh;Dgi*_?=Pq!cK&#EXa0K;8HFrUpWOq7C@`EaYyTT0T zSYDsQkO%|sW~PCLB^pjnlc=slEVBdZQ@}d(-e4UYgH<y7C%b@S^BDNkf=)s!hrL2` zM1yYdNah)JAvHol{6wk#Ubr?jdX3N$cDYtYO+6te+;gP0*u3TDa)<Hba@z-nY$Kp4 z;)m7@U-2$we=SlK<MHD~UHVb0V_wq)G+W72`6KosO)4L;_DhLXlGlnWx@`t9JPIUQ zo}e!)1;6(1MZFuqlJ$4aTBe77*$-(k$uz@<e1Z+x;NmVp)A~$C2gc2hXPWygh1h1| zLsY&R1|6OFA)n){K06G18k#&?d0!u>qJDAKQoI5u^Eug)R#<)%nZYq-BwcGl4QC-( zw2Vk}XU{@ItzbY_6@1L5yr$?UApEA_n5~Sq1yd6FO;6_|@Yarz*CKnUmEY@#Kp&W) zwbRkGF>Mru+kz~g`Rsqo#RD|B7`g%vKdo>B*+2iQ!TZ-kV*~EE>pSi{QrE`)^QU_q z1A_+qpGU?2HNoo8d2?JDz<OH)LT@R=)q7#bZhYEB*j)lgbTgdtdFuE0va>d|Ppt|e zIR}>xrW9OQ*-@{Qf%J2~(qPA3KA7<?om45R85phj@sZ{3>!Xxxv{~CFtT^@gdXw+@ z^?FAe2Lzq!f*vjqqcrH6!EESKUb3e)(?;bs%>vG$M*j*j_qau5usoQ6l>~=gT(MVG zjUHRxFylQFR4!2)f+R6#w~1D&EJ&}oo^E8ZigmOi2~kl(TwFXqkO9ji-2g7&M{!gU zHHRR3t(iE4!2J33xq_ljm+v{zR{LfVPDqYG$|%#TGbRW)3e9~C?i*j{>grMla=o_F z>q?6{|Ms277-#=*$?j%v`cQB!iJ#;5>(~>i>)nsT4B?|vBbit@N0n_3eb`m<QE$7F zghYvaQc8SYO{u&H1rEXKWbJ%<kTlVt8|$3pR1z9_<mb3b)z1-h%gE~QGBE_9>SB2a z<5S)F%shRdPVhHtY`fi={@Q6_jAqfG%a)G4+ZXM7{0+aQhX)6<m(h;Bwo+V&SE^N= zkeU~g`D5kAUY1wYCqKdG{WO)g38No0{4n>O$O}T1FTYm?JnwD!-;G1EKl1}i?Vs&M z22C5ReHUY%59(@0SHqK|Hv6ZH#$#S{+b^O5kVoi&eV(I1dROFaC4AI)36x8P5tMo} zoLKTQ5<}P)p@(_mUxb>g$;+UcbpYU~(3+}TvY@9grF&v<>QUlBC!Yoxs84)uJp2QS z;SdAUZyf?GEw4I`U|n2E-~*%BOqjFq1T(Va5nLB$6xBuud$ygbbub#z;2C%*GTTE9 zU!78cI?T`?{XAyrw*wh_MZyx@i$}bI+-0mk4M&w5nsR4v=2O^<8W3lT7Wy!KOM$~y z7Ay<VVK8-cmP(0{D6Or*A{<!KSAhU}`lGe;74k<{G2@SNVl^BIIngnEB+V7qGg*W& z&1R}*NZVH#`>iNRA;xFATROv3_B$k`yDBgrm{0gABO?<q^%f8(5wTI@B!M~(y9pa) ztX!Q2COhnxtx8sED{|p;aqpEYxPH@@3x|3T_4CHnkR<YVN9Zf~M$^F4^EsbEN)53( zxzYH*^e18ok50b)aut(^=u6Cu^Ezto1t>pZ9|}A+&H?aQ2_uqq9~C2A>+iJ4E#RNB zfFgwQrj8Hjc6R)Hs`N%zRk?gn(bN<|f`k-!#02AGhQ!~5Gl-Nt<CJwz_0@ey&waUP z6%^)kN-k+B=Zc9@DDy3>FdUKtwT8ZP1-Bpsl;{d&f9(V$4{rGpzJXrU(th{MDJYk^ z9cu$2<7xZ?@LfoBBXsmG3#EbsCYyS8fHEreZC$y^Lp>AD%Mm{`m|DRdsWs4KX~Pu` zu`q`N(Nx7Fsj1zt@{Un0d63OC2I(Qi6bm9NFr?iS;@rwB^C~XP4J02nEzG?6^*@HD zY;P`MqyGR+Aph!s71l#=Y_}G8@NxA1h-It%y3+jn+4z1Y<W_p?jDKt2!`|Yz2JjJ9 z3`sRO41qWDP$khMp8$#tjz3R=%RR^a_>6)wUmS)!((#nStGI9B4$ZNS_prB*Pc}R7 zrJD+RzV6;*22qN`A0F@#MVmnV;%+&q`PiZLz*|}f9IVABnsI`WiOImsFwUO)CaLcF znE)w;G;6T>Ab6t(e4%wl1bJTH7Wm=mnZmdJS`v_x-r==d3uZ~BgGD#ipx^x|2i0@| zQk+k-cW5}hoIbsT@;w!emc5ZG4Wgvv<a05-t3rPeW1xb{VNIm?`%QcY+fUa1bpAr} zjqtRyRCvQ?^`YM5-o)(1d*@Zl%uG8NeyaJ6R=<ntwClOFu@%3PF<hDZ2e2rcq&sN$ z&Wy(=bDRzmqjZQ|T~U3GR@F_+U3w;h2}3n0E2x2zCZHGGRKm+X4jc$4`Zc5s;{<*; zys5iYRZCM<b4=exO*V#r&WxO^q+noBeFvnLC`HdwaJBOcU3f(eWSgCB&P-2I4;y-; z-om&P-ejlA!%3cTGJVig19}Vk3>OX1EYtVN<a`@3+SU(CW8b^eP+#yG8KMaspR@~2 zlSu({56jPx_<)Ev?l!9dOBU(f?&?r~iXq|vJWx6t%s$=_syr7c2i^#t3U1wboRytj zd=KB+@9LGVy7NpqVfi*M^xG6@Rq?uWToQ<QR9YdEE`vH3VGTBK4wO95Lr|}dIenuT z;_I)#ak#(;!38s#QB_MMQ<rAvvMEhcC0Cte<s7kF;g&FExMHhf2Fwz26{5SLp!A*_ z60fdTRy`AmwKk27N}Am(d0js}ewXgLg|8gEOIbj65U4yCTHN@E<mvED={Ar)h)tC% zOH4mPHZIH}pNtVL0yzA+Gr9X4TA{qy;Ob0dQ>Hv@Gtx^T85%tS{*P8g&d(ZBZZPR` z2EAiKqTPFmrv#o_KYqqIozOh&;5|=hZ&gg#5HuOv!fH1%j`E2Wb4pM}x`&fN2`7>D zPfEt9tf;UBIsAsojb!>}K*s?Q&SVSs^zDR6Bhac*+xU9>-8Zz2`Tkipv4vxLjiuDD zd<~a2FZd?2{J52NR8Bci-f+vNt_#XmbSB!!-XMg~<#x{Xdd~OKeKy4B1hxei6QM&| zUfACO4USn*xcy5QOZU<JDm2gQw^61%gf$9Q7{_;N*nkL2C3f)j3{|W}Xu`&h!z*Gb zeJvOb5vi}F6;NS4OSE@6jDa!rYPGvRw1m8R+@d?G4m4BUd!z5seD1;!hSt*q&Yaox z86kORgSWnX`}KF);Kj}Zt571*<A1|?kW&iGzg*u-Qeb5NFjl3tefX%~Pac8)!&oKA zghBX!`8xIMoVc!VqrX*lK_u#j<uj<V9P=Jr7sO2a3|yL{8=YI4f*{f5BiM|fX-6ya z-Z~Hh^JpWTSMPo}OQD0G5(u9%-y}THAtdf)mS5*^*h34%M4SLl{C@Vh%i>zmO$_tF z#UroMjs*c{Wa@SMA;MGkYhF0N&X`X)r9mBSvmMM%s2i%tBt-A~qSr}YOu7C_msUM& z!P|q_73rwgoB!sX6&}yC&)Cnx^Z)U64gr!d>$WX*m#fRRZQHhO+pfy8ZQC}xY}>Zg zWxxK<dH3G)?%)j~2RX@EWW*P1uPx`HH5DvzU9u@N5B2~S%I*V%hDaLRtm!KpjK5-6 zON(|KAHA$Sr$@Vav2ufYn1wC@FA)jLa`W}^cK#<C@Sgiit!)r?fSwMwS|!J9-*Eei z67e++?dH2(Qsj&7-mrVk+ScX*WJi9!8u@XEx3f3Z{3=|_i_bzs<*EI1OJs$U3lW`> z;yT5rAbaPgC2)&o<0-V0t~K+@*=-|UDziG!ZrQbMVC75SOv60C<=yn|?wDx(qa3-N zX6MidpkEiw!B9kZ3W;fh7UPB|__O?Uzpk-}!C7_B5oM1IZ3}lQgy#{)Ov#M#>I-eR zo9WUUi1d0u*cn&YOdu5@3@UYwcNx1eevvzi174ccXV`lgFD6T$8`lFahD_-e2cT^R z?XaPZ`o_VC_g;{ij;zU6M=Gq)Ux;iln7+^i$O!cSbJXb&4RLCCj^>8QG(Q<t%T^*p zhsX`pz%2<^92C8ub7x2Q^j|6L2Bk09?!8mDL#_id>oGjxj8y!4fpapM$y;&rY!v8O zJ4F|kJ%E9Hm+j%hmK9ylMcT8(@q&b1+IC9&Ry17W?QG^Vn*b~h-i*)Hd~%bUaGSIM z1`|ht33mmFzR`7YGV0)T8tJzNuFn6Q1i$0X#Jv**O#8rJKXY#p7jPLR3ecl3OvC)t z1qWullEz`Zd@%JtdC02gL(kPO_DjQ)7Q?;Ao^dnnLpQZ%zlue$<^eF`NSl7?1+41T zi8=5gxiZ2z5rPUB<0GFt6X!rSGi1vE0wAM$L1*r~=yMcG`HB}X9)<@PxRERezVzwe zNf$#FC~~yTnBTtnt23GrSHo(0qrS9Aq&SSY!4GJUJWj=Chav_Bn9*>6okiH53y?^E zSv&y2=y4)=)*|BKy5WWzKC&^vQ{p|70zjecUN!a86Edm9;T7P(sBF4H5QE?We?901 z2&EaB3&JEc0WRuLz5U|z{9V4<X1!z2XQT=9UCeq2{$h%kD?FGYK|fc4;3d&Z888nE ze?W?kez`JY!ju$l+s`IN$ttj&!+HjCQm?ycZ#FN^^e8}PAPRL$re_$y$3+Q+Y_~UH zXa1>_foB#;PnAQDBc3`UHYFDZg#7Ju9aoNHq%@X`bG>l>BS5&u<E#f6_&cFcb->bp z!^W<A<LQKJ08TOHu4+}o(V<tBS|K3kR`tHKLCX<=ir+}-yNLnbBInIwkyMj20B~gJ z9B_NLX};PzPE_tEv_IfcOCtnyva+hF@|*T!?K*kVZJwswy!*no8TCN{a9-86#;IDM zF(V}un^IimWa1Gm#Ubxd(h>uG!U^_-=(rGv6yk!<8E$VB(s#4I2e@UQR>PEOtO%BZ zX_c6<OytG&sT}r(ARlLku~Z&19d{>6|0w70QMqo9v?M}v2DgF=3*a0)SbV2`SE*CT z=}}~U%1^E)kU`OBGsYwbjFPQgk;tv2QzT-(DQCwEhb&R9vF(~TLynd%(O0RQYokGz zM46Nq^`DkXz|-o$k}PFxz=o<p4+TwqqIh-(jToUjSdX1(E~0$~;%c_;TgT+09hd6q zZu*#Y^>$HAS{P~NjY7;X#Q=+@))anh&YD$625}I3JktyFZq*?JK;IjCrLAxRUK4)H zFesb{5Uo=NhQK%!ZWq<&%S(vBB@=7&u0=4W$-U~RyN%^IyVin|JzwKI?YmRSw#xtI z!k*6RqUB0r2MQHK?@Hi9pJft69@wggHA@UskRmdLvc?EEVL}rx{ibaq(RWq1ktdU# zom@+n)Lp8KhVu0Q4lOy&QiV@~Lat$YL{%)=ac;GpLVg+zE1vWMrEuDwfuNhYSJ(Pw zvb2ihIVwtC`Iiv<+XnFm3tRr6kxLBatb=u<9H!?(-?pfDHF|pOd|R8p-T1b>)qne% zO<I*FQZ?pwWMqy|E^}7}=t*!;a*@l1HwX6wpsx>+`*TYIK8bjnTI@A(Q~Ey_7`22~ zO45Zx)*ysnbIekQBS7IH*_Xq=&eO^kx_9Ueu(@=Yp&XAEjb(*^n|o-a4`^J6d&P4Q zktKcIon+EPfw@h0PkN{AUN9-!*1;+A8Dq*Mhb1hVga*s#u{;w}523v3sXP>DfQRVy z_8{<6I@l-xJ$wcW;`7szHa~)DXm@C8XaOH*!|Y2%g284C(#x})8e1b;h3#b%L)tV6 ze<=K%UVe>Gw=3WE1=2+(Tn=Pdr*avjP~H`kyS>g}(R4-<CDtd;Hm(Pe9{osNq`aCH z!t!yiaN|}q`;DlxCU_oh+Ufl6H`ry0^|U8y!JQfncu`YHN#G1b!VHs7+bk<4s3*<W z7d!juj<hTb_9Q0*IL4q8@9~&Ex+j}?W4ch?qPS$Nw8?}DR^iALsh8zg&x2))+<{W? zAV_(H#TvC7!tWUmOB*&K&M)pZd?h(tDJ%;tp{&rA>qm$F_6n+)B@vnW@=U0eL@2#` zrgwbS1n<mzH+I>uu>~K;vfgS!kw*=NM1TBhgFtOSwrhSou)31?QS4bvn_T^P)b3xb zU2(7c-AukCx5=e#Ux^mbkpKe>UID1tf^@Cs1Nxu&=s(lW&Z7UAcHS3(uR_7yHWrH7 z>pD7{|84%Ip!)Zi@QNG`_MdlzqF_;#f0m0oG!QV@>0eIjUmwMoR(2c9kDY*_?7#qJ z!U@Eq(5f{C><x?P7L7ReE$|5v@;gbxsnGFIyeSxB#Jc9Q2%FVqIxQt<tPs}=ToJyi z3&zV4dx;gfS7@#i-Gq)J@iAMlK?IK(p6B0q&!<rNt|M~**v=JV{~aCkNf(_F!isg+ zkKW=6Nf@i$HeN_;(A_diOkNk3h0M%IRBcRv*M!sMOJ~jNA{#a5$ejvjj0uNpl=aLt zXJ=`5rHl7SG(Nm>-YY{Gx7hB$PPxC;-`5iy^BS=U4rp2*uDqOForqnjJ4k=KG~GA9 zpa`867ws58Z=KJQgUUvI;Q%_W$}jCHHf$|#Gj~~|V$FkE*}c{7^M!>l`0Ri(>VXnU zFO`hU%!{;)lXxwBN#v95nyduj^0B9@tBTeZ-5nAv;RYgc3f<MUuFh!az0=RXEwSJ4 z51)E~`$~X>6O8EAPFE)YjUVp1(d<JUAG%zksQU)+D<d+JjEoFL*wgxSvHUlSI``a% zEMTq?xmZ^zX}v)i*RJ`&WV2$WY3WF|Ie)QyUPocsQnIj7xs;{2q^d@_(`p|T)Lqe~ z@L*t=0l`~B%($Jb-US{RL_M(hGQ#eKbf_6iG<Fk$Q|xx6Wu`&Duh*G5y946PN~|wk zwOS2eB_dB*DyE@fMNP5fO^zayE}&xds3}t}r)cVbWw8w8XZbknSPe|5z{t<}$XUa{ z|1O~ISPJIK$?g=byF(_~yiT5oMcV97>bL-DovneXL0neZGG_%kU~|~I-_}J9TyFrf z@9Fc~b-E`f^#_SI0UK;0;uc4JI+(Mg;foKTVC^Fk>80pEF?+omm{*n=O+VT;wd1x# znmd#|We<AwgO@~~pvX#Isi&xGP1Qz1LrX)`R(sstu{C`7Aln%_n#}w5-VX3I)`}N+ z@<D;^gTebU6l3Z}4y>W2%*L$#D-_T_w5PUrs=)rn<mZQ@aO8!gC})LSG^=e<_4iGm zit6orUb1?<rWGYvwX=EYEu-XO>6*B&pgv?kZ10wAZvZd!7hjG+O|z(wLQ1Nd*@jg$ zR6&Mq?Nagi_#aK1;?<I*^L6UNgfvS?9v1E$BAYtG0iu*+Tz`KH-1L=l$a?u)w3fUj zAbEXI3Y$b-PSvG~+jir{v1^2C(z;lH^(|B~4zth-0@si#t0x_{4=S%W8#dg)9^JrR z>E12h-YH~jnH}%<@2{SjZV0@Ohcz@kKCkE4mygSV9=`X}$Zy}z*M-`Uy}(~Ne6Lpv z&%7_kc)7fQKkg+dm6h<4PW#1qN9&qK8X7j#Dif0y2PD@mMZYK|e`jG^nevAN=158w zF8se>I@#BiQ%kgle<YvzanLRG!P6E0eF=)rXlPN*4I4!pCEPv5e_mhM;r<EU)7aej z9BBW-C0$x5*FUG%KR2>xjtuvW3imA`pIrFs?&kK_?a^yu=*;&gyZ6h=?VeG|zL*>H zmi_2N2DAfG3N1YO`gjE#r&VhuVC&jZr`8QKF5pzNbxv2e+@%BQl`_!~GtQX*hG`2> z4h5|5Ig8-oiyq?}E8y?|tbP`S4tA#H$9_`57bO|T)}p(yp>VV10Xq(#O0ly6_BfF# zQ|G68B!+v%Z?jgB#EN8P9z7+n{kzNdbOrd0U(5aEw%bv6ox6;-3P+a;aK|X#)!Yd% z)AI4LdQa}s;xL&<X+TobJuH$V5NoGaAkmm1@ehrs@N11b<K$j@lLZk#m-(ox_Ij_q z++N?=_`A0J2W$lmi<}hvS4iZ&EK4j`f0{}k;81!kUWx`|``*?U1kho$Xd|}Vv0><A zoI2V}6_}LK@!SkLJR$<H#~dEYX57k8G5x5wU4l0q9n&n781rmb90(do>ULLJ4iaCo zOeM!?gEMwW-)-R;M(cZy9|p;LE%<*|oOI&OraH(;G0k2e>CRU&7y%&wrZ5rtTsP`t zDUi>5$Gbi=p<x}HW%iUkllhembfACWa$#l(+2#t|86p)sQhERmOn@~?Z?F}9-Fq*N z9@c?o>Hm&DDumjhld2*~kTh}3@=+nI3&!q)8YQJlgkqLRAxo7^SL$VBVJ9iAEGHJ8 zFw!o*%!lkK+e`07>8jn_`<}3vW0C_CJN!z88~WHH<kF^uelYd0FGox3PE9kpWIBhm z`PGD*%tSiG#Y7KKI4zldIt>B)`6F$%Y?t`F<Kv143mRCtbqq#UAFT@Y^s(&N^{s(w zEK}5?>+eA+b3LtfJ-ToH!^O5FY{p>)?Y;Q|5({CBgqnT!Ek32`s8l20cBpujxPmOh z3bZ)S55_@eK7<}2lO0$|{IVnIM2Xun>gvvR_Dp`};wLGflmUsZK_Il<_~+58%!otS zAJv4RWJb;ac<r<b0&lX6M*7WuXpBAKP(b<{c7`x#bsV1JGECkB5Fju87~^S7p3$9` z3NdVtDYmZ9mPP4-d#X@39VM9chkVo^&Iku%FOC70ILrVOv|4>wB0WqU2q}yggUHy$ zX*-NcRP_MhiLg=m)iXv68I2UNJw?1a%Udel<f8%PZ0(W9y1;nMsYr3XJHljUtl~kw zlvFgTsyprsvP71KDHn;}kC|+}R~_uom#=O;tkSRCIqn#)9Vt7cW_-#YA#gqkj8g!L zLp1X^cSCuF+mu{U>NbG^gX%oMU&Oe>3M94N8uSkUdEi!Meew63Xv-jCvN9>fvQfp4 zk&@j>514=l2K+Q*eM>X_Wu!?Ezws3)WUj;&$RA8o6=+QAANKCVf;<IgkUzNF1d-3? z7RDBI%1P>@TMc$9AF4>2e^<)9tRx(cFHI>*^^512!VQw!BFG#UkUHdhdjJ$w#pJb% zUb7YfEzU6f^<j#YC&k{D-AeOaW!L<^6fI<s-E;yXheFY<bpTd<l5SS?G=;ua_YNQd zYv9U|U}5GC<-zeI9~!FQf?5CEvD^3;dE0Ke{jOb0r?o&O!xPrt8~vT9Lu$Qp_^Ax} zly>~B!8nT>k+QaOx{&_ZN(_1161!*<3p_^vW^CN5R4YZZL{Lovl9?mlgEK!@odM{A zr>0fnTuE9&y?kc~&LaaDCxZoHeVr$;FsNhn8jpSfCwCcc#8R)$q&0B`wfkC#>F^{i zuu(Ki9_Eh!#NWwdd|pG_sMk%Br98!@OGXzuMypII8aUaLt}G*O5)bC03zqt{4z3Mg zr*$%2!EOu7{HZT<<yWmpGpW%zN(9S3Z$akBQ02-|AlphlpN^jJ%LNCgTv$xaxS>JR z1-dFc|GMFJtPWVjTfiVleuu;4Df2_LM~KzM(>9!be_Fl(*(IZ7Z8SwNtcKu-Fe40D zS)V`*Dash9jI$ukvlKS?Si3c3Iph)`d4^MyryY<}ubB<PX5M%vqs}*`-NXe0BHj(4 z4MSsUyfQH3UJ|7Vn^Jyc=$2Ji4j{BqAv|6j6q9||pcsIBCRk0v|64O`zG~ucnSy6M zZLfK-@Ik#DR4PeQR_CONGnYplmqv|&y6j@o2Z1Q8@oA<IQL&eSZihmpxkn1H?!X+R zVp6~!8#)s8{34a>TVm0k0jKd(nKPnHb|e%DVyRYB%|GG9Pet2q+=5##*?YXBRFA`| ziSw^Zy5UBEyv!QA)t#i;@Pn-=cPXRR2?Q-NZT7Umw6gAJDlhR5+}cRVwNZ=sMMs{& zF(1g#KfvH0DZU$^oB<ONM+6IiJ{iM81jgrn#DSj^<>s#0#RCFyc+T#9WL=*BMBq{2 zlGQInf@IpT7^dGA+QRmTPNlPi4o*LK!}6Q3N^pTNi`kkefqZgQEyyDaLb%6~DU;{N zfTk=A5Vj~{h59wSEw>I|W5-1KV{5k!k8)|Ef^6FqTs6j3QCv@3U;`Vl1${<Ncow|K zETh`UoV=CkJH4a^#+cvWUK3bO`WYAsZH8;k<>~v~PeE2nA`~=b+^?KNo*7h}R7Mw< zV7Nb+LDhk|uX2k#>|T#hs`Oh;N(T_tN2TsEF`0DdDwg4RL=K~zmWonPhA+{s75ThZ zZ0t$~w&AUKhk73zE)xgP&d_c_THi19E@<qM%RmNZQ{+*Va+b(o<CwJ5F4QpTFsDMt zYxs5wjgeqT)i_$x4ans)ttS&va?*a4!6Ai`8&c|ixkySk{Nr;zE9XAm8|?&kK<_)s zUmSo0RFV@30K|Q5sell$(*Z%s?K4xnM^gQc3}~37dpS~>J4^sX(=0SfM(%}&Cez@A zCSrqs0a39aXR`c=m8YnbYF@8!Y}Xq&w2o-Pg6(M4?W$kwwP5+GI)ePlGkFMuZP+nM z-1&R3Bggikn05?40FQ4|KD98crWki*KI@sh^*5l%;u(}@sx6l9VxX<>Y^?8iR-Z@* z6rM@eGRbNt`%3{3Or(BhCx>rxmTBAIq-Yl3=slE(79r0IIk&iTP3`~@h|B$uyEl#> z<em+T^7KGjKO9a}plvD>dw@Y5;UliPb#tU(D;s0_i9_ds=s}U{MSOe7-|s<c)l@tH zN)eMgpKrg;k@-b$&l-FXg)<E`3Yl47j)LJ>BdfK|!a77rdVh)P$-CA4hbpD&a@K|r zdR+8YJaH<`lOf^be~p)Oy8bhrve5<p2nP2r-Se}QrpVuRCtRF=<0`NHe{q%n3%jJk z41kkhRbSj4d2{Tr%aSUr|B9LL7Z>kOCw2!y-?-XJl^y^e{W~H-83ZT6=n}s}+RObk zJ-_FW>7EU$W18Use5+-AT%{@vf(y_Sbac0QEC{^lCPk7Dy;c-=wr2s{ak~BnfbW;0 zOB6<@{nNAbe6s*SeOjLtyx+E|gM;8M;JHhj-9mh4sr*CWr@%F-6vN=efSxca@s29T z_O~)MKFPI+;~KO2^myEQEvSB{ta#u>I09UBIc{<9pGG1@dlAaqK<ZN>sb$AP$|$K> zS+1%hkjR%Gc^FLOQo~F@H^IEBs<U99<WU%%rR$*vfC|)KiBnJ=$d8VG1-_S9OXd|5 zOl8f@*6(<ewN}*gi}igifIl|_k=OcR8?>wUZw=mA#B&*CagNz5)TzX&1FuTJuTWJA z$Q02o#L>8+@_<k%<5hezfWVz5WTIK_F(0g1%u1u<L01sZp(oJ?rTX=<O_(d{XuByD zzOI0pe;vO(>YRa*1T-S|75ucs7>-B<$%A%uIeu5jkPGjTdpsgBKx0Tz!u%cED1QU< zV;T$pk9wSX!lCuFl%ZISq&0#v;0g?-%#nw`W5th#!!Mf1Ktv{74Z4X?J7T$YwzGX! zw4E~f<vjKxpRbS}0%St!4=#E|%3SEjS;tc(vhR^0cx0O5$o&V4hxDnWNO-6&;mOeD zfyZmc0f&UWLlll3fKH4EO?&gjwh)$6xJIJ|`L^rEddTxgr-!^Pm1Wyh&3UyBNBxc> z0%s4@+$YhkFbFC`$Th^aSA`z5s3J7fKF3@g&oR6*YpU(Q1%+kb8C@iUA9Pc7&<)gB z_bOz6x-nU`Toh@IV?KaMp)gmV8g+Qy$O_)=ek{LCIDSwcP@WdjU;?sn7+N`Tdc1#i zq-wDB(8RRt;z%YMFX>d*Rctwo+EXE#{eqEl*C8n_^UH1&>wMj$Hy`~I#mr={0>n0* zo(OWN;Lf{o%kziT6fPL^7Libm>K2%AXag+L$p~eba>?AlX=?0^t@Rqz;{`EY4v>@c z%T+)#1kp2V>*y%B5(ps1rK6lyq2jARlR*9?NbPt%kHzPLl;Z&&)y3xyq$nH9L24+2 zcsxi^8t<h_q-Mf8-pGZb7TTSs#!`o=GzhM0h0@CcLn~6-G{aedK9n|_>pQ3rh=7BB zR9q+SqPpy66mO|=&Gqe5ZaR-@<pM~}f_+0eR%W{yd}HZKRso=5d0u5Zfs&f6yII96 zc_~Ygtvt`DT<8PG#VP@8kP;Vjzof*Rn<?AI_F-!~G=ONv>~nsbkx#R^Bplj<h<l_T zrTg2pG;3Pae?GqhZNxSS)_X-E1X1?bbe{C4|3=?w78<;($&R_hdK+~xTVANBj<Uj) zWx3sD0bCwrJWBtv&X}j&f%it|?QFf}fL=up{$gia`?&|Ds+Ct1>Csg?5?10W+3|j} z$HKZc>|z85xkO*f&Sz@_YyYiYOo3##<P!RQ_z&OzOrQQCR`YwCT+aRuk!T_Roph|2 z1V{RBByMmL9Q5BX+xYB%1PoIhZ2ppNgmd6XV4%n~gQ@IG;EdpDmG&xsSF6Jk`0Kxu z%r@Kqu>+=7nS)}s4sL_%{5#u-==Jrd`0wvN{tfy4!`RhP{l6i-R)YiZZcw;?SRj;* zZ64*n3Yim(e@pDePySMS|0RXdJ^{x?=!ihv5%I{lA51l#&X!&;-%5@A`!#^QMZys8 zlGYErQ|bl7fLr$dm80C)5Ufl1mIQL3C?VO8p7^X`S1^H64guUCMG~Hw%BxEhKTqu$ zgQ;8l&+jYyWU`MXG79oUZDxoc6lK-~k6P;E&A$^YR9p51Vt1RD?<65;MLTGwOh!f0 z?y=890wNImn-2Z$G`C9H5S0NX+_f8E)UQyp_$ZExSWlijDRT|PcCVjPot0{VG`XQC z9da+%Lz$JSdpqAxA>3pIJ#h`>bkk&seM7IGpP%n{w}dCpj*q_Bpe>(|a%I{W9}=UN z&|mB4aygQHJxMCSf-EPFk0wKWuq?dM0L<?@Lv{+rH>xn-T2{~d^EbdTChWHF^3A!Y zXx+_QwO)7?K(>kR6t;tL*_WIRo-N$`M?X1LOPna7IZL<_y<-_ZTN6231ve}HRG+$i z%L`gjgNs2EL&APgki$4}#=5&=q@l?+E6z-YONY5eR*IyWx{<8Ci5h{oBJM+Ka3@uK z`6U0CZV7*rqGNe7p%K8SASpo)R~}PnOjxsQX@1=32HSe%2ecvI6HZE+FBmRUY01TU zx5)tVQx#o>Nz#HcU9jIhpyrI>>+bVKh~fLQyGM#Yf*ShLpgrd5N7>FMu!_jA1@^GA zAkSEenP*EYn_tLgSbeE~PrUCHHNiD#2leyv4Tc7%3csOmE)_s)BVr=f0-=TQ(vygC zb>YiJ*mcwbZ$j1!(SLM)GtSxe5IMYlMW2{EGmyb)6UpN2=Q5kQ$8Tt|**irlqMz;g zPJh7vs8SFIu1FFIL=O;+j)MFO@LSt`nY_Pb2i|eOAv0u}c{o`0_GEnP#>18n{bpc% zt9jfSD>J&T4_XB5LQa*bV}?hlMu`PrrkIqei%^Xbb&Nvi6r+oiLQeuXO-0c42>t!1 zdNmwindq%Y>SzWSVHdcATT^ai0=t5@j;|IxJwTcP3K1^uUDhmkeaE9rMjNpB5{Pv= zXdi?3rPIs|W+_8uY(Ac>ohc`{W2Pr_v*+tOsZ%z4_Q-%tty^QrQD$BJ_7IqKS#w@G zImx@mberqa92!YnMi-EJ-7?=Et^lc+F~Va;rVP$rQ-Q(#@&VIu8BkN1^!G)J^%k3* zdb6G51dKE$F83g*7z?kRR4H{YToIx{nb|82eO2b;xFMu=KN1#7%fVHUf+T%mjd9-P zzEW~V`fEVBair3O_&e6?8?&8k-d?n#Oa%i@Zel8a*s?5bva5A3<9)EA+?Rv+CvZbY zjENX;=8!+rz$#lbs3_6`q<5@mj7VbXFK?w8&X$r*=uVslP19X(y@q|Uc?DyUP2oFz ze+fvazC>q41K&eY!Ny7bNM{9w4+dWQQCZ0eS9-wxlhYt7Pi*sd57M8|iSG|Amo8Bq zV?kfr=J>DN<PN-;mx?<Z)K>*Y6F8%8zQ&TqRT=8A%d@Cqfe)-AU8cHR{6|i7+3y{g z-<3VRM&jb+ex?MA;2?pB4aUN8!Bc&H9Vy&zc`-lqe=E=N8x3b71!8uK+Cc>RD6iaU z-&O$7$y03Pr-1w6iY!DnG0V&&%hpY~YHo$b?)#p4AOGx~&k<f-Vwg1?Rw9p&X?VmJ zp({<C@Wmj~+7lNNPvu=EHpWbBR5n@Mus2B>?LMBeigAG+9am%S>ws6l;@6-qA78T) zNr_LJz;f<1L?SMkaD#K4&iIRAnBf6qNZSLvlIS-@E2U<eg0hv0`fw#@7PyZ1IH)8v zE#IAkz5GPcFCOm}YkwnxT`f%@sqqt&or2Qx#UKrYYT{)zx?+lgSNE2Jqy@dS7wp)( z*^ghE`h^2knK1v2w!}LKG^N)ZbjsSMRBJR0^T?n&-`=kXJ;+!tX0(IJu+U*eudo5= zY-_&$sAjud1?g59xP0{0GWqsk5ib%55;gw{V;~@>*oK369MP@R<iYD7O%^;1(Z-2u zVQC3ynt^J8B+aH+NGxje^;)qZE)OD+HJx(Y#D9tK(ht2}Mc)_IJjHM1_>E28XQL<a z=0-H1`_P(BOq8!?=_9@F9A@7}`LPYK8Bm#pVNf>6W$mGDaLj_><fT%n>t!<<G6HoB z*)y!Vji3*7eYDMV5z$+w<ufnv!G`Wd@7JFlY0t!ue$Yv*+r*J)iZrUa#E%8feKy}t z0<XUQ>{_X79$Pjmc2M<QG%7O_9V(5_Xx;O#`E_hgGbBqs)U(lWoij_&aVQ7~nd1LB z)z#SQ+@Tjb$oXoAz94a-<pn<$*8sD9>#ciJ$20c`a^+g$lwGMXv)ulwzrcc+CW%gS z)NHsRC6Z21^Xsh4V&OqkYGYQRQTAvc=C!45RTyHjxoP}xDPg+rk6G<SU4fVr`d!G3 z2OAPpT=M9zW!uoeJJ+ix`2;OSHT}0Q^Xw%Luc9<fK0Za>>Rde9$d>Q&dQs*iLH_$i z3R}<bAOCY4_(y1bb^Raz^Q}}j;CI0Pg6xY1IZY}5nu~K8{;hG_riO#~|D;;3H2-oj zZ3y4jJs>XA`Ofvk37+zQ7G1XL?J_b4pV-@raMnirA!ZAvLM7u`n99GOX?xLL5=cf? ze9Mog^ZkYl@m7!Q)anL$g-R?&6tEQ+gkxHv`XPq8jeZ1W)F92lcUqf`0FHxvsBVAv z&XjGxyV}2@2d_p1&=;SM#2++76*LC!8ga!Q7oKFSYR$zN<ktBxboUb!l7<UmbNJ^* zeNqkAl?y2$q6SZo|2FaOk^ITexRE~?1Q|e-0T)u!-W&C{8W?{)JsopoI6S*H^tz+} z@@Y{@Z28PzMYt$>3>!U34rnX%4OLj#7JG)v_dknE3IPl@wfD0j;}FU&u}R$Sb^?<g zgX-Ld%gRpjjWb55f(QBw+4J4@`_;U4bKR=-jSuaZv)jM5O0Ut;jJ0fu`NGc$9T9K! z-q|I5Cfmy5DcYyxO7@e(RTpE-W4)=T5Gwz{seKCo59`@D>)|@T22j2ysJ@GjwZy@I zi%v|XVjg^!d$@kwA+Opm=Oq$`Owo<tZRe)-==l1j%ahN<@PAIv^$iRRsPuS&EvjvT zWf$_bPxE}bK}7u6dc6s}a0@)NJ2~B-fqRAa=IHQUQE^2a&Xwcy`2v$ZX*b-N2>Cfe z1>W9e(CSOL+UsWi0qEUl$3FFx%YJZH!Gi79_U7SZV$o59wNZ8O+mB~3W6^}UN@tlj zTVKsv9;F{{v7M?4u1~YbsF10cz-Ct`b*TE=f*dSW0%_J^Ya}3w_v$%>wZ%3iDtoBN z3rMk85*8tE#8-DGcUVWdt-9FUW<VZ-5d;;Ge+~OSSqCSt2h8vq5=t8&Ye_*oX42n6 zKEBI*93->fai6mTY!zGzE>Px6_bVUT$~PdcJRW{NbDz-qM5OqKYQ)k6hWgt+DC20C zPyf`5p^KHd4P{*@saW5a3K*fp#Zn5SwwB5)6S4{#Q*I8;U|Du{xntC;+3>(J%aMOT zU>3#`P<vqY0DMt5iD+-YYQtFK!k`V0W?;0i5GAHp#53eb52I^Q;>0R1;o2NZxRjiC z%(WS1Wcka2`_`UaKq#i%aN1x0d}DX0Vx2Tp&YXO((281Da$zhX;v61EF3OOmz|j23 zQX({!CfN2R9>r=)J<95QaiU!f%Og%oWYkc1D#&!Z2$<hZ!bF1JtdO;Fkq&FopoZ%U zJTT*CSJqnzgs&!yy_J8|h?PHoYVxmnR1V})!tv%|>(SQE$vihVFQb#nw$d2&^|;M} zZ537@3>M*W2H7tVy<laxsFGp8v4XBTYs|NyE1^tJC>JrK9K^#>QIc5tQ#jVN^(O$m z4*p5K5J0kxPv;R$G-E^_i2L}tio;)Qjmho<XQa8-G`3*}<jDVJ#_H%D(@H*C|EQq; zv&k*cVX@Ewy~_S3CnP9@2k)7m;Uoo?xw+KxLpkcToSp027!zrWzT#;{(3^o+9Se~& z=&~h`6XRDXC+n%S653*j^YeV;Vn;pxgrN6Q8i4h_@Zs5yu!fowWxPOG<Iu>NAc@EG zDcikE316PR&1xPjvjiV`l6r3j2J85AVE}=jH`JM3hl%>IE@h)A@j%03#Jd6Ik0*0~ zoVGpAtt0t%lxumAOXDM`btm#9D7|al2y&Ae(3a_o7N$>Nw_?-aGjcCw*~yO&3yC?J zZor5{5FvEuHHem5v5UTB?wY`9I(3*(B<^wr#FqpOA!^ZSTb+&~qH@#-UlvUaI(YHQ z&?%)Z7?o~wuX~9X-ivdRw<ySMj1DzBxkQdK-_Boz65Qn&st$DB3#u%;lp~SmWkE4F zYF>=Djr?cgNT`=oAY(Xk)2;Uw%@z215dib<{>R-8p;~@BJ9{Q}<oO*rnh>zVPqE5b zf>5tZn+}UzrZ1X>r&}x&yI?$hWsAeEP)?D(q>K1v)-6wnd%5~NW#cP`hl|pCCSPGE z(Jf5S+brXd!2xENz}dqiMs>|A!m%QgjI1JCt*?3zKF5!=WzvN#7}450nbIUt3BbbG z@s=W!^_jFpR=a2PHo=k2gN?|q*NBj$*WXh}rkQCu9Z|M<5yl0W4uTL8NT(4Z;Uuq_ z)pHT@v1rh(4_VII_+CP5Sz?Y%h0N^_dp7(&^Aej0-I&sL=yFp@1&LC`#WyzADOW*i zRNYFS$>~1xYQFV)TqZS?vuJ&*vVdGtt~}XX&fxdVR33@&wy+4t{_0R+E%MvLlS?zP z*}Wl$ONCzRro?$RVN1qD+=9c2pWtQc&7Y8pZ+=tAeWc*#S6MAC)_rzFa$}e~Jhuwx z!jhexEsCg(Bc6<&51Yr@#1h*9c#f|}MTs3=v3Un_-~8C>op6!ve;hK@RsgfYUD+Bd zOki0qqbTPaaBTu-zhq~4^}d|!C9aN@`q9{7vVZtW4Yp{?Ok4Jn+)XiBZ=8z#SrZMl zYK)3Ew0Y%*yk_5b56*o_5qeA*P#?#V*kFbz<W4X79v8k7%=5|7?dBUxFUqnmFz3vs z)QR7)b0Dcakv@*Np<KacWCbLVT1+|Mu{=SK|44<YA6m8&cuWM7U)ax6oDNss`psVJ z${2j&9Tb3z(&1RIEq||O70s?Wyxl(%LlsY&;>_(0itmAEokTe$w0G9Qbz`yO#Gq`V zY8#;Ji+-B4w!<FO*Sf0Iu~h*glCJwDP|#24XzLGd*S)M>1WpdPsRxXE`y#&NPvsOB z$X|E<tyQU$xcT&Rn{T!0y=T#=?b5q$yid%LTGTy-hP&NNgg#|Ca?|t#xZCAq=Va;n zvh#AyN!zfePgZ0b1+zz$9)R(aFY$m$So!NBpAhi8d`1cKTnn0tVrEo!tvx=^Dbab% zMuI2tU>pD9TN0*p3jnm)B@`)L@X;&16t26(OMbVY&M^6862EiXEYOp~tj#lyQY_@w zt^-yO?N$PEo02N2ZtAW>$#I2w6t1pZk9%%(dysngi@o?ePJY9;=@@=n;)D?kmCUDf zsh&3Xw3yWil;+I|Pjv;X0N4Dmw4u3I^c#e3f>J#al5D;CYhGi%TvX`C8vKnPmU4y} zlL3?gfsIxB@=LU7+h@{5<_Wa@80z3v8#uW}Px-D}u@d+onTcIe{m+-+vLZR<ii(w6 z{?FT$XVgQ`rDdJCs=sxidOLdNC9m~gf~xb@mevv>9-gjyur!&w9@KEA{;8@%lr$H< z_jmm$*}c+jHYtEw8%RQ|fLWf8A42UPp-J||;z4XL33V-Sy`xN#O$xR^;!Zg2FY!)t zNHc6%R<<md$FVR!y5C`|u`LylR|zFb8d{c868yM_N#ZjeDK41RROM4=<K9qF{Mt%w z=E37#EzTX7F;;C@Zii`7Op$KLP7i+Bv{)-AN~LfEaa91SNnTu&XEFry?{G9lZEWUp z2O5Qc_DR6FSRRSM=6uhbN1n+0P#q`keUS8=&pQH_$D9ofrP&B{sS|JI0lTxXzn%S9 z<uxGwvW2|4uo^UmTM50`dmG|FbbV83`_dEK1DGHnhoNHEneantcSmun@e5-2O_(5v zF^demx}5>0vW7Lvyw!4RR%b$Qzmq|BUnGH_btokHIGpC!)jr1Tr9O6UnbL0cx~0vx zb%Df%WsW7rL9N1la-qUhkbjObl)L!cM<)h!!6~i}u8SvNhfO3Xn@V=FtcDsfR0ebm zr8Q{O*jS8@-h>_(EoGPw?N~Yvg-e5n|Bjy9U~U9>9KVwcvf(}!UNP?aXVZFVP)gSz zn{qcyx{K&8-o_>Fx9L}46z-{a$0q1;5-Ck!Vo>%CrbUHWB2CEO!B{DituM~Ej#oD8 z5RX*JRQ3!*j}+H~mn{|;1a))PNZpWgx}x1KDOk2URQ?2w>BFo|(PgxylcCE$b;Y}8 z^#TB5uShS8wn3F))=Er3YsR?8K-$GMiRNmuXyH6`Pb_rSl9?j(!xD0%StTH+5KF<? zQfrR*!vL8e&22SLCMZ884(iL#)Hjzec0l(UQvuL#RQ3EpW)4_EZ-HMkVsyVxv{H*F zHPo6PSPAmG$n)I%M+$I1qCM-89_w&8-P!;%a!cQI=wGux2Jn8b4%S`-t{iQ=A5qC< z9{uXBQ6Cs6rEs`)%qw(HVn-K`cq&}9J<zq@uI)NOZ}@=Oz5v~}MAYJ6KZ}$?h_lr1 ztcaU(Yjy-ajyMVH<owT$%)hQgQOvuiu5xG~pcD!qAS@tkAP+kiXP4B??H}-|d^G>Q ziTvMS@c-uGrZhJa{u25=xwZVmN5#fc$TuBHN99F^WZT3s69>kXs)c3zh)L#ms`wmC zx@Np1zuv*$ukkj1ipS%Nco1)R87!F#*LBXF+GdHeJp#p#hU@TY&dBF@42-3V9l%$s z>gF6JRRL5-e<h}wlE-@I5moliKnw|Zx~lT#9aineXS2f`n2+2N{@FKc#Tb%BT}Tj| zX5tffL+)Y%Qxmz5noom!NkbcC*BWw08A6~4L6lZ%aCC}b;){u3m>s(h@04UZ--m&C zH#0Mn^;<yh^8Q?iH0uh1`@}HQ{QSC_q3hQBd;+|gF^egm>r4`MWPi4gH5jvE_FYX) zO(k#k_{~vqM2M|)OYP59PE?A0ZVy$Gb-zE1`)sC8LmAlR=ybP(2|)W!)I2Y-xk_-r z7GWev-r;Ng>?_z5t0+(FpoPuw&bMOZ-Ei0pFJDbt9VE)I%}n7^B~@2(k;&xL%$y2E zsRd~7jQO>fOWduR2y&Sn&WzC*CH>y*xUe`j12&lHi5&nVBiALuZcoCe(*qA8#OwO= zY3$w}Zr8D@lfbzsm-d|ouf8{#ZJA<ev}F&o)uL=xU>Rex7GWw=e<uA~mcazZ4`ymU z6U=RCYin1E+fZ8N-cJl!i>0I^S|w_1H5-s&G>hC>QeN3oC@1rgj(e7Nha9W@^9$96 z_bU={RTsf}F3h;jf(hB@gFil#$UYY5CElyZsIIs?=ZwALDy9#irkpawh-!GS{xaM` z=GrOBF;*{S=*uBIR5fW=UnIh2T}omX7XGDdv*vO?M&p(ClIclZH<;atm44R9*$jY! z;|Ek@zWG85g6^PZx4?eR;-mQX<w;0JA^V{N6g2qA04XkBVEsU!JUd`{e(YGG(1H?S z0VIHMA_nOCcq}G1Kl0M94^Ap|m(hK{kV%o82tF+3i+kzBcWoI=PH7wlLw={Q5HPaa z+4pla4>UNiX$A9RpZIvR7wUb7um_;}d;moRprhf!C(XLcIG`h<qJjk^6r?ifB*Muh zYy`1mIGos-%LXMQPyEabjE^L_L;3!RWf_i3bY^(K$w1<y!)kIwClOcsX&&Q{0rMJG zl~KX1K+<PmGU)f4wEH>D-9x597e~csu7n_sk!FefG=hNsxBjzXmBqSsVkp2hNCP(` z6%6_;WR(u;>j>D8BRFYkBf;$+D6}OKdRgPnj)3Hg2J-8;b4^t9sZ*raxw&mf-h`kx zt^Jh}6|v~huOEMx<ZxgeYWFTn)W-WDY#yhT<VnTXnujNh1!Wppm+m@+CWABrIca|t z*9R7Ds!4aILyIF$dB-Y)ivh6F19jWkE7y3?@YQF%)A<sj1@8E1eK%tM>b?ljF7fg0 z%zd%Cz?-JV$nu?^d!q^8Cx#q-oF$pF2VEatlxsCk8wS1{p)b)o{xUBcuPBL5t|uWq zlQT|WjP%|EgO!uwQ|<@iCsc+ODyA1_4Q^@)i*epJuVEuVpD!`eECKklOgJ@#+v+dO zatjVt5fj@|P-J&F?sFSXEJuX8fjUR6wR!+y85@smAUxJWPVJNXlk~m;<A!QUf0~~T zS!9F;3s6tcmyl_EG!C*}eRL26fIiDfgLzJiY#MEz>;@yx`gmQ5A^36YcUuys+*iW% z4!17;+B=+%xz>+2qy)UG7iJdE$&IfiC%rGQ`q_c7x8=4^fJb@bLm|5pC@JNd1&9pD zY9rqI7f=Wb$Qg!ys7ju^Dp?k=NJTC=fM)TBU-p$lg7^8p6(fq}zP|3q-X9fGWxh=x zj~}zqKRCap8SKVMVZB{{{2syOxz2Sn-gGQ(rk!Z?k@^!?UIjp|Rio%bh8Z96@*<?< zB{1e}3odPra*f!NPVSvAiB?I9F@Ld`o%fk7S1L63x__@X*{CFAm4$43v1q?*yr62i z18!U3CTIfm0cQhyNb)x$jNI@|7|8>ggj~2kMp_4Y=ytH&)UMyha0>DI*sg5VeK6fV zq0xPJ6ZEH7cL7!XDI?H*Uqfao0c($NB~XvdCTXM$`4(Xg^piDWJs(d8vBSa&$T}>d z8NAAq`6Xq;{taNAImc-s7VheeJR&RHMp32PgN-gqOVKk_$Ra4+dF*q@Nu)4k{jqof zM9}aXB<d>8W#xIyjMz)FIM8zS2OUU8j2NvGRsFq?p#a!rXz~&j*r7#EXq~;={1{jj z)@Ied`S55l&Zek(g;P(+#q|h7T<1*QIT|GbxH;>oAi%V<rGcAuW=pk!Ps507(grUB zT`A|h4d0PMlC1*>00B;%S%^;_9cusL!N&HzZv-Gn!yuemC!vtx^HE2@J0eFO3<SG- zFRnJ=59n23QBonWmXX#@M$fqNEU~(1DN!eD>u_ogsDzdB=R9<l<Kw5G2JdwX)f0(f zH}Nuaklj;em2UkyO`TBd!Hg&f08GXk!lEQ!StlM$Y>QSuwO&=+vMIRi8_q1UX!T{3 z$C8b!e{PD#m5s*bYihxi@-S*|_d@O2`_Z<30bq3cF^I<F#C($CZNPq<=W!RxFS7<f zaS29{P*qH-#(35_7fm&N#S;{sA#Gr8EHJRvF@<~@0v#i;8*#>PxUyWd#W5Hh+01vQ z;PmN15`D8kZRcaL^OuG_Gv>Q?_uX{F%9HJVA^6WdUC}}boEzF@zfT`?o1n`8PdA54 z0J!Zc+Eex@P!*W1&zIdfRqe^D9G~Pum1LH2RL_CyvrZECR1|!==#@GLsxr<lg0x7k z+v+xS+};OpgmRzm!sQj}0qL>7!jHJWZSe5?5-dx;o$y+<NXP<T)qb3RbC9AjEn946 zU>dC{moAz3(!iYT405iJxOVG0U?rQ_0$ej8O=@nMBUA-VR$<wtBWs8kpIoyLE&Os0 z@JT*RtzsKZ@1U$D#1|7$y*o%Kp;TBC^Ponxirc5Q(o)8ipMMM2P;E3YBbHEgw4D4} z2tDH%y-r4!L2$WKr<GLidY}(BrwC7P(<nEs%}EI_Ght5~5$n)f-3h67>?rmv1XSu$ zkSCo3hk)N(hV(C6!^6;s)bqDr#5aUqIluabN@<|}jA|TRyrmGH{UduTuy&{JA*$|) zKNx?5P-c!L1rI}~I!pK+@i=Rr@+1s7McYAHSxw6sHM*><x+c+@bD7jFjlN;0@k7RV zJNgX8Q)S3SKvx0UP8YrKcZoyJ0|0#&!Y8Bv(>6Y-5JU&Vfu_SznX?^lQIn@L12zGc z-DTwvLLx-##t(`e`_dHaQq(fI^NsWw0>wZ9nI<L@3cC8!=QXKn%*F|X@-9aau@nOv zcWomu(1yf7M+M90@3!~r_y_9Js(c|m`MhW4HkajIQqQts*}A$L0fvLO9YB^gt=$)L z(fwwJ;m#oPG6>rshBCehrQ#G%*+rLVbir`P`3bcA0jv;~Wc%Z{Ia2+0-0Y7*=j_In zh-P28y$Ph3KgL11%dA$vyY~}WnL=i7th>t%gIg1opuj2}Z-86O{J;%>WxVTF349kx zG}Dr7%&^;S{7*AqukU!NIssW}OP?HTUh3A%m=yTww?YTHKP{$KcM_EgOq&fb!>FlS z84kMB=3^LT5fR(FK*25dRMw|Uwt_kvRcsDHgQ`=FAGZkla(#a+=h@(v1a*Qw6jS)O zd@MWA+Gy6m#ZJ#sM6csuncz}eph_}%KkIolR9d!9c5=<CEVRSrH2~%|PwDUwsZJop z+CaCz<<`HpQ*$pnHq^SB41?uR1iI)@`#V8hr^y{@fz*Htx)2#&|CS8WauJjv(_0zA zW=e&0jj+yqiBh+ZW7j?fThsJfmz^XEt=j}Vi2p4>k(G~cR352K=n>KoM>Q}M|9q-X z`$W#$r~8J!sDP_F+6Tyv8SPtm`=`VnUmkpAwHOK62PLXMc%eUyWPNJq_0+Chhk^y5 zU~#raAp1wtnV5;@qa(C;p2yL>PW8iSap^y*v-6lz;dKVbzHIgL^inRNOjWhis0V-j zhfC-mT47Kh6=&?Pndkj)r#;Sp-2)6wQgh)Tu>PA`=!1he0Q;BzxD*NEfAq(DNDw+d z|D{+Lz=UA>Z|i5PHzoue*uMlr(YO#S|1B6A!-Zh_`7i!}GOH{b`>(Jk2{tvp_b;kI zO9zMej}GX+5Cj1d2rPISsIj!f(fT7kYN`;HUPk9sYZ3^2K=avrcff}z7coh?Vixs) zGeRQw&K?IhA6|N;dA~R2O|(2^K(YYQF126|S`p#V;5~e_X%uwQFtYt1bU8kDsDu!x z8X0wjx^`a6zMl;*BDNgZ0f(TVsX8(|&%GjUi1SLOK~5Y<8Wbk!k7--{mtJfB@EekV zclEdw&7%5S0Q$2b>Iw8OMHpX&geFIl1nJu-@A}WBDb>O?b7oQkSw!cJ*tKr#A?I9M zn{^bsOrqiopZm3`YOL+9TDt<+!Rm7O#=|#ro2hPI!;&|omYv@{<4P3ldAtU4xCvV* z+=W(_EvWUNlGi~makr%U*WQAkawE^5$=R`)DXdLh01vl!T67FPRi{@S5d;KuxQM-| z(}~VjyJSLW5Yy;5M~F>>_xTpq=4<xPy;+CO>y9N&a^Y?&l%K|3k)JMj&jHhUe3x+I zc+a1<sh4n`T>|{lC{Vz6-kb<|ZMTw<-tB9SN>Kc`5;Rm9E*FRbBH~5V?>=ADUTohU zU(R3FfG?jX5EFn|ZR5f#-P*;gQc|`l-SNoiG_T*Kiz^|*y%GF(QkMw5M{d`|wlNtV zOQs8`?|6M4^-nCDk#fidjnO)}wo<v-Gj`ijK5MtF8l|05KT18o#P(#aDP7WBE4dfk zlO83Vu7un!{K#53@)8^58Sfn_b+ie4o+8>lfQX0NGT#KFXJlZ4xO2t9%Vz`!&db(| zUfUtX*n9QjnY1rYETH!aX2W;n5%T&`2jJ5swVwS17=QWkM4SC|5;v_D_XiK(Fzz9h z{u8?Ih3D`a6zp&Npt>k3yZ&RrA>0NU*~*nO7wCusr_D+ieS42!{b%_&jN&_Z(oSp~ z;7m#Uq}=)7yV%*{&ooKseMjohUOt)uLpliCfa?bL)Y!FoX}+%yB7Q6qwx_UDT6P@0 zIRSmHQ~F1e0K_l&Xyn>+9)rG=HqmfUa5MMVB>G&QD3jjb+WKlj4MmK#B&Z##>sHA` z1EbP7?M?ZkJMXjx4lZtqJvOj15XZZ$05Y#b1r%yN+c7xJK0*7AOsE8F?fQ`&UErE7 z!{&&>=D6Z3ttnHMJ}GWkzmrn%T|D;6=3&)#(<^E}5(7JGXVvGhx@ti~7AbmI$&a#q z|N4paS!710f?!-oq(5|A$>H2sX0J5uF=`7h0^?xy6QI#FfyGtXnlF>^f^l|-fS>uc zXxpQmlZ^Y7oIu{xK>7kT{Kn8h1;4`ME)KF}VD6ZsU5%s%KnenRjl$zFXdQm|08P5H zu7*fT(8~<)WkpaNgal$%rskL6;?YQ>6N5ov7VPy(ni;T2M-dr{iVkqUt^*rieI~jM zC<`0RA<p+{I^pgkaEXf!%O=y#0xrn)z%lzQ$XRU#)F}~G6Jxu=pl$`nQ9<x_O+0j_ zQHqru1RbN-yRQS*s3og4cS^Lb1Rw>mu<Q?j#560&;u_gU1G+9)<Rz+ud}`RYqXK+2 za05(Vhnw=7*Jxo)ZmZ&Wh{H$4{*c`r?Ud`Sk?3Qavz7BcDSJQYAVe+c15W1MD!1i# zJoBn7%WASa;ljL)Q^gDYV~d=~<8G!z=qhY~W-z(OAiV(ab>BqEy#TMDwZ0b(1zyF! z(Q^TJXamJ+9kjRcYwRa_pF_9(Zb1y4rzCZ0i}EJXAZ6HeQ~HGWrDCFznBV`AY5d2} zpRy$7=LQ0l>PPvXJ8dT=L>vexrF>Ir8v_J0xICY>%HP#`&j8^L^)GX~U@d`({$D6; z6XM^Q$0TkDcz~+;sq#PTe+3?+Rd?(*SmAwF^!h?w6Ex-Otw)}sTKeit%_9nM5^Crs zL}w9A8uP@Xi_Vd4zMgT*@k%ZS%XFpxbl+T$cHSfijv*RoFP5kx8x4+2QU+S~F{Ud` zrsqf4<A7D~HKq_kKut(8YNRLvoRg>&Mklxm#Z8MW5hQHTS8xcS;Jr~4G7L+O9C>BM zt|72h26r_brk7WNMR8NCtqDn(rU;OJN(Bca`$YuekFw8U`jnNuB;NfwXT&T*ti^@~ zynSvhS$#Y|ay=lH+gnLDb8<z}s&;N&vxbw@LF@0VYi0Wwa3o_^0lM@7ua$=$*sQ#~ zy4&7hZ)~lNdJr6;REzDPdJ-pNZcWuvguW`u6PhN<0~P;=uXAwAgx$jZ<TrEj)MUFR z+qUg#vfZ0)+qTWgw(Xj1*Xi5e);ZU;&mXa#XRUkP>;4gA>m(j*|GX$0o2;l>Hp<u^ zHU2?S$ShfO^29zKW?Mt-ni^x#dPxCi6>6V|_5Hl=msE@6j|}QU`>1Ux_Svswy0&0X zC40D08_R6^>f;DBfmkvXz_SR)z)DV2^49Z?eo-^I3<?!2(tv`Ep>X6#+WtUjiLa<Q z<SdMup`?a&!az9??q?Qu82G0u2>nWg(8~9^hA9lWh`nXY>y{NR_E1f#8A$E?o8@U` ziBfn9D*B??V+&iJ56c#=FY{lMhzHpj&KKfrIj|;Y_Vx22MU-D=fOX8$7(vN&;paA_ z=K7oHZZF+yth{Q2?yH`4?TBl#GO+$%NpNQi&xoX583d*>EMGX4be)d$Va063r5XeL zh6w%eTJla{Kp(2L&i&hL%&RXy=@fY@sHNUd-o<emuey?gw*BVc;Ln%)VsOeS<fCIz zBS}OphnB*&!;yX?0Q33|3i1LsW52FXwdDZ6Zd8^fO*id5^?SmVe(b-X9u59jjj8Z; ze7ZmAeYqr$l?KZVkabL5+7OjZy8#N&))mIRbL%yeIgJ_#N~1Xy>A%{raFKuhgY+T_ zuF;wM{y&JBS8i}Gj9I{+-Bx?u-{5*k^g%h(E?Sil_&O+Xflmw^mi;>ZGV**lQXe4G zTctYog-!I%2E~Bu9XAea6ZI1jt(u4TjC4HN83TthcDhNOU!Iw7A(I<aGZ$#W`Wzup zK{l$dii$2>?6?Hyh*FzDQDfQ<?sn~NZKz=Ny1YD$ZTlfL%T=<Gg4WKzh|gKcNOya> z0QYT(UY}(R3-(W5`)B`^M9ByE4>-br5AX!{kA_M|8o=|PhALkgAOnW*X$%z^RX)({ z{p_5?kp4D#;>ZIK|7{dykO!<o{KFEj((Lsx^=XOs!u#7?V!`;gr29`-{QoQIR;asM zud<<hY-ah|G?BG6R6I}><J3zxVrV(Xn9uZsgiy(SRz8)ajzlPq#ml<2n0O<eQ>v5s z_h6C<8@#TRZMbhW4iQ{*l-It<lY$N%;_8v1{*Y#3?a2rJ+iW;+r4S;Je!$?HF<*xc znYh$#!jPGpN%mg;%-T=`l|AN(U!l`qdQ3&_C)7qrceKU$hEhrUh_Y_3ze?ND8SBK7 z=6is^2*>;DB-SAv&W|FhZoH^2Vsv$Nq{0pO^?VPuP0SfxRK+;VOBC2e<-d5l`m^4j z^058J$t)@rn?HSgctttMx(qxHp@v0y$I8e&?d&~-=Ew^NXK&3T5J$FQRqY>LT^^XU zGNsTQ>GlxqF;2tWM7<ZLj@mxkhsEw}moGfuc~avM)?Go-sY!=q;MYv8LQ;Prh7%7S z;hrKlCbuZ2x4QOiKXY>D#L4=h-26mNmpQuI)e!QOFuFk>`}IUx<^mWzc(*lLWca;3 zqvG0;izh*Ldpn7awWvuJeYesnNg&Evt)pN&c8~GMM?Disg_4e%uIn5;>Y<WW8iW{< zgm3Xsby4-p#CYV+MWGt;SL#HW=ste1p>DfMKRJTUJ-cX9bs78MHs%y`tV}DHpVCb2 zeKqa<uGO(u4jGJ~u+%`%AQ^(n8KFc{ONx`JJq6HQjz~i`mHg&V)YQU|Z~gONxXnuo zG!>&F1PATWknHqLceF`@oh5~ug}G{}+fGXm@J3(AG_1n~%k(s*9-pahanyWhC8?&M ztojK8qm4lFaLy5HEPrM`szEdNFK8()u6IMzphU~bdvH$Ca90B_dn{oB%eWopl~>So zAEF|vq6RG6ZdI=#>BLC|m&L9zVSI3lu%r_e#qzr%ee$r~wm2};AQ#|A7rvDTHKL}7 zZ2c;%Ea8QVJXlFAdj+%EfZm^mApa1PBAku#K-s2eWKLk~yig0Yq)5#z1&PGHhL@7+ ze{D%7HcG3Q@f`+s(#2H+{IieA;DEvcN|xAbFaE|ol+wFniuEOh_<qBx+Jp51oQ#f& zcgi?vOR9pwOrw_}1t+|as1M<mOB$>YT~LLrYmg4g*ghKusoA3rihaq`uU@{dgrXlb z^y%IYmsv(@5LlDV;U-T+wk+Q?;gy&!353r0?(XF5ZS;Uka@?StQ|Z=Qf5`t#N;iPR z+{PyHuu}`PlU|`wl5VA$&T{@1;4t2+@{PT7NEo<!`yt(1l4Z4Prqp*8Z}Ah7+o$}b z(YD?|Bh|3AHRnmFH`GeN6<TZOB-FUI(A*jRy)wT(!SCG-^9(FoP3CBc*!Q)TI^eO; z7_)HL5w04jk2T$6v<fk<e$0AXc#ZSy_X6KR_ZDaqdHt3DqjEh+$M0nd?F|Ou6>=%j ztTl+ZDzqU>kCNVaZ*R9!H-)<`!*hiiczpVDm!-N(+|kSEW9UKhA-;<#Gxh2PW)>T4 zvJJSk5fI^EfY%&MEPF{cev0I0jw|NhTNyzl<=_KWX@s8Ra#0JWUM>8lGFvTukC%hC z5QJCuYi`7Wuqpm2qqkDHiydk%RBFbHN%?{NoPDzUTpy{d`GR!>TWNq=#CGeFN1a|= z9GH9mYhM-+e_jK>t|ar@EYWYzB2{EI96Wqay-JG<=GCyx@$BeyT#zsj`wYS?#s&m_ zF!2YF4sw1CnSjUc602twB}<cOL=0CNX^DFS5#(g<qmK-dQS$~*VQTEYS4f;^DW)mS zQg83IjzltST<jN}#EXs>{#f^P;mY(>aor5IlAJNvWfFGa@ekw}IUFcA8Eju{jvHAb z3%#(3K4q*7eszEf9+Bj=>l|35INi@$A3s!JZ1h+V6^x-2qY!gCB7?DkX;r#U;1R+g z#8kKy4}v~1CSLHa#EJN~DKYR{|J}eawyY0?+3jY-UetI)`~k9h*bzIGVGSjc2-V8? zArWS1TU`8lihO5Qd|leiuqQhnG>dA8#n)xI@-<sj(WV^we3f>VBHL391KH<T0NgfE zJnh#Eh{udjiRH8Pp(#cc7hw3|(0cO2c>^!ci7`-b%<}#e{GFIUKq?J|OJ>VjS|HR+ z4HXcUzwQ6husdZZ!M#;6BF^t7I?@sq*qh{i4a@fg!FG6g2))AOA*;sEPRR|?c^ss| zZiTp?6idH7d++Tnyc+f!%ov4-bf*m{lf|5?Vi7<)!RO*{k2?wMw-w>IT8)U&c%Qy3 zhVCR{{C<XShVbCfm)+Ykp4lr!SN#eaVBp2no`61Yq^koJ%vxt!#FtW&O^n%dqvqlM zq{pL*fg{IR&<NJqG_!yKyH2RtWo?1jDLvCJ|F(i>m9&}KrR;i=WI6EXt~UVKbQmT> zl4-L(q{UH&`ShyB9&&?kL#khH<Qj)=tCp(5(8RX-UZJ>uwf%jh-#+sf$pvl6_fnif zuwr9%Z=209Vx$YQLA0Ns3j(E3qT}^Yog)EmIcE}?su8G}$heDxuRXhOm$YZI)we25 z>OVz^`TzmL_|FN%-}Bxo+p(~KP3wHI>GHp$GI45{EcUJ}B5!yAjt?Y1*6wt7#Jy6* zk0@CA0I{^Xx**j1yUk7V@wLC;r#mjtX<A2W1WL4tl+9EqJoEjwXta4jc#O?vejJ0? zKW5M*JHUhrJWsM;bO{Yt!N?k$A1@GX&rB7siLkj&dq8g>Dr6eyfF?u&Up@~tSh^-j z#Q|j29dMQLHtDE|mz~BBjbJ21^XsQt&3cW*Yl`q79VnCb4F`XcT$6|FQ_=Rak*cWo z@A8mHQ*WUHY$~C^za`$Pak>BD7F9syFG)~&JF-e_FH)b^y7X)Y#l4DTY71;c>x_A< zmou6H9Y3VMyu!!I?>zPd{=kdJ`xwsKV@B(k?B_L)H8w7|aMw4Txhu7b{YmQG?M(k$ zpBKHyDGMF0k52zmP@i8elkoUaC!AIlSNvzMzSfSjoC0s%i(_Mz_2AYoevR9nK4zi} z{9htppTJ`#ahCl3Z_HI3rpe_m`ih%ILw9{zO+74<K@Cq#^QOJRfHmG;6&MpBdu6Hg zVCZ7^@@?hzcvZP<a2GlfFV*B1XfC4Y$dDkC2Y<jr&bIdART#V%e!S8fG&s4`ZLi#s z8NQbUUI$VJ4O4<LNH)Pj61=vb)p@R;s5wGWj5;HfytC3DHep03A*GJ*kR?>DR;c>b zk3f4#I8&P0x4rd-1Fx=ST~DL(OPD*S?-^hTj{6;?UGLUEu*v6^tm)71;4?H4wsU)- zBwr$r)d*I#pW|DUd1zWW8_ts?M&KorrmO^sXt)-Mv7CjOD}C=f3(e0#W7M>5Uq%ZC zs!H;>Pa^f!jMrVix;SrgGM{l44k!jyhNfzFn~aYpe|(Y>|J`=}g>X|b0Pz1C;g)Ft zfcabAD>M1j>;4H5YdSOmH2fW~?fL1EVEvpTum1^e>o)_S{<}L(+A;&s0~_m7Nt~*` zEx9~hr0?dRF?Qo$8}K?$K4rF1)tAa8evPnXo@690)i4XgrYJVxq6*kgjVA@P`q7CD zziZxnCr{@tEG>;cjhHmfnXsxLougbQz|ALZ40`M;pEjnrE+<{_uJTUo!*pm-R@sN| z*uH<IZat*tfkrAny=e=(0V>}g_d;lV|7KNDAv>`9)3ugV7Dz06m_|ksnRK@y`{!uz zku7xLn2~#BO2nM@jPO07fBO15LeKijHr?Q1-1=;_n7pgME4S1OZ!o8*o#Vv?!h&~| zw@CoN!^O|--k<XQ(Yvm|0&dYT*i({tQ37Sxc9$xLU9mqPnzbl`9GDWlsQP>!Kb3~k zxUpHGB<v54xE!@I<u7yN%1__t*VIUv6hO|8Q5PuMppGfSypDI5)`0$X+BvPCwWpb} z&9k>8wwxQJn}t;rGG9$9a*hyM^u=BIG@xx!QskO2i+2>2F$0Z>BSk)QHs7V+R9t@S zFo+aXXe2os9qs|^8Ynu(&e`1WqYdlr!3n-*>0%(<A3>rFe;9Xsx^M9#izf??Pg<Mu zH=_vkXBH+&oY^&@>(*#*vs1DlH=f-}t>YY}zmiY7NHK<42p=i)+_3oDQTOacH}5LO zF2o2knel)pmS|v7KY;(qVgFR6;F_*7nY}W&U=`i(!SQ^X6X;N8L5iuyCg@S2tSCym zC<td`X9muE=vh4KhI`t*>8c|r{$&W2=}x=R^$dY98~^MlA{>5RC3{R%t>g^=c~~w@ zY7W7BVsfIgV0sPSkB1J)sNVF*$I`5&q%Leci8KE;byI|+eN3^PFfspeH__XKq7o-f z1hHu|t72j^0x0Jnm1K+Eg-8C8HQ?YI%yed*<ml(yP`eoeX(&<@4_{N*O8BnaoJ zK|ayhx9uEH2kAM9ju4J%d_2!)j<Hfu)!RxW&87|^L%SL4DF^Msl_jW!_G2Z^vot7T zMuvs#ffr}!rfr&3yx-@3)AA$-ZDez}%})9m>6~*ykm79<Y1gzbJ2%LyQ941AaHNB- z=|(&$=-dkm_+LuSUlX6I9pJ~mYAkUV7Okn+4p8*>3EyS<Q8~_MoryvHeLCpk3_$%~ zYE6Q&rS&X5(tD<^K6DQ8RKb~=C=Np@A&k<>Kp&)T<FMVXr1=m|W3P(x%SHOlLjJ0M z@LcQN`pw$QJ_NJ^ZES+9-8a1O3b{gt9Of}cS|0_%9qNSCy%0X`?3k(V>iN`VC}PzT z;TXVt+jLSEy%_)FR~<?8PvHn#r&2ioSA+;h5{fc4RdBMx9-#sB&%i+w24@cDN^4|~ zqp0QM9imSwO?*0%SyjWt+}y=OMhVc_*?G5RwtTPK(BAO%&!&`eEr)F(#sxSK$jz3# z*6DN>YvEK=Tnt0HXO;s?zk+UNP{|r2*9z3Nv4naT?6<kwe_0N?S>CzD=OWa(yW@yT zdb6}W1so))2Ct%jj2Rv>*1nmBz(8$;4-7h4LxnsI@sWBsaBYK7Z{kG;o&q3yS@V$b z8T1DIY<?$M26yi%(1J#EXIv@t!7pb<2!K9_tRv*{zM#-JfQtlHeg>ST<9>?-K>!Yp z5<qSFfdoN&MUr|9EmuQ$RgYXSVkPNL^3KZYc4drL(zc0*coDTQ9kICf{BnP3c_L!V zKiG_g=z3no{4_^53~04g3@t*;UjmC4b|@N0%n=B3P}GESEL24K(e42YHNP}&`i`%Q z%+xOp3jG{&cF$T{l&tGvZ<K6=FoD@kv1Xa<g^ZQ+<l=JbspNbGu@Obi;_-|!z*1&g z4hYJxrCtxem2xp;Ec?$`AlJ>?3LC6(AZb{=f+Cs5Lw`yrTSKhWj2E2gAUd%%BYtOk z@$U6xIMzlV26x+BhtO^c^X*XLfldkbM$JHB7QV$6<Bt8|sxH!$JbSbJN!kcfVFEB; z#!;mRQt1jurDClcxT(a8N7(H1MuXM%m*hf+fs|>Q9?nytPF0fjuaO>!#$8NYUi4yX zxmF=LdaibsgD2nO*?JwqEuIwq1S=&NIAU%VB2Fl|H*#qXGTd)oH&QX-N;HnPF@0f+ zir_x|$T%Bx+Xwx{S&OlXnk+X0?3<6_T5xr8=c=z&4lKJQ;V%nL|8wfV)0q=X_Moyp zG<jOIvlgfPDy=fd(@5Liv)HvtbxQYto#BWCrnB?QeU=s^R1!!$02gSX?`mvBYvZb{ z^tpHXAA)Fr^1lR8{$|8@9PuA(1>zA)BGu0Xe5`2djX~_t{9$BiR3xRuUpc9syB^4w zYfoD+b&0RMJe?obkKx4|qWgbIQ6}{-@|!rwV2)C%V(Enswa*R2lmerRp`^s20;zDo zIemQI(i+8w*ExP_5tmHZYoDH7gi1{|O<c~I)y-Z~{;W}j2J<ayF-(w`pj97^2sjGw z?p}l`5A%KBP~Xq59qe53wl}Q5YUPinw4!+`f20a-b9M1A<E<P&KRA6@-8?W7_^EzE zA~UP;`@Qwe;UVVD^#ceU5LlT(b!NeZ>0ftcQs*l5TsN?VOmlgC6M;4h5%tj#@qssh zulDLNUBth8tp7d;#_^;Ad=g|};vj8MbXXR_du19C`4Lz9Tx-Y7adfydb5fL7(A>Ir zv7y_0chq}_R4J0AI(llyCKc5Ca8cPxic)7RP>2AJ7=sgYIRW%SDO>QaV9iT$V^3f^ zMsry%6Ir1qKo4a<MR1P+b%;&sa-i;XzFeZKy>)u{WG^BS&qBUvbz-+@5YdH>eP<#F z`c1-2xCcLNUOSz(((_Ol4a(?iu@%ZcJ22%tLg+ic)-aoe4TuA!I`4-bZIN7bL3Zm< zkv7z8^f4Y*odTA^bWp?}7|>mk%AeHW*DtVxO)|;Ci&5LeRrclyU|~;KeBd?r_guEX z$Zh4*4h*j@kH^lfrQc3TT3>N_x^dp2jhy{zb?M~)vj&%_NG*u52huure>FJB&{A*1 z2)!-Cq>iPXK+um=kB_{R7|nqc2c^hQRwea`?-Zws3jl6OWE|}4NG9JdC;-Ua^0(N% z0>TdQa?iO}!Z0dJC&nl1kk)MB_9(D_=yS5AI;la(1?JU#BX4m0>17f`{0I`DtDh5P z8{7;@+r5-0e`_iZoDUE@=toS(iFFWnRi{j`+pO;SG2jzb6Xd$)hOV91WZhiy4rbQW z5&LqmOb;CKi@J9~`0|kyIauLc6*MB0KZQVgyE_3MR1y=jVi-$Yuh{Mu$}naXMb>yb z>UHwRm*(d|n?%-g*tVh#qbi^)VDS=<Nvr2Ro+L$yp0q<fS!?XM1E5|#N<diO6Oh&b zJN)H6AhfQmbo}a-vNVgV)}*H~x^4U!<R5j3`sK?Pz?Z)k&{!>GqKBV_Ne1(e!c0o@ z0{n*{Q{@E!`TJ|cs_WFl`rK24{*xfH><jpxpza8jRjXAtB+my`B(s`Wjlm>hnQzwV zdKhUz)S<aQXFL1UeG)~`ktOD0<1@0)x-OzyHB@}}{e<lg#`bO4jEIE=Ja|VOX?q@^ zB^e1=h859+kvt}t#YX1!<Y0*5AY*#ML1TysE4~1m%!sWr>+^lkYv<@GvE~y(Ilr@o zvhXIQ*EM9xm*}xwQVLaKsebzcmHJ#G^EmZh)v+c<k>7&=2~s2xGnvj~t?uH!doH|7 zLp|~FJ~+7A^=hrl6H5{!Q|?$;iLrZS)ub6w3);#^5ap}{RnykGK?{uJet5nifvpm` zsImpNy4>7U9HJeZTXk;a6yV=yVIdssQ3p3@Eme&DP#M&n*_)Kbq1oSTVY0{;XJeWo z&n26FdN$(d$eunvB}~o8$e1|X=1P{*_r$9wfV009ME?o?gC8w-3iHI-`0Lhib~-WV zi3Ia3ZaH;24XupH;kFTWdX@}tx7n?}9S1Kkt;!T5?&iq@1@eZLZH#1IDnB?Y%fZOO zu#`f7;L2eG0E7?KeSsz*>;xb2BzKxr?#?6NHyPDt2E&5bu0vX8-HFM<{AJt2;?}T& zuz=-O(I8MG*^-^33ln}{{o?@sm)?#a1&typy#gPJO0N#%Obgs{;!>$5UPTK4FNy}Z zcl4`ZqrsSAD!L%e?QJApG51GfChed}zu0LXmI?tYdv$TBNew=TF${-jkEKkgrmqMN z#r2ruRNk(uAgC-BIQH-TjIo>qTYlel_p#?Vu^e<|_Z4kA0^7`T#Ss@(T<DOtT$`u& zoU5BaVgWNk!d%1eg}xDqH4|v^$pC*~^RED86in+HZf4T51UFIXQm-0*H5MF~KURwH z>Ub@IS9yWE1ZMd%VKAuiS5vb^BCgNYw9L&cQ#d7Xn)y^2o48dOZ7hZgH3#<(6O5)) z!t3b9CPhCFvwT&Fbk<jsRS_j$Ji}^m%r`O_sG}o0JWWlwelu|#7bg@j+#$>Xo8r5Q zy=Dwbzxv))m$wc2NR;V~V7mwC@b0$QF@*L`X;h}_%$`V(9(ws;Riv7foI4vsazR9! zU1wb5S|K3nyBoQz>B2gX|LE6u&B$1={auXE()dekMgRC#qv8ab;Mbk^*MKuoUlcCZ zC*5_~NIJX?cdSHo$d%ED&cXLBprKxxnySS)NGZY`TffMhdHyLTQL1rt;CU2Ai4%;o zOB7n%_GoH<M7Y%b$?Gpd3hdC|ra`)pJBhkg>zyN!lA(+|q?G9Fh{M<jD+?Ea?Mg=k z+X7rDTQE)xLxqAWYl)(uIN4^|+!eVzOdn;(DLxNz{aP(~&IhR!k;ZLz!e6N>=7_hz z=+8XGlvs@p1?Z0X1MKd9OXemBs^*p6i<D`&KIzL#w_#_44%aFS(?9)r$-8^~Z}j<J z4LNzxe;V>8<DkzM=N~H=voHYbzlYqW;xIrG82n!=7}H-kP+Ffa(QRTp;Cm7;D+1JC z)|G#Sb$CVroc^Ar@8do<vj3W;8R7xUe`jxKdtxh>Kz{jxjP~~iCyNyU0_bS)uU6!L z0C_6Z)IVeKKX<cLeC*QV1B@h3p})lz@<W)$nJu|(XE4MM_z1}f4vfFtGE{!JV{m~; z*!^itt+Dvhwn^)R;m)Qf?$1RxBs36wNPt}cjY=MN%y<=op}>!c;98`J2PAHP4vUc? zi(Z>x49O*~RO21sw{s%H)Cv9cH^&n9=MvU%0C@T{lWOSmVd?tA<IXF=T9(9nh8#tj zkDN{=v`BvrIhr*{n1+*-dvE)?5?=i*zc!fJ@rR!zlXS|0k&WgA$<LTz>`TwP@$c_4 z3X3vLbTVHZ$LiqS^m=~W0KPmwp<)x6R0fDW^_|_7hq$}DbK0Lmi-jyM8<3vOw&m<C zwB_)Ko5-}vn4-4W3ZD-y?0E>i&6)u}ST+z3+#A)qf$VLMphJjH5?)gD!N<8;C_^9w zG88!^d^?MmWTL&Qev5BCHOrRKgdb{z@Ig>L(>9n}{8JbB>ELgEz}~IP%g1@~E}%bR za8<1wz0cun!IuG%qMe~6y;bo2K|Li`yaLe*R3gb<@E3n9T1Kw{*xwQ8KG}rC*SEfp z%L-FCpdd$zxOosgDa}bdg%qM*b~r@1FXY)*q4bdp{yFgjs^sHrUDmxj3E^+SFy44@ zCv}4|R~aAI;@(^ez{fRBQgv!-ncvxA-<h}P`?MV-(J8(=%7+svKnA?hgI3X~{H8N? z;F6)&tR%=(-J6&}Tk&VswTXvinGVD43InCKVSE2FnXuHDOGLz0jz**G&nJI7Z1_8m z2V5~n%pc;2-&1nN5v`-j$LM6&o(H1~79pUgr}LsB#39$X6DS!=B_TDXgZ&stk1e+o z1!dB!pi`|P%po)2t%|4Sy<EYf5>Irk?T)NFUv7>ZAiETwvf#f;l(mul$`Tb3j(U%? zjoYV%1SllV)WN<<3cRti`_+@g{RiaEj7khAX^%3yn9p0&_s$kQ^y)%fDivoYdwPC8 zdX9>I=h8x-0cbz)kl%ykF@M<Tg)GHxM#A=1dTp3E3}Y+hiP5peX!EP@9Fn_5vIlZ2 zgN~XgqJL0RO4njv_6mBJ$-W*h`*{D@<6<sVC(?*e5sc$dl`w~|g0cIi{Talr<wdc5 z>lnw>n$b5rY&tbY&*C;e&h?_otwU><jg-LR3T-A31qkz0Mso*&=3YO0l@MF_4lw^! zGm$GCZuXe(3Wq&x3PLwz11}k<vnud)jFufqgCzn_qZCr}Pgz|5qB>!)@~qi;Kx@ol zs)i@`SpzP;0(^=h=GJA(W(K=Wp1dqx)<LmWTjrYlEB*}CbyfdHxAEhmLztd)etb^w zEyc%$0&r7s;5l<mA(~L*hdeR*B=Xx2xal_Eh{?xMt+?5g1j$5SQ@7iAl(C2)Sf6fw z12F<mQMQK6;Hb(mNjU*e+(1TyDkeCZoenbhxToH2!&VwQOU<w;JJz5YDZf5fb77C( zuhC{wIB)bKFJMi|A8cLH$sZ24Zf40><6}()%|PEj5;H4TYm_;K6^E;5DzLWomkc}S zBE3JatUP^aIk>97u?3v3Fft*ZB1*TF@vVfq`}*^fBq|izJJu11GOM_({y;rByDx1s zD?4cTCSIwU$H{MiAdJL^l9|QHm4FJOC0==YtjF`M**>Cd3QG;!ZS*wd{?<jOf=jIh ziW9gL?%Dg4IJHFSgl0Y@tE4p0&I>}OGqT_!ee{dw`W}<ZrIYTV&sQ0z>z%yL7`o7a zpIju^j<~F@4Vf8&GB|D!r^vhO3@|dJC|5fhmi|?;c8)P@-N}Mw3!A|r#c34X*ny2r z8oE6{2tM5ox7f2?eRp)C?fw=$Q~(C)D-d{^e|e1uB#UYHrm}9_FR%C4#Fi*>u{c%i zG)x|AzdrvQPAf#m-A^pR#O7P-3!_?H+A0$BgjH|JDp$_xDgHd4{(xu_o<*C*E!C(m zPNf7_8qXCjNTB*Yw?Ly&(fOsK(P}zTrQ&T^^YG5WXymw<-NOQL;E<p*3Htg2D;hY9 zQlW~_$E1rBKxdTsI@oIi?_@WHpWcqmWgWY|HBH#Zbzz=&n&+!Md`F0_+R4U63&1;^ zOj-Gre}QPV`K{E*Ne*Pbg)$I2bx&BV%`y_)Bbz*kU~t9w$YAPctQ>c6vfIIGv3WW` z^7zMCt!|bY=Z8EfNDQJyW6lr!hIk`a(_W_r;n3E{2(p?6*HN+o_$U1a#Sb+PzZ7V< z8irRjM0#ef73<r~+<gDsDvXng#;SMu?+L{e67DAfMK-Yqy(Zh`-SP7t^Becjx{RqK zW~zzFU4OUw|LFApO2SCW`tJ{QAq!ylHy&nU@F{xW^Fw9)ryF#V4FTo<lZ26=aw4<K zhW5T$RNWdDi$EgHAt%vqj5VDQos0zz2P7A&Jgd)?-WjshnEHhue7Mzr&n9l4N5d48 z9WuH9;^8rI^#q2@@5+XgBjoDdn@A??t+gnrM3{0yh$kdK8SjsKn|xvq>?gk8RiVNV zQ)%Ch4$V$*tqul&B3F*l3Cf0NCG-hFr<kjS?0B`$&}#zl@F-QqSkVYh3Sl$pYz(1` zUDD-QRbmYw!ZK9KggtNvk2Hql)?o2&qWhB!>mXOL3J%WSp62%hUUm;)GQOLQC4`D} zWV-&)piM$8vqv|>4_g}q3SH!3O!nLLP@rZzd5#?)`=2|_IFIZO4bst;b93F{Idh79 zMn|+`0vErZuRosL%|ESUPO0d1r*G>8X|Pbk8)u9Es=^1mt=`GUpdYcNBl_YFZRm+o z--LPre}8s33FbaoW9cqCoZQ{|Rp^BZy=gb?<tpOkY;cioH%(IysK=o_cd<9qc6Iix z{7sXPbcR&~LK-mS9+;r_=`7`!Wn?r(dB3+o(=So$7MN#hEtvJj`&k5)42N)*^X4j% z&ckUCv=PIKc?*qmiaMDiGw<Kq(h`pf5lGS@CDgzKugxGvvakL#qM<#N^i-V)lfwW$ zWM{-w!>R7tukkSlNKG0m8X87_CyFQ{co?kj?#9NY=V@_)2>D4{Z4@NO!uy7MR_E+} zL!2C#{DSo~9mnJU2p8G&%v|FoQpcNyE)L$nudNNXQfSTjaxeeksfH3_Zy>X21;9wB z(I$+Q8w3fhA{c-rzsIs~2(p2sG-Lk}4?s$W9#)5gK^*7@uAVT<vw^E<8?D7QEh0(M z&LD!o`!em;Kr_uod}87KnWzIk8frg|Cw0w2prpnjq%p{ErkJ;R9A_OI2wbIi2DQ;h z`E^d7W8gT{gZT_9%0|8!nM8~d+V?;+DfYW<J1}NdfGz|)-)Sd0qBEIvE((9q<%jRP zEjp(ggQ+G2-h8swG-V5QewyNJp;6c8u*4CDNM)Q9$fRt*S4eCeqTSUQ%>s5{TCteF zj?#}OY3YIbSb=CUQ2VwpS`N5GNNdnQ%xOV%;xNG}gZZS^nASP1&9G&178N$QFR-8Y z;24Qal(dz$(Gp{4_LCuXhFv%xs;VZ?#~0k=c*`}@r+*QakzEOZs_HO^36sTXP@MXu zD!0mqKy{k+3cvVWv$sBcq%<EkSCd_#Q|zhWEQz)RfC;QjX#@#r;|PY&r=lqkX$dEJ zkciAnjibCfTkMf3FF||WKc_l_PG_dIyxDcpB2&!j>L6rexzQJRxZT$nk00ZeSk?6e zCKwI7<0BPIq2v4FV1#(MLuh$UF7kz$v_jWd6nBMCM4-Xbpd95Xi=81G)3~Aj?2!IY zX!Jz2p$6tT1g$%_jlJcxpIJ|2a@cSOY{ZmC*qLZsh(mJ2wN_2fV+0sGP&z8<(3?}? zRf4avbpe+~6~r_UjrKEF+Vd1jI@7R&f?iMheH{*BmiaTIsS+^Q?n7H4##5*|swND} zTq!EjEEiNAJzFVwQ<?ZVK109VdgbEYt-k3~>e6Z+#P4{X7%4ohaHW>(G>wz(4~iN} zc<QgVD|o$LOZ|6L;9oDIYbk)`KO;tCDS!a%AK5_4W<BGPpPC2^ASq`a6eqC~fcCFR zA_=DwfCI!lBA>6t9ds?><`hZF=d1PtDA4tzn}X708i3A8ic{XJ?EOQIjCboX0@OaP zy>L5+DknzMhr=q80|W_UxfBD@N`e^?a?l{r;#O=My+H><DrAt1#bXON1Jal$Dp^Hp zhKznu=?mMLI1yF~UY1V$77(XM)Srll{P>a$+|mSDd5mmgQo$s+n@~CXqd{?d$QEOy z5vNIl@>pvCbMU~rXhlVCt<?&B!Ryu80`t-QB2_3foxsqN8S&!j{6nW|F|0dne<8S0 z1l`B={Kg_<B-}Q>IRoHzRlQaIa51={8>Jn^kud&rm&Bg>qSLt?W`OM=C2{l9!@AZO zc;)iA?cs2{x~#|d*757NY{efthcVI7$6N62ZC7S4PM&ug2j<Wqzu9ei9TDlTJ|Tfx zLXck{_?3{F1`ymRZI{$YQuoNJkcq;<!`9IyDG2QnNTl-fMIrO*h@@$2KC%gWi1D;3 zEzna;Q`GmRaE{)d+Gu%<Da<iFOWr$`fGoR6sHco^1WMoRScaC!)S4}ePVcDMjB>Wr zv|yq1e@oT>23s6qZ&<@lWOw(~uu$ExfmO5ZYFv;*W5~hC@&}JK3G5d6$&>>=yG9wQ z$s#ZH(?yskX+yJaFN2f|tfNVAxNRjbN|ap)^3kCZ<|jB3Y_yi)R--2^3Nbo`DNvy` zRN>FWj}4)GSAF!>)zH4zxZe6Ylyt!rSNK9|{wdGLHb2}qXyHOwp0oI3hz@mFFO%9O zv#tjYOBuO87nHj!v1%Z@*$(F55>K4L{5}Hc%aHXoqtq<XsT;V8HOz*tk<5l7MrOd- zUj5Vl6bZLtK#8_U`*4BCNeX>V5AaFgg0SKznm=~3KrXq9Z^Y_3fu{+~Y-DHd4(=WL z^BbDAbB}HIDub2c9dv_E@SQIN-=A86)Z>=J7+S13Y|TlO@6IR12(<`JI3n&gyAaOv zb>AGsH^Iu7ipzFYgsxw;nc7taZ|^<oCBZjeAsvtBRW$Nt=NW1^>SN?c!ht<=cpE?Y zp!Tb`4BIJY!g-u9_}z~Qg$K#V1g#gMY?)sQ!bLgH4o+u(Bb8O3E?5dFTUB%9CW!B) zwI`QDV(6ZE)mS7)0L7CyKIYT5SARSDosabjzFb!WMmC8IHe_p2EtL{^w5M2eD^$$G zkRIQp5zo(C5iQG~yXPD~q6pWuc|IlwfVO|xIsfJ6{L7_%SX}^?_gT1-fTU?pXq=?d z8UV__3p@z{9v%aDuG`~EMLgJu+cqHy&neQ{$LFm_)mjdQP6kesX@MSJ9IJF{ums$c zk2R)X;ZVY-)^L7Ud+E&*FK!lFK#g541}=xzhe8*~n=rx0qaYVaXvUI&-g!&t^D~)g zR48QUC@*~i2MrTW;m>2m*3ZjLa+F)=Y$z$}+`o1SUs3=&r==t*RG5ud_%4F^dXwP7 z&l)(~tH)r>Qq^$jTh)m9^i5&oDFZbt5}XbyRLD~p_P~DUI}s4Ctv^TDaK^30d$o3U zecE=t+R2!5J0coNQe+{)fIQ1qO{3XNvi89Mf<)RTAED)-k}cJ!qBrNox2~kOBCA2F zZak|G7d~J*@EUl2MbBg{V5cP{JhbJl`g=V*@L~{S_h!}kt^e4@gGVEs7G3AU8~KJQ zs3&N*Zu`&c*>P}P*z~1^hpW@my)T1aQc|7`?t(OUp+pOS1{?451b5BnEo)ZmE9|Mm zuEVQ_K|sQm(M7-kDO+L9@Q(6tq0G*}VSDA3Eh8Y7hs<Kv9QC{9*Dhl}BHz63eDiAa zL~A|~Zr=jxw1Z5H9)9_rnl%~RspMrFKYWiO)e=kngjyCQ4J}L563n84ZnFo<YMC-d zG~`H6J?~?iU32S^e#xn?9t$$@1u-KiGKO_lQ0r8{_gP)O<UpCJ3<SB0KUXaudw2Jp zoI*fMUzI)9gzkKKl5u|@)!h^KEG_1}2m&pBeP~Yoa?uSXpC4hKw?5i1IS@SVQ&@8- zVc=p`)!(hSJjNJMpiLDFVlxjXoxi=X1gN_cu?6LKFs}!e`S+9G`klAmM4Sc;Q)6Ui zSF^+GRN#JQY>cSE?EyH!AE8hNMZAzNdH_K29h|gSHs7fJwx6Yf*2xgz_N^cTAYrd% z64b<v7q$IcT#1DW{$nr+a890Db6)ulYgId28;Eeqb;FnY^!i7~g>xbTv^=P$yYm|U zGE}D#5hOGNNV8hK2rvHE!!zmB+#gr2#{_TG=6Aw~LnaMBZ?xYKbePnve<>t_ude}N z(w-jIM4-;f0{sl$%xUjO-@&YG<bzj>lxnN8OWZ&ritd$dYDdbIq45qBk*h+cw+SLu znH6D6cGB=dl8x;eyQ$zvVvNk0dfB_4-nO6LJ3FD5^i0+%xjJ`-1O#A9nO|9&zUH3? zo?`0$pe5&}Q!Wy5l%20Bj_)apNX+4Q+;2nAhiuP}%OmzmhoiKb*xc0L|Fg!K*v=nu zt#o+&--j1}W#v8!nJT<|Qln-W|GriGOi=#%zp&Zs8k+X2jVN9ZRo(KkfeMB?!rD=1 zQmJg;nq*EwGBTYklE7lK{ev;SdRr7pzpG?DC-OR>w}<4Di<YdW9MEHhfupy<o(8S= z$LfAZaSxH*T}G=A%8q;hO%xik^-WM?*kKD68TE$-)`wC|A(Q3%(&JutbhP`$bXbhx z-nfdb8+^$!WICB@Ck~BmK4J^;+k2FuKMnEUM~gKI5$2y+7ql_9oCpo*UQjm}7=G8O z!mL4I-n#?IHvBwtv+41m_E!5bqs9hpze6k|dU57TaDbapvzLyN)OV<sOg6Zls?uS` zal5w!d^$fKHFOA$Cy{iKnDEh}aLdBa;*IN2Hc1W1oW=UeHa3)wpP8A-<*d`i0U=R1 z7NB-brl@_vld`d~p<~uTW&`yh34Jlr2H0Hh*j0K5DY-yjA|c3O0FoUDb%+;>&JoL* z`U|spt+vg0hskc}PrDD=cog(_^5s&sG;$*Wot^mJh|X+fmq%|~*?79xpfYG@MP1)i zHijjA0#pmh=P_>~j2je~wkpDK*7L?RZ5<<f1el&gyFNw4W~&s#1Xx^fVkMdcY6_^+ z;;Bc-Nvv%P;r0L=1?!v%n^!7%KjL&`<1X4PUvb<lH_-axvP8!h1<q0C(;R)4fkJTL zo=l`tZo&EjRWTssly{<D@Bp*qh)WT>f$<jl0aF_$wU5FONdGPB+0)vhm8h3+2~WKb zQ$}kNukGB19)YVaV*D2t>5?<C&@2|F$!7g?MgDu}w$_@S1tN2AC2EH?HI@Ym?$yHG zGbjTxO-$C>fWm7bb!WC@(Ges%hF$@%VurFQD=-!9J1pEPQOdC{s?6_bcY9pGn^No% zMtC33<j|brX_vCDs8&0Ck6=kpp6Q#YF1O*I*@VfT;q$8WMm630H?Y4=h*h*HuZnlR z9vUG`>gt1B&n0aga+OEI8S1UBXbEj+39jiG-BwJ4A*p7e!|=TJ$ngYx(>HYo9!#-v z+55lTPxS>_KY(}*ERn|PZ>B%C{hpxLWU1)3`U%%CeTnbeYUiKc%}#(UO2|*kPb-N| ztb!LTdu(k#DRQ3ZFCQGiZs0iEs7$BcFYu=nlIpio7D{)rm=(09cOB}^_QY5t>D%@m z$dsE(adHlf61b7F(%O6lR$Mm|5R$YJipY5@DyWyB8v+-nx#?=j0^)<T)1tTb8NVlq zCE26UN*dB61YJ#aK)EFaw%o?<K?VMb^2?^6p(9ILiB&A1(v5)cK^DZ&U@2}`&|`xA z$e%IeJBdJ*DbsDjoS7&e5^pt)^XW6#7Z9w+rF-qwT54-=Zs$EjX9#~YV1wua%=hnO zcNLS!h|ziCT;R;%4*0KvsrvwtfFWCcB5$z#N!IwaQdp^ZO$j!kFWH^|#z4Pm!RxFz zfWoy_8O1ZY;_aqDg?0}}@KF>WVwg*BCnpxBN|uz=YC2}6^qLBA;SWuClxvuev6&xG zg83QECcecTPuFNDqy?r0SlvzEp>|2==;de1<Db9>4?uNj6l<0PVI$rHy|z$BqE!3? zC7L?i_os>T@SFY({80#>>}~EGs*K?g+bpWWG3=DXA=e5v0$HZ)Gf1DlSa!%VR1`)y zTwJ)wmmKZ4Q3U7+2%*$Bc1T=r@jtrXD;&403);#sRTMJYLz}@ufDX;yOU1-+d+}8A z{9Ww%l>$|Bo=+$p#SjB!Ht8+Qr+&p~8_E}wQI7|0DhkWrZabHdyFr8!%H8(jZx}2p zEq!ZV7`g>v;qme4{kG(tG2MMX&<DnMmRVXaQxb}6UM|fedN`{>OFn7fwy9)$%H-S9 zsun};dsbfCr-_sU3fu-GMD;JQeQ{btCX;1qm}<g*7n@JbRV~puB8hYs8k~C2?zM}U zUb+ojLKMkkKmY_PMue-pU7bS}EbNu}BDk|n5A04NeFF(G3K8oH$a9f$!3qvFW#J5y z#QnmzR24l<orJq4p1-jb-3JPq(p?9ITRh%VZOuy@@bp794Cr?eJcanR!pVEM3|x<v zoK5z(T#uRGH0n?&W-9?4oXn1=18no&Tv{G`fPPavjldHc>5bY?d>@HTOtXbUOrO-d zF4kc}kRU>H+AySD6pm4(E_jNd{6g}#h%$Xqn&%HRt?mxQptgitBjF2k3XG0uyY1t0 zZ99(kanIZJE1=O584*+U_7Z0!J%I}sHawJJmdkD-I*!O#0lV2gUtn~EW7kAk&7_R% zgiI!9Rb&^>`&F|}qOpXi6;IG}2G#riZ7A=#L)GhGhm0_XA~Ez`(NE1y67H6J#My~o zx}rJ0LS)F9F^hT^Qr$_R=UoxDLfqP8sxdf**mh!E-+{;8S8k*^Q@qL_J9|5~E@Agj z_OJ!Q54{MwEhRA=ViFK+G>DwvgB&9HeyX~^<~wIkR^+8#L)rUovnf|!3izt?UCa<b z-Mq^)ly73*(<uvIThPjdO5~R=1L|<~e?X)JAgPZnPn8i*9#WTmRLM-x%5;8Mt&Sxn zxT<U^8w1-c$hT+H1j3Xq4)cHf(Q|d^hLGG@o>uL)nE(WE**Ik%MkwCeb}}t_Q)Tw) zK?3a5_HR|~mO_GMRpk$l_@HK#=AKEJ_)8irU}M1%BH#%||A02iuo*X5l<%F?&0b{j zIA`*9EQRI-1H$(N1n@5JtK-HBM-yP(&1F19<$%>_*C=fL13T4mBgf3lyOOv?5?W7P z>K9e@cTsP61&Fh^)`;32aU2rQrB`+r+MBBVgcjSYWsD+KhZc$?@e2_MoRX)bNjAU4 zK*j7&_t${}*r<*&M;5e&i6HRwJ@opsbQXf|C%6p~;J8B}3*eUWXWG(jNz6PpDI4@- z%fQ*HsEn|ziF4MlH3~Zzrk&uX(Nqdr;JFsB6(*5AI|iS6D^9jzW!EW%W09TH^KH>= z+zqU0nc*13`o-$2cE1>YyRh5?^hJUDeiDu?;E|&n(5O?LnWJET$O9cMSi2Y!dE2Qi z^IH#}Uo2qGr`fLJIw|~mWSw&;-YAtw5l9i_mvwW1;CJb^IKFbipSxEdrGOaqo#*~u zqHyWvySu%AdH85jysr(2QMHzYGCddPjCZV2jQ^am5(|qYj)h!6NYXh-w!dpRgfahS zk0j;hyabQyh>c&%fLT5aTfl%r3?BP;alkSBnwo3v<sP!?R9<6J2R2u}b&+^e3@}Bh z2vWY`c`3LXe%_~fdPas0!$_JcD>Wr_vd+t_NkZ;|C8?m^EGCNGy8FiI#Jo}0PGICF zU8WOjMBT&w{mof<6nz5V0>wvZXO%Q?x6d)&ex7j4rOpub#l2+Q_}+n{uEZRTnEE17 zc^f9HJcep<k;Y;V$I0x_Q`kLj3fPRJ|D{>)<!h{t@McOr%NQ`??FzPNkaY1!*K0tz z7u*CMg}Zco!K$7Udqd^)?k$mTWvpZiHHKNEZqrksJc)3>OG3kvn;H9D{4EopU~%?f zZ=#54iDi96>)P?D?&l)DEw^b5SeNF+pNn-+vumx5kGIu5Piy=6MvK6KRG`%=JVcxa zXM8)fpP~9W4-<;F^>nco5azeZ*JVfl1UObigw-l|wNF~gCO}bbpzBL62iym5keNi2 z$f!eFPC~;mvHW`ES$2@{a^PdAYhw=gxAoiC<L%=-Gl4UDm2s3>uxo7N1h}_6DNPwp z<%Rj)8y=WFD7+v#o1tM14WMg0wJ}MZfWq=3O>N!?N9Bnv<6SXuZ+^Ydaoi0{ev~1P zBR~p4;>7EPF`&0h4%Z9nFuzopz(7PTKjya8%G~s9f6tI4FwuyaFTMz(V2Nn`&vzs- zZuw#8CL0>O1{~Z<K-IZxio@@oCEJo{;Zm#j)vc5!(6*5zTN29%G+=!Ms(g5|6&smI zUueHr<&=)3dk@+%2P1s%k$9l+YF<6`H#|ZxWN-0ldCen<UkVxS+Nf;VA>b1t1utDn zp@kzOhd1h|eyZ`t%n&}w5h^wqICT*y4-v2aQ9rRJTBV-Uy_BI+zZDqnsd^^yo-9Vq zMx9;SxyJL{)ka+y(EtIj2U=df57x$AbIK~q8o0pDdxfJy%IjEBeC(<r5mN*?c(m^| zo9pFy!&G$V;`b}zBxS~|md6dEtPn0N#m1vQez7ZyPBbtSs`<J@`Ce3D;2Aq;7)-p$ z`LS<K;iM;)9r_@6X*AVO3o$X<8->3-Q$%Ni9FO+t2JDd()&K{rS2w;G&+Pf!y%Qcb z=CIQG$$v&rB!4zWaaLGv*5aH6LvYE$MEl6j*I%^6E<MD~7av<>w_Z3Z_jp#pXN$H9 zAXmB^EKA9X#x!sIp~+M$(>_#!?Z{?_SVM31Td=yr{@6UP9+f3|QOQc<2`9&TguXyZ zzun32mr&Th2>`R3E#>y&63bH7l~E!RIRxb`JG&O-7V<ADSnGu*6MspuxS@O0Q3^3A zaa_gc-EPD4%-c!!79=^|$aT(%XISwW;s@!o?l)#G1^QLNuM52lG8U^y0Sz>iwb}|) zAH+OdCX}_J9~o0gk&{;Uhs)!U5!7Yd6s|!fzn~C2QvhqnN>6GRN~tJT+*-0&-EAr* z9<m+oS0^PKCJ)9F@8Xic<%T7Fi><a!BKTW$#mJOq4(di!^}AZ3@9l%+8dR!k+c10d zKLcJl%W89G6crs=3r@h`8M`!PDOpz!e7;{C6}~j+HR7ozDv!qCuNRN!o?$aNe#HJE zQdgZ>ujh;{zO9$@Vp`EIBWPOCi0duiSsIEhmDH{BTJVr(5A?^;8fEq4w4r^|&UpFn zf$}fA$zk7rMW_(;1N#29n;Z@Qw-!t?0to#3;&-@9K_~4qoJHpQKl~y<TU$#<do#m- z`9=QeJNbVvdK=U&?Ppcc-_Lb(pyR|KMH9bqI&s;O2b|J!LMsX^>HiRCsdYFjP9PDD z6|C)stCtjClKY*=Cs|uCMo(i&kRL#!4{dA$lq@ICy2iL)D>GNWmaH~orEdi0yX$1y zpS!kQ6NvmkQ>HUYuFbfR4!SOsHxgpdZ5$;<5f-6Igqt-PX@zkRn^VF`i8TojaOjD5 z=qFdXuxJQw|B7Z;a8)Z$jqRp9C(dmRH@RF$yc#G@@mO2&OC`Y<mf_NLxljXzw-&Ag zjR0|kqt>Xz|DBnK0|h#uto%E$gLqk4=Rt-#Ew%7K2z5L@#yCiTKs}B+jNQ|%-lF7s zSfAFLFr5HK1|h5{G6I1~JuoAM!ayLA3**DiVs8)n>U0S}opM@lnZ!7K#Kp_xmmrF` zd_xisksgqlTWZvjhYwdeGUY$TX;c1CrEsxX80lY<ezncCYsxp!2Vn<{`cUH=F-dNM z{^~E}@txh`p}@jy4;-iD3L}B|V3NR?Z|IJyr8)lhha7ccT->n{PfY0k%L_4Y7))bW zDCKImn&1vCg_@eAr9b4jzDQ$o^dD7=`2{4MvNexC9<2wjui4jUWD|?#cMkipCSsw* zVn1>sVQYk_@nq-YhDl?Add~DAH+So2tcw{y%eh%{Bvd4_#$QL^@v&p%o>xkgc&h%L z?`n+mS*mi3DHDUlExa@Z{_pv+eI#~{W|Tsmhzy40QBwJ%<h^LZimybqgA=737$!;? zH4(9DGx@GY*ZAu3ndhk*)I+gc5s#q6d_GBc<RO{lkz(SgrZ2g`n`x2z2Wrh)<(A-6 zGeH7bw0JT%*dg?BMwRrd>=9%8Io~CD$FyFvfn7vCr{oZ5UnG;(;U-ZlLNUDzxik@V zRW??6*N3pne!~zY!u7>0v29LO9x<#)=<R4IC<OpDpH-m^`ph*lq`(3c+;3F9?XNo2 z5{+Cmr7%I_0(c=nUkmYhArxnl5^pZIezvMOIkqS}7av$FTF0vXBxZG{5g6Gu4e6M6 zEjf4l(nz|#rxYw?)3Br2{@&m6uSlkHP4j;1Szp!YQSiWb0laz+y&~%O;Qf7iGB6oE zJAVWaQwm3IRFdqleINDoHdAdFkmT|QOqK=C4HphEK-H3fp)5gCtHRRt(MG;F(n@^x z{87o;$q@ENq!qo?tXBkKWs<7-J^jdmBx3Xxy2d5xvr6U~ebcjzDno~wZHS5KZC$79 zo}FEeQE5uF#I$$6P1C&smr0R))5KZg@c4^w6x8eLir~Hla7(b@^Cd$E7x$ib?Ms8V zQ4xI-dzLML-NRe1MowG$0v8X~un#D$kdj<xsT5(gIjdq#tIoICxf6`}s>W^P_84H( ztNU>aELYoGQ*)mpng>2KqKJ=K@&DoLEraUXmbGCV7Vhru?(V^YyK5j2+;t+sUBV(r z2yVgM-8}>g5ZooW%g5fi=j?rN)%&d~){hBHtLh#-x*uT`%zz*z5Sp;LC}cE%Z(c2; z-+THh($Sj!n~u)?$p7~8E=RQjC&JXZY<espW``&m>f~vhNm99H3bH@&8}PL`DUvxF z8<Lq}X+9)JoT3W{!lZ#2(gNWf8h11TYi8HD#)=UNLJ(((fp;&nBnM*#r`zdIY^*P) z9KD+CPdVxvK_P^+qry()B||fyeB0HtCUQ3eVeXYYT^3gBAL*pR@Qdo*<sXPSpp&H| zVnyj@Qm4Lc^8Jt!Ox46_*aI$%p9HHqA1>;w!aZyEyLL{H1OWKTaSt+afB3i859lN; zvTZvecsHo$#7iT?5Ur+ZYvNAPmD6f3JTbNxYG8q%_TDevnfsPvP~T~NHZ?9OcZ{c= zyyF*C;gPHn@sV<DBE6F3DP3z`t%UrxLu5-%Z3MKIoFb&)cCIMD7z0XuyIMwx+_7AG z`lhBp{(yN8uiTCKto_xqKxXfGZ<|(d2;`u#WiM9ya0vue=zwAYW-tfL)Ww=*aR6>g zwy8(52rx=M#`#8=S=Dw=+yopN(6v5*{59b~1=d;)L2~WK8}-pmiLmQHRAtb|oGe!; zg!d0As#uH&)i-Yxc7bPfF^(5&?B7m%j@=42ZPOje^1`hBW~eG?TlvzIpHuGh{XUqI zQw&K`l8kPvzki`V3DM8}75;(k5Z{scq{8?<Ygc{VIV&drBdsp0Z3skML&VY>KaG5$ z08_Q+3f)m%${O#|hf|*16DJ31r8IcBjQjQJqCuh$%fr<H#WsN8zN$xd=hDYKMjrMA zIQX0({9_m-R9W#5JUct~6))A0*>Pzu@s-OJNU@!OMpmt3VwKb9`>%;P`5$&?7Iov* z8sb$H3qy~Xy<ulU2H}S%CUEM%lxFNrZRDWM=k3zSU=$_hlh=Y&Z*-%jE?Lrc3%h?8 za`3U4J2_w>9h?IM)0B=7o>VY_x}(TXZDL%0?jZtvf*UGH11RM>D(QrS=W5HNxlIEy zXM{vM_QfbDpR&cTMv#srxPQ}&ns~@O9`sxtZ=|I%;Rzk!V(#pH)kD9B_URYmiB4CQ zKu6q-i{ITCEF2s#pPg~GX6a?iaUa!fs((5-`&Cq##g+}6bli>H?ezZ|$r$PV?eXef zlQl1JrrU|ULRCTS;y>J>NlJrRZONK-pu$k{@%yR+mi!~&gK)O%Xiwo_S+_@SdA33* zhhhl5G4T_A{r#K>rD~O(K14%w!_&?>=L{b0Z#QLBxxn0a6h1RNFmmvUQpBFzn{ka! z9BEvi_f&5I8~n+Zf_n>BEDb}wSnD0nViumsH&7mYKT@6ZJ{GuX8hrrocHMJ=g825C z;8Kc;G|SnEg`0J!VlwkX`)yUOanj>{8PDgpV)pB{Rp#A)Pl^5JTW_^HKgm>9IqU34 z@7!Tz=bMXd!xK?w#BVpZrqi57pgxIFw|=?b{xI19n6T;?8<q<%K`=c(^msp#=w7ED zEF?|d?G(6L`0rj*S+9q>K7dEgH&@^lmoi=!+pndz@AI;jZn8qRpUMl`XD2<3{nfmm z`mcAyGV4btIx8Uvu&o%kCc-XW=Z%L71A6{(j-`$-nMHg|jig%II-6%%D#pgk-tO7< zdp7~VkJdx9z+ZZ;Xl+Xw;B_Cs&dm3sg~{^fCztgxhoPe*>xm<axpUh3{^&|JDSBA{ z@i<v#edvg_&PrnfPoPR_=4>`YNNr8E=P@mNAB@@WC85jxiF>2nMZ^ImVHb8~9b>EG zL?ldXb1l2*iIL!oNxF$+ldM5q6n=-@YZYHWEI?0hVIknjdwVBqWCLYNU#|nwLo2m= z8eCm0b2Ky3>-(up$77x^86t{NcYsa3J79tRgA*6Z4XSL*#cbKgA&w`&bf`En;tD3= z_O*rBIk|`XAQ%R1?yrB{sBM(?jNqJoyLcul_DK3MkTn6TEV-v4<9#R1Y$=ZT9#91I zV3<-J8h<}tc_Bp{ERH)u9g(fE9o3}MfWbJsmJd!ad!ULzEe~Q>)xHldP&_(+RryZ@ zM`yJOYk5zu)V}u<JX2<<eP7L}$(qQ8xESY922VNzjy+k2QA8WC;p^qWM@JRRCfv-n zFK&S@%!nLV-@ow!xVty7poMt4zmwTVEHJzr=4*39`kS4H#XgR0Jd5txhmT79bdI%R zta9fM>lPNnBi-Ont$++e0{3*UedQu5a2kGNx}Netr4l#?d@Hq}*s$BOA7}gZ%Uhfh z#iu9d-{RzdjZv8_*7tUxARqwn^b!K||BC?`s;T3+#Qqm1nmh(72~*Fb*20V2W`<Hc zf%hWELz11EruLKcr`!*DZ=ZeR^+^e4kr;mY^K}pfC2{od54l(H56JbEXcBHmeob;F z294uHa*me5L>XwCvWtFlW=<w_N`*Oh%fZP3^h*_bi}R)D8RJ6Nm{y%Ca#M<9d{YhV zcJ-wfTR1n@L~%ibemU(M^3;Tip;(`>bw_hChB@6nBi$b=SJi4*vtT#sd_7$mzFV~R z^L3AdlUvj%pZW0P&@J=MPxNeM+7UV%#CukNDCC;E@3v7i<Hnhek~w|TVcN^_{zc#w z<J`4!?fek1RIk{|S2WLOdhU2;ElR{$>s#yuiE7)c*gC+hJMO^d=us)^FJg|gWRPpo z;5b#Mh~|mEB(#j;f!b2%D<0qSCckx3loV@Z@0n3rydw=%3fUBshs|Me<gOD6HD$}a z;pV838yeS?Xe17`XMiqFA;($G<(4%FaOmtsVbLa`D=U1*+j~zcMk|f2N&m~&2LGm! zwu9@SK>qfU3ng0;qlt`nnyY&^ZA6%(TcR7hv3q|1LF*WU{2PCyl5d)i5J5Z?ngpn{ zB?E0?7ZVB2iqo8Iun_rl4ZmI1eu7K`^ISH1*c(&6$BBmhr?JIYJ)vp0CUnLDz~4ha zhiFJodLEj0^z3H6cWXe^xEhpkJloNh{?3zTLD0Rb>HFb?!Q6bBMg!N#vM3f8^}<)H z7_0K1JZ-3aX~qL)nriaR;ZV8q+_zA!lSZB)Z)$PVEnkS_gG$VU4D24++g3}V8NbZ! z(_h8L<0wOc%8R&81&uGNe;vu}0x7+X)fRqDk13Q4Olb@UK5U5vScXbtKYuzytmPmT zcf%bm!n_-k$TDTS50b-=q#Qi4=F~}1sj){#)t|V{fkn!*@@2wit!;I5z$vPFcKTGK zk;Sx9$p7JBYgVGt_aauFbpl1tiY$NjI7@)FH`&bSN_I!{%5{}!b9-`x8{OdlZXxMb z5!n9&2x>H5MR0)qo3Svtg&^=>v_T{KHUiNfCIajJzgYdY`v{Lve+Ujo|NisRBZOAy zzcoH>P7(P3d-kGJ1ol6Ne_s4csS5KF!3p7Sg*oknKw|w@$b$(ym}2!+%X3l`6&2}U zoXW<&M+DbDuqIcCNY$v<u&#gwo56!fz!@;0e^I?)K>1K8e?|Xuj<nqiBm_hVc)A9f z80-fRLi^{blHo!4e{R151QPt`_$dgK1NAp}s!aT8A?fvoYW`+=5`jm>QIY;)X#9tY zF^LTN2L1O72tWt@OSQBa9n}2i3|Nn6V(G6p&<zDvb3-NqXJCPF|NBCkut0T?fB(B9 z4v71o8z{p83H)Jr+^Ce8)x16?3EW?P)Ffau0ubW=YhvuKdFU|1j{TfnR25c8t?!d# zx2UhiXey<|h)GC-`Lo|;BYA>8lFB5Nq7HsTz>DLE`fYN<?VFj*3;)$-!AjLWhS52$ ze63|6PxEe#kIvsd;RbS;zn=(|6tsYY=Ql%yk<ZtFe85lvG``rY>gbKJWq%@1e08O| ztT&HbCKrbP+{+o-+(j@+PLCo8O^`?|TG_!2J?KeHrx1~{=X13_Gg~k}ePvAp3jm#M zEnR%`irjB{{52WD(Tk?4*fJ)?>?h&uUgp@hYuD=z&VWm!soM!lM~Btr3W><sih`B< zoxK%I0N4?@ZqlbdLDmX}zoMt_!ORRiQj?W@pl-o)p2~$6NG?=qPmI0x5%dueBx>!} z7B0YI3gFEeC@Qj0*i_@DPQFl+n+TuwdVI$TGIQbmppnKvs)5TOwOpvzT#U1XrXje# z$hpkDdO=@^S=B)!=ce{4FhbS}H1zOL#0VApXhaLl2Gb94Nr{pu7a9DH)_6)qL*(dz zk_*luOsAuWgtinkK%4wh^Epjz#{ckSGo^TM8ecftmCz8<OnGjqi=M6KBUY4M`25@H ziQ}~ea+IK-)x?T;Bz)^3J0?uDG*R4;u9Vbk*-6$bs>cOajKwgNN+?isr^~QQREA|s zOq=6CeA`lZ-UHUl5DG61TrrF$sJUa+{yB)7DfvBkc$V|QPW4Oc`>9wxOETwam&Fx_ zGri^W?O+3u_4}ufc;v!l<GVvo{o_UC+=t)gWdrX-Eww^oic544q`lut7N(H#RO3{> zBl)@Uj@Zb=ouIKM9B&cV*`Rafcf~h?BvbEpgZgsT`XixNbBJ$sk1JmBf+$?BcR~sV zhpZj$M*2Z~16jq_J%-#J?Ft$RQTfe@w*DgREFzqKux^g_%XDzCaZM9HfM(qDYU#Q~ zwu%4kcntO+2K}R9S3wLi`I9iv$w8d|37c1;1N=raa*z_t-!Y10g&L>)N`fjt``dsR zaB=(K@Zmo#t^Wzs|J%|k&^dI;ki~wkELs@23LJofk(@6%9OibQ)1VvQ`Yu+}^KFgX z9vNxH$WQ(Ne#CXF-v^gkJSmHoMeM`E)3srz$nIXmN4>sVTUkULgJfmqniLob!(vHs zbo5kU=d)`58nQDwwNlX6$Rka0p|S7Wn+88zNv(Gq6{b|J%tNY>`Z1ej(nx~QHW`Pc zySPx>T_}nqCDCz$8B@=Ui<b7?dOj-18<%Zaoj)!wW2|I-D*BQQ&z9Z6Pgm53&RFej z{sEkw)p=K-N1O5n#>A0G>2!A{dUrC|vyu%RphfOwpLA&5jtiJm*gpTT!@u+DHBzu5 zQsy~UtM^oqt$sig<<1%(;I#8Qt3UGMMl^RB?5QqsU|5S#Bb?(&jvnAq$1hMe2PFqa zH+t2Nr3Jr{>CT<eS8gnLnN?xF_x{yb_#>*kUmnl?w<c@5$g7bnN(<MEW^b${^*{_h z@RPy~zP-B9*=fqyuaQ6G)eQ8c>jKWg8m42OY$|cKNU931cYi4T_KRa^?|uqu(G*$i zploGgwyYG381l+=()aF&xKn$<v=(PT_}oHJza?*a%8|@0ZJ69Vrza%aL(-~B4(UOe zXe8OGte@ch$?xB<kvipDxoVsME~xDTDDhHC{VicQv6<(QnXP1c7i|PwEZn+|!;^<C z1+U-~=VRN?yfEY1>4`}h6(tzccj&vW9+ID@vMwKdzf!7j62f9=6&M+tP_01sHa0?X z^qviUQPOugDVu*Fy=ycSlWa$jhB3tYIs#;b(7-amDf=Pzt}oQv?4hu%_KINx_c^d< z)ajCKm-N!8ESe10+ygxjXjN2Dg4cr`yZ784?bSqYjUwQo*^HG_+2QVuj&5<2JHknh zKY9lM>{n=**X*Gqc;t$KFjDdXlP+s^El{FV>*?>3q?N>r5sE&lvtqRfs&=q`rz!fT zlo7c2&~ieK0oi0|tzi7q7bjmB*dB^6YC&LDb|?cT_;wEm{kc%@_>X)~ARBKg2Aj#r z7U7j|9q=n)AF6_J3^#rI0uAXd6~f7b?Xj!w8-uk#dJ+ozpK6B5nq^Zhsg;tn;4stz z$)zi}$n~NYH-?NO?bZorjm_Ypf|eFObof1=6TJOuh$LaOu5aZWvqp*tVDKGD<?=z` zsTR&voD!d)=d)>HA|OILGzxcCo-F1vR%7&0ql+g)lxkZl$Ze2zXUyB*2T#DHnzdWO zGia>~nkJTT@JQFTg-I`>uyLJAyjxyIxz7XZ-FxM14mHbKvr`or%LH2N_mv37R(n>E zgb;%Vj%d{@-Gr_%2@!&UX_)b8?eW;-;Oev+JRWAe#i$u<TYRGtPMDg$ag_G=++KRj zqjn*;<z06>lq_<zyprVBn1fMoEbH*+F)b>^KZmt#>al+2Zi!bYqlg|@qB=*NF?3qX zX&S|;VIslC3a)^7OT)1Wp}9g9(qZm3o9ff&+-JMCY{ieo(jA2fgv;v%y7|p#aSN1> zFlil<fDg4S%#g&tgqjk192LpN<2PtKa8q7d2TD)pjnZB)Y%>pFTH(3$LWE>;w-8Ql zD1Ft|tF`T&`kK<b$lZwOgTsaptUOw?Kq);7LjNfBS<<=w6&ud~{5h=FOvm$tb%)Dt zf%<6H(I>Y@VynLlh%R!RG;r7|8-Oe#mLNtwpvBTbRo6~d3`{v9Je`??BjJCSSKdYC z+99>Gf~#iyxfJCj!$nCc#7FQz=-J&j9EveiV%FjO6V1)Tu>Wshf&Es6_uGv<y&8an z&E*oF)}HEa0<aKzXtgEqht2yfJibn@PUO?&FKFu-=v$hBhgsMkNPELY4-P^a)brab z+~>$;DF~_9gFYn4)DOw(Zta(Sdna+<nQ4VJ3Ubw@IvOjp**Bxkpag}4V#j&MUEe0X z(NOP)xGUsj-U6ZO&KK|$Y70%`c{PsQ--=f`>V9nWntMJocaTKXG)=@?xONy13Ax7z zb69vcTiS{b#KyK5+aZvD3MP##$sOLW^hrAqwHzW`uq}TE(_~ENaO_DONy$2-{MKt$ z?7+=}S^F*byhiQ0@Ht)LP!~;iP@Rw6b;;YuU1bqzWT!?>xXJrrBw=22N2v;Db76F} z+xl$webLp`ZA!-j)!g#24v&La!P^h@(Bp4>;qKs7k^c+g{cAw8#Qd-242uN>hWT4z zxt!zm@P8DRw>dzfh|sV2KrpTF>nis@tldTvVNf&Z@8Xb17R32aai}E=I{qW2<?MFv zA_ETr5r+Gh+yN2TNd^_^f0fIx4&27@D1RXj4-F>Lju0RqaKY?<m60Gd5Ym4yM5G3S z1O2^}UW4<Q#$K1w25hiIE{GVME{lrz|HGad*L~0+;zNI40YbyLT|N76$Cw}qPtiB2 zPtcRQr##>?iJa+{6efzw@;9exUwn1qeHUq)_T7FGb%oc(JL;4<(uhe>gY=}6hapF{ zyeuj?c0Pm!n`REjB$JD~rE;>WrK%=S0TN0y>-@N}VOeYWW^Vcv8RNQ1Oqa<VhbxM4 zQo~K3nqKKIpD0>sntvRc=dX?)(@Qa=Hb*RppQcrlZ#pYE24lNQq$|?$--%F3@)8+4 zFeh{4x*NcLBi)T5;xbQtOUt3=aTFL6%+QUoE~#h7-Gh%56y_Bp;2#SM;bF(&1HkLE z@r(E_k->m>i}uh3G#E6T*B)L4h*)y89PuBRbuni?7K^{~CYcrUPc3+JB7fsk^^Q6; z@)3753)f#y_&WM_2FaYX_1KII-#V2Sj&SZ*8u<$oK6!EHC&Oe}oqvjt|JJ<eaC7A1 zgyA;nOV{2l^K$Ek-*$+`iruFu0Za|Z(jusw#*k-9pE@E||KcE}NL3iY45F5zRGfJg z@5q#<PQ;Fah$VQV*jp0--yVJ8aQfVYG~qMy8N-7RcP>2O^xkX1fJ1}f%8}2X=P2dg zabjYX>`+`ZsHz@Wz;{UqbPtUWK#NBb#0}v~M6U6F1!-YSiA6BU2{+gk0bi{5bb`AM zp%oA!HJ1~Nq_OakB2n>^P-p4T+rCrhHgb<R#jJ&}tEJ^wq_9V(oM{IYUgk2r(wKY} zjVgIHSZcI+QjxxBNpZBeLN?v0^Qv`3krop=Vo}E8TAGeAIzT$AL1})4RForO8N@~` z=x|?7mnN98*q$>?pu1rJ0W^`QT9(FnX^lcE>#R3sINw~A2R>q*>~Z&=>wXrr5%SWK zi;q&mUaE7m#Z2A+G2~Nvfcuc&bdxlzVVxx5Ff;SG|2&Woq??0M{pS4D)@Dc390isP z54Fez7e3gOR5?eTZmZ)Yv9bh5&@E*mMpjMfgq<$QpElB!WzNw#6X^ctdo@i^?mMAR zqDWwZ^&V-6-sgfr6#;TO`${hLPIzi>SCW=X$s&yrv05}sXPY)+>$fW<A)Jy>`sjTm z7hiUQZ%HB3rpYMz2dqGZRNnAcFL6I}7O-0;?ql8qjq|9q_jubF>T%J{6V9g_HVye9 z0juQ5Qet`{<|)_pufVR1KGP^1QE+l91JV4g-Y<!C9Jya&i+hNlORaR@V?KR+cgqz7 z*A4Q4@c4FxP>eG~vs*Rk?wa@rxeh9nAJxl3b5lx!g<?+btN$f~8zvp$j4O0OLfGQ^ zNrpx2+P8b{*1sHUaXtB0l>zExJ*lNJ%HYzki_x?9FMSQ(C;UL%QuB=)+Mzg>K}6Yo zQx>$1%REbE?b?w(UyGxy0g}o{F+3vJ;(2XV-DTIr|MJbDiT3w0x1V&|?OJOAURLSv z#PjkFZTw+L@;uR%oe|-cy_OL4D02$i;(ohpyMPR|NlU~=Hr*9D%H~4)Yj)$Kf1R2m z9C~VTW<eVma*P5qgNgbsMf~Q>EBMy(FhX33s<%WO?KB)Ibi~<@Phj8U@#Ev;r}Fk= z5tAU>MxNXeQm1#*6)x?*GpL?DP8aWp0?u|Eu-Cy$LPE#wMlqhAH;tu?rP1&hC^$qD z(>$>$)#dG3<#@;A?JFLw?E)%!sWR646OS?ZoV2zT*>b={F0*D)7vqvPd&DHSR&JE` zD`06_vLivHMBBTY@ZqQQYVxB(=*0G%_Lzl$HeIV}m=!;)KCDTUHFMJRBSj)U>W_~< zr31@dM$)S@RBU&XQ+eOXH<H6r88_Uv-Al;4Z=lVzDmld7RAwj(oQy2Vu?07jTl9a~ z5XKXIT<8O~9uUHmUX2=cFYlb&^fv5m`HkBJFI6LVXf@wrc4@M?mJ9nzc<*bNSA^;c zd6!aUR@X=}xwJ4xQ<Ym7X%bV(4BhWo`_dThlG-ymMGSkHyC4Kt?NLUXHIJ5kwNsUd z#ibj9wz^>A_Ak0@neuND1emVBLMI=0&PN^5P+J2vK75S#Q_1CUFsa;;BPZv6G6e$m zp5o63de)cQ@V`5EraJqBd1l`<pJc%W{?df_ssZ6-3n45CypJI>XSDpvfO_=7{;6}w z+11(_@O|l@IO$joGT$av=D6RA+Ro|VdO^C>r4g25{Yj79l#ag(ixc+>Bg|85{y>3R zyVMEvTWqJ?4VcEwFecSAWe~g(Lz{$Ce(E~bmBi`Csly!gBq@PM-sW9TLeSE^Yw14M zgWa+C21nD!pr*51){mqdy7P@GVm={7;{{c+m6y`B+UQeayetw^iDz<$j~4bAE)h%7 zFLP);Q{KRz2U@Ydv7P@S;w02Vrh^e}K>w(3$k>3+{<O#h9R9s5yE=d-VE^u75oXCA zDZch>>|p-*B-pxv(EnM!gWW)uP^hmq3$iI?H!Lf!&82s*1fO59L|`<}*G2h%iUM$e z87%%Qzel33i=L*za(9~ggfq{clUzIqN3jJh8Y&30(y{@YAt5E}+Yqo?K)n>Tgp&p- z*5`Y&-mKC|n;Zff=D{n?Odh~Vb_F;YV=Cm*abxX}^BFL-%44ZwF(X1X5#ht+g$S?U zptBTH4okn=hIFchb_BSEZ7XMxV(=)-wMqamRKb;OyzYWe=JkY)lW>gf!PwYj@jcTv zDT?n{n*9M^SCY0h<Xx8M9l`dNjwf+eQ2pmCO3JyZxs>Otlg)9h`@6|_8y>fPLwmdn zepK9xE1xXsbtn<c-$`FpzTt#NF_2cmz#psOYEV(2;&pG#R0h9zh-DcH6NkC|m|g{p zR)4KfUOhElFLoLyi^b4~nkU`bh0-WmrgX_)OD|)}fe>Sc)OhvSWICurRhJuR)$p~u z{kpbs@{F;Gj?JSn3?NSVlUriq3u}|Td`QX0%}wM)hU;rgwZ}l^4VrZvNfV$aj&<WT z{~v>IW|H^M+<1kAGWwCqh?0A0_}&8JTWn11%3Dgt*ZO;2o?87XPg;YuGw+Rwv$9Ou z1Yk||Jkqnay58OOXKX?he%Pa|s$jrtmKro-6~b~HhSP_OV}T-VCn`Tk_K(I=4sJBM z8%sb789R~^SXho|;jt&~!h9EKs`zkVDO+4AjR*4^i}7ZtG5`DA9T%FZf+jzJXNhvV zSN-cVTEs_6SP$0W*alv%1uVPu)LROH^_Dt}W&`tH>~EOok!i9Rb9c#RZ{^3wbT+t4 zP`-%^0FCU>TB}xOi<+O!bL}CZFFN3JL#Xf7!O)i%UnyfQGy`S8zCRn8{r8S0Hzi`9 zbu8NVih28APeSXdnD*E)|5hIuE~+zU9ZX5}n#p?qb^dHBmLfbjA1+NP#{eY=Rxbv` zh~(M(gHaB4(D`boc(X60Yg5)>nXo4PQ&p&QyS6&lmuomQGRH-@xOz(!(}n=tG>HIc z8eup#M01;}Dl_<(KBp~bSb~HuW<TEVwAX8xs}kodg1Xd<-l(gz4?M>}eGKT>#^$yi z89LFvrmHP?D3y3)(7$JKEBn>OW+uFMoWMVn+HJWNrDq?f0KZ}dF0?%SO@I!3Ydy(j zhu9b*FI~D(&fD!0eIucbVi>%spL^c}>&;=gseiTwE^8cCg`}-tnu#CMwbCp->cM15 z8aZ&TN(PH+(8nb~JVf6D&xr7MgviglV+CbfVTDkG!FY#eZSnwrL=9OrOTYNwK*KDj z66f<^>C-20OHqrF0X`5#QqH_XLgx=uEzLF!-+d`38f`y%8T9$k3ACWWtBC2bF0F=q z;=ITE-(<fC5lQ~J*PQY0wVWsYk98Kf!Ush9Pv-dH1N!}^T|M9r;{WG3TmZ=VPe$?y z0sYJAp(_N$3;nls)?FA#<UiI~;MMntgpE4kAfiA1S@W?j^f9kjZN>YGW=IUqj0Iu* zcWY1=3o3;FyOD473H0AaKKRTS2CK316A1jL_bvbVUx^U>ink<a%=`=@{`1S$Owhli zkM1);0<eGYNUA=?TVuUuzpr5NToB`bt_Y^^1YraJqeZGEsZ2iJ^8T>J7WS-0KAHBT z=_zd3_5gS`$pU^!56R|*M9A@NOR#PS_4SI#<cjMx%?#t4kCp{2Jm|q*#`N}T4Bn;q z=-n(fj7sR-a45&~NrY*n@De*1Nt)ZuN%ps&#(wk<*rw|j5TX56S6yoP2<f8I{zicX zfH6r5wuL?;4GANo!6$-OL(<k~9YZgpYMavECk#_mOrcemKkb%CK(s}^ugfJ|n3ds| z<4)J%*cv@NEc4vD7__SsC#?L&vI7rah<KNpHZE~{&?{ig))`>o_IP-Gv%W>qBSGTh zdbU3x^Hibz++6`B{6-2Jjq|e-T~T-~Ff)Ti?AY$=vC)o3H-pS+YW>DdHlE&K;(IND z(!QmSOA1Lg%LB#oCvkk0a-`++Ioh4>YfdeXg<JAWyunu7(Q*h!UoLLZAK7T`&B&Zv zK2oqj`n^+uL*`qy4t1B4BGz9Ktd;Q`mF1M}TU>~8ZVs2{s+jjk+>DjV3sh4Qfq}L5 zO;l#Y7V$3>kLO89;z~gh>UuCl4o3nW$Bt&ZA@|(da2}{i{HMj5w;RJ#T(!_K)3vPe z3-&k(`liuDMv`phtS?IY%Uat8*tT+<tOPjbaz$qXV43%cPkLSEbsI53#1!(bjfkBA zWGfvJvU^{mYK+9<W%(V-q8m7Q0iAw~lXl7B!F!SX%KQ~qJgi2DeL4w#`dtnaNdhXS zugGo@tBmg@exAiL4bVisS3~%sKKe;`A!h#YY9S;>$SKUXWp?EGfgZWuE=;PD?$!va zd)ufz)^FK@5G*-ZQ`1ZiSL_k4(M$5d!=SIYKy=^!jnlH?{PdirgUedEI54Z_LVeYy zlsaPp_bE4C&$Y@;E~-{N!rPyy)nV}XDJH2<ps8-rD=d%xebrJdDzocN@2QDs;x8pX zNmNm<gy1*Q;|@D17}1J1d3$6st&A51`Hv--cq2`n6RTP$PFdZt<obxMUcXEC-E~49 zvWMF*s)T5y3`B}rHO^L(YbbH%J}*snj(tC9w>wn$?6`dpyR?S(zY+#GumHsSPYUQL z01^M0&#jdF(<pDmEd`bSX_8;<3%+xGjkX#1KT&>A@fzj-nPNdzf?}cnE?ta2N&~j9 zX~+TgPw8U(78T`xbrhy*Kp}qyTg^@yAOUm;h%zCtSv`mW_<wZTR}6d|H|1Pj?O<}( z$B7F_MCcW3Xsj)>=Qn!=cB}C$CP~pprRs(X`$(dGB&JyXK8AQeK!@=rb^=J9z~n>l zX-k%<8U8Ce37u-C>EnD1(_dBq%1K@7)|S`LfsWS7rSC_*(sBY|&I>#y(*A2{io{m| zTPEArHJkyFqmXOqY-pJ?Fpi;cog+N`WFXAON!RJB+RmW+>SGJm3_fh*MRSh*?Kh%Q zk*uHET{jEgkMoEob4sm+f}!N!{XmjqB!Urr=CV3T>(cqGHfU9!2^aqKZo;s#K@BBs zT%^}6xvd8>o_Np$@Z$~JW@yOMZJ@dBiE$5kA9W}|c!lq>yrBB_pk>R?);G@CPg7pb zWM%s)E<UB`&2G4*ICVB^5f$v)BKXO;s^RUo&lcNxA<3IXBhkBbQyX$@bYJ*fZ#*-` zN1jj2tMPeDADp&t@F^R2>T@`V0%~Pkn;dOIRII}eP>Gx|fjthceHK?ycP(pCLXJ0T zyA{?dzFOpld%gZE?2BLZ7hg^zbB>KR8+(g~^?E}Tn}2os7`EqMshl1(X3c9+9Pdx} zUr22)cCWL=t6;gFWw6CfuuZI=(RB7t`oa)kO?<{DT>R-U{JPhwdTLz9382=Me-D-` zhMfu`I$#&I12Qk`*Jgg@QkA4`am=<1Swx@2Z2i(Mnryf_@$hY3TG>CjoW1r?IT`x! zL&cNJR0L;SRb($SWyEnVVL!@Q0H?M4<h$G4u-z5%q~$`#<GZ_8G~VsY-3p#(HVe@7 z5WY?1awE{aJNi4-@wX_|Xl1Gi+l%#`$6fEauh;GFHqhw#GVr_8B*6csRruuM^Lve0 z0scTP^+wC)#wevTYnYU>J?uK5Lb-X?p<cf^|CgmGiQbQh%B+(qh9w8`_`7fGV;Svg z$=4Z@KrHX0pD<BTQ+u3)1^7KtaOhFvuf<?~Joh>pyakm?7DszWyOx&O@7q}<va_tS z_1b7(ZU6%+E#Ft)&DfFmAFuXyt`rW>AhzZRy6*f2B!2fs9xv`4i)F*=(8Tmy`OYg| zMiNA{L5tmmnOKr%r3DQg)6S$DO2n4?eug*sd5^s2Z6@?n$UwGi1uV3*R5z=Q^g(L% zRlt*RX374O?UE7WjlR)<U^~mtV>dw;xTKLq*)yOivy{5QFq4FolpcO$f3aF!M>#H~ zx7Ia6#JULGR#{~-r8mTyjF?PVC?vIZ7yfEaQ1Lvb#9vCN87_k}<0{{oKM^wgw>66p zhh2_OZ8=})$XqYT8u>GHR?D4TS1dU@1@SE((vDZ79e+z@3;`yvWs$7NyhP>3>w08Y zm<UX>e3snUQXN9ihgvGIkX5p<_1Zd%cNkoWTRyz<rP5-n+6;)k+V1!{zkQ+|Z7YcH z>}Wv7;a&8$q#-$IAj!j!pS6fF(#7)y5#v0(l??%IXuA;|rIP~v@mJEe$vP?Yw#iAy z$9HWsqc4Wf0a+Bl`SAGoTM*Ni+B1H>rd=S79pAYE8YkUJ=v|MH(IZ{mtj%^h`z{=B zt`iZYL;0_Go6TbngZs$i)+(vkn4Kv%6op)><aS@#g%Fj-71HCnXw}vkf)XLkJX@1O zpT=1WpXid7<^8LrJT;+M87r=y9%lh9`5ytIo<<@1TYm4@!H*;CZ&l~v8@FyBZ$ARW z%E%g2yA34-V|vy*lSc$I+Q}fPY+ManS6!;!hF6ldJK4j@;E}=7`-aAJNikRo5n7$) z>K2!>PujX_m*K%-x7*4BL_Izw7+m>ou^(|>Y1>9O6f4OOE;_6Vm`g0ptJWW2!e+sZ zp85v1I=_cp0L2qG1DD@H^5*MRnZ-c9OqR+XQ*Tbb@|T};s^>%S4SafzqMiAvGIVq_ zV}sm=f;mqP&C6A6QX_6`#Yg>0B{T0w@(L@#1Ioi&rz4dLzy#6_!v$>vnFdcGR_I-U z&<TmA=1h4aEYUcGjSNkEc8SP6ewoXh6M_2=c^Zx{R3c_G7&ELUCq~V2g2jNL18M=2 zu?F;Hds?+fF@L9n@Gr84(h_+%$uKmO6+8{`ixT_lmHf1^3?W=P+ZYmG(K08`VuzG3 zh16Qtj-@Kxn?8G@J1xW?Tu!xAr^ef1xCd|OxqZ#nF?ka!yzkD3XE*8In%45UtxhgL z2AmJD7qYL8w})TP@!s^Y!tVmAS9)EUwrKO)_okOapN8^2PIOy+9BIC~OV{qAf8TFa zXiSBx>ldrkR-#9hzMdONfBPZOye|gxV+>zjm7W9^HuQuq6%UBGK4;AfWERyIffPUM zwI(L%!(NgW6Lex`1EeurnL<dFk*~-`DK};@s1~v>asALi4q`P;l~e~_s>QFltK^8q z5e;}ej-?hr@M$K2{Ys)+qMr+ixh7Y!p_i3wecCZ*7*@SM>TR9K@qT$&m7mnNm+i_C zsA;Fgx1G4QhIY6;VJVYV_@+Gr#Zz3!fED)DC=u0u)FM@<vnfkL1Wj-I!#hGow2SeK zd-LjIs$`!bz2xtTI2G2w+9Kk~gLbh0yiG~OrKT$WobKgQ>qYGh@|#R-r|o$ZRSy~U zwfp`HtP+I}bi2*LW^4nn%aHy&mZ_J}HnFwn&2$>fOS@zqSD;{zv^xhlb7I>j=6Zj_ zVOYvU7BLrRrp$N_^D#!b3`jc4`sxe<4YSAYP%i6gy?47kPPg9yb6L#yycaU&d|`*5 zh_Z^XyBUq5kT)4^QK7t~p^8NYWMU%BL68Xr*YixdM7m6S&!y=H{h1LL%T^N%;!<He zDvC*Nbk_@2<{u^0ku<AGUQAEfx7(xMK8c*G*|a5|IFYP#n5Bx4sUSen1$j^DHkxqN z1X6!NNTaSmksDJ1XvjfWq>zvirZ7<N4bd{Wk60;_o#JZNX?2IVGrrA7g(-Z<<e7-J zRF`DyEQ||14$?CxPd8X}aiG|P6TlcWv+zhBE+rRF_Cg2DM5G*p#D94KVhC$yx5|(n z?8_<5tRsfK2{OBdyMxpG4lwzl>!Kw*JKV%!t+`QqY3|R!(0JjcHh+NT`ZLR!PD0a< zDUU=%ZI<3V%<>TYqV%bUAh_h9gsy5~(JXo(IgXg9%a|{7A9i8&osz*UPc06Ybe^g| z>M|YUEKG@w<W2kF_o(dx%MEt_s?P#LK3mU9>|uuY+qBen8KRfSymu^PRH!-xzk(#t z<*O(<{M0*u(+<~uqhpRlNsu2{L7AHki_N2AfuANbTJsdV*IQ?+U=vkV5up{%fsrEx z^{%C)UMczIwZ;*?tbwhY@HQx^Pfi8&pYKkxQyraOj)?%VlM^zq;~9kA9gaiS)2D0; z|Bgr0o1@#*6`i#Tm1Tl@C`Zvy{_ZC){vYgEgAG9YBUDish|~a`l{&2wb<Y;{mV0d= z-@+5(`uV7Txc?0FMLHmA=jHNfV{I#+P-WDsG-HI>`#>i_>z=?O?QOn($j@}3Xvy5_ zgICrL>Fi>+6|0OY-{1)%|6PIC5o^}I>;r$d6>U7~2S}SFGY*^L!WQaADh%JG>#%FN zEomS(lV4b@u1I4DqHXCRGuHz5=;j<e$ilC^in6ajRyD{pU)2~$$4uI5y<zkC_4%gm zIg&HwAW+R5Tlh{Ho1>oyyiZ|#=1b`M5obx-Jeq!q&g|>=bF@*w<azMC^W4*lhWSuw z=q07Z4AyS-Y{_J`Xezn^)hkrzteW~qlL|np9*%XxRqy3Ztl=y?POlV5t`*8Z>t?7! z@9ai2W7mEsC+xVa^p<QWFNewtB6_Tg&#l;LD9%&9+ru(ya&mI>Jorke2@oO&XR@$E z(X^})e?r$FB(<r-P4ht9?SF%2OGXMtMv}4L3oB5Y`6d@zD43JlKUTP2{eFh~n+~9U z#h4^%QE`CJ<>mnk-;0C!w3%gLss2gvQ?0thi3zJho8hylmtBxJ^DSh6*AH~F4U|P> z%7@j{F=ht3_~oE?{u&d(0(jJQCOL*VH<!5ug^2-?yRbhHZi2~~8Rx#DB?%*VRZ+bm zYSV@0e#FV(RPFsN=^o^6v=Q-6q-P7b+8C!8Al_B|2K~7M;&WLxs+H4(Uf@~1kI9Gi z`wK|gXa@7INlui-8ge}>2QLf}rvwJ7Wzj}M@Zv+(r&oAG++y(T-bkK~2tNX64Ugou z-xSZA9{J|UHEBmO<gaf+!{e$IRCux>6Tr43Qc&kN4H5-Ef0iOvQQAy*76vT>XCkMx z<nr~+t6nDe`@-zR9EV{XW*cRgS8_fDFg$wKTa-(7?lh@u#)=VOm%%EA+Vw={svGh~ z1zlRe`?mpt=L^cfgNPsSM*M8Nef-S{Z6|pf=Fd$wcJU&%ykf5#8bkjx7z`Q)Jr^G) z#v2!*WObX$yNAHx?&xbMvNlMd+JzTn#<b`DEFgVaA<1L7%yEH@b#sLsV_M=5LZ{rz z09e(H4Gb;VQ6^O_SQQ}zk6~vb>_0aWn?m-817ktf{M>=zDU(S0^6jKiZ&*+qLhdj! zs6HzS3oRSwmzw01brEsfiytoy35fMimfBmG=rvn28?yc~&KBREx8DUwQk`;5*+QH{ zv6GyQb>rcX(r6;v{V@#-<D8Q>#P%#<#pLC@mGXBwtfctHoy2uQ=6<?<l5?K5{UZ0< zuOW%;*p_}&-__|lNwOZxS9m8Q1DB7dI`Ebn_QS1w$PyXka>oYb%|k0-{OpLli12vt zamUl)b~OO79iEtc`E~)E#Edn+!DeG#rj|j27!O%)wUn+O%I=<*T+;JbJ>NX}bhn#O z&{)Zbmq5OV{)sA<+-{IJ+=l(J_>AfRnF$jp_t@(&33<Uxk-^-#?LByBA8OXsBTJ!> znUE^~zE^pAaie3^=!4rmpEsny$KtxToJH%Mb~|KpG^;FSiDMpsZ>p6GNmEAfrC9Gf ziqu<;qyf!C?V2Z|9u1o3c_#JxpJ`P@<M>phTeNsy`rc&lOxdjYXnZ2O9*w3XY6$pb zowrD=4m5ANQskwSPMg}9rV~Q2Clw=^WI^u>m^kqhw13WAcu`27ZbtFg^}TKLdu&UC zK$XtxddtsG8vLCefcctzkzDN~a)<dXA_fh?Z`$yKQTTb-w#^uXy9CCXor1C*V{Z;~ z3JoVqTK%4}=;+3`_I;)N-p`?Ms%`I-k8H5SKHqqK)fK0OfEE6|I|~6**gjxU3{e$< z7&c_7W`i_TA?yLq70JTqLib4DX=A2(gC0cJta163@$(n+JHSJ0iex9)3EsUq9`}=1 z2}G=Ved;!oF<TR3ROi{uk<#v1wMVI=c`Y&%`^&3dlpJvm-Y`0ogKK^Sco{Y+qLino z_LH!X%FTwniZUOUdkQHbJq%y8PE+eM;hM<<vP&pJP18y{na_m<94>XOoqNG!1~ z<FNy`gGaw!4*-44AA8KC{0Z|{mS+vNmtpr8{gD)HVvcS64?8qPLrNYOv1PYjjP~+O z@!6bkmvOr?Z5rz)pi_StSTib)atKA22#IgAju3RsYl><692jpslBbe$*O;PN(cEkt zyvO&LgD}?I@3&3)vbzss|1u%_w^-UH7;+NC@lQiUa1!JM{r8lG(;ZoB>J|C0LGTxX zmI!clv~m9rI`DsnE&mrCIIipOxHLfUVv@blFh*X_kG*OsFH2(aR-Ifb6EzlWR)w-5 z{pFh-z4~_6mQ7X=_R4qeif|aB23B^#Z&K*U3{kMUK?OE9R+x(?CJ%_dCvpnd^38Du zrdX!Y-vJTF8{c2<sEJ)DB7`5<@*sa3+Gq=^El9=95S&U#6T?p%i^cF0!eH-3Y-%V| z9@Q$)2t>%y>`X6L%_D`RtlLh3DwlUKJiPH~u!HmCy%ln`(c3nD6A$F|AMHwPJ=7gb zZ)HK6wW+_ALFT{GV>HWMQ@{>NRp`Isu-KDbAOQ^9b0^YNjZ(j7Wr#I<T-97$G*;x` zU^5s^JbZ9(*4EGguJs-J!ts3b-j=tFgl7;!Gi3B^rF#V6AZR)pKe?;o)ct5}+Rv(l z(gNT39S@c%(4=+-Y!BR{B($GZJTe<Apu6NUQ(3hu5)i7#e?%ZXMb{u}^bhXoBBLPu z$^$4tlfjd={3w9b#x25xK%o#%LmD{G;a2|n?jWpyPpK7G_w9^BT}&9kl3N_gJ@p9U zzPCF?A5417l3VpI&yxFm{gsc=Jj(ZPzKZr`X7BXq#rM2^Y<KautNLw$%&-awSiO}T zkVp&W8!zZGT}*naJubvdM0}v%>><7*E)NByzEeR0&b!Y(;ICyJXaRt;HCt~-Ms>_e zu0O@rI5{-6X<Dd*Cx^x5F#epoV&y!Pfur7d%da06$cj_F4oLGNqufg#tusA+Hb0G5 zC_Q@FBUU(0nR58lJmD@O=*(``FT~<*Ubue&K95@`)1ANLvtL{vmu?2L0q5J@H*7$s z56o@s%c<$(rK7mN-^=3d*?c(s%>cZoYf}J|etTjn?1wJfLMvYV@^`gbcHCh7)OO3s z&@l%+pV}F{bEiQn_l=|$GhGywMh<6|z~fKkiuGBbYWO!dUr2z<=i8g#?M)Y_d$p6y zo2P4R=pXGmo7^6^+QBbB$yOf*r}Kc-7&5@=@$`2%*$D}$-yI8kK}kFBslc&Cu{>wz z?ydvsaEFPV{@d1)j6jRgDV8#=zBBBvec$MepU&vQJ0C8+9D&C>y6_uOQJ?d(>DniJ zxLzoHbicdvQ8W|LRU+UCnFKg<YkQe@6uq^1eFd4wM-N_G8niJ#hxB-y+kiz*mSCfm zx}OV2__)#%cEdJJ=)&$qyW?5FWKydjlsy&QYZoD*=ofiUW*B5b8cXZPHDCC*P~af; z-@Py_@yz?YAA`%1Y2P>VHi*P?N0=?5=$O<Hu9B4dB?j=+F&n*zNtRj7W~jP>5vIWh z5UNW*4v%REQmuK}dB6RR(*}(D%5q>ywt>L8IS|c3A+fLr{cp<ma7y}+;gQf`Vq0c& zBJSguv#Vj>9Wx3kN>le>b{0!hEk&dl$U@n(8-`&g-w+SLIEVVJWHD&*_lRiMNg-pz z;hn$)M1;y8P6uv{K4}Xtc;|<h683jUZ6vB&_5Eh16i1XD1tn7-q5~%$BxtVRg0)bu za1+x=bbbYPf2Izxxz8o>ZZM4a#QRQq1U-)(ImML-fpm6j1-d5Bd!13ZlAh~3f{jS~ zqr*_WSzjUHTF6XLb4yuwIYko|3Kx`_5<EshUhB2?W5oocaJ;!qX>IUw7eP{lM==xD z@cx_iV~hw~Q#&l3L^&YZsMH>-g0VnJfhXRTK@S7J${=KMVIMO`PAgzo<VDiuGg9?l zzl+|iFnyI2tiViGqaJ>-l>*)-I_|nUGcg#;17lyT{cOjbI#4=`T@p!20!fD5*X+T* zdIP;YoPuz6A!_&<3;yJz;4Ct6u-Z~wkAw-1w_pK=S-KFO2?L;2Jtm$gF;4+g1b39+ zLFSko{5x|?92UAzXF``0kM6x7QQfSZ1m4toNJw5gJo`q##eOdt<Rju^zj?2HI0msq zhrB3HqVYHa@rZB#R<2wDGR7ipqqPwRgVe$snBD_K{gvDG!kU685f#zxQng%AOr(w= z!czq&bV-bdY8JqR;LMYzE@@NPN90nf-Y|uxouEdK&7ehm6=NZ43h{zCl}_Uv!$8%H z(~R%M+0xe&gI`FR(#0A%RM>-#<onT6rtMgo;xT+Bs@ItIcj+f?u`|lXhraDT1B}o* zpD0SVcSJ>Yb%tO350U~g(9Y0N@FR7dvqTHVu?UA)hKK>$3mm`O6NhVR0UQG8D9yd< z#E22rm6NC&%PUz0e6_pwX3M3<q#{A#?R4?X_ODii@Ee^qIKDnX62EcvM5pzO?I~Z( z8DtV<vWp}NYsZT-pPzFJWvCUwp=K7j0F#9s=4VP|tel>C*H%+Fa}Fy32Yv*v;aNUx zQkSF7lW^dKrSOAQQ&PLs<4_IHCN^Ux#yUjQsHPk0!Io(47;GhLVf-0v2mwC#h<tp> zEai9k4r{NOB~8S-UGx+)IWE-H8ZTx=L3Zx*xa<Zm&x|{J7V@^#)I~_FPWO}{iyRw) zX@u_blK6%o+`KII7Mdjd6dc`+jf}b%mvRLTD+vIW21>l$sbQu-wPiOFlV4dYs!z$P zJ?ub+o#yNN8FZ;{Rh-8ma!Oz*E1M3vXKt_kbN9MffyM5;7`8;H<bl5O0zq;=4Ix&_ z_T{)-mfddr`~k0QgVRz<5iE`ZOm&<t>lDl;<FyDy9HMu3eF+`ko8R(=ne9oqwWJgM z5dQ`63?*qf4Magu#L4moj^!F`7pS(;at$5%mlYr{LMR-sCX7nSchSA>IRdg_zUUkF zY}s#&TTnJFt6FWSea)ghCf1LTmj!69!|<W!i~O(e5pct?s#HCS;h%)JBgMw^jxp&U z{UkH}GT*H1*MdsCSaX)L`h`#ta3$X=s%iqsH_Jnx=LYV`>00NZl7&u!KQJBq*vF>q zFaA>1JaUt)vuaKQjxbSX7?Du%8=)n&YG&bc)soZ8hOzZo@`4$ORdi-7peDN4UiXqR zO?2b*ewF5R)|K!3w6=e$W^$4*a)$La*+h!YjXD7qf?gv-AtK*ZSr=OQwC4o-i{%*! zI<L+%(m%!1UoJFQdMNcuudq)|tUs_%+vQg-)qhNA0+vDV;82-WD`j(>AT8dZK|qA_ z|Cu47Zh|m?A4OVPfBm?7AwfXG?7fbd{{A{P*mqeP!gwWEq%9o6+FU>|kmlN24TNWE zja-*99~Y`q<MBYiQ8N>BqfRp}0UF*3kK-C!j$bHMl1>N=p@YNY-_mHA4Pzo)Ub?B= z`1zaqWwWm$GY^_%CQ&yS(7o}%_mZAJrd9?d3lICwv?cJ9`#b~V_A9Vz6I!OH)$YkH z7jZ-*Lm;x9Y3;dA+qx$C4R1Z1o<&hh2;j{Wf~c7Yt*H+%g5sNs-Z(EX11gf9GQAO6 zjxBLHMQDTsOVl3Aay#iN{-j|NBa3GiA_(qcry3Ps3y#^5b{lNQ1V~9fv&K@o;7|h{ zRxJ|dMww+vtg#xR*T33*y@W1pjsoYHeU;WoBhROcIg7$4-NlRFbFPuH5uBxMPtkTN z5l6%DcE&&f62*=f3gV2iBAD=eW0SgG^4M4*Rx=#Yr!-xOOf6mO@;00kfv#Lq);Q5> zr0r$|M2H@KVD=^=c*%qYW|u+a5PF~nDqb+)p?$Yu_^Kv>5-&UL#~Wu{3La$ifu>RX zkZ90!AjG!;6nyEi5naoJRJSelUUdXa-Bqf9f|v8H?S9v%T|Ty90uYXj8r^TA&eG%= zE8@!B;rB%|X_kfsXbBP7S3V+kz~#H+f&3|#f!S{)y6jDl6nf2&^}4rSf(F3kx4B0( zi`BGM8Rj@aGNauvnJkdf%gW&X)^pqRf{@NpA1l*a&B|16sQKfw%lYBQ>HHwqw{#cR zy#rgV<;ngqlr1jrjt>;RimgbKOyID&5Bdn#k{%}!>bld`%J+>W^b3Nwkq5z!uddl4 ztg*wak*t7j^Cc=SLF|>9ApjWG6J@AJS!c;Vti!Y&AiI@Y831^G;j5ke^Cn{6?x-jE z*pK~GPxp@p_lRGVTv5rWjS-c~GBIJZ&<rbU>~z~cw(q2o@O80F>BHLL%9h&<>#I%a zbNcueaa#p^;SmoQGi{K42&v$h8_25|_*TI~m=(i3%K2fOP%B&@Py}e%PUAp+uF5Ij z&>eDHAj(FDryKm#oe6~wBj2WVtg(JAm`kaCRp(Gy=HBX_kBdbQO&^h834JcC`@k;@ z6$oqTF`N#`oF+jpKJ4KKuiZ!4Sj8KWb@n|nFf6E5_w7ak59~)|s2YVfoCFCu3PoEA zO~{X?YZPyL=mQav4MKsS!(WLqYY!>-mcxeNBrTydhB=RR-H4<wjg?F2bQOB|P^O`% z?!!#n#w+|CJkC>!4!SPGD2n=9Q5L*+7;hDSFlA3?j3%rIepn$_VKzNTrrSaJF6xfe zfJgzCcyFa7nO<Sm2r&PDbiGwroLlm~jRzWccM0z9?h@SHg1bxO?(Ptr5Zv7%Sa5fD z4{jfOGBbPs=evFfF9%%RtJix{t5(%h_k-#^(&a-<u=?2-sRTqCUOgxVyq$g7SsPd_ zJqqWYSh1Y~O1Y{DQHf6RwJ=436#DmA2It!n6n-doJ1&&l?09a?9A=9ZaP}-Zq~m*) zQ^eYNM&<!x%jT!%W7sGKbq9lWT5!zD`7xt6+N{Ua9y%wf(Dr;-f$+`k;2mz7hv%$y zZVV+sNsGXBoii0HonasPPeMuUJxsvebS&r1^%<xRANiS+Xli+7CQvfD*+|QUcYYXS zyM|%@RtL4#<a0AD4}1#i6S4%WfP#&HmwuO*Oop4`rrE1BbGLIaNjdoW+Eq2Um3l}h z1EI*q^KS5k>{1uUNA^|wCNveQIogwE^Tntb_;EbOHajamX*n65sSvIA$aY};3J*c7 zLQJUsPB9Qe8q}B9ZJ2G}uq#i?q<9SNdN&vNx}g8oIg$ME)b8ovm$_4m>;%JgLq%NY z#ZttQ`MP7rQ$oqJ!PLCr9(xllut5_hy_OaR(dv*FDY&gPt~^su&JmFn{j$OLmbywR zl2H|9=5H!CtKAakiz_wDEDWUd&ZnaX*($cXkNKqg97KT2$Ie_K<TiP7J0!x6L!d5n z{{@p1JE|dZYN5GXIgCf)gbdS)CKD-%Yp%YhMk;iO=plTrt|FevXsrh;t97Md(7t)X zFhZ4Q?A)iKZQ*?FjF_q;tAuU6E*0~js_HiKAT0^^)qkp}zI;j7@(wuodfr?<g>2Ge ze-LylKdth*eLa+`mpdvFD<RUhfQ#kY#c_Q9sd0(J+W2eK&|v8hYoA)bH%1*X>42+0 zLW}<9Iy0M5<r*1ptKd;0#^Zy(@Nalj{Md0%Li!brGPC}lMfjh%(?Xf_RSCL_J^ReN z1F%*Dc`5giYF~0V@OXig_+T`c^ysj-1mBOu<$ipVVFv9b|CXyx%+{Rtea;v5IV@Eg z;L#6zB_aB_?u@@bL<H6a`?4}XjR9L&!hPH_QxX}pk=ZY=qyBLvyu;z4-qqc%emI46 zA$=g}VdQ6!%AHF!sLp>ZAX%U~&+|Y=@IGeBqb?>9N<*9|!_x+i`A~D=a)?>(_G(er z%Bts#*2?nsmBhf#K*M~+stUY>O4UnGJ)o5QcHX^;JC|@k>oi)W2%VZCtExp0k11<` zQiP7kddByn3@{avbT$+XN%&UKKd^!hu`8HJCkk00-KO<5N%Yc`{w@D$q}^4tv5iKz zW|q-F{=w*o^#hi!I%r->PC3wYjK^#OGjiQQ?bGR9`qfo;Pg78?tZ4|+mO<kO21GQ) zk!6M&y7xGob><OC9@>r?+#Q!0)r*vciefknWmvT;k%yGUwGt<I=1ufe-0L3yBPuFi zeZND^fjQR~${`Y=08fq+Xz9TIF-mONN?WkYH|wLoyRt-}6bDuJrpSHbG{!2&()MRJ z&YBj$WGQRYbc4mr96;K$f#ORscbI#+I+k{yX-%onAuV2RYwM<;7Yv7N0lk?+0Y<s1 zh-0LjEvl*DP+2Arof&sTpK_it$0FHX4GhJ0guKJ_D~Dg_q@jEC+S(-DHaNpV!I(P_ z$m&r_MRE)<ld{28NQj)pm!an(RL^kXJ50Hdiuieg?u<)6BS=DIPx_W~6m#up5?b=Y z4<y0iCs8b%N1I-^6-5tu$G-CnDvnOe7=4VQv;MKj*^$No8|c1eMK}$Difnf(46U*_ zbjve))y`&9H!=U?vY@Ko3%ZG55sX%A;+2!6+}$<c;3|$!O<vW^JwN-k2Z;eB?RB!o z1FaxZ3{f?lob`ffOcs><RX|UX8`6(dTwX==0EI~=$Ft?B5f_7@-aFo4o8`6BVc*dP zOsh5@MMZafQ`y7|<uUKeXL)VvMlWq+5P65N^zVA%nj+s_vMoS_tdCovY=hxm$tQ+* zu)&If7Fg^GRvJQIdWQ4D3ePjv#UKI%Y@a|-<VxX4PxFm7H932q1oZUv6FTQV!)>Jc zfGbm_Q>@Hag|#RbO)8}uhj7QU%u3fk_MY7@L5V!nz;>50VW-XJq|D|J261KGqY29( zeKPZ-&J8c^2tRN8yx2Hw^?9>DIKW75oE)4LD1WOw(>0D)h>Ly=op=Or5h6{PlU)r{ z$kZcD4s$;u`6@F2#p##1cVv-Gyuhnx&_2N7_X8eoyoj1?L?3}25^jlJSJYha_vmA0 ziGXf4=5&veBSu`i9mP4Z3yGSC#Sd!CH#!r44A8rhU7?@>+!2-U1QF6u9!;2raX(bZ zfo;0d=L5LESoj-MR7~(1=h51qdO<QN;CUQFSPi@B5^sXn$RfJ4wWaT#^H;f7el(6O zCneJ#z)KfIc)z%gLnS16Ig6hUmyPnN6up4yh_+p~ZzmhL;I_+XxT~Y3Em;JxzgKic z&K?Jz3X8!uJ=$x+oagmIyc{KwE_#0-2a?x5?+UjsV^~3$$vJ3CCUxHb62imAxN7Vj zF7Oq;y2WVd7TP|}7?Fv&x#VJ3=fcFt(1_<LJcKRdMrnfYnD!Zch0-`O0x!otQNo5b zm2Vgso(}uLN`CBllr}njEJ=Hrm^h-Bg4q;Jr!0!VUK3`o&vpPta6tj9<LlcS02D~k z+`L&mDOwvlSsGl2|8np+ttRco{OGnPG>crCFuFt=?r=zuu#_LJTxqmpZ4+UVT_rpy z{gQZ99KdD-usF}ICI=~*oll^RnbjTvge$h3sgx0MMhfV?{%+L~O6q7V&Q(1#QGHU& zhx*Qi>O8O=>D1sYP8pm#Vwn6A29)+i+ACNn<q56bD}@1ejl`<#>M8OL>|jn4#~}!O zt=Wm{qq;25aiUaenedVF{yDmV4}Vjyxqg!UJ9N#GrTuG=T{|=RLF$M&VR~$j<R-V` z53d-zfJ@GUFTC%p@AG9LDo;R)PW%`f{ctO7rV95j8M0tB5T9+g0+B2cRe*Ti7Np9{ zkQKKE8VR`tdA0GpCi!XvqnhW$ml~Uk3xe8Ag>b?}7K}e{0%*6l@HL02y{5pl<1EW! z5q>K(NrrMW<ii$^;kKvvXJV&X47%z`Ia=Oq_8(O3=8=u>VlpsEE(?q&7#G2`m~B2# zN6ak-Z2>?Iuht?iuB>;|gn%H|b049}%&--{$HP+#c16c@N^K+=1E!X_iaiq&4Te18 z9w~QW?@a~uvu}*X11>}abYOoKzOVR~0UkrNjM!ku?M-6dud=gCL4;7N=*SOk{&wgn z{ICy0edn7doSb+M0^ql8eEv^z*Lz#hRXe~~@h)Aw(b6WdBFPBJFrem3RE=yf0VTMz zyoSC#rgg0@RjNBA=oe^h>jQ%s?b1@CJSs+WeaY=P@9)>Co7|P7#Mzh3KQX^4Nb7RZ zI9E*ra9E9=X?*d*{n33zll8-^mq?PUIU!Xa2hfd*`W%>f<~H_o)X#osvlc6<W)lt# z<;T4rfT`Vgey+9|;{$^74vR2PvU}MX7)=NTEQfkrfIT0yW%wu0H&4uae!I|9mO6P0 zqiLHnBdNU<xwp{U>5j8CF0c$#Rg`gLo&44?PF;Dv+udRpjxB7)e2}7Pn!9#df(ru8 zF}>#ei`@^R(WZQWCsS?R`Ipczi3XL$vY)Tw{AT$Mcat&IM>&B(UjNmuM_#Dr7Sc7I zvQWLP@7k1l;UIW_+4v?sB45_&$B=Rbn|x$lYu#0m$W`KC&SDnBhR{_D0TJNwX|2+g z7Jq4paEg6MQcbavK~HaosR%k&SYUu<%59g~fa%3!pF%v5R|?|+s9+Z1DqD;Msih9W zxO=>Wn}55n+6YWmmLuk|5y(1CH`0fGMV$4=cHut|7tlC{NcG3}^J<zR(>RzZC<7%+ z88fyl(9Ef?XFzVLRc}D=BY-FxU<%cpTg-8!#mryU>aVQTal=PbbM%cqZtm#r1U)V? zE#LI)JUSNHH{+<Nq#Q;NxdNYQ;45Or)hi|XnQvW0vd6NrX{|Z;WD_+LF@tU)VQ|n% zTRM7QZtO~O{ZGrhk5N={%|wS$?2r5TW9paJj}g$PYZ#>eDnOBMU|9Z0#U<`wIQ}CQ zZwkJH@%$qUO(Z^@Jo^xaK0y8pvXFZI1p)B?2t)avV4(h>8pK~eR`|CX^e;I#dQ<u< z4C)`8$>D+HO#~ze2p&?Z;wubMYKI~M%wIf}f6u%op8*Jf)}yX56inU*nP&b5ZGw}q zkk;xlQY!u8>QdD5TEG8t*fymZKL=EkM{JCFvt$uV5JZZYXzEcbiPOSPF@~oLT8L&Z zlB)?q8gg!S=<)YRRvk!T&xH3e#sK^?e@0djLiWXkX~x9GK}3S(-y`WP@z9tG3EI%~ zL?s$71mOXlNw6MMQ0PPW3K&xXIG4q2^l9Wqk>VuEpuQeS%^2-&HAHNNveJs~^*Y<t zC88Puyb*d;2M}pazxjKnUSpUYohmr+*v+KdZjbJpIP8AJUaaRs8f7qu_Nv!iY3Pr; zwyh1asy!XMBD|!wPu9l^;Z$`+HA(DzI!@3anFR;Bq@D~PI`S|M(uj=y1~&V?gQ~oL zA@#7xlg%VH1;F{E*Qr#ncFAXZ4SkN{i+(t~ImG8Yi+PjgauLrhOrApT+sGBKDzkry z>UMT?boFGP4@r)n<VzH%w_b4?{=JwZUp$nk{JfixwVX=8_4%&+W_V9iH%Qo>HkBI; zf~FO?lthzkYGz4diI7kCxo@|gkF*pzEUTRNDYIZg(jzEI;@^K})wWU288e`9B$QO) zVKUOD(WvF9QOvY?<pQwUf~1zx;*)?E!Wu1!LnT%86NrJd>3%5Ayy;mAzbG(musRcO zF_p06kHpv>>r!9KGi7)oiu}MMO@@J`PAKjo5FYWLi`sh^->8)n(ukqV(FcFjvIVAo z-Q#r!K~b7)H+IN4)XGWLf`p*zo=sE`2@HvnRVYvg2#yDI_i(dsn7VZcK~l(_wx%eU zsJNU_$6QcNg=jhxKr8RHr_D>Ag=Ke>Ee^Lk@8}k8f9U4&oHU*^NK2T1pxpq)ur#s^ z_8$bVVt9|E=M0xubLnqCjKk0<FNc#6BSkA7W*yJ<Dcz3xLJ&*a4i|Q-wk6{vf5W!j zsEw$Q9f$La5@2v@ynsG)mbt?Sz@I_SZ0`L?01-gGgQ~ZYom7zgy&gLdLP)pSbZ%Eq zhm_dl|4lsmxAcmQqpIaz@NY+;<J}CL#u$?pP}4RxrIkwq`-Vx+HG#6cg;cOX>kX0C zTfAKi=sju_3spUCoWpCYwm)@D`uTKF_Yl|3pu75A#uwW1Tr<M*GiXFbpB&JlQYa3I ztRw;};07mceDfaGNb*cy&Zq&>JI}<N%K--lyZsu=mx+oJgltCtc<Vz*f@t`<r;}qF z_lE1%%w!4~H3w@NJuyTy+p&%kh*rQi52<m-`o-Wq@LsjppC+Ff^^?rc&}coyb+kgB z@O@hD=Eg>gMS3nqcuMPRV)+bjgx@M=I6gAQLK%ZwCYN7#w}~b*P0yRB=rB5uML%qF zfc)yG!LZ_V`Li_Z)ZneaeWA~L0w9UeQY3T6$eMaSJxbFHaKBf;qKoUGS|B{DbjQ9^ zpX&KpBU`f95}|8*=_{$>-sPyEzx8IBr9}zS;^kX`d+g>dSHAT^#;N;>tPF%r+~LS% zBg!0v9PTbM8e%Nla&iQ7v`$9(WF(J!QoAz+2I@|0*qt!YaONul<r?wzw=VEU$Dwo> zOyQM#aj(-|CW*}R-h*PHbaAZ)pPaR$XtBm)nkuq(9O6buEyJv-O`ge{=qD4Yc&!Tr zjx+U*agLTU_ah#H)*n&GX&R^Pm?vev;kU@K7Elper}SB&Nx$UY+jtXLpnit&cYdpB z67-PJ8?*w#G(=zlL97%PCCuhQlKJoiL4au?@8C|FtOnd(hqJkC<)N}KKe8rh5IbXk z@IpNTF0}|!=&Urq%Wk&o+#0!+HU(bJVdKB>Q$E$jRDrkv8(XTPm$^swjn&wM*0O!C z9;{3BarstG7sTmwT=b|fB86b*IP*Xjv6`wMuajg(b00g=D05G8vHzD6Rt5!N`%h4B z+Jgeze)^Yx`G7X)FvW-6Dp{%_B@|xj1Qg&?DgY4x0RA5+>1?$X+Z}c!pL=yANz5cS zx+RP0VyoSNGYT>AQ?LPwvq)p4DAw9E=|VxJMz_cpx%WbW`ET?oyRe({&_;<)`}V)= zC4a%dsFLj(Nds`71>lV;n0qyJ7KOo$MNL|!Q_z%%5HzT1zXEeIgdpLBlTD@BOTDnm z+ZyJ0>!laM@~TPL;7R1sn`A90l7o5-kcwBauH#@e1T9nV-SlFOIq{KRss;GHTf0oV zfRCb;Va4GMEiLIWL+j(t4O)DVeYna@ypXO(W(tFSnHq)Io10BC$hs3b-six~hl_)Y zkos-!b}x5tL15>S{@$X`*Kf+)<a=O}v8zIIr|vYpoOBqzDOtL*gU+*_0JuyslKR69 z6t&`?4voI}P16Wg2cmU1dyNBt%z(PrfM2^eRbE-7jNdR?(51OI={R;r1%TS%R8-6; zFhl}0-LK@Bn3!Z>a{M<*K(>Hq!XWuzh`PG3N+uHtkw9itoMIQ|fF^|=na+nwaNybD zM9Y5q5;9P@e%ukIEV(~B_K7B4K<pO|YAgRS824$QCA{P5Th=U3{|s837B%7CGfmDR zM9?j)JJgvuULnNV3J>{A73~hYETduvr`|!}HBUeqBRsF^m*nD5m>3C&oidqOA5mFK zaiQ?IUqI%wvH=)c_7}phKa~jr)Quz#g+p<7l|=K>!jO*Dpubn!_d3bg7|^)?dIV!H zr3nAQ&iVVR$ox|>WW$xTbqX`M&JF;luKA9&LsmYpiDQA_4OcHFamFgDngX8<k_*oo z+Jhd&lvas7(<r0vG}6?p^PUYWva~x3l6Pk#X%|SdQwhIp31w65y%gD#X(ADydHdvY zGZ<x++pS6EG1EU~d5+njf>C*BGkz2!A}6@oGM8rJ<{QF8ES1yZ>_VC~RT=+lMF)$w z@LdYxZEgvhN1vkxdAA{gd(`Ewp5ans>G%;+*h{eC`*CGFQvo`TMH@3q7{q%Qx6FaD z^LJn$%KcAj3&c|Dh`*v!R4Y}|EK!gl4cP|RTwMn~RJ0;NmCu3Xu9g_TS#N~>fne0s z;q<HGu!aHC?-13_7zIi6Bmbz`!Sc!+Y&HyrX1MHfP3~N|eHH-oNOD|bX2>|K;p)xO zKJr4Z+xnV}JLsL#5e0nqy<L9_#imCLEYRb%sX*4yWhWJ)&XJMuEWke3db;=f7C#X` zL}Y*CPtSHppEDi%?0c7Te%UJ>-B25_eBm3MB`fFlc?J!?+ppjz!pz=mp`=E_IlXg7 zCd}BbH{o6f=kqg!3m0Wx`WZ^WvmoCNPFR*hv^p4X_dEMSNCa|~UKBrO7whEkYn6r( z6JeYhJz?shD&M~jvl@U?-ZwHoUu4MDDf!wheb;r4ovx`+=&Cx3YIJa+z%PCCD9v?P zlj2zvZefRPTOmI^5_yCCyG!*KN+k;o!1CV^G>-=G_ya*XodOV7e1xESxIfJ+1?B(A zOk*$sgAo71tEl4v*#9$V*p!3^z=HZ0UZsiz@b}bYD(n+1b`t_A01@(EbB{!nfWLWU z8kB&UKmVqu2XOs&Gq&`Ak738Z_886dk53OU0bc&>kvNByUH)T_gYbVkXD6%x<iE8_ z5NrVRKiqy>F2Fw^f@NF)+dn(R5d{1VV@&l=g2ild6a*Ok`OO89kGJ~IC>NS2AokA= zi>3at!+j~h#-FjRRdfMaw~t$Z5X_$muX9-d(*HHPRrK#@y`T;)4l2_YK&QWpdkP_z z2?=)Em)~|KlSTg3A*nh}G`Vma?d;7fv~@B8^%Lm#Pcpk%>0Es+li_ITGLlNiN?^qF z69D1{?R{PhILQ$<$qect3kVdv&rI9}8YbyKwSmDayvQ6ATGJY^OGM&D`(>8MIXm0R zU&{Qdm6XQC2vody7epl!BJqx+yQCvxxJo^TL8MH0KY>kf+j|c=Y$s9g`O@7m2=8y- z4W2ySb0iZy?i@@sbtP;7pHI(qxV&duzbs^4Ew-)W#SXpx>{2t;!vgn09e)UCK>`fu zHv+SC&z2;B8Y_>kH@CPM4<%aZ<{Bf;%?>n)Uy&-JwUl*b%I#ZpDhK;E3)5<TQqu2F zC5&$mlSnTH2sNh>%v(ufT(L^+Us+D6ZeigV^3IpK=YNSzV^V87Dpg_Tr6HA_E^!Lq z=Y}K|Va|;E)yEj6R-F-qoLOOrF;EAc;s9jT9RD2o*uo5sE~A%r+CXt=&77?;e}Y8u ziM=3_i?#%9-YNsnY=)An{qkMIEHvx-7@FL=b7d@w|5O5qfhf>nzdQ>|J=S}a9><@? zJ>CrCR?7_o<h-?0773Rjo1C4ED??Eb%7CD!s4c^|QSl(nGOUeu7iIpwBe8l3_X}9l zOo|6^wlb8(yHWWfj^pqDX<kdBhTF6JuCy+RG7rT^(%sLz3NszgmgXhd?cT@heQG1- zWRLMH41^7{Px<2TM7b~X<ZN5kbmh_c+pz!m`g0#;P%pwdJYx*#Ak*O|gK}bf)bAFp z&q3gyxI^d72=VWRLe-yvqinybe#8Ou7vZ&vdgk<eF00!(iu<m-ywq$yKqI4-6F)@G z!u#U;^T*f{PR5unvOg=2*Q|A?DW)v06vE9{=yc}I1&n`%BD)a?Q{`>k=}Uf=v60o) zH<@j26C9x?7dGOd+I4cX<2X@#=dfM=cCiLu2X-LO*LMC|>0ew@-N8uN9wiQhnZTA) zM)ZOlYDFoE+S&l@wn-0G&FPeEoS@-Ea-zqHTohmZVCX8D>}Sds1LeATB3<GgKQovM zObuIxD%)=&zXVir5s0$s=ZHP~Jj9|77t>r$lf$c5dAQXQgWA2k%)u6AYhzYMAHVKb zOlo#8J)Pa}8E(Ai8X%WcmM@YtMzW|>!6Gec=Ne|-2&vrMp7ZSggNs-O{XO;DmygI& zksz=7@iZ-c0VMvJ__k96`~zHCqXu~X6G^JH0slZo9ccp;{!C-@=mY-28FkYKDE_(M zoAe5XIDAL|6jA?*P`Ih(nh1!0k)PDQ9;*EH{7-v7TiwfUg&pZ#AUD81R7>7^DMh~~ zlk?|fJ?tdk<bvNonP6nnxN23rN|xEE+eUnn$#7L6I+z6a`o+1s!ZoBNep4JKDh3?| zWwP&yieij6LFiAHSC!(dR(c~t6sPd%Fi-{;a3BTMkUuB)2nHt~GuBGv#|7T8+huo1 z{XW51VUTyHT6q{O-ia&?_V|f5FM!W4iIkyRI4{;+DEKmkv!k<?S_vnS6e9Nd@p|pn z>VD?g?GW$kNohn>M|Rof#HjW|U+20bj6q_?{_Ttro(z`CP~!?3C!STSzUbj11{tU6 z7HHSk`mhrfZ*j6+JcF~5!)kV?6e9Hcv-HLNc5CO;7q^?LH#G&mJt3cfdf!Qe?`I9` z@D1c*YwPZ-F7na8_qDVnp`@2rNzuII-B#}pez{9R?bJv}7@Ny_uU<G0nnHsgGzWR0 z_*u1$p(yq;>yk(572X3B5fk6`BTSg{EP-d3a6%M^d@&gH;p@|qkUlx$K>)l8d!o!k zVzD6c!-!DX5fEPK0y&57GlvvO3<)h_Y}pXw0I&7xlPIX0PL?16=401`pqS8CL&S+D zTCL(O-d@?ZjG1A~Guvl(v-fOTUup+|jD;bJry8V+nS3@Zt^%K{Bagt&h1*d1E}%r# zlso@1T+hQ+^^W2(yjRCXM6A;9m(A1P``stb2mIK%za;7xAWyj0){m+Wq8JAPuht)Y z8QZe+8U!X~U7uVRYO>{<VzYh~&IskEybOUGZ98PDPG)XwynB{em7)=T<5kvYB1yg6 zhYOK|#xRX6x)y5M2%P{b!SNkrJ^_7cLkj}%oU@syx%euGvYDAniH7>*vAGr}mquqs zP6NIWwq$L07Zp=!20;0u3gwuNOYyb-(iJzTvRrZ%q3s|?q8(7LMy5yr0kTAK4I%^u z5ozD5`HZ*Z-#~1u{3N}i1{le%S_=)^r0lZA07~<}oP&w@tEHa-BDfaOlz`zC(I8cM zIaIk=CLQTkpSrM60)D}od@u;Ex!&nw4wqH-Q&r@t6X0Jj#i{+izwW^Y&{eTeMpZ?@ zP{G_zug?`kYL^NL+2o2reClaL(W}zbjGcVB8x|{=7roXN{>(PhRuPp_G+1Z`jXS5f zW>!$UKZJKJnC|G**5dd3jR;thVelF5CuN;iE%{m%+81(rasP7d$OOlLV_SUR<i$1U z8G_{VwUc7Zvwi_vZL<=Xo&+t5dd-d%SZcazsO4+pf*N>c`5K1=L5bQIYKbW;9f9v5 zU&MZ_b`WE=f|i9Pk=oB3t7TX47{mjwNEjgGnrd0C7mK0G=aZf;5I})NbFW5UiN3NG zi$O}-I}x)d4j%=qUr4K;2($i5ILeJG;3_~FWHeL}91|!vQGMJQ0);bS%iH*h**7YJ zlizNM6hmQtX2Oj+WFE9e?DLzu%EN)o121fOwl<al$J|C^hIiOmqPPlIq!Sjc`mnrI z{k7QQ<gyHWw~{aUEUg5nG^jW(deUC}%k0U;^QOqvYqeBvf>F!yIFnq`pu-*v_L!%a zIQ#oGuhmZ3QXj$zP0o9a5`2=^ZH}voxn96TRN+#K&uZu6bfcYuStBIF)1?J;+?apI zrUL+62;Hh6J(a7~_rp+6e!>cQ;JIhN`rBKc#@;=%DDa}&`aT9YSs0p=_}s1%`lD-O z-SO>kELX7dJ6yA}8@iompf+M^Mc1a_M&nw_bvdUmm)F!;`!bFAx7#Iyj5Y9c^noly zM<vI1IAS-aoEu>F=WUpNQ)vxDzDnUtF3qb$ewGe@-JW%`#w}0b2kkdz`M%9LnJc8~ z0h)}H;VM0PXMF<ThE=vJ>hzZ^lbklbw-(Tt4g5QjU;8R81#NwXM62{Dw`ozsp9jya zRTbj3YE;V5_o){;7gLjPY_9X*#wbGtAE)BPrm5{i7CD1x5aQ7d#QDO4{Oo$sj)?Yc zah>kb%t$x=s@8iJ^4YoW!+pFx3r{8jonCp&2w*XxZF3KR4X0qF`?N%CX{rHUjBvG7 z_V#KO42*KS#^HfC99V<bGj*Nbw!TKp2Trm|w3O=L#c8Dqa?{h~7k)l-#$$D~Jg6`+ zj(sU;sA+~OE%Z&Y6$&&5uRp36J|EL6F{RpK?9+A{+30QQGumB@YiG-hYF4ZDl*xM3 z-*oD5zh87R&L6*jIxio1hEiw@HKL3N<hYnte{6jI$I18?;yb*oj8X5Srd*Bihk`g_ z0YLaWx!$w@xcxaQwe0?RBqrGb%KsdFhGS`v+#g3D4NB@3DmZTHy9WR=bzSR!P>O+0 z0Odc)_>u>J@9*^qJOLzN2!A0K35{&7JU&1wD`<Z*>nd#o_`i<Of7iDES0UH&5rkL7 zue)-Lw%&-aBkReuQ)sgoBvDE2GuxobGI#{1k!c($E5tqk&ZgFEY?GgkI&^Y(%~H|C zl%^YwKqa~{xb%58Sf0@x^qa{xiDlGL6Uu+$TS<OK;U(@Q+@r?ad=4T9Vq-?^Qi*6? z8W#&rYPfQf8%dGt=&S0}7BL%G-_se~-w}B%Qx$rFDxl<?i*A%4cX=rVKt)6*^p2uO z?#1+;BY9J2@DMj2;w;8;iA7`m+-8B8r8lH{xGZeNH~$QeI99qGPSfd4-z#5&+OHzb z44DDJyLs>CDuQorwEIK|)bD5m?z~@a;kS_YYSARi(bKC8vo2gS@Yf(c1ixOt>W^hk z^mhI7JRjd)_3*e-3KXHJOS5I`_1e-1-aJ~npSe&x9P>UtaJnrfq`|CVBR(Uw`W)l+ zdUZ&$NhP;NPJ~w|vlbLl(e_OnVoJwGw||sZja5~x$wLqY;TAL%IQ7-pMb3f&Zg7G4 z_mCkgj^6s}Z+ejz#QO2UNjcx2V8LT@$*|6)!8mJLSy0hiQx9Zq+##y619?|f4XV2* zz0}tcFYpy48`E?F^{TtKROL}=NG3!Y#aIdr)e-4Z3H};0vM3Eu3HD`SC@m^T2}u-! z8qy?^U*QTb^-?9}f$l-!iLfw*lYpWxWJAo~m|*6!AO+DrqikzLng*BzgnHx^x~XvO z(y-y)RmLDqCRa8FSxDSwJRBUKv^)<yqTFOjaV$2|4j4W5Z%*lgV$#?Xu9?y=e7+`y z-ZGQ&Lhiu3t1K{_J&6T7y!Q{`2y}41Ik+wWvK+&A@d{}91AR*9NUA#Q_-eN!B*lXJ z-Jx)6R}-2B*{=~}y`u-yCHX7MJf+r^ts!}X3#Q7Lt0|s+4;ZfXJPH+_UL!{%ec#;z zc(7vMV|!F-w=6qcJle<SH85-`HClTxF8C|cSG(^flCRvI+1?08+_k=nb<#AD5K<-< z=apm`UCD7h0?$(QyLtd7$bpwl`fsnF@?$)>ju1mTd|8{LJOc@$Z0V^WoSoMQe}~w! zK||S8<Y*6?t4xX#H0juC?1#QEMRU!`r$ykk26>AmjC#wuLVHj<@7pLM#6EMlZ9H-c z@UM1sJRfA+-n)uX{a|^J9GKg*rq`FfoX811ke72X1a=HO_@{Y!N_Mc{gqX*D*zVL? z+vcWs=eoq-jODzZz#WWh20ljx`;Mq8xA*X5JAM`K#}qW?W4&Fhs|gj;4H#C75qKr@ ze#{Fcbca#xS)O!%ZqbNyqrQHv7NHnFseqVZSy?8fEy?!{G7TX&4EhoO4XM+qRzKfo zESnJu7Z~2!0Dfnr5#)f{L&s|>EBN(Dypr6Lrkfpqh0Q6-&KaX|9<Y*O^bKi8Wo=tV zagppd4Fo5ttqb+6>{|45$~T_sxk*G)MJCpUvT&*~{c^H9@-N6gn0RU2YY}Vf;e=_r zTD^c;MZ{W>KGvoA?jsvDk7xerAUjqad&2_X1A*12lnUUw3F|GSLWV`)6Lalg6K5?f z?>|V<S(b99z1T))!nr#3YmC}{lM1QB6iQ=YW7V)0I#?S!uCN@x{T}(~<yG87u8=%t zHfCY$!$>}SuC9SGBCX_+R2QudF$ipYPZPoM!{0TUSduPeu7pn*7OD=C@2v-oX(p02 zF9YUjY`el)oP5lMMo}zU6!C<cdLU*sV3}Lj5*^4zo1r$^;~_py(lwgi{mv+Ni$z)K z6N!HNJ;k70a#`5a-U;ZDET?gyto=RZd(r4tYt|7gVrzFoc~a-ne_V_@Zqv&G-;A=C z{9R+8-k2-YvRfGhd!3?q1ulX|)J6Yl<N`<-Vf71_^m~v`p@Uv~?j)?6)xb1f3`Lw; z#hQCeP)Bwqf_N2hmv{WB+T2w4ntWBfi6rRk#Wr$sDL@IK8!>TU7{qF-3zu82{yxcq zCE}TL85F*zxVc~lqvD2GU67fcTzi|uwtk)J1bL<qb#)JY4dmRpxqjz3uq|um+z}Yf z=)7F<@MWh!WXqn<U7ww{Lm<4L*6Ya=DOCIvMUqR#0g#=82U%`wStkbBuepc0uuMnt z9k!CME~H}}sz_6PN3R(8+=0S~a|(i^92xs7C2Sz?mbLL0?JHHqfDpKqPPR=SE6cN) zVqS`#*N=k7Qn|}GnCa?Ofb@#b_zo}?EtH@2w85!$4tkbAxyh`;I+>{-1tD2-L?q(q zOB4+rg6CWfhk$tu%l%lyGUqvC<P>Z&nJfdoBp+$4xwDXZ%xgk9-s>xA#X;%14Ofw; zOvt&i0Ud(ZjS_3hP{^GHdZTpru(S=Tr)-GzK$1_ENV%Q2qRe_R=yZW*F$-|hK6zfj z!^tA(nR5%+p@ao+22<L6M|~J6c<NqzhFPwijH^|1bsgBltL5XV*x!?(S4rO6vx_dZ z_NvJID8i21Q&cvRC|G*gMt<ilV^(UsY+F%Ryc<}^m#h1gXezC#GkqksM4zWYmz$dn zR*iwADX%>`=<*?X=49?Ce&l|WZZE0uvpIfxZN79AMa8glKw=tW_NFRt*CDognaKWU zpX0A&qHpg&9^#`s<_Gh~fh0ZnpOw1WU;zFf`w`RZcG_7u5ReqAKkP<t9R%oq8iN4B z0q1c4sxCe!19<*U7x+^Ei{Sq%Mq+0GIR0CVRL=ms{V@X3$ol66Jt+&2_=oF6{p}xB zKJ#yYNw9yd!d>{$m-!Dd+O-e>gap5=D@c7P`}lNWu(;~S)5P{2fd7X~`8lCsmFMH_ z9HCRMCIBCHC{_PVl@h7|D&XKB0|BW=wI9WX{|o>S*8!&fymW6g{IKfB*Nr~Dt_y{m zirWPETSCCx1h4}~`1o=0&%GeHHZUL{YWRN=DtiM2q`wlOfA8o2mk4Q|IIXawyjOOC zvEbwGYEbN{d(NxeHbf^r(YIU;$gh+a?D&z9ecPu2L6bUo0Cws66-r9i&SY9W5`Xje zF}!a={DPWZLIzFY#Fxqo9VQv6W63-rnl!{K8ML23{(XUlgRBa;?yKyf)?pPte^Qqu zHs?jjTuefI%vWp{4(-*k4sq+Lm{aVbM%6Jw@wlfXgK?yjf+nfNs2k782NtUfo0RgJ zqmBHlK~g1?e&4`{nwj9T=sdGX>#ZoMrQS*gi5(UL>}@znH^ZDdTcHF7ai6(HhGa&F zK9F{T)A9^bhM5EiBh!}_Z?uT9jplPLs7j5(P3Bze!u0!fz-Wt3zFkNDb*E=@tjoje zcK_igu&?$gOODG2;#&u$p>+HTc9(ow&MtFDtFxA`L+D_}X3536P6yn2mlwF2q;#26 zjq^AH|E~e0<nORwU@yXdo(o{YXgeJFUjB~4EV@KI)O(i)q8k&ny%onjenxh}4trQ> z13vG7FI0))lr3zCdaxtU*a=Z0c{gJb=6N@yc{k#oAMh&sVK1ojZpGiNMK%OYz>kYy z7HRSk(%%W8XMHn|b@lRa@&X@f^(yt~BB2<8S18u03zKW+>Ipddx-YRsEYJnW*Dq<B zDL+|6M8#MGhU$zY1B992dwIhH-?QN6L-Uc=#DgXk<nFPSMq=Mx?_Ng<Us9}9E)4w` z;^K~wJ1;hbqt3<H@h!Lxo-HWHVb7}20b!;{k&=PSp~X&yG~&t`S~yW5U|*uh5_gr| zBw(}cSD!oiZ$5n|dN1|~7^3LPfotVuQjbRq#_$LMX8Cayk_gAc6DwD;LK`t%eoff_ zCdnz)qGSyy3Fdt!Bav6r@xqnfPe{gzQRvdM<7f9)VjNa#*ovzPo3#+y_Kqj#id=D= z>!1v<gw?R?nZTVUeBPyk7Q@DhA{L)K7+KIEKV=MVO~v~z;#$h-$IY*jff>rJ&xpNa znPi^=bbxV=i?)9f(dGd%l%Bu4JdTzVzU=I9K9s&aZlBGyt!xA*;zvzv7NXv;^5fPX z?wTNF6Xw2><7CPI+Nqj|i76PqioAR|eK~cu??kn1I;6kGSQE1i+2t{M6`RyA{Ecb& z@sz!Y{pdQ(4S|FWuA!p`s^VN?2|fL~Zng%ZprTMRjaSd|Xq>~mps(H}`}iwMAsj07 z2gT~aLHQg)C^CocKPX1)3EAzMN)4JPRF?%zi^W1Eg-Hb_+2@ftGv=`|>0|VoNg%O| z$J^LR4HG!zEpRR>^Sul?=sFtAwsmA+R)oA^9`dGL6@gd5(_DgP9x#{lRAUm<MN9*C zu-V;0Gw_dF^~SVeZP>blE&Zna7tCj?cP2}PMjEh&L0`5}5v!$oxq3!(s12I!bB0ll z*YTrirePnf7%PKGs=Gl!T;moQrw2C;`Z_+zg*MPSE@ZQ0Tpj9-E2F^#Mx|Z_EBAgo zY4q(2@MT+ew;YVoK~(7nD=)6YfHwjP9^0N+&e4f1AUS*Cm(1`rAg&bfnF=ZkHT`bu zY1pOh+4^Mu>66xVVQi;e|0MI0=4WvktdJ6}SB)0L*l2rU@CW!Ig!7_B_h<t<zIY9M zHW%aXAQZc|#mu>w2sWpaY#n8Tnf)Qf6alLvj%!J4gQnV44Rl$J585Sn#dt_SsGpJU zeie8M^3R2t8x%1gUEVA1OkxpjsFm<A*XFb148nZ5d*mxpywW4v<y*p>e%5f1a7On> z1Jkk*JI<@f#j_t~WJy&DFkr;&ld5I#lSbxr&HAAT5S_H))!XVhi+kd2KnY?hF69@# zW?!9WNHdzOq)|6EPcNUxCuaemDK?sDkwoH5y`mzq7Ej=<PK5^+?-Qa#Z1hwme)PUb zrm{ZYfrsmyg`eFSYLma7HlPvYOT%gq5&BH_r`oAfZS@A@h;IDg2(h8PHaa5b)iFa` zr4H07)8!=POg$%y7R$`OD;)Gfz(k_ZHwSi|6c1S|s$QNEVN(Dyz8w<Ke+POMoW(eW z16gw{p&up%;ntfF9!Hx0TV-2Mm`k3D0pHgl)YK@V6a5=+YE33oWRFi8@r?3Yn<8J9 z<cno!$J#YNJiNDqDLA+pDlfUCgt_OS=xr4IzA%G!botymTTa~8V0P<<50Pf+WQZYz z3gVtH^x3*#Q<2H;dSAf-iB>!r(>XwEHVr{jl}ngSF?sCsK@iiElwqxnd<k$kcHDno zHrqCj$rdz6=&%#a8S!8Sp<qYZVJB5afDADg@sMNmsGtxPQZH{oxuZ0DiiG?uRZzmJ zuSU_-vVycVw%JX$xErV2T+)~+515e)nm_0i@z}ZRXna&LZcA7Oj>XKALGvMCb!s-S z6wX^rr;k`+-<|tQEH74x8+e;#rN3#J{$<;1-aI2)&lsz|Lgf(3UXGKrO%w<N^V6Y9 zr1D{iIT=16gL|`@jX_7?J>EPU!c*@W6J{_RG#C|X0ZkI&D?apx;S#+H*4kAuBs*%8 za#NTPT?G!BWlJ7V+@%cAZ!KJt00g-@|D9b0z01RdN&1ol=|(+#rmI##K|>4TlK>u0 zw%Cg<wG=T1`q@nGmcz6HT9%DVbN6~3W1Uf$N_!&m?o>hI0{HlNs{jPv-^5ngR^FRC zB+2k|UqP+IoS6~a9kxa#C7Sz9kMNZwwO7PhtNm)|ZfgWa&Ixz#wtyp=Rjtrfr)w2g zAbH7CK6C|L5K_D$CchQ-Q!}v_g)qh@cMpwB#z(4xUc{<W6Wzv~$GB}N8JBl8p|~jv z@KfTWR;kn_n-Lp1)meKNxx}renANq}cz2r*4mcOPT`!;Mj^zrsBq~=V?H?IZ62Y(z z`8u#-!8HO$YXlkWXuPf*84&Kay_~982JdB9o=dN&kVlNgdWa=gGU52^)u1Z!eK*#> zz;)PAqod^z_1lf@i`($iqnC&PjCr{We<UbWpTC&R<=6V-E!ztSsYBUlc-U}|H>3XC z+&E*6wb8dzqx8<96?a)#$ys{v7IFoKXPDQ&z-R&=-bbLG<w|aEqG$Z3Tq!Q|w{W*? z*teaZndY~V^H%KK-?b?!fXR-G61n3g45N|emlj{G&u6<FTyhaYMy-tLZ(BdFyld;9 zj(sk+$;~;DdAqyl<s8^Z2D%`KpJ-y4&mMP(C@(9e7N7e*qc+aX>zo|V)_LHVjlH0$ zD=IKA@=i6)g*>iTKf6UzWG$#CW#oZ5-bCI2LI3Wu|CInIyQN@~e6*^+!~RL$mj0c* z{U42>0X0LXZFZ#BUsad(ZpJ+1?Ebq6#>>pVg|%&ek}FHv6-#|bZUjMIaU^f)c6hn3 zw6-=8Db8+jJw}A{ZL_;S8<{>%-eSrXuZxNQd32;|GotyGh*i#{7e*Kg-gvMmUKH&G z8UQRM!~2x4wt|fjAod89x5VDK(!i>v{EV1Sby7t(lw;z3utk;tB@8Q2)Gs0INGJoX zd;>-s#FUeWtUG*bBMRkHjy7~Y3+Fyr)v>jSv-Zx++R4&vk)h^hI#CoQ*0j^A)>NlM zPl(?}b0AtONlOwdos(HR2hRUXYN0{Fxe)kJMQ~O0GLoNOPW|DvVJjHSTaW1nk8|Ex z^mdQfF|%=bbg+NaR$^z}^o&zz1{q~5@K*S{z~O!0b`kgf8<Mgr$P?RK+1D-GjO+^e z7YD}EuKxAS{t`Ht-gmP0I+yQL^=@cR`=4_PX&sf-G9)WL^=#2^JRCe{67t_c^#uaG zGu?lYiJ;O#OS^-J=7yOMZ)YtLMoVlye5p58K2C!nt5ZG<A?KN-UPZoW642L=s0(%; z7f&aA!i)gUao@Dx+!cCE**=}Am5VJGvb9*tQykcBL8@Dz@l)<9D}c59pk#TbE=_6b zRmlD+T{F&TOIRmO4W55`;Z@L6;a~||EsyRe-9g<SghvZAc1+?>=#>hxSjLd&?!wHi zcS_*6zhyE)`2_bYc}5~;!<Lz9UQst{T<P0eqh)_-)s&%b8f$aaXyZNb9p4)Le$O?7 z7BElQKb_g<4-r4aOB@Z92=x*$aqf`h_XZr6cRi-P@qEBn_MM44xo?%}RwjT8ulG$0 zKF%|3fpQ%SO8Rp=;`j^q?VhD^;W4!6+ebeM0aq?$O3+jB8pO)@Jpha2pE|_m+`?$n z)A6FjHu%T@t_9@paj^J?0FQD~t6-gDX!W1TG422lbp?N$d9GYpcnAqgKS}l>TA=`o zK0nC%dzQ~8iNP6W{Zg1@w+_I&Kzb*J_PJ@2V{oCXENpWr>$1AhN_2i1=J2a1KLw0Y z^HEB^&#qAAyxmH<fi1hT*q?;v>A$W0RJICNf<PdIE1R9`R@CgT1QTMs-~aL+^<xCP zMH2`Pdqw$U2p(={sKN%v?)oxX$G49$@}aonqMJn%mQA;o_BnPY9r+6ome~fp5Z8Vs z>;p9=o0qPjAcpqUaw>PHfXz-&%CqB~7Au-o-ry%-TU$CBew>So%FzOTM7YqACX=%+ z&-xI$t5v9u51|YF<?v;R|BS^EOuePl)1=Vi8Y)$8U~Jide(UGCwV|yI3Es!aw#zqJ zZiPo9Dj2lZ72(5y7&oMtAh}PilIPsvShu)TKGjgBN<0XvM=B-a*bQ^Y;z5<|=ivQw z^1$v+3a{(+CD1kLv*TW|m8z8_1ta-EdQ(O4^86dv{}X0Xx5oZ?&BY%F4E`aT?@s{O z{=O}fP68VLTz^+*|Div`ngbaAsogWejjrQ=M5|nwKiBYeBLwJw%F<IC76F97C8;cS zrVN~`ZFtaWYmHhA?L?S*cbl3NN&mupcadCE#5&BCBAcb!1lx+YMY0LL`;$v)FF$5A zou5k}03LXGE#(U4uzU+c*l0xvlF{VGFOou>QA&o2b+h&J&p6sNiHvHR#U{aBNy==# z^%(<dM{Gv<1GF_Yp4|Yp<x?GC%mNX8l=g{Oa7!sWJJJEQc_Y{lHN|f;Sr#H!_1j6< z;7u0ZTz6LcXF{-tEqD?O2N#3(P&snO68m)b1@{N)shCq$T{=_ocPLgjLQUE!d%BX% zJfGT6d`)_C4|*;-Hh<GMzgM<+BjF_<J@w^oK)<=(SD%H3k1vZ<HC(#_c{*FjC4hA5 z=U0^Ab|7p+Til(MKG3rH(lgOZc!A-}#g3-Q016`v4RqO=;G0dC#wct7*C>ZBH)rOv zx*4gi39m%sw^l-yLA~2}!rFDv@=Rz;oqjRvVSC(_<1n7u#GQh^g1(I5YdFGe|J1$L z{cv=4F}FLu0R++rACM-XbdTg%H}wOtE-M{phDPKnfINGxbkiFYhQ%OU2rN8GNVpet zBrQp1#f*TTn2J@K1rIOF7Ez$;&9`!NH(>YRg7VJeL(tA$WPgg2)E>u@v=$3=zPLXb z(ZJZHvq8MLU)lH`f`1$?&Rzn5phcx9^FCDs#vtl-@bmGW-XZ`y%bN6SUzRaq=Rtc~ zV805wVQzsJV{n33YF<rjP-YH_<xmeQ@;r~523yq^O*?^uzJzfbUjtP>uuAlx7m&xM zL=FM0U7UGw&=+5%$%D~Rq{YP`o}8k|U&PnjOUOX77&%&sBX}qsx<7{fBIdyo(Kv9L zdtpY9#5rZ+_X~iKA|7={Pk6bKtY!v|6y&$@%>tXWzn3RqW?${Ighf^5NOde`IMU>K z1dlbWX8F=Hyd9PL8I9THQ_}3qr_sFw^%^5Le^F;ysP4YC25ZZPCuWU^l%iv*7diVx z%zxr%a#fSnCS{tV72ycyaD_^bK^-v&iEZP%UjMOa;Oq^&>jj>pBzqvySST*rHVasH zU2?1Hz|;LmUrk;Tulpph1mQvjmw;_Q9UhGB66$(X^o?zBUaHX(GMdn7HefyU5VSZg zenmbSjxgQo8RYFmoIiacGn%M4rd$QW8IgJ3r_*djtdvPXGph5z>?w}<zL$46wBZFB z9ocsujC=(+XvO&Bty#XI51?_=Cc?N#bx5!Z{k^YN2^X{1Po>aCdLG`^&FssJjf*a5 zN{Y21`z>1~VY#zwn%gvaM~2b1RjiV3VecZ#d(4b%p$P{ML-Z#GH{r8c$&BUaTD>NA z+$CFUw&|f5>zMwZ^w)bTPPLW@6?^uTz|NpK$mm9rT&`a$%MNX28rI9OQTxr8Cy9Bt z41dR?54J@r{@O>y>)$MkCe<~-7C6FRWQ@7C9?z(c_<{oWr(kBV1wi<}w9UzCK!qJn zq}Q%o65-F}n!*5WUp2J)eA6nFA(F!i`Fy1Gev6LGMa>oe+Va<P4*9Hp3-H!R6}B4l zbzXs3b3CUMEg_@><^xV>+61#G8JZF@6J!Jw5+;f8!`t5wLmhfQykFvqs0x6|eMy7X zwF!8^2@W<}2MJ{Pwf3GEyx7}dpA>(^lSO$BXvnJdP|JZOnWe#sl5X9u>Q!M<NJ3k= zz8*0Xmml?84A_ST+g;wy%sJz|_;{H{)7ml=jrBiPZ@B#mWnf@%+Tcq?8`u<34|=|j zeGRoqYv+m%`-$=!C+_eEmh&@kf~;3ou4j^W+4W2h+mJn5S1w>>_+VH-EJ|6*Bwzv$ z_`KTSO6@xjzcc&vow47di?v3^?`rpa+trgL)3=4)Fa;cTR*vOY?UY)O*iWfq(IsxD zb3z6GDGMN1DI<NSj=sDA?m1Ifoi`NQT<=#|45uqY2!U=P>>M6#kXlIKhlqoj!mW<S zzJq~(?xx&VIX3&IpFk@(h={24!0HIFXMlJV6Ngj{^mmU)ggA?G2!q_l8bo)Cf}mIB z<;21x#9z_l5yZhS1>ubP^!$0~*-K*Te0Zp%uV=~^k09%mVBqr>F@oE|8nm?+Qv8<y zr%XpKe5%P`VFTWEQzPd<zH{Am_oCiqi^dH$ZR<K1E7j^atP5~l+)5DcsZ@_AQDmyd z;2p#4)wj@=cRKBtsqpexjEAgKm$8Ci?l~&O(PbW6+?UEOU$1v!8BvLhJT$4S8~kMY z*OIKa7pL}{)XSkLUj}7kdwXxrhvv?qD2gi3<`5ZSOh17gE?Zfkv>u`<i3DdOSd1dd zW-SIM*ykE^P$pf}*~HosyW=c_E<rl$mtu{i{RWpFIA#dmq=K$Z+6la5t!TMK2`e@6 zfR>Ks7f1oqJhsJ@Z=`p^s3G}+3Y>!7EQ0V0B;}SvMM2Y)jN4l%DIMK3CFHsmCbN`P zfHT#{BQ3J^`Z{|cNi~64B(?C?)>jDQE4juu0VCXoi9+)n(20n6(cwdsR`{_V`U2i~ z(v{izUuzlQsglZHIXMb%6+up1R~*<e<BY<WUosPC^H<^2(5kQpDv{ZvFhQ+t$B_Z; zCV5}LVkR`?T>62^f_0afqQ_5Fqg`j7t*$FpI(ZGYX2fv7#sZ6ZGigr@Q<T`#8rOgV z3#x3A#nJ|FxKHsBX;-XBv<JilHh0b}J>|W3IpVmdAirW^qVZNP%Eigd0fVkSFu{3N zR}qK_!nf_8oT|UJVSJ-gNg@M0NW^UZx>;7IXjD{~RaOgkwE9*Z_A*=}7UIAfZ~{ga z^ybI0SJ8q2lvfY(T@YQvFp;YHK^1~JB%Ik)p`84P&sR-5VkfPMYNv912*-x$_kCl- z66si~0b%cP=dM6mC$oL9twW<!_{g4=p7wZM&!|>I`dMgLuqg3(x%I$xnA|(b6w4WG z!K_oK!>`;dZyfK{t`K6#exm4vuR_Cd4t$<l`Q*t!BrCd6)diXIZ2?&;d;LLch;iBH zwKHbU`Th>SwUP1J>$TIYz@_Y7Gp*uI|L-XG*9c%KTYRa|M>sP|jYojSON~4O{MR%6 z!&DikspSkH^hZDVdiBpdjQbjJ_D4TRefN)UM(Sn2ht*5S9YEqwk~aDD(bD*j5*gtc zknv}&^7ntPb@&cQ0Q*;P{b1mlw|?v<8~$H2g=o$$My8zqK{Nil`;giM_Wu!fmO+hf zTerrggS$I4?(VLQyEN_&jazVccXxO9MjCgw#vK}WxSYMeea^XG)vfzCd21z=<eiyw ztue*}AVWv~N?ET>bi|L=VWE3gDHxVGp+TaW@&^on2}JE<p@B;fM)wcQ6Klu>n4m`v z;UzE@g~KF{_UZRrQF2ub`@=znB|jKtn`AEZx6p3q<Rl5!?HI;P$KsXY?7-1JmN(TR zSx6T!N(iIyQ9&1w!U(-nhpH6#X<N~u$rhC*GNU^pGf&=g7oz0t5LdcFAX^ORV;Q1E zr04{N19>YxZ6qa<(x=s-zs~L(j2?F<Ws0`nYV>Rcf`C46hIF(Bc8R0=cf2r}r%#^| z{!bT8v$HhkExI~Bhy-$A4+CxQyC}+OB}e3ikL5Zp;9XxD(D@zCrQbFV?OeA6@9Hy8 zE+trIbKr^V4%IBM#{Fe`ST$Ca18emo$i#HjfRZ?#@@S|8-zYE-G3R;-($blE7t$vu z^No4K=uJy@=T`Rcc8?))<O)`vLSl|0a}m9nz9_;nMWMrFte4wVCaF<)=I{I9LPYTp zd47X%EU44;aZw?TtIKW6&rI^$9-Vcl^;s&fYRZLEZsw=Z+@q36g`rccrQ79kfh#VR z28Io(;K<Z3%8%qX@$+FXBo4En{#hN@mG~g<aTH-rjHjMb9L1*4jqGAmoLy5ISI9;^ z6Jy9;bzqQI>`WpsTpruj2%x=3q3;Y8<mBBOX;e5F)K-pz+Ko6Kj<|C2QXtJNVlW6+ z>6~H8)OO7$D(J>U47f&281OF$pN&-s0S?8H$%<pRH45-PkGb8J#vokDG?5S4$*V%z zO`D|VsR;@Lo~`;K)@Q^P4OhcY^0<o*5O6qIQG4-i7~hvpwwO43i(?oOI7BfcjJE8% ziv|c(+k8m;DH4AVwu)Ft<m0jT$?X#a&(1bsTyWq`bDbbvPRry%+GOXV`q$dF1G|$G zUKnjul7r)kknMbL(s_Br+XFWwYxWobk6Z$;38(6qzb@#&Poa!D@H<os`y6W5h>~3z ztOZyV(i>q2!>8(CY1SzH1hrL?Rhc<botqwBs^_eu5$M!IE)9&c<a7uNe>*y!36pPD zqT2r2J0L1KXqv@w@P@bBoq$9$1b(WX&0b<MnI%ZQBoQFDz}CKJ^UXIPncj?ue6_b! zHbxeihtWaDNI(8E(|5YlBq3|knKl#ukd?er;&epYgSdUo=%^J`_Jd-z_|ZpMJx8nT z$pqx#tJx{dcQFM~`d2+1_Kqk_<`6V#%$~jszed&*gcl!#6lRHW>dWoHT41awV`7{^ zOd#<bisiF=j4ZhPadIFNLn@eX)<eIid<x~YCs{i0k(H-;peSywG&moEc+2w^s}s+Y z8Hp#2oxOX$@e-1|tABZYE3_t8OFFYdG7YcRlR_%DgphO%obc+rBKt=5?Des04E@xB z=3(P$70w$OIno^PJh_@D9Ed5BSj>@x;9lSiS2OzPU*OA_wYugp#}JTkyb8Lp$YV6t z+WUKA^7%6Onom_PrAvF=?MG7rLAi%}<HYiMm7dT(P_O3-;&l9(`$VnmZhn_P;$Be= z(KEEz2)q#cfzie!k$&OxdcII!%da6bEWSgXA#9FN8b+Hx-_MF3ak(FH|5IcC)iSmt zYE9{VR<*+~f6LL@paBT~oTaAZ+CZSS>_7ud{w|o(aDe|<S_0t!ijaR5#)Po-?<Jp0 zQ~~~8;vM<Fmf%bNf&-+DFHS^JBq7&T{VE=@M=ZFCR+qppiBPwPK)y(pqCsDP)ui_# z@>bv@W!BaxI+n5sItu-rvxVi5*6cAcbxJngJ~`<W(!$sh>SU4#y^}~Wk-Z)nNsNq! znx4#J6waG?lm*uR;7)%U8v@R0oNQaHZ|u~!#bk8LE6JbY(_Yr6AG_CBJz}9e(B}4H z>h_aY3l2tiri5^-%NyVO^-pvsS^u)6CSCE|_En99!{m~p6u^zm-G^68);PnoNIKtJ z@k&eAX9Vky;%RoBy382dly2no<Ho+D$Lp=N@exjmot&IJ<HvQ(eNTI&_}-Ae4rZc? zDO$t~cga3vfhN#r2HpC!%uso$PGkzf#>`gsbFyw^-OZ#pq<HE7rr@2%^w}V%If9#J z3BoopZK~6zR#0>MU=1f@`r@u-?@lN!-SeG5HV~x-bss*6FdNevYLYP7$9&I7m0tWg zA7O=$6n9NYeK<|Rk`_?!{5_%CMybD<AmPErZtv>?ZX2+ZtVW=V!p3uetX;?-9%X~* z>1FDZx;SD03*}5wFKyasEyU=`^q`41ZjFma<5D#sj|VNBqPQm2)rS7kqF@{Qfs&*E z3qi|WL@}kFuvOta^-})k%trB0e!5tiV;-&@AG|pJ1<&=ubNkl+pe@a@4vOmP$y`ha zkc(nzkqrdT%-~h!0HESuPP54!%7IwKYCLWiI#_;Xx=}juGtvCP;gwj;r@xh3;d%WY zn3?JG_{j3KeI_9J)9_@%9L4Qs8rHNMmjZO4ImvgI$M*NkhhlnsHaH8zBX<XRv<>tR zPmCSX9f&Nw?|*(2!I#4__Z75ui@-o7BhqKH9%ur`r4F5v$2Ctn_@^1~%wH*qeQ0p5 z;J-B5OF^f2$zMQJ9+x`GX%76!EbC1(=}5M6Z(+f7L$FZHOYm6z*>=8iLonA>OlhQ8 zTu&Dzk4@9dIX6_%AoMapM2?(&#tX(56~eZ6oSMtLp`xaaybWYaG*D6)*yNVIztMWR zTwen!;+epauKpU)`csTUjq@O9Sxm@%cEJ05j^})QDso-f?aZ0Ipd7$UDuT|piN2-2 zDy%cZrjG)jab>fDvVk3}k@x9iBc&$tCxKdI%4L}s6ss57T>RtgCW2=$PvYLDgDpQ9 z{KdgLGL>n{QmNPJNpl0pWH|v{?xHa?AZQ14qOeglszl3|rPq7!msx&DENYoCVWVmz z8+C9%Mf=Unz~<s4y3S^bM?lfL`W$&n`Af;qk+=LQsqWINV`FoDk#39*`Pa|U))a{E z>K1m92)*kyy98(7hXuFVT2Kw}7CMn(ZCR{$M(m$7rSA4Xw!u@Xt05sag|;9C$V*y* zl<sMIv0qxKV$Y!<VgZ}65FE6&IKomqEJI`o!O1At6^^lt7e!&XQmpoDa`o}{I-<f~ zt6+B(Qi92}=_g@r8T|p$uDXOsGmEQ=b#Y?vx%EGHJ)Gu;I+bcPo>M$<f2z~gx1VjE zi4RLC+qA1|@?m<8JC)p2$9dB2Y-d`tEDgy`NyO|CfFjb1%ECt%MyF;ww^|(y-8}U= z@_uV>c(W?6==;BQx+%Pvfd8_dxM2e3ApT;G!L{z1fqYiGPsxoUDi|)%$=T7+?w>aB z|8eZlrFJg2$By=vQ&Kx$F4Zn&dNfYUQ&1mzk&ixGF3fmNn465sgI$Bivy1>P#;cH1 zz@P>sOJnSPw<h~F+;#Z)=;Q7K64aZhPBVSN{DzdMG!N2WzfeVn1f~V#5Vo9lw0wmz zRzVF*{o+4KB=ws~llVmI4}txVjDtrFIdx-fmc*jvsLCZWWUo%ZR9T`h#Rcv@&KKCW z-vhu_n>fu>lzqKR+(Hh81kWr82P6nc5oteXnja1>IDFb%x?B*iH+!cmW{<;z>h=)E ztuyV4!xbZB+`2X`Yp1k8{zVM$tRzQA2_|IfF4Xzp-qy?y>8s%ii}p@;%#yrA9xj2? zWxTXJX5KW?I=s?6RBw*98qG!P^xfb*Xc7Z4&bZrVa)}p0pZv!ohjx#X<)xAoE0MRO z%`^1o_@IiVrPVnez45~v&69B|+qq){?(fAt-w+SV$ncuJm3UYIQRrti(^0Fj-6a8i zZ2Je0b&a!SmN0!5LMmEK!MtLFP{(Km{`uAgRu~jK25h<-1`V2AQz_7M`^-6AQ<!dk z$<X^D?%ls4@Vav3hLJ2$AeiVHK`)w*WS8Tg=pu<GO=oSQoLRP7eyfqlLUJ6eZ1)*X zm6xp)h_!=(wnEMUe~vhD)e(cz*l!1bEz(o!C;M)Bsq~h7SLsb*Yi(4N>MfZYgYc?z z0R75N|GObVCfN_OK9riwhTCKtaz?4qb<fThSv{9X3zcYX9UWvke?b(~^!=Og$D0JD zzMB5hM~7vX#c3w#$%$<If}Ti&v4Ec0R{F^>@($IXj}7<)Ac~+AQoulqULgz(s=j55 zm5Ap8$%ko1tTEf{;LwwC$NTL?KnsnnWSx+PzFHa*dt6llCst-NnVo`IWX#u}hGS`h zST4c86ez$KV9eKI6^rypWDi|N+vTRDiKBj->tmzddzo@B23M3!NRK+8nWCaPOu}Yp zcyc;2@cC2!0d}N0SD1yxhEmsa5ET6BR6q08E(F2ENzC8p{07oyCz%J!uQiq&d4H_c z3$q44`D+JNzwzl_@|l07?6hO_w>UVLN7T<Y?)W_PUHlmZMLWvYf^u>=j7WC5VFh1O zx(+oQM{?>?nD{}c=t{+u>zM=Zoy5NH8*qd)`FR4W1i(lGPQCmJdo@ku(O{PK^<a*x zR2Vee(b}+(h>x4Vh3@jMV#(Dwc<-=f(n9SsqkDSx@o0*<((oL`RR3ktrX@MEjV0g% zRiqxLYsZAb9FnqE3<KU7x(CD2kj-#X=fyE%wp<O5gP!v#WYthyRJ-RZ%59_aMMK%R zJlJwr3|IRLWmtSFc+@AK?$+jUX!(=ZjTrfU#iMNR_I}|-*meHo+`+`ZG3Vy<4*j3j z>r;WB;ztBv{<j#eoe01P2L8!ePB|w5F#W?-ZXqWHXh9+TYZxwf9E%nH^bIf|{C#$S zXYqea_}ZxeI*@<K;qq7ktpBudE$gg+$G;u6OWdF9{xj|(@&K&<UKebDstxQDIG{%O zSN8^Va<R8IaQ~;E{m=FPTLibDscpC0ith7JLsZ+56cuI@)()KoYsv%4y<x*+KI=YW z3@Ke`80}0W#Wm9WQp@lnvs&`*=bf|i@#!+M(Nr6PLdgx)wLaE)yvmFT37J)=9HpAF zl~XL+0hV!ui)H5%h03UY!GH)Y5u-<=W<l_vm25TiCv#-Ag!GTX$<RzJvB<81-!ygb z@hO1_Q=!+2k}e{$teRbiRI=GC+6mK%7$${K7YZ~6O=&wk8j^ZDA|waJ${b0UF=oXP zgN;M^-VIENeQ7z|&GP$N(loes^LyfHkZ@Y25cs{DgGNl0`O7kDK9*Q~7<x?VyygDy zx6{k5ZrJztmP;W$^K^FpjttsFYPrLktCizV#9+wEUZq+Uy<4FgWa}%VjM@)h8kmxA z?^XpMDOzb&!ReSJJ;-Deu536=N8UnayFqnrd-Zr2(#`CbBU#{%m%i)Mh?I>W^<H%H zX~1PgO$U;&dW15YTpy_-{78CeRf?Mm!h<CSBE3tWspAU7+d*T}fJk=tZr+~OPG3Ad z8_|!mXun1!vQ?_t)pd~_GudKS6h6JH$X^zt@m}e%v9yQD+t|VG;?hYnVu2oIq9ct7 z-?#A0aTExsunb(6#lKa=;mY&PX-!^Giva25)I^j9Rr{%*TyucMcn*I2AL@TtSj8@% z?0S&Gs2gFXecs)<j1lL;AsEo68b-%j0z)9;gp1FN_RA8#nrnInt7^D2ur!VnclEsW zBa{1&LuDoVHxktG!El=()ii=Y{+z|%aCKh8R-la_`^uVI>q6tC0d0f%@bgxg;Wsdr zF@Chq92gWR4G_IqtGw<M$k(|h(TM09BqzJ=o8bob{3=P865Pvz6p;TxS^L12Gx|!J zw#nEh#ns|OX!Ie)sp{zgQS!b{BuXbdPsHmlPSqsu-A}?7jTf^`8R<o+{Ef()xG6H# z%?BtQl|knKH#d){JnV!|s5Til?*Od5SudSS%x{ON<_LIVF4=b)Ayb|UG{a6anrpDx zrJ|g3^Z14hW?ecIY-#=LmT%1|W-n64=x0+J_7euYw`p6P93N?Pm@NL(0<@nqSAfj} zl38sG-I#0EE@uJma%~QaS+n+|m!h-~C7O+X<ndbUaf$x7-DBj)C(_>M+e;u6X8ZJ2 zn-8tFq4iN5s=JT1f#qP_@o*rBx5xo@@hL*bv8`;ib8G)m^JVJe@)skcH~0F%<A$Jm z>n{u9aa0p2MP!g82g?q4bMEon%AX&F)n+Z+!XE|r%Q+y(Cs>Mesf%<az?;Xon9!X* zxYEEnu-n3;n1Cmm07qOPCJLA#S5@cb70Oo|w1VY%k2G<=qU?8cxi}Tbr<=n^rtI|; zM~e===(gOH6U^3BB2jyAhoL5$3|-$Tk3kv;fgMfAjH0w<q7h>)>@1AW!8&fA`Xfte zS3~6doL-Z5%Ee~tDw-@JCg*Ob@y8B$x3RHwJ$c%w*T?|c<Wp^{W-&0gWrlCdGkvr8 z`j+y(7vT;^kmTuDT`-KDa=X=8cYM08=<B`HmVN&+f{3Z8%NaK}TP?0<Vtequ7W4|M zo5rfm5B-my+-JJOO<dDB4}AgvcIQo&TP*ZsRy5uKQkkKH<v;6Rxr&#f354?OcuEx_ zFz~+z<x;uu;b_uche8AQW~x%tu}~A3a8E$_mI+=$){NHr+ii|SJl6>9oCw9ei?x$k zdea~?UAN~+0L>~~XnBDfvJt%70`I>Li;dhi6YNW`Zd0S%z;EViz`CF^kG=;qREbI` zj~XMZkk)Y9i1FXfB1H3I1W`B`NgG~HhXK~!`v_KVWv#j0YQF<<PV$&8Fnd2ZimD~< z5KWlAK#)rHrngKQjl@4ffOf66Of59+B<_QLZo!ogG!T(fYxM>=6mhIBtWj1WLlT-~ zN4b`)xkre8;g?yMz(;cHW<F>_<oXb|Jj$5p{h9?_%~)iZ&vY3O`2Kpwpal&bgWH!h zWMU8QVh}GOBi;l&ox{gslj|$TyzisKTkPF+6X;9<&?_dI-BqVvX9NjrR)0b>HIcJp z84W_sj`$fMOOw)29zv7h%J6I>JQcMCBZ<G%M<`LdrH+<_sqdaG*H(pGKvzF;Iv~cf z=THr)uad;!a7tqDn`pgh_a-);p359_V)lkwQm8L&gj4}@10WuiKBX5Q(pDelODxqI z)WZoI5JDss3U)SqW_P|arRd?t$hdaKU$f+y`8XC-$z#pP*N_Lwz^1`XY{2o7=Uh-; zJc9I@P~m)i4RO1!hV*B(gWlR~YNt+~Y3$mxBAYCmtiV|$D;T)pqRB)>BkHDoO1lw# zuPR1Ce$@fr%mu@DRJ}RU<{!{)h?pbP8!!`Un&jvyJOdh$<sU+TjG;C}W+sXYomW1r zr;^?dq@`@>baYu8p`EltcjtScs;T<wP3_*2P3fKrvfWm-2)|+%<U54?Y|1hylV{jv z8<wR*X6NaHvA<y@4o|GwR#<_s3suzWS(IDJ++hMGd9<e~G0%#)8qA(A!wWmNS7d~Z znW}Qe;nq@BUsg=h<nK|rQ<;+`*?nL2Q8LhMQr7c+R~doAmK%bCJDuv`V{4*sIZLi? zMaS!xqiOcMlr8NSH=mC#@`-hTv$ibp6>T)<sh;z%vn;d2Se@S`bX&G4FF%3s+R~Ah zx`&I-_)=2l^X;OWwFq@ZSWA>=3xx%??S+$h?#5-DjJb?*U^L(s4`mI1mApipgYr<` zFfI|odiyWj^S^>cJf#8u3HfN128jPH)CZLV@cp|p5t9SZ|J|9mD1ScuPiNAu3_$rC z0^Qq)+)#r60#eETKb?uIg_Du_|F1K_U2~b|yynx(gGW6JmfJ!hx=o9P{pRw^))$YP zk!1~na9GXNYG+O3gf&gG+feV}^j@afsg7>MB_83Wp4V5qoLb7cCf?20pOtLHD>B)- zxvPa~Y!1tP6KFk>%yrKzx<fmGtwjOxyA~5U_=i9~F0Q5jhpELEQcI%Y{gj+Qi%w#x zdw<sGxx!r6%<<U*2HFSk<byB%0ml3^g6r@Qz`axn&CLZM!wn?~rtZNZ8i(xO;{$nd zWycIvC<As_sZ_^$uVQvdcz5m*a{2`yJ{;HckT}v)A~3%J-Jox$NdD?7&dR!n1tWEH z_-Dc{VHe`1d}m5X0%>E6qgkJZIO5P-w<n`+m0FHR7C6O`*GV0XnaB=)HUTCU3h3{* z$Xl{P5Hx#2ikg^B+*pv-LO|w{p#0{W(`&MwSc#Ma2y>M_DCXfCWmdv~Adfc(m(|b) zMlTK|KJe*$X5~eFGvlXvP0Us}zBHrrDAH7H3rJLGZ3tJ#_wWKu%=sWw3*kCLk`ED6 zN+}_DN-4^l1dt9$1<W8aeH_Y<1S5roLOhfKt{ZeYyXdsjP{oph8scDDCH}l+CBTyJ zZ(t@}ImTdKzQ4XX?z`hO1`6~kKB2oE;ufAWIZ$wERW6e1?r{0osh#cmQ6?BX_~%=L zR~Qe@L%&m!Xc?hL&kU>L8MyOhJ`KvwJgGs-4g4jK0JR{a)osg2M+@c9IHLCf56&sZ zGNOZ=pE3|f+kSHwd(z<|QU;$Tv5s($sz`sCU+S3)fw2t?Qm2-ayLFY2>%cuzuX#&G z1~{;NKNU#FxuCb1*$LHeDg5(M%V$C`P$*p&B~sEKLS$_Br={Zw#}*19jOyeqiolRL zp%YT`McpmR*U8o)^FhBdQd!RzM$$DiuzS4Le9G@nGbkygqgA2DP_A>zW{yD`Xm8$k zb`k|7&Y-`hO@e=@KhS-5SeKhZaowJ#H2|uMk|)3cXl!J((<*G*KxNw;&m;(>U`TyL z-+P6-SZ(6wgW5XU<wlVK%lpwm5xIbi#97t!5PTmsA@Ey0!#>M~dA4u$z2IvSc5@IM zI38RSWybmv<X7=#G+upQzwIV57TKMJv$g-K#S}s_>F2B{dL`HX9T?|ZYgHz{9}h%( zajyk=pSZ&O(YF4SO|}wG>{IwQ!5t+#P|cF68OylW6Igw2*FHCuaTvpskxZvL97K0I z5UcVhdIFm<ztwgV>ENLi{rzz3!_k9tTXDl#^vspkY;WEbF7!?aKr>7X+SA*~8s~pd zvEl<djLC_{v)91#i?S9T#f(5U#U1F&XFo)SZVb_N9zkyOXU#vSNHMWG9fQV2vAl@u z`w^ueT28yX*4m@Cb2UumMlo$Mv_K*!^_8<Vtn=B%?JMJLVTgmw(ngbN*UH0spRx33 z<kUV{)>K=XZ`7j-WT$^sI@k~i$U~ux1{#M{>!qB44fi3wyTW!QFFJ|<d<if|FH^u{ zn;_GNaPBGM`0%og&OFTjf^o-l@Dec$h-|=!Ye8w`9No$>HD>}flQx+pho~eM-<D<T zDLCmkX;)N4P4uJeDbjK?c7N%Bo}Aa7vQICS2er?3h^yTGsn1kd;vGzW>L+qweVE{! zV`})~e4I9@Ngs(DJhUqREjh3kTLd-PbePxmu-Nz_goaNTQE))A+VA(#attz3k^YGq zQf{oEr)7n$gAR>saFSsX^=X}~!{E57C|2xvfFVgT@Mj$xMtLpy(y&q|dNw|_?CECy z+t@lZ#{y<t!hK6=c1hAoOP9x!i93K#LvV4}l{lVOPDzQEpT}c2>ka7PF+Y=3wCn<R zF|#yjm8}w6kyh-YBII@byz$bYPB=;Z#kKa*bW_mZiN?rQ=PBB2l;ne(<Tu}%n<|wx zSa68DAvYfbbig2UTcMVgfb(9ga^Gur;CzsjN_Qd+u}8{ddVBie-hDEy(0s#s&TuVW z3m+WmI(O|0w8k505H*m5SptfJQNZj)q~ekC+v2iy-7i|x?7CQJ(gVZ6Zzb8;$@ho@ zV+FG46F1y$<CcBhXix(fp|;QL#fE2{x;`+EqYsf4-i^JZUEjg?6x^yU*M2vWlp^2- z5_c8|;eS}!48Y;F-J}isK~mg6dR|d^t*2$19?G?76)G1f#C!qbgcL^?l4p`hrD{KW zv2B*2s*qefX$B`uLsBOLy8CEO>~(5t3^aB7+t>4Pi%X)N9@bgAsuVN|*k|@V)<TD1 zBJBM}GO*y%j=tn(`L8zQ=5<@?=lVk8La0^MB6U)J!$%=)k4&v#?C5VphmPB_RG0Np zLIh-LHks@1HwgpP$yJeA=v>LvaWYP|7>SEP2fUK3r6s*9p?VUx8zF)rY!TROZO#Xo zyCuC)l6;XgYhZL2h*Huj?PYpFzO+LG<n_zJ>}TG&l`n)JSy)fo<2qpZWkx(XP@w2l zo$pI~N$wD%2eWQKd)8TjcY8BProhrH?TV=A?N@x)qh0~3bw#WhdZE*L5}1?CYm)5^ zIuFZn@?RsVnc}KG=V2&pq?XgLVK7bA;kf3TK?^xNw*lW<fis7bA%Xo@_S&<`Y1s=G z35lcjL+Z0BjQ(G9ZX+(XR%Z6b?bk;&F(*<MEQ{Fm9OLV`U=sQ-vUxq5Z}wI;f0wCU za_XQFxH16+^GAg7dSE9Qkq-}9V}!#gI4M}-1#N<xiGjC2Zn+_0yX0%$V7kJSF^|IU zr#m<Vj_L4hXo?6!rIgG^?a4s9wXQvz{;>R#TZ+>sQnXDr_!Gs<idiPbG+o5Gt=Wse ze*~So6^kRboWsCmeKTTyIkIWrm`oYK9Z&V^r+P0i#<c-EbT;HHCL*q-hsp!;Alk<_ zQUKASHk2`Kn=P=lz<9Z<Vv!lg)7o#2F_0PsfoFBayZgqel#pFE-^yaA7oBLpimqwA z&F0jiHMyu{dxG2XuF6H1USTe#;zjd`eB$?I#rx#kj5#A#Wf7XXGZ_<rK1qIf#kQiI zb8-v#wZx2Y*c^=OJJw@j)Xc#Q`ecoeHG){Kkh%|%FacV&IVj}U$oC_L<ZTM>FR(d} z5z1CQN85=0qmMt_X=Xid%O14ZKPHE!!A|E6<%2l}s<towJb_gHKDIRyycL$Lf2uD4 z6^ss^I!|i!r9s?+A_A`<B{TY|Q5W0v8CL!RWU2}~2Mu>k_AI5G`!;$TZ)^f-rV%9W zUBy@t-c--ant$?94R;p+qHNhDeW?^)Ow1tq!tG;K*Dd};b(|NkYjvlI?xaQmCQN<v zvbt!nR(l!{$RY92awKvkG=kTS58lcv<(#IT)%zQVtn8Y;p8%@9$*HoC=xnVUjqybV z*t8>RYR9qvLCvx2o6Nwkx}DdxvioUAe)n+H`A($<kDZk3-^&FsLERzBnxHg&(bnGn z89E^9wUFhQ2V)ubGbg$;VV7grEdPPcobqcpXK|!3op;K?SQKB;3Cu(lstvxf;X<G@ zXdXr5kP>+rn3S#^ERuVU`8*VU;=yVr5U-=HizE%fNOenrv1d<w(4ZiSB$MEvLKP9z z!*IHZhy0Yan0kRN5&E&BLDsgN#&y*`Zgte~546(S-g#-OkkUeZ6ZHf9#!jM|oo|6V zI)|*QVzF#~k?!Spfb%D3i#y9>cL$93*~Ew#LFP(WM}p&+CXatJ1+QJX$`&aV_yq|D z&VwAdfgGQ*0q4M_t@fC8<AT4W+ETX8fxY<5E;usLy_xb;u8NQe9kqOk{GJZ#v73C9 zE5)CLx?M#dZA+^Wr}`kd{f<@MjI3Oz<XB$&$LhEIru`=B9Q0$Gk{aI^=!?F`xq!`r z$v#)tF-Lfo-xVoin_tViu2E6Mfc#$Q#*5NcfV0K3yMjPQrPej-w2fwuTeSGC6nE+d z{q|-zkdY3`nI+VOpjUXq1R1vTb;rt>xSLunha92g<Hj-&L83SF2Sv#Ar>n?mv9+|N z*+_ql3d3(FAT7s(2^*$OZfV6Sbvb&~Rmhl-J09%{`Q8l}Xs|9qb->;lpbc?bKH_DP z!-_{9{vUpvxJgvWcgta28DxkkH99x5iOr@FhYyW~REsMt6}*@bVwPwNXlOE;fcQMC z9?>P?oVirZ&@vBc<U&}|u={eUHS3wprCn3Ha%zn+c8Z<Z);5?@+`vx5?hLldf|mzJ zi3ncVU4h7D$BuS*iK*-;AXLGOzH7~5kHT@QqXPUM<TAb%bLV&FxJNU>8K>H}*Vn0y znzd^q74O^~BOR~#4C<lt;2V#}7~)lN#q{5*I1_HVaB!NrmQBF?pZK@4X0_-mw}UWX zjK(i(M<FPqx<Lx^>rX3PUz};Xez4&16Q0AnWN)mtxie!$Tgu9H0e{T3<5qaiQHOn$ zAjl=Dwy-*spXl-LYSiQ>NxD*--$C?rz2v(P%V-`qBwkr*d;7khNX!Hg>Ri(ogo8`g z`90wF6;TNXUXN0cNbUC~_9TGF#z4h=ADPcIY%p7<HbOBIUvq%$j+^3vDrj^Ke6WtN zunAt%Had+cJ>tUp4rI1j>tU#CZEt?fog!Q>YewN<h~rp|In@__m+&R{2-#{wgx-<I zEQ|5;Zu#Y1!fH(whTdH}qC~65Y<`&y(s>}^USqvJFVL~SZ}hZWS4O-PZN;nKErF|u z>I@_<+}MSIc0D1%S-6k71O#!OmmG?>7)R0PtEFS|C+29S0uAHxexpy`opeTmgIH|x zp1Og0ed6TSXBMdvn>0i_jutU~3svazBT8mtQ9n!Ad}lGzLQwBm1fv9kmk0D4EXSWv zDC>H#?g95RUBhZRR^^f6%*#rDB-KE8boR)6ry*?I8vRpfAtv06gsG`lnZhzC8`0)r zw7LApr<lpC5;&<*7<G3jL4CzMx%``Nu-oLUYIE;bU-1X2BJUD*3-1mSQ@6{lL}yiu zMEQs19tH{$gVZP0z}U6wy-9L=pogQ_aJ8m6gQdJ7w%JUWqx2yvO)+3|E4Dppi{o=Y zA!e1w#(hSileQsdE?LND<MF>VzyCS_Nb$7-F#dZ?Zm|Mj{%tDA^$?v~`P{&V$Nf9& z{=pUi|8Gx13Y;AP3n(lizjV*;03(yTAIl6kab_$pefTFei>vpUvRQbZyLl--Z`}Ih zWs_#)^ShOq%ACMN*?4%7uDo^<@z+=VMPeo-_(&o1Ln=Hl#A3idRVH~(!`cR0aI(2s zO>#Hn*ffEHypLD2s9}n^B=6gg06$9XB=YbMvEKz#{v<I*-9R|zbO8Gi=-$~DB&uWW ze$x1t5u=$sRoKjZ_jJ;WMKvsC;$Nx*>@hcKYYJmLDk?Xc_Ab{x;>810NE3=BeGH#z zlO4ZLyg+@|HD%Jmc7M(sZEtT6sk?EQPyOQK?|fg1SW{;ZX9CPv6nrG=U2u6~;cww( zY~7fjv<(XoUICBJWp77W3^54b`2|=E8`0=Q#}r8Ti+QmJkMZS$^EGT+@vv7LR`#DP z{=DzqmOQ0Z^#toq($h2izI{f#!xcbqo8$6QLg*?H(eyRrjFM;)+6~wU81Z8%U9rxG zt#`jk7jvp#&%vt=7_n{jXy6Fby*!s)zIb=zg8j-43k{rtMn)t@TKr<65I8>c!t=7r z7a`iWY({3!t_e-j7Kz<|5H>zn3PT=pTOb9|_LVHkC>+|RJT#2)Fbxc!S_I)|mN~QT zd5z1kb<=SF+lb}igqs<29_o-<4dOiyZFnZm^GF{q@Ie;-!w{R6{|ZhlQ{><}6E+`D z)*P!?j07l^+7L>P!b=zF%h1AYkE|W14<9^0tDpL-TK~!tq==%P6?wdn&gU_lj0!FB zx49z<bBibr(rr^vcuuAeZ^DTr)9@KP>pOlzb%7lIRB~Q)dgZ(#5!ozHc{`jd26i`t zZn(%NjcJeEVIj;k#%ACOYJhu{k@yHd(}RzMgc?Zot9JToz#>1HoBFIcU)Ds=ui4oA z^CX;gS2f*E<q(PPo@?K~sXaoQ2~wNiOo5s<UH1U;rjk<pSOlen^$UMEE0aMW3Y>4P zwfSDQ1TDN9Yp+6m+0EqipS|eU-JPG<D~wW26HO*o;-tv{`)?J=KKSMOa11D;yW3Rg z<)T2cqXoHLy^upKNDTOok$s#iAMc(=Sgin14K%%SyWeEy6USdCVdP=b_tZ`6*Ozi* z8k6Xeh~TeK+YOAr7{C}IJQ3<&xq_LFcT|sass8%uzPIi_5xl?`1z7x+)+&Ldf=8x7 zG$&8%9$iU@HKEDhsq%>L;PPF=c`4fR^7a}SWu$EqM!%pX$exRITd6n};@5#(y|mCl zHB+L9W{%U+S21af0a!GiGtQ%Z3tz;?jS5%3S*q|>c0tpp3Wrl+zH!Y(8M@I9y1I)m zrJG(^G>=kMZZtN+Emx^6XEI|&aO<x-zTQeJml&%{??`W`{yy+r7<7i=zn^Ld9^VJ_ zzluGG3t6Nln3iQ#^;Mp-xt)zih!4pulA<B$$|^?nn6n>K1j}^fGwwC&&4CL^Ldy*K zX;4NYwXlaOT1+;keEVZd@LIb|*hF4F=4VVZi%bJa#aT`MOK&o^(|s}Ihv%5$dNe70 zeJZ~$zp1sf!0Z$d`Sf-htoQ^mDA5AQjL!qU->0V6@KRzZfyOgzm1rwsV~!$$-1F5^ zJ=6A3jCsHY!y9v`Oka!G-VuTyVV}Lvg*UMBGbw4U{_Wlz0&a`D>!yVpAl6-;*_@og zi8Srm&t`mr|FV9ob%A$9Mne{N6m!lNL!`9^5x~14F22^jS+Z9Bak9K-8#E29cLnLf zgggyih9#HlyU;PfP5sJ9Qr>9iKL!CFd2Iy%7Xw54XnZK+p5zRuC2cfA$HcU}3VKzp zFuXMOu*J2iUF@z&{^PQ%_JB<2QwxEK+2Rs+m_b?+Td{5B>0Z~N*Fd1sVpSA)>`t8! z)*yL#!T5vNri{^3`uN5aiiaDRQLSIFB%{A^lRcxHSrJHY6dVO&4Q4oO<tklFb<#9w z2|Ta_;cI7h6d^aJkEzXAlPY4$*^T&$13vL+e-<-#8j596Gf&;f+{JIl23`P5uj;ZY z(k<LGR1ZcDAFm68F1lYNp)c-g5MJI!qrKi8(0vVvu6Mz8(@oIB^40@>Is1cUSpL;$ z?D?y9gHloRvDWF?`XW|s7jt``F*GaW!qD-LZ*(SZ(Ee!2D;Z8tiW{U}8$Ijm4jGsS z!;P_n@y9eb;HIM!S8wwl70`U0rYrVj%;#1)+%fhhzB-hK$0Yf{loGLn=xxL8*J6_u zVtUN**-@*`ADe3WZS?Fw8J*M&-O}h6JVj9LZc4k5Cd#IcE#0LDaT*X+HYZ^P;b-GD z6?_)IDEK8bZg}(@dWEk^OV^8^)TJ{EU6?oO9zmn|QG>Zclp5NlsM7bD39mP4#fG-c zwsU&2Xj81CrGTFEfJTbhls=AM?!ln}8#Q6I{^hz9XYF(H=+50h%@`#1^fz_~D~37h z^A`fya<R4#3(>c?6Y$Wxiiv`8yFFze;4^vQ>uNuv5H!TiMEY7(OWRzduM|&C5=YS2 z%>x9Hpoc1XCjmkW?$oo>mL(2k{CED&s_ftN)pGJ?n3w{(bQnF54GlMl5rb#=;a-5M zz{+DjQreL@PE%x{oMv0FOXZWdtFcBV?WEb)OOMiRYAJI#czO@Ac%ObQ<Czz7?>jZK zo%b$B`1RK%3zaAnMf)(3HF%>Lf?pI;K7r?11`n*Zw=_7S>gs|o;%XlFi`g1(vU_%# z&?lg|%^>PA&(yp)UAmr0^B@7BqG~TLCzM?B>l7b*2zijeM4G@NNftXB!5?AMv6Bb} zF!O=iVU^WI9@9?W7<fdZ)S5%T%;{vkuV+a|;D#B7nRFW$7<n_t6vHDn@<@7r%S@B@ zZb%qqW9eP=mZn+JlM*ybw4MARMmh)LWJK$L@5R_jId3&l9=a>hae_0tYKN0_CI{;i zv5cymFE8^7{4m|6q`l4z5!12G#!k*IY;@Cj?$6>stmJWBvr=(=zN0}LUHrgdyzGeb zsAH$q8CEH<;47^j^&aYOQd#?PdA$*wx}g1i^Uh_CBm6uGnIVk{vz~RC(^S7>p<3SV zwC6v<ihp%V{pvWO<)6Vn8J}GdE(jh-%F-qzI?&nJ_WyHskfi!OVoe;)d#MI19!e@~ zXTdb9a(5oyueFwpwrB+{{2b2cc$6oCmDE(cgIzY)owBGX#{EQQEksx#SK&E!_G9<# zJ#x~VOtaZlhMJM!IQz#%RvL?IbwTKG;so%yRAJ;iI{_w}IP%i~0LCcJI@YF8s;{yO zQljEVROXaPZBN40P$)Oh5ZRFK(2K&KNh3ruC>C^t7G7L0?uIZs6*drVM2ebt32#OT zf$6uqq(hg3s+w?)OD~#^O5Ep=NlC7he;9)pvVyh~kk_K-x5cn<Wfqf7z&kW0;0+9i zl58E8-oG{gnjIz%^$ur|m>MOR4|^^{lio1PkMwUD*i+oK$nzIoN$fr*UuxAAY&R5` zX_?=OJ=qedtMA<_mg$`0tSB`lHX3>wV7Z8JXdpK{Ruc~)ZDzO>ylk_cZHBpA-riqq zk$35$T->#HZFrk2mu3@3TNJW7r~>`r2gR*vWUvF;h+8!`HzFy^l^E-8I0Q0*H>ZOs zH7URkpZA0FLBcJ1;5&e>=Xrl4Mxg8EBFAcMX-m)RZSDFzXQ`PiI>LGshE82b@I$O& zC@W)kQi}g2chF5WS{L%@8Zz<24w6d-larL1dog$sM<U->pXaCZZJopXJ`k4rxa;lB z^HMY3K{De$8(lW@S|Aw00F-P{zv@IvG6Cc`G09{?*>r$)QI};qdSRZBH{b`3j-2VV zzM;>MlANIzlrk#ga&DYuom(}fnG)&*(-~Iut=i#igX1u@OdSM?lOZTes;3n$!@4qw zWm#P(*R+7$?M~lb@<%WHC~y>PFL`BRkBqr{L4yRN`m&|G4l+4bsEVUr)V1D!=JWr0 zT+sc(|FoJ7vZcx1#3a`fyCEXKuiZ_vaI_=7YV5U>pyryYP9r6X*hZDn@-YDl@&?8+ zD7!cR%;fY|$F(BKqd#a<scln6YqP^pVk!4v#XQ2a`)ek1#~oP-1#qY48<I8b5orZP zkTPS2@u)CIVNl1B_@HtG-fNVR-B;hS<_2LKUq?__82z|orfo|AJQ_SyGdZy&dG1<A z6}{r(j8c`EKc!WM;FfIKtyh6I=;B*{YdNOJPvXFn#8Zx#Ljp${dbTqCI(DY<AE9Ui z;6I|ZH)}gc@45nMy!C6I?QlzNBRvujxdNJIsdKcyPD-Zxb76$mViomv9$?MqjRX&` z?X3M)<g6RjnZ`CDv%&4)CP>*JOj#>jwJHN$I11M;q#E!^eI1saiPTpA`CqsFzl2k6 zUI31N3#XdB0Cs-|sZ#m_{>!6n;tz28+Z(hV1o$s{0cJ2@?r%WBc^H80-(wb4I3Nn@ zFIGZZ?0+3;-p2xD|DL`=N$=gwKWohdbc$jkfD-usP=F?>PDFnukawR_Eu&GE4J5ms zZ&;t%)>EeQ(ITOVwU3Z*q9jVLK#(cs9W@2$`%#F^80F-Z=sv^}^^qL2{IZ+Rd#82Z z0NEC!=t;BVM=%@OB8h_tA2Vhb0-)X#a^|Tq<+JLf24MgbNw7<#aT_JcmSJ(ENLeG8 zOIUBg(1)qZswU$VvZ_CMyo&AhwG>n=O|T9~mDiE<PH0j&#ox^GTfnDx_Jxg$4_nz* z`hQWLI<kSvH>s_za?2sr(TYrYH*s_GkmGA!6#mJd0=hZgr}BF~L-2{>Ohrk34FKgz zqfHqrJIn^^Xl<3D3rLdQTMEnh@F%~{MCd_dKIrHuW#+s)B5c+~WPQhS+J!A&`4SC3 z_(%WjWw*e9aiA+oW*o6<%nff-0Pfzu4rcf>d{cxG?>uH;bNi3E6H;V<b41{a0zEi* zbjEM;0lJk*Nl1FNMcCovK6b;xu)x9Vo*Vhoo<$(gE8rTq*mHP!4OAqo`WP3e-m2Wn ze--hGTC}@<c!KxM0ey#Id|a;tf+w{29&kK4zf%Dbp_i&C)%T}pN*?WzN!;`>6cxMS zMnuu>k&J6Sh&$-XF~g-1G@ENBj7<Hx@Q|zySzWa3%f$3^6HW7p(m3dK=n^EE<Wl-u z7_)#4ffD`9x9K3ZB1xg-Q7XNWf$h~?%zdl_3x*VGqPs=ke4S64&WcmrTsNrReQ0X* zbhX<Zx+K_GT<o@x14RTqCG042Wl4APJ@Gf9<em3FCLk>mZ0oPk)q7)Tq*IBbKEXi_ zr{3W^mMY`2cs3=st&Hx*32wZUK%f{!#VPRigxRHwHb_zI4@d{YJ$>i6d0KpOZhp|H z=;q2wRY2-QDh7eNE6&$RIPehspJM^COj3~UQJU=a-i<LrlO{8<&bl@0)xMV98#|Sg zT_yV|^Ol}Lfg5B5yP1=ayTYii1=5j{-#%VdsVm`<g}Fypu_~V#cb@ZR9eNZeuIPZX zw5n3~L8BJKwyJV1M3stfoaac}YG`SBIVvO+S<p-0z~=EUAp~Sn5u1$B%Auf{fA|@e z@|t?)qXz{t`#mY`O^jpK<uGbme{WSCS3;><K7^~HFjrj~6Ddu3i_lfqh4%^Bm>l=p zlyO1$z2U9$#$&B=PS88(id(U--RVt`wCLvi4*s8h;9m)U?|*EV<3FX7uZaJ;NAXgk zQvq<m|3|!Emb$mysyNn1j=Y1T`U-0&BqJyqj;u_vs&q%$NVybo6T+5J>*9TzE40-7 zUB@L?ju9MM{5VSgJzq`F;X)i5EUdqISqh53?;kQ$r38~vkv^i(HYh10)e3ZI6oSic z%D6?#xNW;2Ac>Ud^RHL>sDZ(*WY&3M476afg6Ft_3gphS4t=WKNNLC@t+zOjGWSaM zFqtq+r7tVBV1~ICwbN48IfuF6p~QYF&<!EJETr{n0HboWCx}18PaOcepPkQ~W^nv( z9#0p%k1xCAX-LQPjg#{$tsA<aw9E5YTe=QV`R7@0FwUbZYg9bt9Vu0509+ulQZ2LF zPR{`D0ugI;Sm+laSAY}0nF(*WU_S2NTbq18WT4&xvycaQsAMYz?2Xg_v1wpQ8xp)U z&FR?P;KCjHv%?J^kUb>=tHUUs=l)1-u;M-U6Q%v!mlRrNt$T%5aKXN~jz<i@LS!4& z05nOA|DuCXal002<-oIzKL=)-R~s>!wMo|(%;IDX`ZLG+sa}sPdt8B7W<>jaA)jK! zw5X1L+I{y$c)`a)5dS`8${KF!!^&$~usw}v=KWDfvLi95c$Z{WMBUGr!dmNpFA=~? zIITD=a23)g_L|Eno6(b@P<CJkNH0dZae8NVs%rf3v(3xVcq^3hu>|(<BY6fO+#2jj zL{7dE2bn`PqB<X6!MqBU2zZj{Qlomn>mh7M_?@{t2P9lj9=Sw!OxTvNSZ3cW2uxT> zxxe<~(TSc5#Z^D*qD49GV4pi1&L@1odm-Yzdf_8P`dNMX(>FS}ix?hyhUjF*){fQf zOaFu6ATi~9*>^HK8$_TXQk)=I6nJgagffx@y#F!={G<+7J|&iR0GBN!?7}vfo?CFW z+H4oKN80F1I)+;UGjoZf_@RD#sxAmSVc9t6WAnh!T=^eE4l?(T0rSZ=U0O4D&i&3M zA0$pw(`jRe44R<G^9zR(?Q5-q)K(dIs6PC0W)<^DtHfrG&==s$$p9J!WSBOC37VZW zCZbFQ=LG4FE<<a**>Vti8ff8>0f}0#-1j+i0P${As)0S4b=23IBchsxXtI>fYB%r) z>_82&1go~da4yYngp2@tUV3RgG=;FMc*YRVPq~5X^Vs|kT}^rdsdQhKs+Q74#}jXL zW-_B4x2l3q)+sQ_AxI{)!h}NH1ai6`DG>gA8E2WU^NGaGQm86b$H7=0Ytiswu$k42 zw7V!?glW^>KBoA_-$H#stxID{AQWx!Yn~)2KjQe8+sdO#^UlDL`6e&aOCIqZ3Gb8k zsB#hWB=TRbG`v6Si(5s$MP5&+RAJSoMF#mw(dV1ssptZOTDygGobA6h9=8-tD===g z8bl^s-BZ{twPXwx3fG85Jy_N<rkR|BsA1G7OPcoD^7nM{%_3rd!{dR&(%ay9(jGqw z+uiVTv5j$I_MnkPQq`Uvx)w<#u>Yy1qJMI9Y>!E=k=@jE-q6&geXlvY-upattM%$4 zv1etHKC%jIU4^>I-q9FaS9cHM(oRyZJA_>LJQLacvaa$Z`h^d)3w66Tvz)`|wJo$Q zBDF)V!17gGPUUtVbqh`8>HGG%my%oZ9r$R!AcowMHp&>(io>nvMUU-U@sEz+YUcSI zZRk|NL|QV@RL(TCp(1u4Cr-N?3ZK<tyNCNL37aI~@-~{BDHT2P)QMUNZ(k^5C3k{F z8pOKL1)ibR#UD5-bk#)l=6p=I8tf5)HHv7>vsAP+Db|v^gEO=>kp4eV1{y=2bY&NY z@F;^$)f6aNhd|vA4|h%2Hi*}2*%pqW-bVZe-~GBx-P!An%JID%hN!2Hd&iWTb`xPj zoi}O%`86Er$l=pof^|_E`33mv|7FI}$_D(050etv4TaNEoeemH0{<6lCadUE@BR;K zX1NHk0`-?shq@p<s^qik6C(dz^*bF9VE;R8r{%H|&<pvOww@eI%xCWl2uL+i3KQ=q zPKLnoZ_evKnzYk;!26fKwDo6QpPK!DqGrjv0mQI>rRGWv1DO83=icH!45)-b_<U>P zW)mpW`kx%y9EiUb2D(@nnfx<^{?9x9-_m*$l^NSPMl|m!bq%6zxOS%^Pb_qk6X`e- zc$-z>k}&^$ZjP$H=&18XeDja!tVWrRC#rkC!$&+lo*+dOWF?hqW<i)8C7N9YRmWmS zB7Yu6m1Xk|TcYrAL8(+=yiyX6mllR)y+bf_$v8&dJUF^jNNc&-v9b0y>fxXb^qf*u zBVK{<)ZE2<DzjL*9q_9Hp}<$7xfzq^G_Q^}Q4!-mpLCNWm!;D?T21#w+Q(B0yQz+= zr@P^J>Bq!Qo_@uj6BI3JC2tjG2ERvPcm+L~o22Qk2md&NHjm8%J*o+!u@}}A`>Gm- z({Wtae`cwLcvg@dj=MLhbyMvdgv{}GoQ}Noq|YIift=F&$U47w1NH7Kn5b{FH75LJ zWBZkI_-i;XAOcre@#TL#o?Psl`0%#Nu>cucR_NLYHjKaW)t|)S*gquQ%1z2Skt|rs zpEyi)#)uSoZ@;nu+x-O4IrJ43CE)>RV?NHoWOVM^sCf9#^*wDAZCWY9Ge}%4=$*@# zb;qIzkR(v0MANq%%|zh{*XPUkTySLvJ;Eu(ar1R1QBtdb>E4{_ycGg`$&vn2>0wUV zZH&6$w&Dm7%S0E`k!B>%F1e~X$4qxDygdl6kjy}d>p~--A5QbFJ4S67Vy^*~j`C18 zQ)JJF7t7BYpGTUNm6hX8{om(+a(7DWAjGNmGE}=I&t<+^vT><AI19R=bF&H%T&U-# zH6Az%%9cNH$h+3CrTo1*espHb?si25ouX(}ZV00x{!vf|M1;ZjEuJ`kKGN#BYV_yy z%B5Rd;b(=2@Pb=McIN)ui1M%fl0O%ye8Hc03LbKbffXEHiqzbvf%kuY`ziW9pB`Yx zIY8v!(-i0mfc@XU^c24{Fw_>M6~N=)BbDq1fcM`|w#01!9{x^=j@SZl{O9q}Ex-lX zUo%z54uJok7i!)Gu>7t21VhN%{q=d%h(o0a9Rg_oxgaG^1R52nyef$1Ggb3TBa7?{ zvI-IwQ-Ja*XMx=Cnn>Fj?Fek)L{$fFUe)_U_J$x#elrg$`?l91&%=$BD=I_iSA0HH zpQfTG+At^K*KfvfFf##^vZ>PzoPv0<j7Yuazu0Vu^>g>Rn=?ceQ5ewajRd%I0OH@{ zY9WP%m8g?rUn7ixv~U4T27g$<=~-oeh>W(qW4XoZ{0!91&ag68lbE}T9o}5nH@mj? zEOK==#R@(iuPQ^La^-$``9czN>}1-o(%YQ*RSJuEyB9;=%D2~y)!#2mZq95eVj*H5 z4iCy_$*DUVV$-5W{Y|{0$7<o;eu~=Z6aF~%_O!v*eq}}u>?@6owv`N-&gySwt#XT@ zxAmA%JH5!;@M*PbO7F^uAT6k$jp+=YCwzf_=(XcmCvEvIV2j6|r)ovWUIyfK!F4W8 zQ3V@ExdKzq-5E{L*^{aVE~`kU$~cosbC8iB5lgOUGIEWr6Pjt_eUOAeH@SDIu7Sum znB&a}lKTk(%~Vu|Hu0CY=0;qkcE!ek3;TXGMl92@g1Qa~B1h^@-;VOHuS)~tdw&+n z)X9=iuT#AnNN1}3zMdT=5ZTLE==C4-sK`IF7ulj}1)x~V&igccKVN%gR}ZeN&z9wj z`R3=*`)wD)OTRagHx-OMz(M+}Lf{U01LwC=2@Eh)pgVPtdeLtcu`mCJuXBoyL~Xcq zY}>YN+qUhFt?JmeZQHi(q|<T79XpwvIrFXg=Hj1Pt1j!R)?07YuDze9r6OEpFo0zm zGzfZnrX`W-Kx|J@-e;{r;qeaf-rTsPvAVuxV6Ojo<Cz^FVYdA1nJwA>p{{7pq!FT< z=l3kDfM?yzc5BEgoG+Tg#B`%(q>@0ih|{BF*$_XaJXdYeRq6)ek3Bv68cEe=Bk`w- zeB&orhFZ<U9ljzj+xIa2T(jwrZ6?brUJdk$SltOK^hjX)rRSLfz0`*sW7Q{G?Oq+2 zYr*vH{SS1B*?~gZm(fP0aPum68PsNlTb111{|Ya@L6&J<XR!ZeM*BE}ZTVNz^0NKt zq4S+DutEKMHn%Uo&*py!>Nl7F2{Wv2{`-WL-M~%(|L<)+8N7RR|M$yJzt^h&{Pa=u z`1fY}&lOg82fO+2*^Pes?>J=a2^R9-IoiU@_l>6{sHgt@ObY<{zIn-BVKM(LZVP<< zS0>`~1^XBLf2(D>!Mw9eV1a<}ss6oAw>=S{|37M(79CxWt#;(^F_{tPxf0Jph=;U* zTa!ZJm4zaQlPM*Cjm8nMw33Nj0v)6C_WD;3C<vHvWMYkL6=W6&gv$pL7Ti(UjYQ** zzVRrutyVO<M6Q_<5}57vA$P1pE^%Xb=Rt~FBS28q$pb{kJGS{blVfF_nKr?gS%D&1 zw1hZ8u=Yr=2g!itC%a-o*4XKH>%&zk7F^kWtO9=oxfB#yhSjbJeZd^{aNj6?L{(N9 zlG2Z2IEFKet1`Gd<~==%i<{d?G}(Od<Tr(92+O<sFI%MhIhonVlPC{|-Ss?y-X=qR zJ-|$f3w6qxSFRc3+~~otsiv*1tzF5FG~M5~Z&1BK<8M$WPg!+OhKW9cmvQEkC;PWG zA8m?vabNXyCw=<8UF{Uzhc~NOdEdS2S;eLk?w6#1s@Z_^@Om-~sPhPneVan4@_@vj zDv(YSM&Q1ONj4kg1<i7*oXD1L)_`0<H^BRCk3VBcVsjj?B9tSCiq*{qT21qAjqqeG z*y`Ez@A;78#G#_#m#f>8^*eag?EBSqRTznvCS1+j>fark#}|2r4Ddd<#RVf)x$CIE zc|nS!U26xl?+tVJH}#Ag(vieQ>+Z@}k1TkvpioA=1j$B|&dt)ZyQ1CNU{=0&Er5HF zWlw6^0K?BH6CrgmOUHC$X@3S6?|kCBY{Qud-)AN)i089}Ytq}YwQH9_04CS>`&_tN zPU~H!5@(~YtOo<J>`R2#A7U4y9PHo&Fa9iZ{0BL9oZ)<e$|XqX3K3_yL?TRjy%yKp zw)i&U)9QPWIRL|UzT#bi<?czA4p;-i#L|q!Mf!LXxsaN+1JWb4-|8P~!1n~*ck?BR zrJhB(Qf2Io8N~8>OrwkK#9Qi@h9&-JRVyWXF-jB|R{*yzLZ9_<<|cU(_e~a+*HbH6 z<R+pIZ>56k)+yX36Bx~woFSnio5pDT4k<&kHKX(&b%kpMT0U;ADF$Bo06phZNIYk; z94`k38`l{+FKFQL*0Lz2%twuA?{oR$rQnC*wA7xHmdN<Qg>Eox_|kAC+YMv)$wX_& z?Wt!yIa}9^{#lyUS^h(Ys29iUynPC=AeehVKMxJ_K;=kBqsRmk^^R7Zlybq!u#4YW z5H|c!3VGpPdY^7@=K`M603j^d^oDj*KbN~DYwm(sdU6f*4S|P7IBV<miVJ*4Rl7Zj zqAU6vDy=%X+1rNL5f<&jQMtbO_|)J#T5*jo##%AkxtZQp@6CTB1EXVhoYG+f$Yl@Z zO`0uli4d7H-a^Jxj@4?5uaGdHHxRkVn>FidH<t)zx7nm_iDG4>0l8ksII%oV7O56q z1bjH1C!L|3?DCMOqr?3>D0YZPB_f%HXO)!|KUfUtff6d$k`M!n8ncLq`3yoDd_eyM zHjx{eo~o8S4hj9;Wu1TzI&3%6Mpe)I5!UY--pZw89F9%J5&dC|d~A&ePt0t#F&{%p zD2m`HZX4kd9$axm1BgB4Ch!!OOf9LjV#$)HtmPFxv*Y1qxmPPY5d8}Bh41Y!vdEUk zq@^3_y{~8%O=XB6UbM9zM~svFl|>bMJeLo3BX7#H!oG6TaK>G^uU#3sfZ!R4*6`3- zaalg$!qKmyd0)Y@Vi9LDruOp@DV%YUNPI!2^K-itCJ0yR55Nf-c}|!^5J*V8f0v;# z7mVC-9xOk&FpIr^bcpl(_jtc5!fwL}qfEwPR_e679GxmZ9-6t$S-fYpWDrR5=0Lt4 zxj6DC;>~&*((h=AEW5Fgx#AcDxstPHhg)*#U`&wu<ZL#`p$|C|>o+VQtWfr#zq~j4 z9MNrD_^-ykQGgNBd{UQk){(Ua2dmV=c-P3}ia<L3wQ1~PO-(@<A+@0EpL4YH+OI%7 zvVamE*`Ze;uR&mAn^c~GP{9R@t6^2wu`riGH@vYy)}h-L(0DerB|b3eAB9+~Q_Ink z#1&MbCIo?pG%-<Tuad@%u<Rbpdh_^j?C^Tkq-X@7gaB1$`X9V<`&{@ER8!YT+1y!V z!`uSlMDi_s=r6fd?Wube0`7X~bH4Bhq?R_=v&v9~GQN<348lK7{VH0UJwJf2Xz$Kn zZlSR7Cv_$dnM9&9m_cU<C85xWUx|Z>5K*$sCEl#;&Px2u0C>p=dm$Rl2RSngW6GYE z4oX+GK>({2DHlZ9hW#<BW@h>m?Fq!i;K07lfxo<J6Q~g0!B@r7V-e5j&DLz9Pu3hH zm`p0}YnWtvmG`0Mmh;&+9}j0kKHBjbBJjltUA8VvK?~0CJ%S4j$1RDmEpPD2#5txO zby8QdKh1brjZ`_G8O|RtC!IUCCV>L&Tb;kF1b{eQ`4F*@QQ+<eXjJ9vF0dh@j-$p8 zh9!(hA<$>qhbq3ccsO#K*gz<w%_9r}TF`ldS0CRIJKLts9*<TkAq^k-rJ~D?5d^QW zG!I{I83hXW7CUAvB^qF6kx=Uwk!<8>%+LS>GMi13*$b24=Q`p}I1}hC9h52i<`wl8 z6@X7+r1~dnrlCn#^@1)sW@mlh9?y>=Jv|-s`cgurggV@wP@bU6wdi>>l5ne0)ZiPj zv4=xa5>gW)vdZ4}iM4u85;5<2$LsIGK@z|AObT`ofK*e&Da=ktqr@Qo0A8%5MYtmx zSq25qtH*)&XVI9k=spAd%tChfBxO(y0$?o2$Vh|B*Tvt*YF$%)gILc3B5{W$TCu4z zfA|WRwWC-(=%#UF{`crSYc6A>Fsam=PtDbz3^(_ovv<Mc?g``mM@K)9=4uDp#j93+ zHa!hx<g|dYMLaxG2N$3tl?#BmV-cnQb-8al$<71(3{w~k*51~qOsO}Y((K=p4}iJM zgJ=0`c^@8?h)$iYjo&i@@=Z=ldHbFCcDTAc{41XGB88801(O9VLJHhWN!O7md6T|G z{1ckG7XxZH)8O%OffhD8bOk}zZIFKMs^yV;eL-?0OCxgs!<z?ON>h0WBj(YvGo>yY zdqrn!{(M9_6VNrjcA~;Oy}AtDIlymV{>rXlbigL(4$2&>MCrD~Go<gz{zC0j^V;KD z9FU;L00^$37*D1q#R}Fz4Vb*w7YzbeW|cnRb3ce@w71drzg$fQPne>ErEq?^_C%e( zM`Mps@8!@QT$EVN={j2};ZbiMZfxmBNvVN+_BW_xF0QCysV_P}Jn9!#2RsqVu7n9! zigtX+whuwsD6*DXD2C%}z5roj{9=Vjx0eAPgi~<JbTMrD`f#@}U_xij$X344&bPh* z-J>5kXOASo6WB8!$dHwO>SG&kdqVD=x#GOx=-=R%xg!Eq&vHQA{u<i~^5x|~_h|ER zJ$%^l^Nu@#_QSvM?mT}R1(;dL`&Q46WBTpWAh^r_U_r(G8AE`-tt9G*Cm2H^BiZ(e z>`>lm-JWw9e~?)j{4MQ>qV$wt#@}V5s1#sF&g98Ft5iM2E)8^3WoEyt$W?BcNT?-# z#<LBzp4m2TjdjTREjX0L_2YgYu>~ZTCd@vdp_F<QY(HLP5w~!h6i_GHi}u@zZ#h|_ z?=lW)l4Dy-6+R^$a*fwlFKVba8_>+i=ueSlz#3=mQ-An3coee8w>ozZb6Mi82!j<V z?`e%SrFk|KihB)fps;g>F^g=hmFsaQuOof*(rZKf^M1=Es9F}fykZf^1C8e%jlvwO z=2d$xcss)E7N_1fA3&6<OD?AUGk%|whQo~c3wybIJC(ns=#c0>4y>E^ulj`{1y>7n z+MVh(H#gFpHQ}EQ%;I%&1TM*pw|9>5wO}|BKrU!!UK6=<8Py^L@?W*L;@1z^7F>w! z-=F^LZiCm!tMkjib5^WXlra0z9<ulZl&@L&=mz75Cy+?C-^|o5TcUy&Edd58g567~ z1jHZ-b%qp(B<Ji^s5jeAQGHJxbZB$}?&BkbB`wf+9QDyCgWLS_xN&{&I4^|af~=ff zv*gOVrhwDAY1`l^eX$Y#Wx<#Ks;K_+M+<d0n@a>95YVdizrQx-QQ-c^KU%i=w%oTQ z60bjD;LstBrr&aOmUtrRE!hsn4RmL-xzU1_z;MjQi28x@twvVIrk4aRH4n#HE4zT% z?9ndG+~>3jC_w_wz8{?)0hBlobh{S6&eXQV6<lt|q2FUHGG`e!!I#<CTLBxd!o`<- z5RS{P+G3#lp>YHgkbS|un1+ySy&~n~Psp*PcG{m72R_WLvU4|#0usOtB!clsP>tlu za3*|<ze%q$06o3_F34d1^GerOAZzBbF0z5~sr*oX>UeP^UL;X^3Ff+@(s3=y<gHXG zdhTa0b@#RJ;kA|D(4&x9838OG{rA3#C^xCKf5vD9y-%<CbcK=Z-K$b$6TrMk8)w+b zIp9T{K+`XnY_g2e*2xNQW(I}Ye{V_5)F4Vpi8*q|5oj|&i(XQ;7JNRD6=O5tW;i^k z#*TM)w)?+rzu&yS7&6u|G-s6V?i=az`98dcP0`+6jsSZ5e0^>}a=)p<F=cVjqFFqd zr?0ff*u-x55r~4L48;MG9L)tk0<wDu*WIw9l<2?fJj|13Lb1w<63miOW7c%bwLi0{ zWuS?a%qk{9_9%(yiaYSx?r9AV?rgZ~B<!JGCKkbQ_+@_B*v1k90p~+*9@LlE#*LVz zVIHr%#9_k6_;0Jw76KkGc-9xZEoOfPmU>Rm3oztU$t4O>w`*}<5IB3|i*NmH-Z{pT z+;bQ*HHympd41{(+nCBU_xO~1j=GhM7!76^#9B?vL6yV!9SSpI6R4nQ+0MftDU!|$ zh6bRnDA-DzcQtv-I}9(ev*|lV#;vN_QCa@1rt%#vgA;Y_1O{B4l}&_lG{%`$0EIuZ zKmy~A`6A}R%G__83i(XYMb3q^ALqgjDvp3GT0XtR#6JSBs@ZVrIE)yk%(QRAu+f{0 zo!R}F^J6SDSnlrKQZcGgXw^;A21{G{T;INal1FNnXWc8QAq-pj>gN*Z^=cX;mZ34U z;HUkm-iVSVrVcOw+7SdHBokCe;<uD%V2pOIB6;Z5sM@<U8q$Q?Bq4NZkpb%lHyZTL zwmMcksberq|3-~08pXGiI#a-31rNR#BeBxYyX|njrPn6f&S94;+IY+=>=D*KHaR^W zpRSU7uz6B^E}wILf8KyhK<^6$e8GKI<?T3rs49Jo=m1dXitN{OzqSQ<wfU^`fNvcH z=Jq;2Guo$iO7%6%AjoZKRiR8A-HkeCK$r-QH{k^xd;#KmySu-d2YXcexSRA^*)#a3 zVtdRv9)|EnITbTL?0#7*U@9(FaO>YSIbhaYpS|A(8~TC1qZr6))puL>^?G`IAlT2M zigDvZOaR0_L^v$%mK~Q*5hM?OK}T5RbnpMTAV$cP8(lgYZ{%5G&QTauDC10rOC8RT z<K6j{jBq!kv@e&XjSM%NNK8;vGJg=^62uKQjvHv#8kAVpvXe>+;=R0Cp>Yn3ykk(O zN(<a#Z3S)@B@&q>aH_i%q6B@QSPxd|saRIQ9$nm4i?Vu+Z7gsP}%KO$fH4 z)nviD?a&TZ<HMcjY_#k6c@-%l+lI62S2^ply-g;<nkY}M)sM?#h+1BJp8hd?6I;$} z-W-KB0t8uTOxt4Ma1@l-RFCaTIf#z|Vk<De2_cZS-bd7Qkow_bI02J{DX%mJVaMR9 zidDe7YO2vS2nqJ?rCHuCtwi??I0|g%OvklD1tc?i$wH`|hcR!o5JqP2QuJywbX#Uu zJ+#S!!`(x(WYTQ2Aa)$ha91Cmj+vNLT^pX8U09%#duYy4yCfv2jp8jzrH}uxUrN1$ z1BhYc4A-f9*}<!(wJ3N5-hMvEpU7e&wO9aqm;}+YEf8RA06?aD`O(GV$v_X~d$r-Q z*>R47D0Vo*5XsaHl4?5#O$Ld@^`?VC45)`0clXl_)mB#Q74h-hgp`1LUB>Z9OFC^A zbj}`FJdNo}@~_)%<6Tl=Q&|L(^x(q(G}cB{C{4kUCYBf)Fk-`pgSjOdv0BbypakqN zV8eBqia?k_>zL{m83Uxh^Xf~DDCAd&-=v2!u1&$~=-QFO<fC?u)Z+{D=YX6N`m!uh zywn=AlP`tBhn&aQ1tOxd%_rXD&6{5i>0{r3&qw|S=59~K)Jk9^ByZK{Gu}<!-H1o9 z3u>IRu)`Z1CjYN9nYUK75#(D$G622412yEEf~QeA3Fn9MFA3=I=${7U)W+{GI-;W` zHf*PHVN1#>e8{f#MI}9WTdn*!(UMjvJUPs#NL8YLp7Z&vjc7=7_pE&W>PQ=Xri@l3 zD<L=)15w9PP>2&VKk%>cPJi$hiVXe2c8g;U{ln3fbZWGCDNm5t-G{u6bqSC}dGCDt z=;MFQdPE8ScmjBFyj>D!-PIrdaXM7yO+{w^;Z=s8FCA2$&6^LgHrUdKTrizkv$|Qw zyWjXn!6?vi43)zimSDML(?6!;j()@^E7gE{!53c_C0<^O0Uxg?@q@ZcFXmzDfed;_ zP-(okTz2bVuN<<$vQNatdlq0O#v{5vU%^iyTh)~9?nBzOmc@|P%u7cltl?smhWFR- zN?%7ENCIUB5vy2rcqCe433mH;di)Z4CZt{1c8(TCI=N>k7A$Rz&YH504s*IFp6&4| zzSb|!@dMS%Op}t35Uri4zux3vpWlL8>=??aUq;J$3TZh`mW%lGT|EH*Hbu%Q;E<o^ zP?z9-Pjv46WKbi1q5(XY@5H~WKhhs>A64nZ7S1M~6_fXFtaw6~E0Dm3iLC(3kfhgK zuF`J@6a56S*}|A2xmW8A1Ac_5S`3zZ_7hLcgtz$Ad`I_A;iMsu`cLRPQ_Wv7P&(0o zSKiC(+&%}Zbj=7YN<sh$>?)>txnzxXS(9t2Y1Q>TrRs0Ej991=eWeowa!Gr4Oq3bY zVfaL-F)yk0;r(Cg0W`O)XGg;)#;4p1p5VL;WLHmbseN6fHGf)rNN_j(L2oqga;_8e zp+iF{c?H3e#b)mMby(SWjJs6uhR*ukc~0RVh7^8@Q>cXUzR3d0jrCzaPsD@0eya_} z*L1@_kc8{|T^WkdJ^o7k>69fc;*Sc!W%r;iqAiRW#-&1)V2)#%@%Z{7IM=ckJ46Q| z@y-LZh2Zn5#MkMPQTOrNr|%2X$pLmUB|tMU_Lmt;IzpM3t{xjPY{{#?Ea>rehOgrE z`j5XhzM=;sGB?5BIuUElibYC$3PZin4-A3smcoRDyNyEo^omW&aG9#dqY+Pno$b+I ztZqM%2IHG4q905dP-ZB?eo&~sh+NW6-6F2_oN(@4G`klu=3?FDz3jf`X#)e=hd&%+ za1_Nr+Q2O+!bR9NBrYiKU#({m9N|Nd5Ch{K+eVtgl+wWgF<Fa83@Fkh;h7e~JiR7J zvjc{~1KKQqhF`#D@s;X<Fytxii(7?_WxI!qV9&UQP~{zHom1$mPnbWgTOJ^h2$c;m z$N1INAK^&vlBjVq&_nauDaNoH2hp|D6|a_~&KT|Pku`pQW!z#mHy$drr;Pu+sgR?* zZVEJ}NSrGHEa|A8i?Y;xKI{`5d>SU*I%AI{y$WgzH7P*`qYominGr<wr#0?ceNJmB z;Si=BhfXXNtCgk%Kx;bfE(bX`Gf!G4aG6VbDb8)H3m;QqWloig#V_sM!UPsv<|s3Q z+FZ6`$>D6&gi_zPEf)X>L;IrqWpEZcRl5W8CMNstp@F!e*e1Kbh=Bc!H=<DF{Jh2F zV=SWgueN}irI54^1VFoX?=XQtwrT|QZQ)=klrW`_m1Y*yO5uZeSFf@AqZMu+wo+f$ zI-l&K3zs7BU?ru&g;nPgh^3lLL~Eu$rAh!7wW($1KS$$>s8CyGHo*!_f<Ev`E>sus z>-mlXXgt&+6au?0a0vKL7|Sgqqy3xza7<!rN0(SP00Kjh!X?)SO_Vkp#}VfI@9;U? z3_c_B+B}g2v#f&@`qpiLwLdBJfOnv|sH$_8V7XsZzH*(h=;j-t=mopTF~I1O3E_gZ z(q;HS!Klm0WwmEo1EPRelx>Hz#dV&qlDV@1DpK!%=0?bvyTsXhCW^|p$dn&F8mDJz z*N@!rV&R*sz^&;<L`9<7Yn^4NSnSzyv|s}tU}?W~6hMYLzY)=A56>MkF1hB51GAM^ zeoyWOZ371}&!!~C!GcX}TvWHvyn8w*dTo!-%n(3tse)@0xlP(zGioF4FNtM2R?x5j zHlQG0L-}NQzz0JE5y|Jtkyou*(tQa~`!78Ch*ZvzQm2U|ZO#26?D``xAz~TT@kd^P zAymn-k2XY7!}h`OeZU=u<)3%pK3N4?a<g~VzC@)78x53)kDYX){9`V*tu(?*)NC5} z@l}4IN)+m+$4?yK?k%naL`EPHXR}}cD85_`=WxNng<|`Ml<SZ3?>mE}8O7wl6L<}l z?#BwEC558ABL1qO2DBvnXi$O5m<sk)X2g8V&QEI}ZBESpxZF9fvf0vY4<KY#;o%>+ zc58M*9G4ix%n3u04*)J|(w+eVo?zFKUhK#DBW_A<Io4C-4ow|lZa^FbQ%}?gz#xHw z2lsRT=}JEGI6@Mn;OS<MOK2YU=lRYbPv1q0<(3dFBNn3HIRC`TaL>EX!pJSr1Stwu z;?`4@Vc0?g_+T_zGNaok9#YVx3~r}=W6eP)dprxHX-S^yLD@?!1=!fW3PgZb>UH{= z?d!##m>y)DD_%r2%B~_|h+ec9VBaGp#XL@(WsgwEu_PevLtLW-nl4fF7i|^$&pNzV z>T02Ytle^<j)+XPAxjQTXE%VQSVR2B*Zi2%1Wh)utU-6L0N~+FcDRM?_kiFcFS;nc zI9NT7webe3S#sAevT-fchCVI$n|Xa(T^u{C@f=5`eb*duPxsNVjn7afKwU{1`trV_ z`l2j*BPb%qUv1FvV-Skizki_xkC4q5(mNs663HCP*|P%1p=_)n^m@*O0FewHpLb0o zNvsxgHd{RroM^0Sf^@%}RDyf8=29@lE&~EA`@`V|dWi^7)kB(Hi5w%QHBb>w7|Au1 z$1S~PnhH0yw{h7SXAe_L0EZ`w(vEp6(ftO?&#wYy%SSN!v)NAs-<~0!TXvW+(94X$ z021i>K9QDv6~rCbGQslOu!saMEw4$hVwT<LUjDSeTOYov!Hi>er_!GEsnsTN?A-R) zS#dS$$`d6@Bl7iusz8we@XW)_LX%>t_$tVuMB6Bhb~kLM#+tPgz|0lNk;4&GFSXv= zqy}X(na(wbEMhXrT-~#O0#k2Z3s`<CEK5_7?72IPk|z>Ci#9kZqoJKyX0bxRHlHz0 z=AvwaO4|f#fUgBU$Sa}2l4D&gJ<_mQ%c=>Tsh44WqatWeET-n}5dt`88^pE*Wx)h_ zCs-oqTI+#=N-`!6;QW@)$HSo}HioyFw|VhM;XCM4ZQ1fN*D~S(!|>S?y86~-*)8~G zjr%+AXj#y0^33>802*kGU%*vk55P(r7bl@`W;!7u{>l8_v4T1|wNdRhb2-R72_(RY zx~g(Ef{<@G`;?K4K`!FJODUIymM+?@AGNb-TNcZ?hGs$>Q1L}-$7tNcv!QuIn8&9# zL5oK)-t40Yg2-h#jE+I@2h&xW@c{uvjv)GEMgAAW6;+)+b_oW}DP?WiENL_^1f!Q> zaWhyy-?qRQkhL3oOcRNer)PEu=wDbf-|{}i<!r_w_t+AaXBtwHCzJF7J9$lg1L7?4 zHhZ1;3GqO4fW&D66^F42sD!7@_IgK>(r~^LoHs+Y(*~qB-jybhb|@}$^1&z#atOWv z%!doG9!JoyYWCr{*^?M*jwe>ofT01d+*WrxZv^aYUb>&*v==LGd_oBbEUe<4+;|ww z2F$uO3iGJA&2%1g?<h6TD-aIejYXEmq^BHZiey?5;C@6;5rPKVl%?BO>Q>7TPqeW5 z_LZZB%gG7SM0@5#3<KSGHQtzrGQf+nh%!F-R#r@?kP58aBVO983M>q0uo+uq=MoBW z8ShCW%m}zok!5$SX938;s7{LC{3mDzw8?XE9rJb`BM_NftuG(TZ^Nq;X|GQ_M7kE0 zcjK5mK=$w)xuy#eH9j6%s%c~z-3U8VsyCmLIkRkIV)T#-gQeBMT{+cBRARrJU37TJ zL+P*A5zE{JY>I`o^Z3qdYb9rdzX87n{shBGmPpk{KsqI6p&O_qAHi$}=3Nknb&h(; z{3&F4jBd;5%g(&eLLSgd)Tb*utdOgZpo4v@0`wODE<(9G?X~MTH7hCb#g=cWT*F|g zt0H$O{g%vu`}_p7y9D()KX_7;#Rzt9Eo$F-XPv%cIQ1Q&qxr|+@K;%Lro5b+(o-*R z&a<$qL@i0N3+x21+INX#PpJ!=)P}gkw}?jp#arTzq%yycm)2*4q?D~UvNP<Nf~ysh z0f4gfH2ZIt!S)(iNbEJ$dLP)$tK8J^$gk7jy5`am^24(R#7A@U4FX|sRBnRJhb#zr z32#TJa;MQass>_Y`9(o)oJCI3bK_|Z-+l{YQS%1|{nCO*OtM(1CJ?K)rZ9O$O7$Wi zzy_C^3pSn%Dy)cpM)o6@3N80Sn{i9?1km~ge0w~D7E5;}l*O?rcl|T0D00mY@V+6G zjYE-BDde?!f;eeok-rd1{Frqg%YU+>n@#qp{AsUiMOr%U+B5qqQGuHj9bWl~M$?-V zG|d5lxtPW0x*3oq&+P1|QjFSy;4)`EZXHQahXutS1NtI&lZK~;g9xJbN)DM40f6lQ zR_#66O;OzJR#Xj8e}!+l_7cRbQ_wR={?rls)ZbTqDGl*0<9h3Lmk4)gWV9H*{-*9# zou75BpsdB!?HZ&z%mUgyEe#BM+I{`~KVIo2-;$eiv%!~hR`}-2bl!RHjvlID?=C}t zoHCw-5158y{!&7b=%A)J_P%Ss1Ck(}?cQlzD_K(_(;0|i)}1lUaeNWksHY%~5`{(D z4<1dC84NK8k`;_{qq^v#r{V8RkpE1yVO_64>}e61pDZT^?{kWIo(HsTQI+av!hbkX zZ8{8c)T#2dZoL<`a;arVjNVg}MKFphXz`Ivp#6?=V{sDvHEmalH96>13aF8LF9*)! zT6@K+>nXS?JCdI_;i9=$9{cLH*YvL@iE{PS*DpbpAA!14N?;(TJK+caBAZ-3``YDn zz0DJQesXo;jqc>&@l>NH&8MfML|$XxCk*kN?7n2^gw8VyKLWP?F=LnI-SRFPO|--# z|9ML9<Z*Lweb!RlcqU}s2@sT#-rHSqV^|eTqd&kh{#!M8XJ&{@_L&$NKDV_h<GnWW zoY=ZdAF(P)9ctAuvD~AAz`p4ItT!aek}xjo+&3RQ)5SL?r_L?9LHI{dlhWRC*4J3o z{vKVvgBf>0(KN54pzKC}+Zh3~ai@FR%-_1t%kHfa<z4;qxFH4e3LvbrG2A+eAi`Yh z)UKUqFGU%M?0ze1On)^QZO^b9&S_}vo2XDTOj!Zi_wJhihXsZx!v#3jpqa(I$K-wQ zQLP#crNEv!XnaZQcou=H@xl(ePnR#Hr70C92Yv2OgG8paWF=-S&Ejn<Q57AQ>a@n@ zyt00f7DTeI)G0VV3;=8H_}CXlixBDu)aN`EbSGHc(%Da_BpDd$ObURblsh}+m|uU2 zxIvM?DTU_25?djSk8YHt{R#+jn0=rsd4baOQKQEq7^YEkH;wdVZ!z}gly{#w)tk_h z$LRZ^ols<f6O#tUTbjs;zaEV2^9`aLIkc4eWI!DgewG84B>;ddn1)t{c`4o#+X3kf zm=@^Q93aKM@z2f6rWXLHe&wCjwzesgLVcl&`P?4G4qGsf#;Ry4C)rjSRMC9KtD@@% z!#lM<%Yk`yoxSdMu{OcN(iu10mb^Gl4zSQMUC&L6;i?25-a@xya2U^ZwD1N7ZC}Hl zbb+C6>CRFh0+bUY@v%lx#GC(~{8;>xG|W{*v`reAF2{yEOxu)QKBt-ikAU5XOP-<o z0GeIvw93p?GFlzNP)+Ty0L6qnPI6IfihGMo7mX$qxAb-Sa`eao@Nhklam@Q_g#}%p zSRXb$sMw-K`C*`HPJf}*Di9oJJxcG2&?HAdoRKx42EeF;)a}SMqLti`TA+SUt9O1g zUluYPVD|Tpd&#|yd7DI#o1KSMOv-=6j)GKEJPR|#Lg;;dY9aa7KJ=*e-ry%i5M_ul zpFmcAs53^?kQJcozlM_aI~&V~1Hi=-WT`Pob|{9*)#c2wFjYBZ8lbwM3iFdovYxqp zVVcSf0R~b4{S@Ol;~2N-sQD@G5Nccx?6`5CaMRz`&F{6)*{<|OgOycxeXK<LcP*O< zcUUZ~rP>Q{nwSTeiVB#0{n8|XDo`O{sXVa_N$LsgVPe|Sc~|4LT+aRGP5pT><O}^z z8|mjg1#Kq&NS#xY+qm4GW=C;>Oh#)1uFWu-0NONq>^9P=BTu$WF+Hb86CbZBp1HPJ z8>-@gW99Md)s35%3Gny9gWEc%<lrsgAN5A&97A3ppqQlR(O-AT)%IDHnzlt^9V|1H z0oDT@<UXwO)o8u8qwlAld<oay#|nCJ9ar-YwU%_@k}H^$ki!ib0Q`_C>geXI;3DKG zfW)WkghrATdeh`Z-<1cw!^W3BV&n7Q%ejePCrMbh!cz_!$+dl<N^LoUMp+OZa2)Hr ztqL3sZbtNj^q%~d)|2oG$)(z+fpxFi3j1SGT)iy{gax5xy($BiT0||H9g^VafqwoB zqk{z9U3|~ZZJ#&hZ?BVQ6U8|iYVscJfPqC|Kg{aNgXHm!V!hz;6d619BK`g)U%2b3 z@haxcwT9{KV@jeHU={cjNk<5VdPi`G#aQ!$l%o(1p!sy7VU4w5K_qus$55n=7JgN6 z=%ATU@}ujp7TuN@j<DpW(V)JG{qwvF9`!7r%R#qY@sHK=3THTQi$hbVfPKv&K<nmy z<LBi)|F-l%9>g!RiImZrg(Go6t*G?Q2eES3JRMtqu%AJ2xw9b2;VM7G8RbyaJH_|r zF@&@m7-SB7dE3*9!mRA{{jyS;ugd%yI=D9betQI{{V5X^$h~2tRAA$W6E2Hm@tWYo zE`K)~WMdB)MVZ1tED^V{(&3OB1!x>XPOG~u-y=Ex(HpSp6J`J0%k}TQC$6<$0OJBk zX#X?;CC3kSPv(W|6-33wac%FkE7gMSVv2W<3ZOeRTtKKQEfv7=Mjl)5hnuGKCL(ME zh<JBqVya9lrZ(wLrO2=KXpSOs?BM6Pl@2QBgVUo!Yp0D=xRNLDX%N)F0&qoI)0lQB zG6+M`UVKz4!_k57L*bhoS%KoiPcFQIVBQ^LU^`k#XMtU$^6e5ELjqByTCHen>sj)p zffKq=?1nT+&H`=iL!2j(#Xr=gP!jhvqjo<bdOftAwA`5=PC*CA=6y22R5+y&(u=NX zm~7DJInAirft|76<q^z+0A$|wl7>2BiMUWGlGYST+(sLS>rtbUNP5SP<e$@ixK9s4 zxY8XB#TyI4<MM32sCyJ68h9ZGw)s$A%38tmF<~@>oI6^9{C$USQ*?flro|%NhNsuk zoDYM*M<HA+aN5W~+Cu_B2s0D%DdBMzl6rc7Vu^T4@M!XXyriqY0)jV$*H%)mR=_-a zfy1k@XCMX1=Rr0<Mm9N7;hsMwG>^*BM1i_EzI5ic0vA>gFOwU$!SroI3t<^m=q9rC zw2)^Fbw=q1Y4sa)TY_tPJZr$>uQ+V7?+E|z$n2jIwft5k;pKO0c^Lu-h~Rs4?&aY2 zk0H)54KW!CK23-T4gv5#!1P1Zx9s<sko-<)-&M$6rKO-kFfQ#|HgA6}hpjx`f{e4= zfNjg~k2`rQrvVJNI^va<TY_08vbkL@un`k}Ll1J%m=Ob+4kt##MnoouWP`+JfC=w+ zuSK!V!+RzEZI+;444*SBAu0eI7K*fom^m4cYSA!bavf3Md-pI=c*PQ=Fouq7Uj;u| z@)xg~#5x>%2rh7%rEnb*p<e_u!+zykN(2<)&ymZvr9$_|3EE?FKJPu%L?W*$Ow#q` z!iPOR&_zw)hNryQg=^GOh0>vr1@wh6`hmYcq%2%dp_3~dR__Ka5Tyey-q7DZ-mg9t zm>FlP46b8J($vG(Gl`Ql&FLfDO6Q{}Z~@NTCB*nXxstV|^#K(p@(ew{X`-uz(<lot zGcCcEVB^37AYBjN*uwv;_u;+l1<%v6WE$XyF}sDPH!4;Bu5DbDXSc2ySunw?8C`JB zR=iKQ@?2@wNQ_bRB2NM^TYc##91|%DTM>tw@u`<5cto0Ll4T_`xdek)$Ukh~ou|Ad z|A>=%3S0a5eJ7JV;(-WGEi2fK70?F^g)jJbY&KmF0s$C>=Nsmf9{qD({(djs3#V@{ zc-*mU%Rcl<9GISbROe|rNF=x(2*s3&cWah77D6hbibs!eX)GO}yrQ*vnR<8@RO8eG z@dT0;ZC4PW{FykKt)$0&Q9Ju(_d(Y-ubt#GuT>Mw!)DQ8$6_IN_%qKr*WD%M7hbqh zC%E0-%BPZn@lgg9Ss!s?_3d58>&Ep}+PNQ~9;Ip-XZZ~`A10zaQ0L?7hLa^tgMLnj zvFAa!<y4Hk!<`XO^-C|0=P%Boz3^tL6J7a=q#j#2sMAg!;XVs{kPu&aDr<tiC91_c zysjTEnzk*&=Fa-@<o!3grd<g?@toVW@wBLfd9|i=nVCu@LZ{5+(Xs|{OhsK;-bSya zzRHre1L$Elo?w@QRXfw*?DcHID0i%PHO1kARL<6J`4}0qP^F^HK<D!O`M+q<|JZC} zSm9XyW3&CIVvO3h!3u};ubzV8%E%B44hZOxI88Ye0vF(J`=9;H|8SaGaDF&!jlOgN zMrO3-SQ5-tP{bFiXs{wSaon=|o%rlhW$`AGM$$>x38=}fVeY}T+T4WZ{jfs)@anIv zJM&Lv6Z?ohLOv4tJ&LIk3-Q=Tu+}NAb5A->a-U8ZGyzCAbi3}|clu}{AD62Vf`7xt znO>E#z=xUQS@B+k!%60VxlGy>q(CkfV`9umi0<0nmY+CG-Ybs~!+JR-e?7hWKM7+Q z(cTAv1qMVrazP?<BJtg%3lHTde#C;TxyhLZgUU=&fZT?K&(}8+&qPQT94zu(CI{Ff zJwy8m)&r!4F1pB~`$*%IVB^Li$J!8%Nfma9IZP);iH&9L?6eq4(Q<s-chOyRliayy z{nxm*yH>=1kVP}D3xEsQWnbW5?6O_q<M+!E!3{c!@pkd@npk?QSIOkuh{pjpT{oDb z?h+vm8o04xJ@Bm9=H#C8y6awSdqIBocI}*QtO3XcvZDuyaJ}KySI+TcZ_DAuu*o^* z41xaKlX^qAp!7fR#MQ0-@_DzFmcin?ARydfvcKGUHu_>RHe3%ci|z7=yB?gU{xX{z zJH_<@Qwph%dagB6yy^9LE_BshTFwNy_&fJJrIg9;sU{ANLC4AR@{P?v#oweMrP%^Q z)dwt`SC(*u!zu1m8f)8gWV(r8PKmQYCY!9sqJuc+&UkKGh^a!rtmA=+%^AI3wcByH zilo)Q@CFd_n0|eX`vkWx-0wCqS{N$k$>+`H=AWLQ-fdVer8QBSqZKBco7VG7kP&s| zM~m)yiOtvG#y#oX0{Jk7J?@01BZPbG1p!K@%GZ^DijF<~j4Z68O=C_!YD}?dR7tXx zsS!F)8nHZf`|+`A*79o+hh?dvl0&Cb5A9ShPF{9&xEfi%_FNwIJX23oeuw1;h*jo$ zt2dotauAs}UM!Bo;vn;I46g8@l5@o<qTk`3F}0io?yF8``4mpNuK~KP)!>~e%nqPH z+AeE7+_r$KYvt9%DI_EX0ha0^vyjtf<`|<pNb(OmdT|FkP?xQ(`&1?JhDJoSN#M;Y zkdTJe>LT6Z8SO`^1&XZ3OsBkA4Wj)PB|G@k^ACQu<C8S&$KjDyR#%XF0RqTaj|y)@ zJj9*h5+-fSq!jiX`6|p9Z+Lh^VM@RoXII<8-sNs#(N)bB<xW<}OM)yDITcRBNc@r{ z;s?|N{+t9?D+C+%Gf=;?{H}*SKt!2~C_M0#L@GOesK;%_ylZ6<P2C~TgYz)-*SzKi zkcQhvvtyrqRZM3kJN-_xa0q<~#9qOM9mc}3yYH3@Aqn4TY?OQ&P#-WF`UwC5UfV_j znH<<p_Kx}_EvVW-U<oiIkkgy~3H6mbCy?XkR`K!vbS;>Fy0)abbZrR;-kl=?eFqxf zC4Ig-xQIICw1Vt8$wm}$1$8D6`=KvcMz}4eBQM|+w9s;9^Mk)C2v8%UMLiy8z(oq- z2NsfqiWE7D38kA#=tbNpbOsoP#izOrZc~5*-D-E_+r=`O8?Zih5NcLFvcQ+CAm?P) zUm<#-tz5Co?5tQlk1VvUN$nZz#c2&yUv$v+6SrRXqXX@gP@Abf^~S&5)Wwk=oM2>2 z1O%oU295$U1w#55^MQVP1F;FbIX{-2-krLD-R%;m`vb4uqd8RpJp*K8pnC>LnlpP1 z@NC8(bZp%gPqe-Sldv>g_Q*`ZI=5|>(R&U8o7z%vutemW(4*0#(k-fbM<QPy!Md(M zDoQ!BY)mUu(lH}7MAdbbbd2Pg*{9U(v~Ag;z7@P1;hLdDmKSP4P{^suyOYtGEOy5y zSxS{Q^@R1Ar)|@0p8(*5V{5OCbY*|lrB!wRCXMZ9nxi`<zMCM}NKaBXH0873Zm#~| zCXe%kb5#j2orDWWA@eE14$vKtJU!6DqIf!>xe=?1B7PzljZllpZqGI%V9fIBt@Y+> z=<(7;(8h)3qJ)p;e@6mvwf4Ef#}`Xy_cg{S{LI=vI}Rd}+W{ZNWu|fC&d61tH2nf4 zM3lOLso}!vF)k>hS`e&Q$}$Z^ymL44q6-Dr2|IWmzyTUtTT){tH1QB&LfyZ$)3XZt zg(I`z-q%y>ZSRAQaM0zPz+z{Del0E|H8M^Y<4!9!?F?S{E@4m5w<~x%8g(>t))9;V zM%u5zA8z@lMFFCa9IFglD?Ex5)WYZj&l3>HnET0<6Y>3VJYdo^<G#Uj(v?bEd7j&8 z6vJky`|rsCRrP^d7gn&4pD)}^j^((_;+hpdYfDwW6_yf6@igRI^$;dNkDmP)zKF%M zAPN><6-KyNIEjM`AynIUo+W6n%qHL(ZSO=x8tqK%Rsdp;{KU+2I1JzqP_Txr>DQ9z z21qcu(HlIB-v!Y0nSOM!>!hjkQqwqN6-4pg5Ke!xo;H*rE1cI*O+`+rrQmW!#(E-5 zK_Nt|b0PiNP(lv3MaE%KgY!rZ$y13*^-3hFk(p%^RI3g#j7c}ZwZ<Wjv0{9g0`c#_ zJ->$SQUM6>6BzDWldJP>q-n!WHc?;pV^MS5lSzHstH*e1Di?4*J4HoXk{)S+qD0-i zAGl-*UqU@MHm~?-By|Ow&vuWRYCWsMOAZ!>4a0-52^)qMiWYg4gjTPa>ZMFCCXeKd zCcQbmB0|ULL;wWUI_%%9U@aF-8>mF@AO^@k{QyHU85?=V+^Jo;iU5;jBdb?93PYzz z#eiv5tyAu05yi@DC@+0z%5KdL8DzHXak63ACMZS0qH$OJs1)L06*I~0Lr@I?MBlWW zc&0gzhJz4wC|q#k?z<|F>){_L=?r&@e?wQ`gv=gyx5LzwdTTL^(0({r<{${12!y>O z%K}!Do%msVOD7r=E3=<`euY441VFjGq}Xi<sM$<okAoUDXD<#?2}R`-Dxqm^$a4He zF=)!PU_T{ifq~{#83_O_jO<p^QZHbmWI}fSB-T(%Y$HCJ4FA!71|&>_5oo}m#qd|P zjr!+ZOzOzQNFXdF9b(W0HV)ztmrjXsCImpkM^%ob-;AX~Bnw}HVz1yQexW^#c55SW zq^gU_4qch=)kA@U5)<ft#Nf3_r}VXbQoIY5l$ZG}5AkToJP=Dk0&b*T30W*P(&}+@ z@b+q8y1%;*xajGEXPb#7CwE3F4=*pX0b=BVK^-dQ--{5;$%|raGopchb7!ek16=^d z08im>Ch724Q7SGhB<OHh@Y{672w4plOA2&Nb|NG}x^gIQ{`J6kdT0jZ7n7Il_<<ek zfxuyelu@of3+Hx?l65V6lJ8iDj}iA-vcaSIcP5cziS(AK>%qwR9k7Cdp05dx?)sb6 zWb>y2C4~U`a{4zFiyUw*85?N4@)Cd$+pw?{r2-dHNDh9%ure&{@Tt1c+R}je8pGNE zo<I?>m3RGseSu0*cnBEP$sw>6C|khqFzO09NFyLS4pZA`5+K%0_0+tI^x6dNr%ArQ z`R#8eR%AIdu4Y1!8vyBmWSnTzHqJ0pgdcJse4Ah#PtVkKo{?>Ymp{HfFL(evDQ#}^ zF5sj4oWVmYqr({5r+yhUQVBxvASRRJ(W|#ObJwMgycD&<@{=WyRB#y_3a~#E_)P!) zdM&&+^3lV};d1Bt=~NCr9Hp8Djsih-nJb;KJj}WXj;2lr&a6I*s<a@;;9NRQor4Zz zat2wDU?(j1DYM}pp7q1n)K?M^rK@1CP*y#P-so##*8f_2Si>YJ$UFW^o8msS6?u*U z`5Q4Yf4^@LcTKpdq1-OWgBcm0u~Y+2gfxnbW;lT2d2D6^oQsf(nwO_y*6VC8<~`?) zct&dwGVkV~=b<g#if<?g;}V~>)5Xa`<Wn2<E-={Ld=8CfKA@?;I?D*KHeEm5XTK5g zPuQw3NaBHxIk>9fh4dNQ36|S@J+_xrUGEy}Nc?QXUAdp6SM|_$R!YHBNijA@a0QbJ zLEKQzW;XjEQ>*y79DXAB!tF;0E9?Y`;RAF1X(TlL;FHEF)cqt4MgJ5|XF+#$br<2^ z4ka|b6*j#>JlME}{0OkZBpO8kS#)q1Ej&bCHj-8iUz<9VN&S&8fruyK!nu1vU0QUM z)Q-~AVAM_}7LtS*A`VzHVDr{yv4gdih2@ndchrbx%Pvw2f!58SHyeKWe?bEhJd6+E zJl}iCz%-!~So}0X891c>3F#E0F6;6S(&<h!e-gNuWYOKEt#ve#LY@zQ?l4|@5s!u& zFI-DUO6VuJkhFW&S1!1;a$yahBXPve_14oZbVL~Q1RLg=yBtm0*vTiwcnpJ7=5b0D zTroAWcts3p3Q9R_1sVce5(fZECm<kyfGmRnrl$3$ZOVC73@e?>W;2dKiJ5&B3Iv#< zOPYp+OoNoH1zj`(6x_RRfLjp}OdwIxw9c)vOGOi-QElB|Zikf~YB8Z<Z-;-*=f@R% z29jvnY>GRN01r&r!GkxyV&SRH6w^~}!SBnG-;5SxH{em%hNEBGd@%qeuUxVrYqk>M zq1U~$kFck4uD80+$FRaAS2-J0tNfxG?LFU~&aOVemfL%5{7WWq!Mk+0*e1*OLq5wf z0H5HLBF6i^+0EO?KGv)P_SCIkct4dY14~$c&V$4-|AvR%3QqkElTLCOBDn$=w80~0 zdSC@_W8<OX&{c?UaR;C}GQ^}XcD279o(p?6Y3}GU_i^p`;aon64S{<Ag(X8owRk>o zS`zGT6=Nzd<#)d70CR^yb}_ii1`4A{-C9MBv2vsCpXPQ0+6rt%-GDU$H#6mVU>D#- z-QgFsP>4i5s@Y;V_!72k`$E}*$;p|^C4=Rw+TaNzYA#52Pbz>~wU9B_8(Y7H7um=a zvM)<{i2;_p&pvw63I=~P#D|_L&t@pjB{=ad$2Z%6yoWdmx?l?~d)_IoXd*5J$o$!t zkvy1>*dE#=*p@CPXgc8m1<g8aI+2`K_T614DO>wVH?C!Q)ffd4&OVSZ|Gf|jm#~Nc z>6CC!CuySVcmuFJtLq6Sk9Bg2f(41XsHwxP#PHZMz^8n#85zx8u(CigdK2sNBeMPO zo1U<%=u=*{<6S>Rq~p6o;t1ea8$S4BP;%CAMyF*2k+soJZ})l;`bsbn65JdL=eX0I zzGeJp4MBjhAqwLdpv!`O>21=Sv!!pe<NBGo0HQrQE@%ezfi)*EbB;mqAnyv=#~LL4 zK@KWVn0MoYuh^c)X~=zS2N-!3#g*Q?;F%({FSCGsL)g45$ilA!elM#CifXDl-y6{q z{4SMtJuMIe=xv%Ed}6_Of&OoN_D=>ND-Xx}pA4WaMjlQI9Q1opkhZP@#|rs>P)+|t z188j&s&F3vq6qS};QkA`v7rUm|F5Ape)JeF{u}+cg!AwGSl{>m1%ITi>cde0ObpN1 z6j&`OIk_drfT5K{rZu4!V_lN2e}PLyBC=w#cPJ<xH2huHzhHQ5>rzrPgTDPJr>P2j z6)=&`MJKOR!LSH^Wu~<bFzszyvqN)rU_{}&W0Fmz`++^XM8*52guzAER9JvS#?7Fc zxIqx8*mHc>$hE!Y09}<h;wv=<SX`Wg5u8!+rowDpoQot$n)dNAj^>uEtNNLnHv>U) zK`32%$NKgC9RQn0Vv=5o`f~qt;|R5ZN-HGuA@u9@@a3iA>#XdgUXv=TaXJnIcHmh9 ziQXbEt`?wQjezk6*)+!ZH9P*zKSQbZ=Tin~f0WwhJ?=tG8qlAfUEH1lP>S`YDxTk4 z@gw3?&>NhCUoFQ;Cj(1^OU_5;=wh)I5d2H+Zbp4>&M+;#&^zL$Ol$EF$jOH>63e5U zgdWDDT%-Aipi`Hf<#9DqiAz$MElhti<ki=M9T(U?a3G6xB}rZ+hWaB-%OvWmc9GMX z(mVq4yT!`HQ^=ZyEZhD9u3z)Ys;DtUyuK^rX4*91sBhy$vDi8Rdz}H6VGzDu-#$X) z!^~1yJ-^#S`4li}i^U;u{#SL+3_%FNxvxj}PX<FpW_7P@V-eVaB`&~bCD`<UG=ghq z33u)}o!eW}t#6?0DVXSYOFC;gO%2@Mj>FEOcH<RHdD_05&_W$R<BRYoJ#pw6K@FrG zZT<nAX5J?UJ=&S5L&GspP(+I+45?A<9dWoM@mPgguTrbK>Lc`uDv3?qQxvx{6x&hp zG*!8JK0BnmkB&-HG)BN}NimF<<a8o*4}_499&4^C=zB_c@p}TIj5-F>As6@Bu)Es} zks%KP6<QC^$Uz!FC&>y;G0d#jN%p$Po|cNbPzSnnqL9MI8(6^syJA6%-b1G)wSaC= z^qYXcD4R7h_cEORdt1s;PmmE?=2QAZD-;u=)m}$-iOtQ$(k@`P2!t}8Vk$;Ra$=Cd z_7?3V%2r<A|L1gtEreTzsZDFuCL5GGZR1|v@p>hyN)!Yj_^gybI{EWKmZ`>%xz6uK zygoDcM5ol+hc{4tjRJojwCc*nW$R_hn0?L}xVm_s4lRhu_V)y^4m`r{O2Vx|v<tQf zc`B|kzTx?1S>9LyU-~Z7p3V_vW<NGq0?eV=pZooZh;Lg8KpTv);KYc!7YTwc(Pu^d znwnvmj)DeYiN}M2UM6O4V;UD}>MpzT+n|T~4}Oekx2HH@T~D1XoI!l#U4Wn9WC!C9 zM+4LF$0AWJ>i?qa9m6VZ+xP#>m7DCzHm4@LCfiN6Yr@L5ZQHKNwrz8=>)(CfzX$*C zwmolpac$RH+j`M?9{Zus-V#`b+j<c=2g_P}8+_pTWvXrVH|P=O!;naiHH34Xlo<zD z+ccN?nP`-(|8^9_^~bzg=htgGIv6`FT5Xr(<OAlJjDiC-QPU$}pEHSt!dTPSO<PNY zU88*Sm<zD$4E_e~RVAhn*2!yHNvBra>ok}r=7S`}wF;w)P`A^tWDZ)ZN{fpu#M|~e zaldmpM4Lu^AM}ve?{L#RBv0%#$2+kCitc~n3mtO`V1K(BZf14>(+O}lft_jdmXo1^ z>i|nS-}VYzdY@}xnOP-*$g*u-RgaO&Gso8TAjylkVsZOqjy@N|^eliE1y&_nP9xO6 zfM*LCgg(uaNle|JzzUL2(6-9k7H{w&Shb}5{O}KL*O6}_q1m^O&8=A$yDcmz6<!Lh zQVdqe(h9Lab93P+yj3T<c0;4Y$R*H>Mk9eA?KIpnhOeQ(lD8G1qMS)>8_A6i%nT+i zI+|&2+&M$?D%KcP>Vp_Sg?s^2g~BgghR`F8u%l-~Ia;x@=YC03|5x9grJ_6BUjt@% z_#`0CH;EWor0^RdO-vaS%>a&A;|<<4i)*^O3e#3kQEwr}iA52WeHPGxw+><yxw%|% z=cJJ^;9wolk-h$;TT{KCOLOf6p32|~Uv<i5l?BQD>wbL<b*QoDM%^gz_mM@6s=!!} zhN=Xpl~P-NId>~1O_x2r&V8?PvuF>au+S*|;fQ%>;l6Z?g>BF$G2M|-!iS~@Cp6Dz znYL6!m&TTk3W-HOfZ=oT!zke0o))K>)<69R@h~qixQ|gvDpAF;8ikBZjWLEo%uMTu zOB&Bf#pV?O=nzBSeO@Oj_5^9ySJ#Z19Dl)cw$}FD=L;S>Tcif@45n9CmmdFzd1z55 zwC=&(1x3N;yaDOKte!J2`c_OPqSLJ-clad)76CWzD|eNBOr0@O2F+b(LSxTI5c}{O zg3&2ZhRac`j(tDqhfqiAQTpz;pb=(pr(eW6;Nd1B#~hAz2W?^yi3RE{2oBRW3-WS7 zObiL0jsRjYR8z)4MDKUM+388gx*!gh2K{!>Z72tHxgj%=xT0jNp0=<1%)0t+4NSLe zJ3)id%mRu9a)!tdWWSt3WOJkwIYlvPBh6BQwbVWa>6@56`bVU+MQ~(q(X-Y0dyl2X zrjw59+dPkpkidrZ3+2niVrR+U<t~dg6$7htP?U5mFe6yij#8f9E9DeMQkOR*O7}=8 zNF1y=gKQY?zN^eUO1Zx8lR=0`4$VYEq8%00@6&lznwtKn(KbMn^Rn4^U4fD_mvk#& z$@yA6U1yn&XpxJP8{Uc97SHe1)8kp?bz-5E?)7Jbq=#Z?qhF!=;E%g+dmHhVe5BT@ z?zzwn_{F;3s?SqPaK6YG?m{5-Yu><iDS<d!EKD}_nU&WSalE+(XcDic2{zP|UoOEU za&&y}D1+&IL#E(&-TX1o1UOv#g<b&QUBNAV0iiIuY}UON4RZAw+zCZdWeMtCQ=bKY z$<c~xEl6*>s+T_0evN7#yoQPhw^!2;81wmR;Xp7{C3eL9DuvH0!8wBa+lD1=-eSGY z;MY_g!*xVL(;27v)ho5UN-680ub~9&QNM@?<PkLXteN?&=A@7gzOLAb@g_%Mn!R{B zaU63re1QH(2>nH|O*00t{)@NLv|tSIgh2RwEIPG-l!^iY0+N)3asY*w<Y56o`uAJ0 z762NEzky0!HlK3oU(~W^8-T<=k3}5;-~RnL#1U`-{rB6yJOKZ31h4e~OhW$+PK!>p z$SeQsWIjM9$vXn@lgj-8=>MiSCE4M9_Gec80k!`ioT7vN>pO;m0HyGM6V-e{in9hk zf9^FxQqDXWZc<tt0R4aUKO0n6tye{nJr`AJ&p=4gQfiB(Xmd)U2h6FvO2Ajm2x(0O zVuZ}lK1ss$mRQdZ6W8Riu?$Y~oxyt(TrBR!oIKp5vU|0*T;w6Qk+K>DQDA~4NkjhN z1^%ChmrO!1(3#(p+-J4Z6lfG!hz2Quj-gUF6;|jHyBZnpYW=w*@RVDvmy?fDq>nCG zHgE5t33JUsJJBH}%!pi9qVtt$fX)~5?R0nfEZ(b)^D80DqKd+R0rQ39?XYWy&ZLZC zZJ@|rNchjno|C>#&niIWZx`zgr|=NIr)PKvU<V%`&U!mbeY%S?H;}ie=unq$;$8S8 z9@~wW3oaM(rn~&Qu%7GBP5<rg7v8itzJerG*AJs#Ie)aExHjy1FX&gUF1Q6TNH^(= zFr&KAK()RF{Z7@<(I&az_EcIFax0>z+wNqicL`89XD(!}IFn0;kES_lzcfGRme@i> zm$>vqdamR-L2Tcy*#!zzt>WL)S}ZkbEuJF0$YAw;Q%K@M?Y^t7HBybahwjh^Pp<6A z@HG=y%a>6li{mT4EBk^BD-h0Ba*`lS(9Me+<L|CtMylq|F2%OZ_^z`M^W<#(9-L%z zpQDA0Xj1c2zStI+t+dBM_9dqALlM~>g)Ek{@shNY?n+To$Q9_OWbJE=-7?Qpf@?Wa zB=hq7z?BgTKkHkpriCMObx<DKk%3Ny^}|x_bK?FjCb+Gb(5RcT^#hl5(uausJpDz2 zcNQ^>rCFRQak_t90U;gg)o-$=GMk_!FJE`)pS+V*@TIZ47q++3kv1B~QSbygc$Qg$ z3kXi2or~njm+e5B($mBiWcdRFOu13=e(&@zol^<gW%a$O!RKW0#@6+SZ$r*zo!Min zWNGp{GnVnirV@}#c=-93cX;h=RYz*RD$IZ2)j(zzEX<pR5hYT3JiWpiDlSo>yTP<@ zR@V^yPeOapQP+>4e@+~3YneksU6IKCVTE(pNl)lSy|@KxXfzl8@Mi+DEFvK)?)-3l z#~(vbv@)q=5ReUPa?s}3lnrm07WX93$EDFpiKS&8XA}uPEUs)|+cn1ZT<5hyL-Bh< z<1Ea}NYL7^q%3aj1tY#Rylw5<iE%Y>cl|w&aH-muO`@Jpg^myyzup_iP!Aq3sw2Dx zX`NlD9MS~LVG(GWkW-v@opODN^yuo9xrV5>D%j)UZyS-zUTjj8xFD7<`XJHo#8H)l z_GWS`JvJgEpE-bDdnJ}E<)2FS8@!l{X^RMUV*{1>t^vLn!Rjo%+Dxt#@l}sF4@~T< z4~0X5O%@|UX7i7$Sw&i;!QF^S>zKV9o()HW@~Z)$67Ni3YJZi+rWuVotg2YDr-&ly zY;h8YEKX?+<zObTjI9*J579emb2HPd2ucpeP<bdJcQkHF{zancx(`tYneGuRb56QN z&cKP_SC#xHNAk2!@jVlxihZA#9v3wt>|F0UYk3$xkKPXZ#|j4SjZmXt9gC&}&Dw!o zRs<HX<!rS<rj09Xu2~_$d00s*AKNgZVy7g!x+ZxXA>dJFMNo>B>XN2Lh1+W5`RW5^ z+-Uk{GgJ@H))_txSK38|efL>|sX71mxo3|a8WrkvpGsk(RaxcgoJstM;;c1~<rx85 z+QR>-DCvsuu>S=Je}+oJP6bf@`yy?UNCo(Sga38qk7s=LzyBX%s|hL-fbtKK3nvG_ z`k&WTasV>m;D4pch4}#9f2YbP`GCWJNaT_6vH*_HD_0BdZ@c8A=VAcje?E>}0+9O$ zua`n)>8<)n`!hjEn%;oKO$w<1!2dfqq*VayAped6)h>_cz|Sa90Qq+ojqYk-Wc;tz z`@bOPe+L6#+9$2@Q1y=js5Y1gENsY%QW}O#f`-{itGU8=TE8kZ8$A}oRB^?R7fVza ziCHr*7{rIQU5ClL0LhqDm}yC6RODK99hj1{&^je#er!b|I~5HKHvaEl+~{5XT6dJj z7A1F-U|U46#C?>(?dUYC#y^oQw1%+M)wDS#Ziz;~0&IGzmqChbRR@=-iL`~3qxapr zd6V0>`<2e>f;y$rWGEkZF6|1Hs7{v_S#Q2n7C%f;{-dEq2T@}rleghn=*eZ<wejEU z$G6|_zSrSZ^rfsIWDp<Q3hQ$oGcc!zNrsl5naGg?ZfbQ8b})Ct_+r8ramOUGR7#e4 zI`G|rvLwBcLA#tGqVm2}_yKv{$Uh8l1X!{9V5Q0BIRcJXQ1nY?LU=OLkePmpDpBM_ zcCB<}v||y7qAOz0F`>!~`cV#`h58H(bA}9XlDVd5BJA1<_g-P+k?#hWc}xJ@un3tM z%D!zU&%a9~^V#s;{vdqI5?KsXwYbsz4kL#Pl<30tl?hr$WnQUs`r4SmUUpB&l$&PM z!#7eRne-fBVM}KTDUl=6NJ*md4J|p_sw>-_F2$rFq=C+AMPVPC8dS>D-ygDky+fhE zp%XxuY4W3pW%2tb$iUBt)8W_namT<uB9NNX2;N~5<<G6B=Sw2NMi1_o>mSIu4l4dl z;42qLow#q@OwEs#T4%@$m(QL6<^&z(@Ro?~SOujf8rKF&fyRE!)h*3?+l=&umqZYR zjg;2mvX>i=Z{*H{lJoeQH*Ns=iQ+)W=_9DofQ#;NTm7k(1Jh=YdZmobA1hyoxA9%E zqVwju)hf}l(~Oj|tdHbW=Z`GI2lF>bg#YNL&pE85%?1F+zyF=_8vzX92%mgC(L#!F zf3eTetlp$Q+MoK#spWqcb{o__Y-TypKRSQ`^JtPiwO*QBYV!?X>=3A}JWTvWnnC;Q z7Y2!aG3S<LQ|}M%&YfK9Dx6ba=E(0~u4^`L4tZ^8T*DbRjH%Jk4f}TD;R9;@tz7x- z`q00S#&+m15t~*u&2#%9L;(#m<KZr2KlkVqeJ#;31Nw**X=4lgSB3tR{G9OL>ftcl zvK%$_E<gp9XC?H<Eax;18QI(hb?`yUL<gfniQOSW6K2YM<gHpfwIU%Qdw!t{A=~nD zIbhdwW64{(e7LI)jxdOT>BefMaTFMW*_~wA{LRy!#n&!IA<lVmUG>RQY~BfzD^a5F zShhW)H}Uh^H{YVW?9p;7;4s0u!4=(?E34MCW8(hS`R&hGS-uA-^@cfeDJR(5y#1d! zP41S#D3e3N$?nwvxA`oa`M7t^l;Cu1dsZ-8UG4_Y$gGISqFIw(x(Es3;V%K>aodPh zRKs(KH1;xND#ZO3J@G)$?ME3xfHMrVWnP!!tS2A7DMUb8VkJtpi^gootl46@0d?-L z_XyBO1#scRZNz<$7|>u4q8X4j+Mi~965dXoraW=euFM1xJQ@4BN?UlhLDDl;7(N5d zQmxXI$ewl{bHpHRu!AJVzdUy_Wqe*v&Nn`uj%3K=uBLDMZRvo?l1GT6@q(3x5|>22 z>17!qOUwW-YSVx_U6_?JJWOtmW@K(?y`u!Ed&3xR9Q+Tt{LbsD*QeVjN7iTAZ1TM6 z4_wM8)BMcd-<v_CI^gEmG5AwUzf2+*oO&vIE_(apOoM#9*omboy9UK#<bOvT)tY#L zwTh_8q3WliCC~uP>hDmpX&%etsSmCY;3)?gFE?hK;M(+tkCFUU9kB7mVK&Jf16Vky zY1|lHTi0rXGjG?!7(DgL_yDwcgb9H-&Pxl)2B>eK`QO};K?IWX>3Uo;e!!}Wp;PJX zh%g~w33OG<&hkb4Oj3qRpq|czR`oS0;ko}6VWo!})cqAG#Sow2)@2<{g+W0BO^qMV z^!UrY)gF(Mb>H5ijY$_c{xBvy?yo186!;CN!Ic0M!#i|=*8Ai}wF=ps-vURp+)dF) z1J!seHY6aPdy44bn;WfI*3pL>PA<g|8~ZC<Zk5j*Mp%Mhw?_!*Z<(<xI`Xv{BdczW zCjDSZ)wVvMTciM(?lez^ndr})FunKuQ6ld0k;;<v8+|@iicH<wsQojJTME3d!c&PG z2YRG%!w4dzKHs8oyA@=R@R`bQbP7q;(-(SJSP4^^hCaCVfT|~&jcME1?g!$g9NbRh zCB@qstj#V#-l*uL1#NJhGM7l(?g}36L$71yHjY=o>pxkeHe&C$1k4Y_kQX0w?rDZX zfw`XbWTC<oHrc0jDhM=nDpTK-#|s)-xfWCJR#x?ky?{N)=y0t8_@7%*7`<T(VWZ%2 z-xC8wuq$-eK&g?_<#lIahDn@ukWD#Um?rZxT&c%)oCMYC37h*%s1{q^u*y#M=w%w4 zeowRlb60#OjdxEkeDoBagc2z+X4PYsVVF-rW)8d3kbEF9Kip<pIjTzs#vxh7V>WgW zpjlrY#<O1mJ+*=9gG~^YE%Tx=Osy1l7L()cRwShtxYoQEP6^(ze9s5PsWbw8l_m0O zM-d{IDb~6{;y)mz8;yV5pd8=wEcMSTwm1v{d$nr2z&5noaFmSkCvD<kR||F<)Q0El z_i*i3+PF>l!iQ2t!xn8P{qD7L6Ur9rhILQx$_e@kbYzINtZE}>*!SxBBh7y*W2zcO z$mNTtmX0j$<P^pk!%tO?x^;WBYnJxi@Z`>^)=Vr^D_AwSwCGIt2_{u8LN$+#;5}sn zEq?fH7H1EOJ`5U`A+?_^tEbySs%TVbt%K~j&+<v5NL3P-PD=puTEeZw=O$qrNb?5l zsLva?YX~pkra<k-I{Ho+Ksb2qWZ}P<x=ydo&g9-?=dCSvya~f-=HNxM7D#OIwc~ky zFOLd*K&cT`qd*F{sOY2h9SrD!RA_nxHu#4gG$e#Vi8ic`w_FbxduckT;DVzrXi8PO zdDd-k?~k;l-7O3#CA6w*ORO%Plxe>`WCRM!OdH?rOG%ZI|A?-A_x>4EzUXYFXf0JH zF-X@BHQ#`a>tH4FlB&V$!W;?_vNLQDvhiQ6*S~UkUG5AoP6&`B$Zi1bzjYsHH$dT^ z{>A2a%!tgV@&f*&ypq=a{=ujIOLaN9!h?W99DQoazyD+?o&E(3f6pqa_7_G?)T!0M zTu?@HR48CV1}J^<!uw<`wmG})7D%>+9|z;~d8{;M5S7&=OP@c%$eS(uuteV^nfAj# z(3!0P6>9mg-i-7=iDCS`$<?VzDLIun!LSpAi4uXDWYyRO60z5G<|Dg~wTWON%wKT* z1AmHJ6GuYMQC;d0W91Q#MGu9Tv?Lmd0QR|(*T;=#LvAoLaIt<oZa+Ieqjmz_;YInE zvXT^xpEyk$((V56Gf4o;RcKr`v~KQxRT?&pRj_zDNL<YiI`8hxrmWhhPHMI7wPm%p zsVV_C$G>}87K|WzSEPKYvg2^%Vc)#G<<7Xl$iotd>_jey8+hU<j)#jqtcJF-5li06 zB)3H3@d7du9qPMGJwRi2G=J~Y2J)|L6P-D`ztAfcATmYd+pkH`$f(6xk)AzaeO0$W z;xR^Y3d@g0v6{{8zSP~4J%!@X;Ap0I0^b7OuC;#EIBKL&LVM}WxGGZa97iH&^7bWy zl2~S>prF0?F5NG*drsaF2vzQAXn{o|%`0fNWv%qB5Kk^C{sLD-Goj$WJ&--EBXXd@ z=4Di&<>2cdN;KqKj-PXyJN|Y4qvi#jZ23l`@q;sMi=bKtD_eBRIVzBkd41d$NT&dl zNQZMFT4gOp?Tm*lEBnnFP4o40gNSV|kE7se=dNsamUE~OFI<RglmwP5H)=s)A4I5? zvH64g$S2xLcom!}HaNn1E-CPg3QgEE;c+@(Nmj_pbyT}D^nFP7jBV@IvvdyXE;OT^ zANXI5xxWzh({3X_2OyG|hXC~dhU}XR0k-~0CQeqqI-Pwc6OgF?n9tgd0}%dKou@$6 z$_9rE`F*0Qx>?GlX*<#1q7({JZq-&fUsAQe%#mB1&aY!@v~&JGFk9#SC8Fb!Hf>KM zA3|;N+fDf4mmk8QJxfwbBv=E%&~~Kgl7gM#l)Zea(#X2b+{-?C8IeU!Yewi0^2tCN zEq@)>4pm=TWm0BXI#jfTuqAwms#|PX|H~Ulj5E!i{F8I8(2(fzMLYXyVLRQ0nsAuH z5TZ~qeK?YYF6y3dN*YbG>d(TGw~NZPdYFoBqO;gI2p(_uyZv16_D?7g(bWr*{r1df z59h<Sb<1PgCI&zFGC<3&I>6#voXdc}iOpLw+pf4Xe_V)ac+Xy)SpcthlG20*YZUg% zjt^---mE*1lOP!vkg>n&f&I}2*Dx>_=Wp-me6H;$gz^Jz{8jLa|404v^l_J_-1Ccl zH&l_|{_$3@TUE!t#dTmhJ(aqWGG}u*l`gd$ZAiYDlHWOp5yVo*Lap!P{6z?GXT;<g zaFOOu6PO%~t{bb(HL|DhM{Q6{iXl%9g<ymjcKQ}>{W>~#NXUG=cfQgb^#vtI+O#7< zk2e0)wAbG<d1wd8zDhRI8F5&W!mg`<aL{I?H%Rt*vt9mxSX^YsF!3OeF6HtL8G>dM z<*ju$Ucf*erkKy!E_)Xe$&wDZNVP{)B=FNFvn}b^y;NS_7Pi23yuPjRjxW@jtL_)o z3lDkoAT~a}X2D1xodG9p@sugr$!gEC4?=Q>uU&xF^N?_roK9KSU@Qvg227*DgY!9J zfD^`7MbW%U`LoFL<wX{8hwS9#(|zpiGqn-FM=e8^>5i`k^hi#H)pBpZ7TA>LY=<X% z2p|SlW0!3cfl>COHIM%di|>N3Tb{M93x%nH`D&ENo?VtvL#jBrsQ1kLt<4Ez0fWfN zU9=ebl^Bp8>1SJ~vi*zL1*-3fq8lPn0=yNm5?vmKtQ$5+!Y|$WtWoI!xdiMMk-gcA zM`qYBNK1dpt0o61^V}AIQG@47H}>T><vIkbTSgF5&kLc>Z)mJlpz<o>6J|CSeEo{E z{DGo0iW$Pue&2->uX*~8i_-);z6wI~Py}xjMeVB-LaeqJuh2QdlQE!9#gQ^*tSb>3 zLr=k8XM(&zUm<fxoeIE{cj{7P#y)ICF3LsNUwBEul!IwnwgsU9DQE_)RYcco5tLdB znDC2NZbx;O(brfm*GXR!g+rGiWr`M+7}h|eXBtx1gw8dyDR>-a#g}`YOQG*mujVx( z4sWMY`m?NW8xGWDWzyU!vDnqT9aw1ktF1wFO+>aTh2#62-`7gOjjrq@@am#hyyajC z)L_3RjLw}W2(01*Y40?p>S}q3aqZ~5)0nI%RivQnk!huWa6a<FJL>P}?AQ!^Y2->T zSzdOxO6<|Wxmee{-d?CpR)W%g(UH%RkE*1PNZjlUn8TbA%sq35qW`G<s(i|278Aee z^0V%Rx|E;K{i)=<UssR3@oWH7(Sz^pm0)IqIahr0M|^}5@HFMr!N|%QceL@vekZ?9 z{c`0GF)65Dz)JZn$ld90md8g!cc<Rs<(i0w#E$FZf~T5*`nwexD1$6ZPx>#2uE{~q zk9+wKAB!_Y8n1DU9CcB~yxB04)H>pas_-}(OqZ%phGh!w%SPLSnB%FZdZnt#N5@_R zq6=h-zI8lHz&{S+`D_&fDydP+_MLp4(3B_vWmi7wnyA_q5FrPRygbk6==R2lv)|*Y zrvw6&<|{-4PC63<^SD*Ncf2w7XED5Ig0*x@xFz*$rZnKx+4ffca#9235*|c6c^IW= zP{&X0E(a<u4|Y)Js+2`RZl)I+>H|+KnrgO*Wo9e_fYYF!G2w{$oftf{yZfv)S=jeD zNs?f!{xklZlU>rHrZmv?Kz;}Af<c~M5#1*Eglq~ahth<!@anBW^w->Yp(!loCiLEE zH~V(IhKO;S)pl_g__ccPH=Ra|-(3Ephy~fW_m-0?N=x(OmXj-S_nd{7&2B^3okp4! zRycQ&6z_f#bcq$7&*Y=|o=30H|G)fP^p32LEdv?^WF7tQhyiqUGIKQgS7GUY>~vJ9 zeeQHDe0i_b6(B_uA3&8+KqteN=jBp?2XAcSl2lnz38A@G$n9;4PO6EY<FEEGZ6eWp zCYIT(_8M+16k!JR%F%khFlFrR>7MDtl2FNe;ZkF<yG?RUaseOG4+%0(N0pu=Qxx#W zt6yl8yl?F@%F!JsYbZsg!O>mi<SBdY@sZ?xtn{>tlc9VG7~cemF>bw)j7pG~?Me;R zBYD|Ys-22>g$d+hcKdOJ`yowBQ9G!7Oj1RE*!dg^kyYD3Bl;@(fnXPYpErR+e<#hh znsjJaXvSE^=>#e!xe>SJLlW=@8YaP6=E%v(Y`x6!fNl(mrlo{LYr|H=XWVO^yTmsv z+%?k5%Z%iu%qMiHxM9X$Uhfag*gs@C_UR1Mg^G<IxYtP~<dL^YiWPHcrs1BBL}ZL3 z+j~c!R#nn6Y%*oM^Kp<~ojI@zk76ydbszDX-enK$ECM&R*y=e#`J@#4mzPM^WM6(A zau2MvVRpt%8kK%A4UB7_<?OhH`@$WeElMC1)VF#)q1kj%+H(;xK9N}OIaO-y<b`{t zArwPjK$)mQMrjWzo~yB2){qLr-;iq&OAV5VY4J-NDm9ah$=2)3xEu<*^lq3i4rtky zIU59(AsP^FJ6dfjQ8Oip2s|ZvXkaoc^1Bz4*W=IEKT(5G1o0G;gb~2k`@5p=d$dqK z^L0Kbg<XC$m*g#nm1hpn)*q@j7>WaW;PRz*xul1_)!9+r`vwR(B;paFOVN*91zl|T z*;F|E`t2kPFdlxGhZ!Q~Q(w8OzCRt$`>jD0;z$DHnR8Z(l}~)XRTUbDc@DB<M>X6Z zUA-ZFyj<^JB~3<s{NY=daf-?v%tK8e8<P?8Lv%9D2Hjsefcfx^zi`Fi$JCcUT$s4H z@Aj?^-qf)P(}Zr4HHe{Bwn#{=T=3DDAF`3R36?uAk()2`_@Wao5=%N{uq%wQ|CpdZ z%`phP{7&%kMo}t_54?KYTb(2){PyeaY?(odBxgVwCt_BdlpQDGmk1wb2(?G$y*lbT z1bO}B4l=`4J5lCv4&nRLi49@Y?`Mze`AddAV#lMt+bf2itc^=NeN9^q4j$azinfYv z6*1nmdS}myO-uT%XrdwJJtql_Y{atpOj<#pJX9_@SPP=jxd9$(0GzCK#K(7W)~B=K zz5dbR-5-MtnF>#6l>)kV01k5S!nL?7AVJlu$H(+u)yDvK<VIB1`{T`9l$ZPpY(i@v z+vAE^dz`R9Df|wXt18(tSA<I(5+BaT)9En9NAkDF#j+|w0^rsD>E*jU6q3l9Zuva$ z=Qe<(^Zm7L_d72x@X_`9jl%@x3h!GRz3C|jVm-=*VqO!ExzP(h!pod}jW%85LRdwE zL7PhXVrYbUvjR<JhdQ}bghhXYMSr7~R_`R;wOkb@u1AeFLnF>3#VF^D*cT75IZ%Qc zTYh{7Z@cDo!N-TiX26gfT`*K6Mx`lGE{cL$#BaMRfTE7uZxm$b*x%z@a1aZR%HFS9 z^y5Hty!u`fZoFgD#C?Np$8EgIufaDhk?Y!BY<Brwrbh~nH<7vAjn=o=gsHzmYO{?& z#v;QfIZI0*Cb@+ZG?6V0(w7P!6<I_a5YMC6ghqcFt2ZSxa}!`g6We7s;k23pF+7<g z#v$3o^v_a5wPww}RUS6$<MwQ?@ksVMw#x})JCpyE<*-CZCKqxT{d59j&1DIZ0CA8Q zjtw%k1tFe1I*-v=G%^99S6p1s%)l`6L7DeMuh(J??G5hDlIL(7ah5wu6lxBwn~p|e z7YxMj!WK{>i?9R;;AVWG7cjm7zL18jhPkZuV->9tBy&ZbeG5SA0?_cnj8U-}@)?{- z4_ro9HA}bV-9%tw<*JI`BI-{<dL|!g(Gr~$K+qY&3<rqTyvA4ZK@d1^ck|&*%*^Li znGfKPOr<6X)-hk4@<A~SYIfd2)jeFyU!d|VYVBf4KDI?9%hzCQlSqI7eL_-KU0<cp z0;Mwj*)*+@u=vv3BAB=Yr$oNXa?g?Ef1&2)*N<$8XslgdF;7xpu%v<p3!+y-nM=)& zFh)%*8v;>3D3SPDQHqzT9?NB{t7*Wn-BF|tYs6V`TVnN709sRSl4EmY**xH(t|bRN z8g~WOB^{aKyCdG0+Be^^&-Lt;#SAl&7=D559}|p1FPWhaqDa;>duEj`!dC{=2I<m^ z$3lJioM*YaS!$U#kAt=;%o$oa#gZ=_t1^L_8b%N9j#PI+52*Sv&-wnmRBN0+@NBhB zEyg;&apdU}_fJ{~gX?JxQF2LC-kY-86K8(jk91pf8J75dq?7QsK&YuBq+p6(*_o&k zVdl(syFeRgj9Wm0K9%WCotW$i?UH<|59e%TkU9<-3Di9cKxUx(8>}hEQA*%<m_hzr zu}Ri|KKn!n^{y1)2xH05klYfo&WRiUbo2~Z3W8Tr_}r9GX8C+W5-vE!0QwMmP`I1= zMH%frU63$q&{;GO)1LhAijTGx?kDBnfBTik^BT=%HNhLXg^dwqearfmJ?ZBQGU=6R z0Ism8ICzUjD-rbV>7MCjl7l=cw1k`|iizd9h~Z{dS$J<x?rE9t|ISlOgI-J&ebzGe zKWiEJpK}1_0f>OVtYH2}E#p(XS*$W5zinm-qI0iSoU*c>E5xxnvf}z!httsnIKeFQ z4Qd#TChU<j-mg;(hoG6P7kB-3eArm$S?5A)=f^T>D23DuH<h=`k<*^>FY?A#CW48J ztYe3<O&`<i@yCQ@;P3{jr(7LN!p2h4FAxkAkeKi8aEVtLBQ5$e;p~RO!20akAUEVn zUw~poqaK#(`Mg=@Ne688=;2f73rjiz#T2*f+3&cQA7lEr+fG-P5#I0jF(P7Y9SW$q zLVoeupwcCc22Ev^XVSfQ@2%HeZtUFz7piXl_(2cEds$)mcD)V^wBmc?UKIX)mZV;p zxF<S<YN0WXT?yOd;dirb>&kxCe~SX4vWG%CQPKxrTGO3aDn5xYPeh=F+zeu0X_Hjc z3-7v0n4h{`4oplZPijLhCEJZBmjrK;U@M%9Wvg*vT!5kRvt_w&w~<$3Vr+CF*JR~b zCdr_Co*G}^jtc;qCHmsjzS~;7p0m2Vh!YE`f#_qU_Fj=z)AG04f3gxsRp4foR2P$l zw2%|_e)Y0=Rji`!NQzl?D0I?dQ&8#PhPzC~KFPw<y1vfVgZQHci`)Nb&TEgdM2bK% z9X5q+Y(lJT|Kqw7^~>#J1c4p2343bHUL->jMv&}`t>h3$AV~@<^VN}3+cCKO!j`>1 ztMa?7Uk1hlK))Hey|TUY@&(ja88XDz@f#-FS+S|VS%k(2Jj<7beZ}!Ft{Ho&l5Dki z0<?Ms{ik^xQ#D^+jA>Z;D-nEehnhQoV=g<3X?n!DCpBrJyZn4}5{M#y_xr{-z4*3% zR)|(%*8Cexao-6g$-kC;>0`%~n6nTbUW0~2WFDc8c&-gw-algV^!u8%739%x{ihu) zt7o&Sx3p!O$vwijdc~H-ANpxl^}5ljQCo!nk+pyMH_2`RIRDdajobpH{nOi}-TR!# z`B!h(cn=VW{I@Zn3K_=*-Df*W68Y~YEYMBg>R%f8fA|7ssJhwUilBdNW*LYpJFh=3 z^_rj;g{}~Zl$Ht#k=f47pIwx9I3ls|Sevhidn*wu^HOFDnhKOE36${jBEvM8Juyq9 zzxJzcjaNo#4^B)+7`PvHa9na+W*QFt0m`gejAgUe)h5J?cw(BR&Kp}vvLY;7j}`$M zcyS+t50=8^&LB#ZqWC4KV~4RjPoH&k^``4y18Bkx{GRFuyVW(4@6>ZSDr7P+3PF!q z8dA<7JPDWrwrcPQu{=xNI>nf`QHu>^WG+qB7O7e+4UJ!PgmH?sv*(JYHT)POfSi3~ z1n>b^d5s&!)#}^{lGuodV7DmFn3#PKe{Q8IE3}ip*STuE{PANc4lJJfS<V(W*@mB# z%s$~%J^CZj<z{Etp{|ju$x^l`K#8=a-q!2*oA`WH;N>e<-~q4yYT<caAt9py2_r5g zAtQ_)sy>v=LLTLphSDKHW6GUW5g@&Rcx}0Au!4fEJX2Uet+@(9K(T0phQeJb3TDlA zeySNR03zs!BzBl%wTzrJmPSj^R`Y~1V0nx<eL;KkXv58~*7Wf5F2h|nXFTcm<(k_{ zM`x$|NB_b1DrdrtwayO%r4>>ifpZL(J<ZE$Yk}fqfAeWrjk$Y(eMp4KEKqt(usM`e zd8?`&T0U)u08d%PVJ5mA<6UDk8>PwD3g)ibkA9V0;&IW2p~1=Cm9VVeydhiC(1W(5 zR)L*XotY+4gVji+M_GYb#I}w;DPktZ!{fx#q8qrG6Bh9l;zf^V%GW|!qF@%w!Z~^0 zVZzg7<4D-C{Oi`@;lgh`0=W3+#T&-^W@3n0UR;2>v{p+&*)m$PMUN^!pOP#OY><}- z1YKF)uJ=+pT*=l`nR;mC;`#KP(AtI<*!gsQut2D5^L9&$i}c!%EaNBT92TYnqiy+2 z%AYyeb>}>VR4=TDH!%ODrJP{c#@&eg#S+gIya~Lg3=xhSIgg&C9jMkx=Mg-2Ex#Q# zgon_1u00TGbw3LyVCF@07OJ5VX09)tm_S#iHC0xtGoWW$pu|RF-l9=UEn1_H;P_;k z;24#<XGftrbDs5k^Yvk1A<1QP{pn(Rp~9xgt0iImm$S*kGsil`Z+sFUQ8Sr@a+wIN zdZ2)0U;&MYM2VV84p51Taz>xpP`Lyz+PL#@i6AGmx=656*mH^$V}`OjQZ#pi8mg~` z8Rm8NwB{8yjNB6TEjG>}H7sS?A2Q|!VM(J|0E)Ko_enssYRCj^IvdLpRYvIip`wg| zmSEzKJUt|+d`d`G4pTs*74zaWm@m~)QNBQBFf6!S&dXuh1yFa=g<x~(eW%3L-dLr` zVKK48VwBZWuv|AiLo-G8hK(4lXPo~?)a@Xa$U6YV&)3s-RllK*aSMQCuE}J|A_1}# z_$m|0y%Ws^zF#Z?Fy(6?TOo&Kq3v<(f37ImtWK9Lm&(Aib@9N0aOw%F?@cpKZ05Ga zm&;=(yH~Jr0y?oRuF^_(Joi&oPt65m|0+B&VVm3-`?=cJ6@eAhb$cRW>jOgxzQiAX zB_{cphFm9;>?Fo%qFAX5Ar`c2XjLk~n3Z4jxDwK`zvZ8tCfmDc*-16HLnL{gtg=?y z@Fv8a;*J)IZ5cQC6j#wd`#C^_#H^PLFQF(jO2W472>kJ7OZ4UtLnvI38<dVY^WZcK zq$?(c7t_l;3(DXFxyB(tIYytC^*A3?3tjNk$E}BYg=H35pnM9io9Xgr9n8UCMo<)o z?)RmqSMCwx!}rz4n$EMFgk$ya)OfXql6JMh<;i?YCuvf|Zj-=yM1h7;B6yawxeY%} zIY1HaGB7As3qo2td#SUjoA}QQsFv2j$<1<<YV$=x*$9sR5GyBb4)2wm&uB_BIA&Ox zJrpT(aFruJiY|3|!9y}at>0J4LXq-DaHVZmTP+3YcZTd;@ilO7n`jHU-|MK5l~Up+ z1AoF>0z>R1wvcBGNv)#D9=ANYIKF{`-dsRusRI2#TfP_f{@SUeBnNM%XC(9(v`m7b zaWW(G0|V#DCzpyvhhNiq!de_2JXEk5!%~LwT(8Z@EWLW;ecfmZyF_qHVx%Q+{<V?i z;ePzF))Y3lagPsYU~}dC@n7Ree_?7!kUV3-J_8Q|3JA#8e`9KrDqa92|DKvyc=@!V z{Cfy!>!6CN`m@m#2a|NA4TYP83x<IFpD4!yhA{lk>`^jh?BLa>%<F>sXXU0E76I_T z_U0;-&j0FHy?yqppcGIOf6}3wer<#ck&rHhFaU>b=pR8XLXh0q;#{4ocfqQbOk)KV zM62$I)(x^aG_+b~5cMK$ylgqt%F=p4yf#BFK*Rj<t-eiT$kdk+5nhMUmnk$hoH;U- z6%2^iZPy2Tv!gXz3i9>t$WvCaV$8)Om6Ww2u4yLPn!xtpDZLhsm^fw7LY%7?GHllr z(}Z9&q|nUkY@h2_8fs^Q8EtiPW#Cq~O(tSv=JsM0lqo)w=ZM=uWd*k9qWXChUfl<Z zf*28-eQvXc4$BMO>6M@CDDyKzmT>m~$O7<OfAk_kbzFJYyg_s#o}xwv?#$Bq(h~eh zPG;X>DSR(aXt*`Z{FrJ#5*<>8imL!ty=)K4x$W&pfAZq)!iAeiu~aS062%e~I%d+x zLB1FOtzh9}79!9+<TJL|>v~y88RaVdQwuMQ#V(|;g;SI<HH2XY8dZ1xI)GDP2Mq}L z9kv`nI!m%F(;;q^iSm%aN_6Q5Infbw!<R-&hR;^_^%Micxvl!rx@h)dW2W087sz2N z@(Ph<Opi*TH%r!hFV*S{7C5oxNnMFtp83@d@@8|Vj&l|zJb(7^57beBZ>Hcz%46d- z&`Kq*rjQR57R9(PjEU+;bW9v)Ju;9}H-q%)OawHC6E1t*XsJ77@QsQV3w5#Ue%Sgz zM%)kX$O}i2p-Y)Rw<2(CE>$?IFg+g+)rRvzHpYvRl7cfVY>hJI7~-(cP)=wV$~6y_ zY20mvF%_h&-3L!yB14yqg_#%{YF28i)edH{E5=Q==_HgkpT;LtGV3c6PY5txnQe4Q z?qQd5c2H=(VHc|CS8mN-t8K#u`g#|dn=VQbgn(J?c1%R(?<Il8i16(Z@t{-j4Y^P~ zaB6ljt70{oDz{u@vI{}zxd74$|7jAIQtONtgz&EQOnO2=C&rVkM#sXFK-J9xHF4~E z3B+mpQ)NGWGp#Qy)M$sP2I{zamE#}w)sbxU8V)l5ZMplGT$~0Vu>I#CAtE4@{d17? zw(#&6KaZyx(m&PFPl}X<)4!DA|4N!v$L;@GL_MWqymuAnX1+7wX)H7&kH}c4*yXH= zBadOl3xyz4BklIh_Ch^eabV!RU$Dr^wV9zf`s#@JnzYwgFXrpLZu8;Nt-WKL6cEQJ zk?&$VW9sS)4eYCJ7bf@Bz|a@y3m}yk@{ZQvi&I+iS~L9#?L$}eq_LDU>bHYAt{Mx; zD#VUY0P$^1pFuDxi=m(ze^^BHui<Jt*&Gg-Z;<0H$XcwpqIuJ{9z2o5(3xYgVGbRE zKX1Pz-CZp2_ov+5kCV9x`WKo#&lcp!{+Z6Y4`bs~1XAUBl|ioFybLv|Dq#sZ1pE=2 z)4*4|if7OmYhVt|!IsHW8Cy%V(*;-bcq^?wtxA5m+gk1xd)ZQa*>b!c0_n=(O7H=0 zrXr2IZm$>JW}BA2pFfS$nZCF1Por*Ic;*_FPAJ~RI~SN=R!xwXC7D#UsWw$%!s%Kh z!uYuR17R}7+;x%&?js|k+$(3Dc;Z(&geD6!U0C^WRMkl|mjnP>Sr+8xu>+{iy8PTz zJ9|<AF#^)GNnG}ENiD@9GRp9KL(Xj^>hd!MN^mbXcWA@;Kdu1nL~%^Kww}J+F<cH* z6g)x|Y<TZaFS_49t{!ZDzvm`Uv(Nmv+gFHE1ES$*APe&rcACViqg?mX<<t9n2Ph2E zvR?^t4DlV;ubwlvn;p0?j?azsG5i#)B|lEj%q&N9Atd1o7&MKaL#JjU<#DHfKab|k zHTlKnQ1g^)F=rW@IOt(60107f)~~>yL4%e?S~ypM1$Q_H=?Rr*KywgcJLQ<wudrD& z2t>@5Ej+V6fF_ReLamWL2-`oIt+UC@%J}_w-xhWWZ1!-wJ9)lKOIvNa^z!)FHndpc zsPL0*a&dKhecY?>P;3R+2X8!d&^(b$*%{jPWwhm7Va;j%A;df1&v<f|s!!<*Bi=Mi z93@`0e&GbLow=Hpzibwr6ilM`0p&@A1;)0Bt7}rx@hch4t0e%Xc|uK(jM2dX$-b<j zPCK`2=&V}~&sB46ZnkXW?Yp#d33!IQx8^RIKkLG+P+y(4`LI+-nF(csOT`ZcurLEm z22kqVwO1EQsh8jTHA?mR(y0Og&8JKT1nF~4lJRRfk}~_mCK^tYsSXN-=ApZhK#|$P zEH^NmpYxy|9zjN;GBB+y^NM2Vio|3L#h<>&MFx=|d0Z&pLL4oX6YQ0E5th77HF0GJ z1>rqB5z3^BGZuLKJ2>0S%%Zbe!cnKTa|X#p;<Y+qa;UXV=?`);r7SSQzbI2q2*M9C z+ZHi`k2e%lL_nR#z;YjHNGQUR0EG+Is>Do^@Y18bSM;R^_*{&mzfWo9a41}Rj0mol z%hSYvAXj1shmNrpLOi2$AyG^z6((15YLE_LRf&sZ@=eV_!lZ#JdOn|)C_OG(7bh!% zUiFuOb>&mIOZ!2|X)LV`{f-Et|9S$_6Q>z76&j{kRVGk3J|@8KCwdxT1%xNd1krCW zC!*rmkqt<hSe*-?N?0IO{g$8bo+4Z_tOA<%e9PW~IzrkN8hA1%dJtY|uwJ~>EM={m z(LoZkh4RSU3trGg93C{EKRlsUUf&I~H<N=kaKc`#^R_Z~ZoY)Gz_wut7eE$Tlxbqy z`^W*+jyH#$nD#QqAj2Pk3DmMQ)e?l7-c}h}c`wxYP%L7GSJEOFO8&J6Mdh4gfhBR) zcg3G(_H{nc(D80zFHH$qG+}8MR+KdaZS_I5kK9$?uWQv{o^)4Oa2ORw*k0tGssEm- zv^fDIXSd73*J1%7l<rK^;sI7AL-^Qfbjh)Ir5G&tmNLz1zTBxf3kX5XWtNG0u@5r^ z2XUK%tixT19szHQPu`sz3TGq9>$>(GAElXtg0G$kE)T8>&-#tpSEwzdQ*=>*KX<9t z(eZsHK-f2}ya&~aVZ*{@^Rj;_oS6pd{C&7M#n9M2!x?xEB|ql<oStHp!NTzR#I|NS zCpDyFnKOnVjW1rO0;C3U{=`)M{MC0fBJCxjYoyoT_V|<OwO!t2c^}_@I|3h~6^=Vg z4!g5v*|}~psnl&XIJX`NjI1#Qnu>PF=9y9c-C53TTeEnk3I4G>%d-U2DQ5O50dg_T z<u<nR>c2p2fBCmP5PX(xKckQBr#K}1OB^O~=7XUpX@(#I;696X|FwsW)?|o_kOTGi zjy5z20_VSWw3|dp5WK*U&@1~yOL_I+rzAl@q}V`{?7Bg5lFmsHkbwWscv|`Y3^C1V zje4z$x@^8sk<UD&<kKlYT+T7TNl7V5i`AmX)y9d#c?s$9_ke-oV9HCUTP?0TE?%^r z=T1&>99OpS2~MVfii1E9A0-wB8^$GbIaq%<9E^eVTIH&hT1P$vADZ_sgkh#y$%FuD zEizA+r4vK=GSnNTz9|MpO0zpAEzjBNw7YIMZ6PeyZY2VD>kL!6O-8B4i+Nx>S7;yi zPG;v#(x@$k6D+daC29&4M*(UNGUF%f1{906E<@h(nkmB8&p!($BdvW|>%6bmvnPMA z0^Sk1xg6+LEdCr*=HL#2#6o*sGr$0~b~4MQ&ocfzU^n2C1MNsScvl&3V@##YtCumO zxUAdFI)3khH3<?W9-aiE#f|9A#Zz3&Av;Rd-CC|*lg$I*18Xgp>!pE@Ob$lI)l@9n zZuQY6rz_7x4sn`J%4<-gB4Ra`3Cq&>jJjx(KO+TA&d&eraW>~!a4X6qB|rgt-RrRH zzQ7ryt;_dfGNAi$BR(yIokc9+nnt*C5k9Fb?SflbS!FCQL{u^}gMsC`74DoQ9wU#} z`sKjD7vmjG9`EhWUcOxJ-yjYC%-SQb<Z-xnb}7kK%RJ^Ts4<E_2qap<XM7P=U8-SQ z7*Ef}_u}R~AprdN{xeVY)6*8XbLRQ{(6Jo^{*>?jr}3jR=oX&1$aI6;GXh{0C14uU zVvW^T$XzTd(=(MPycleT0uBilWQsA3&x|H2*E`~Q^ya$pF~tLcD27~n25IvN-~I`` zW+CTrHqA83GdAVnuoIvw)gEM^zQ{ewp!sJc!9!oZWessS!}AD#`*$j^UY8;4biZ%O z#MqibusLD_E0;shG^iQPaa6hqdlIs*0S3Q&s4qhkB6l-`6UBa7b)fU*Q5E)M1artj zfw)S%0RU7se=L!w#}xcDr2N{3;h(mPUD@ljPHfAP&)C;tlD0?E6Qv0XHd8d_=fngj zJ~4=191hjAb<k-_BYXrz@!H`N;3%0;7N@*uYhDL8-I;gNX3uCb{c;rcwd<44USPxk ziaMz3T@nl!R75}EOf})RL_O395?53u#e=cK0VRt#fpXTqhr}9)f$-nr_0A1N&L?o4 zc616b7>eQ2-nONHP!$8=Bo$GcZ$D&Q%~xy`GDd!P7@~yaFXsmm7ZTHFg!4~UNw>>v zR9!)%fwmIWc%K(}QEoxvKz)--eu!?rC+QTdvvZcW%FEzXa3vB&v*df=Lk+)$IujRz zIx=L2D%_I$qi2p2_nW5x@2O31;d1!0jiLizm|an;@FI^VkLWrk1c9ar#(j*)KFL_2 zq6HRPC*jc2AK?k;L|KKpf!M^)$|*By^wJ^(#6nj#_4oT^gQQdcawj(rQCUnblO{n2 zAy2}2!Ltge{wmnxN8|dU<2yoQH8|I-eRBM#g;3Cb%=*Tee$x(a^W<R6L8^-9XydKo zvTg9YRd*Avx$7S`Btm#iCWP3kgrCTJ-&WD^0O+;)KZ^lC`v6ShNBo=Wa4txnAhZl{ z)DHrgG)CCw*5jJB4fEFI$-`~S*3%<HMGl_$Nxf@`+%dh{=9Wt^C>`@~1NFwJ2O^T6 z$yM5;=*KF2gzc;qC2YQw1A8?L{c{s{h2GLzzX8prEavbPrhn8%u?Gs^tOUF-+Jl|+ z8uNJQ`*uKqS<G_7kPbUwLvn_V)#txI_P_5~<uQ@2U`wy1Kh}LMYxR3n*u_tPRjfp! zo&C8cy~I-kuZTn^x8&H&C@>T0tR#a+X%?Kao5^WtNi~>ucB}{H<7;I>?wrhAUl|7_ zoOH)E4Z;WNxPx!Yhub`>PEu1Wpul?7b$Ya_#kRo=+-~CH6O;k^*8oJD_1UwmCW6HJ zG2GY;K#cA~yC8<7X<v!!sL{QJCNM4_?5zqM(;QUBbGqY0oW}9MJYU&_1jG4Vi(7XN zZWhS|vL>(g#VSGS%wJV}D5fk-yWJQuOv%)|q%%Bnkaxif$RX)r`(4eb9KG07^oQfQ zLo0)TLiliZ4L+|s9k&9nX}Y7;G{if;PXXcsa|q$=MHb=$hSKxF1^M-~)ImIPc0}?T ze2AFQd^O{eB=|xkfjFjNKkgMxXp@X$7>LeAxzM8_VNw{uDSnijRM+~f!ti)^$h=<v zN(pqu7pyU$HBXPUEfySW3oq@PsfNj^OW9Th!iYc{Yp6v~j-p7mG(2%Y>=OfM;U4~s z&-N+`DklJBp|rfQ`@p}#1qiPDI3duFg{p1%&IO~D+ZNs8;ERMH;mHOyz%NM29qNC@ z=u1xFz~S1QhTkMnWAJ*rIQb%w7F8mvuh0h>$Oyu|Ie1YiYGhq!+a191W>2F-PWM6q zT#$Daksm*c9iJk-PG4b+h`4Fl9?`6M9&bw2AnA^cWbj^trNZbQ<eP39`e@VIeow!- zB<Am$s4j1kHU!PY%Zzz_@F)>&rBU~maABvhW#od;vzPJi%kZA?*q0aA%furGV>&F% z(Pg>NlWFRH@#;Y6Tp>0XK=%G)0wM?sWc~_&i%8qULNtRE)tXK}Vjx-bzM=~+!F0b+ z;C9@O0Xc1iNS)hbWc|>_DefHo?C;SJoPf9c4UdTA@{FRZsiy$u4atqEkGiGb6($OH zyrx*)?n4EUSXhq6Qum{Q!JjI^YBcTB&YfHeqVVl>+2HurUBghK$vCP3WK$~vxO0bD zEZu@NF$elkn{Q5Q`aS5@wa_q%2#M_BWyn%nGdPp$iVTxR-EGm*sElzYL;0{&GjJr% zMQ1*F7z);0;)*y&toSE@k37;r>}trJEGfkGEe57oEZ!DHx)ReCG)bCFi%~@q6f-=j zBRcHt@|-q69rMboUrRhXKNpb!DBpw7KCR^9rtA$%cqdu;2X6xfIzrV=0?p-DPSE0k z`WZ@tc(9WsneU>fIkZkdu#5mLmT<w*3cR2IvO~}xUQ8%5Ok3(53XiU>agr|v$CV+k zpcq?d!z{%F45ybox@%$_;yG%mU!ELL2j{gja75D9k1Q`3Bc%?_5?-*&fbPGM;X_|x zox0pXC?^-zAtMnbERW4LVdU7Z6F~cLv6nG|O?LOr)dnIcn<17Xi>tsK*N#8^=eAIa zOe#7q&#!sAs#{k^ApD_6leKml_2(un+(SGlR*dJopHkb@KCI5wyX;LI$&BsycWqWh zoWi~t1($!DCdrLjf@2`H0fLEU!Q8n&$xH@%JbV4%J3~PH6C+uz9{Gc+Pbem8efR$Z zIY7q0{-OWG#@^c6%6D!Hzb0=CuIKGlQ)iDCNgb$?zV7Z8Hg*hM+XPASP624R+ic6V z6w81BQ`wBcUx0TIES2l>&*l8}WvS4)Sp0l-VVz!Gc;{Ca?oj+YdUJKbdRNeYt7ux{ z@lBy~$xFDese7P60W}|vtD@}<LBntPMZ^6@na#}y(P1=$NvNBJObkDzpJD1=D3>LZ zxpz=3WfBkQ=uCG6qm6#t=4s@H+PdXAWMVlk1|KXD_`-Cq8>&KW6=z~q6n&{qEWPSn zZtoU4X)?z7i)tG(m@)zE<bfQ2;zNabPjPVrE}da^Mk|J4g<;hT*<LJ~6^i>6Okt|X zt^I^2Bys-m=jJP$j+pwD6?XHTZ}>wqNMSm23TsB+CO14lIDz=Io6h3veRbR>{!;p8 zUu^B;G=h6Ky33y#PgCp})oYH+uCG%Iro{q$m1ow>n-w}3p{3abKJ9jY(9zqz&9Iu| zBze*EEANETKr%!tlRV!h*zMfx-@>&%MJ35`+4*|8{Y@uB8rt@21yI?6+;8Ypd~<_z zPy%k0?Qb%11PH&(2H<VL?1F%D%nsQ=7(LL{*>^ondzo3~oBi}YDMJ)e+P?C{a9J9$ z-8)5CUfble=eQ!LASJ4Qkiue><oFvKejs3FAyUv3>_d0O5_@;y?sBkPc6h(Onxgjx zz3!7`VtQdbKn<oFfXz8h_|^=iq6R5`hx&?CfKxNCu_!EgAscL%OE1dBcDMKoE&e7K zuYQ-LKQhgkJo7P|?=<S}H=I%M0s%M4W`><_5TgdH?DsRW3K)Wa8%8=l6i4D+!3O4K zhwsRVJgkz@LPU~57uXGoj!kmpr9$cT{oSyQ71EqRHuA(aF{ld5zZ+&RM4~|JYnEYH z^JLC{TfXJ;zW37*OCI?HzGq_RE-pJSuS|B!7r^`Zi(g+}y)O9m5hg$CMmLFa_1qr$ zJqHB1JD?di_@>8yTvy!*e6N+u@NL5M@dTSIwelaU6>YAOMp=(iHY1c$HB4F^&vKF0 zX1p~tu+(gX2bOBJ2x%)!I-S+Rq>WlcrfMT1Q>BtZDpgt$+GZs}Tdk#-BAsnD&Hk-= zElgT#MM)becB)p=Tvu(TDcg?HO63^eG$Yr_?TCY_<z^*+Ok9h&9#(bJ?6#`a(rD9- zRja4b-r?U`Bb7MWUg76VRaK<4Rq2syCE+csIlghl16IaOA@1Ts>;n_625Hme8-B&8 zpsi}!ptaV+2CbzH+N?Zm(0baSXu^k#DwWGgo_efVrLvSd>;nxel`E;k-p{llxOHbU zSWmni4$sJcv3|qIz_l5j!o;%T-A;vHrIx_??eSopwG`2)or=Fi>t`7?6@ZDx&oXK% z0uybYWz<I6sL8m_FsxL47Jo@~DcuP788rmJ!|vcMfzd?P3#*X|kVG~3SbQApOL2Qw z!Tb1%^139onAuXHlL*Mi@k<3&B2*v8FBNWyAbuQwzof$94tPI~VN$X2Xa<PUw_Ivo zYTr<MLGr<)(XsAMyb)iq+2iW2zoS%Cja}VwJm&1y>h*RZBx9qTYLr^-X>C$zq=Fjw zJ+Tui?Ib5WEy{3&89q<tA$haxKS6Dy!nB_sg4v~Mqy}I`dWsB_C_*^fQfI=mE%j7A zl5L}ZrmE3R!NUoo!ceN@B8&s+=*Z@&Y)w$U<imFjD6Ft;pQEgTaM9&mt^90KK^^~a zv7~1ct5R>=Q>?gmu{I26oJbnpQ07J#RrkbTM6!UvO23b1tvge9qm?S8m<*$<xBmkn z+o?i|+!k9V{`pci)0Z`V(u*xf|8y}c(*Fa0k5{C0kN-7<Y^GcCNotBLlD4C>T`hgV z`sDR{C3(B(`3m?-@*dOkRq&PMjj88kn7EnsoD9<^t0!NiRBCqw&y%lGD$Vr$p=T(` zn|DOwlN6qjUEhanRy|eS9Zy8na(Z5P-c`W5G<Rm}KT{eh-8Rp#CRrCDJ*hpJ2x$g? zNh+b&R!GT#yI#kquLDxn9?>!`F@zq(EqO_is<wEc#hQ5zz8<NE&TT=;Oe~7-E7`I; zGFi#WmpW;Nsniqe+b3e*yqo=#pkM=gf%SAxeHfmck-TT(n@6Ez<~i9GFMt1@3*IQh z@%c?(0sokvf7W>Irv~I<Z!jFd?bX?T_t>#j&*o#|=2yb80RD<X=Vt#6{Um>8ruEwo zO8odCz85Luo8l<v+T-e+j>k%Ko9TI{@b<}itE;<4`0e(hY7iF>S&8TOTbH@r%gg`# zxBvRbfB&C<{pWv58o`^1R~vDVvx#o#vl)3y$85^*bby^kA`1m(6MaI*n>*rv`{P{3 zN?EE%Wtc1zx~j}kY<(7-FW@>T6KXqqB(BA!$y?7q9Pg3L8<SG2UAZ(b%^{v-((&!u zkeToW{S`?G`yIipsfDj#m;%}$*bd=~0>vdl<$n<WlvGAai3cJ;@3Dn%dx1(9xq+f1 z$jM7GWXi;}3~Ri|T_w=r>p?Pqe-Rkybkj{Tm+qwZS{+;nh4X{(eSUjOKOcXZ|MunQ zIKG2uAEGJ83>Hheg74_ciawhFKJY*cKN{oPIltX%HwzDnlFd@^PU%sSfWvaV+(-?m zKKPoFGYbzV^~tey!${vHc|7Y=A_ss>Lnl8S{8S(pr$<NqgMRmzeC!{8_D-)dpnIy; z_h6t_LsMx*t<!q5RjV|ss#aH;iqdY^)V6k4tS;rt5TU&9de?hmB<XBa0FrX^=x5dJ z(RugBRFHh^eLVHSz^7b%dmr<+I9UV$Y1bPM1IT6xc&GaUq*`v4<HyN)*CjySd5)`_ zWT;O^%r@vX1E36Ho?-@n`KUWwo8B!Rzt!EiMtq<IOf+gxZ8RG##+2$v0Z23|)kdS- zV6@$CRGW$Ngfa1%i{vgPLThJ$M+UNcKt+Hg^a}bCB#U4AKOJj&>)@A-AnD=DuSI@B zHAop!v-UtpZ05&1-9KkEU^SBli8EU_A@xy%4A`wl4bY<NIFuiMJnBN$rwYCfS|q)h z?%+`zNovBk7R13j&twF7WJF52J!-Z_YP%_E605RGtKBF|sy3ohU7<Ctc^6U!y&>tF zs!lV&!(o69?D|X-3~e7Do|(my(^`KMETE*nCaanf(lDQsVfiQ(04UUds!mN^gDmqP zuxyrscM3oIcvPW(6Ekk>2R>_LaQj^@O&Mtk(DS#4!;b_DU()(P%vUAEf7G)v^NH7{ zlWphwQwH1{p33+`8hPo5J$~XQK_KBiln9?K?QCKn`nVl+v6wxeoU#`)m#Jh~X*_Zs z>%XZQ%Gu|ePsiN{p=dKb@05<BrJK5%ZGEQ7^$r=p;)s!dPrBh)c<OC9VQ`Du*F=LV zB;1%WZ%7r^EH|1OZ8WQO+H8(gWi+a{l#wL0nrbEfgEPW(A&>=<Wt>^Eb&t%uQdvqt z1gH9o0P@{{zXuH&eO2cMKfy=%DK-BY0=~BVw?_ig)IJ%O+nC7jP96lz&GfueMqm!< z!hnU*V6JO__(LCq36?!j7N2T~^=bkDD^!7^R~l7X^^vO9nk_|PN~NN;+fqwvx9<d? zkbn!25rdg2!Z56rTT*<k|BJ%#06=EL^2Bx)v3JTIhO}Yrr*}V|R=-$A+yL2-wwa!H zx^LB0F1O3=J5d37u{))|VWf5432t3vLB@pnL@6|XOYFb#_|a6-!?OsM$u4sa`N6Vj zmee~qe=|7v(0|htI~GYlGJ*L6#%G#tOdZ^T06r!;9nmS}$AMi4H4_g7yZncL@F*`# zgBr{Lsx`&4z^>TYa6A@aGVwGG#C9!nW;rhBg;w1yxABjK;}^&9KR@q`r<{vlJWxtD z<)&1BuCyv8{BhMRs{#B~LO`#9Yr5hX92iva?=5n}Zmb<~vJKDISo82!UTV>pgwVI{ zN3~0x&!^+_2O)GbJ@1rp#|<&}Nq2ckU){rLSS4@q@U}lq^B-wC)yN^k)ztz*9)J5J zaYHSJ7MtziultpL2k`Iw(G|Z83PXMmbIPTES$fsk#M-CG5-mP?hA8oSBJ-@dvr(>R zOkUk6RvuB+rDU|m_3@YLr<0G8`7pd}rsth9;^mO3!H+!+EpoCTy<3t$fq(_LP`5zx z#|zv(`-q0fx?xbQHXHTPs9J3^X;f=6_^&dm*V<4=wMYNk-j_BvawP|T*RQBSt64yQ zHvp1NvJZ~fG@GO(O6)^C)YAh(hyqX`tGjRrRUnBLJ7U&jJM5X=9q)$??-5?_6&oA& z&U$29yK~s%zd-#5w`Tk=oSE;a_g=j!0PI%mZp7ATB(Un8`SRt<%$G+qb%ZDj#xP+w z?2p@1o}*KgRk2`k;r1<)Zf9Wu4<^fh!}+3v{VXP@%eNLM5tBya*2aU6o}a&b)V~r2 zWY?!cv!7|pOJ-<A8_3(f*Y0{Fb2Cv<D|6pkxqavEa`W!O(yhhYx0=m+OSiq1&Yj!s zm6fI2xjjzmPC;W<2-&|r@VJ{NK<6T-_~Dj`v?jkKV$F#l52O`O_oT~tU07v*C~Gub zx8u>{aNHdPt!O6fS(=DF;pd+m-+mHqK0Qt;D5k=m?D`xov+AMlEamQOjy-(_jVX}l z!^aEv99Yn&u%IYrIv;HBRW=Uy;pd0_)(d|OKb97qk4E8`lvMENZok*YP?-1^2Rofl z)&No}l8H6SMKal|Wkl2VJPW&jj-jGum=AUYQ}DUS@lHXAJDryQ=~bf7N9Zp*2+n;a zI>FUA@kX<9Yjf%2CmRn_aagCLTAB5!P(I#8@em^$!*(6wq2=Ojtuyc3t4>M%L6DzD zK@f(1@1fs6n})=B7>af5JoNxb4&?*@{@eGQ3+MGu|K#;A{`K7JAN|LFZ~p2R-~8`i z{o^0}7)u^JLnfX2fI{E=-k<&UfBfl*kDklk!a~bC^~XSp7hnJJKY#txpa13$zWnBg zzyHlo{`en${qMi|&wujzCqMel-~Z~jKmE%|`26~(fAQNt`t|D{{6#K8*ET9R{JQho z|M{bDe*ed>|J%P{L;lTwAN`^8`oI1;{Ox@6hyUvJ&%XTT-~8o2{@~w!^WXo=Z~ooy z{lhPRIpqP0vD#S-uy&)<rMwBg*9C!dfCnl@Qy*iHB-PE$j*_2me{}YEbh_2Kb2U<z zU7rd~$tqp`hs!U&{%2qR@bZ6M{>|lAmw$Kp^UJRsdVzm_2`_$sefbOL^6$U?!R5~` zfBE(A!uMZZ{v2Lh{@S_xtFM0yMSe}+{?=JshKkt6*T4JqPoUKweEkz79m~$;Uqd5* zbNMr<;9UMEDEoKVQswf`F28~Xzk=#te*HuE_g`Or^+w8Bbyut`EHC5``9$MBX!;?X zm6LGq@=syhUta!y>g#`rGr?hB{tDrcp2N@n4-!W;_&<ePYBYE%f*aoOID-G&cyWfm z)I1EMfj<-xk9M}p6fmh&mG#Y<Nks~*#Po8F7GAiZPyefA2t3eK!g7jub#jV)a3aHj zo~2-qsykkiqd-*SA`Ee{yveE>>z_sz_ZxsWzTYdl*P~T`M-4iku8!gI<tS1!Pz)0q zJjVz8oN@5HqS85Ua^lc=_$htlymJ1)M?IM)fX7`h23>a8YwO_oh<yR?!@b>!V|}09 z7F}o2$Yk$0%wnq3^nlT*NXHI+WO$K=wjLy;OLU;@B^Z1U-;x!RFjUGNFO`&ywEdWP zW>-z?A;n^UhTt%G4nY6h>ke3OQhkKZ9t(ix@lyb21{>J##Y`Z@XwixmTOA({o#s~E z>hpfkD<+wFig2tJfpEk;#3la3fI`YBs?i_};v!U5!79*InTXJvr!ax<WH_F(rWdpu zT^9A0V!;|Q#NFzR^-6L5$$LTje$A`A+^Bqip>nT(QK{d=xJ8WBYIxDo#XRb{R#<l! zHVo^)IH?j8e%GLK$+%Ln-EctDMEKtHdaO8xUha&=Wy19#;-#&9{w^L5kf>odJn$`@ ztEqB9+b9*Z^)wE97$}_hs7?_2(KrIK;1Ej5LbxuhA=pR_`iFLn4Hh`Aa?*KO1j0*W ztGbYX$*{dB@{_b#RZMAww<twEhLW?kCdQM@g0+dU%~OF${b7~9R%zQx3pwZ%TR}5K z(XzUNN`u)E+u5E7y>7D&`v%W{wmG6&P^Y~R;6_NAQot_5q~hH+jM>OAq@D-@AtD_i zv<j9Wg;jQ#SC4(zd8huc*^hj;<oIUbORX<|pp9C0Mf;*ApwfV*Vdfg9uyA#VX>ryk zM~YQ<y`%-HQWOzZgJ-&o3>+&ai?j|V%M$)%?KHN?No-q|<qR;V@jNQxT#}-GXqkU> z)-eD8&7a8Tc;wyxyXViB3<q8XX`)@620SqF6nxBJyL_KhgwC?#?(|N*5J(J1KZ2ou zMg#FpvVYKQv%ycXHM#LX(h(;UW~c*-+XJ}b0j1Fzh1#&q$z}onE-LMsg*bJo^@r_Z zi=B0?WPd~DdNRBW5)=X1_w#5_S)&#SkcrSh7s}~57-A+mgf<0zW+x^#lXXI3tz*BJ zR0-PWkr8#2T82VV7_^|x7|wENu7^~AJoX1AOI%wl644S65yC$a_ZMizk<VbQqyw}; zt5~n-u3jeuEW!)tChMn!Z6$v@_hp0bs%sg8KTwAN6<`F5tb%Nx8cx*}d`(ol9^wD$ zG!!-~nt8;g9vShZSub=bXz#B%pN#ylb>a-h9W<hg9HHiPDjYh*5waX`&KV|uz@WBR zS}~&!0;b~@A7SJ(<RaT8efo6Blrgj*g%y7p3}{tri>q}^@dm$ED~ol@x(Pt#1})|V z0~k8>08qtB*Q9DQqnao~sTG<IRj<&4$IgY?8c)sX{iYL&&Zvskweo_8Y3XOv;f zky#*fBx&L&9tIP{zBXZAs%>R|o$PC5wh(9~>^*0!L?D*oTcxr{qTZ0q%GsR{h9Y;1 z3$%idPa|>)Jyp~Lk{JcYI38gvDBNb(qf(l!ML!k0%p(Mz9BD_H92+LE-yMf~<ZUEP zM7-jWTRp;j0kGRZYCY<u37(7p;*{%p1SLvDv{I8QClE4JBZ{QCEhXuHwEYtH4sc}+ zC`XUV2eE_ac|?U0T*D^F`pKHO&XCTIs?gZc#nDAE5zgKPaqFn)ilz-s)eei-J=yw7 zm35v+0Sre=iCg3YPuN)2uoOk10#vICSyf7?Vt%PpIuQrVri!(wZU-asOZ)%_eyo9n z1f)St6L!|YvFnL?i+X8)S@>XM?}P1w#^&zE{=RT}+85y2@|jzPt6&7KjNfjsP~&UV znVd1bESgQ`0!*u~$n<JAWmKN>k-Py6p$)VWNW@DH$0$pCfGR#THQ-qyH2uf{_Dxw? z6Waq=5hRwtYxNzEG9e)`l-;3@#3BMgR~bR#^K<}wG72iAB?Q`keI(7Q_^kC;WlRg! zD7y3Wu5suq1C!Z$ac^4$%6K@o)+Gf%Q3YnEXdfAohLe#7ZKfURS#-4NlM0tzQji>d zk@ax3BS1R1byglNb!as?{5n6wbUsWSXGXo51a@ILsB`(|qAFw6r2!@fM5e4pn~M%$ z<&%Hj@&W0#=|8xCfxXBvbEGw4axzDGm3w(YMN=BIVR!oYlC;Q4G}c@cU8RFOZlWLr z{O+1|?qFuNXw;+&q9~;!<YKe}q7))S<p?02RuVPNyP;*E;%b&UQ8QX&uAz1eqhF`= zPID-nu3;$TxzjbKImwpSlM$0hZsa7CtD(Y>mSi}*a`Fs+<8ng6aFwfh6wU^^DOu6x z3ngDBG(cG`8WjDRZdSx6O49~Ie?eQE!@JrEdTlQZi!OaK(HNWJ2==1Nvar`&YM+ok zwR5OEYd#r9dS_VqajcVsd9LYg<KSUYNnCKFCWRV4jbr>zG>lz~@W6w~Ps-7hzE8u4 z=IE}{eA0M-LM2Y&b2chbkxmzHQ(@Q{--!!aHK0o`>#4j|sTN*Yh+_i5syD#g9a+<x zVBp{l0%ar7VMNf(m<PKxw$9TSrG^(Z{DnkY8Mk_ZQXZCUM4GtE*p_Pd{it{3V$PmZ zKiOdRtTf7Y;cv777!=PN#eKX`Yr%;^1bQ0M2YktYQ=hVL6GOub5P~1G{6+L$wCK>$ zNa5^*7^#idQwQ!1k4Ih1(1HoK2H5Cmz#_m8`<QBd;?>(O=3#+8J1pfTn~&^WzbF*# zbo<TcMjpfOj$?M70{-+m0TPYk7u6f<uS(x_6DTCKbU18uBNAOV`=hW;3xuS|G6ou& zPP$cpETO?zIl4&*!Ur)45d_m9=Jh=4_vp$ZDq`O<w_(yw>U6^^aMVwzE!A9nYmiVr zXU+^_ftnk~5pGw#Ans0JD=EbyFDBj?C9gSvZj{UsutHv~CL2Mg_kiS$D^pGv4_h** z%d*wSorG2li<XaGG_-s&2nY?3K}UtvO~;*oLo%g|-wIcLDq2_!(Qw&<@A&kG!Ew+7 zd54HWkLe85X6YoA$EbNQTB=_?N#~~)!e-gKnL5=kUS&@WW|bc6#G_vT;stKuoE8`h zjivD9HWMM{FfaHZ9Z<m6OM{;=GO!=~*vgRe_Mz$NrzR?9vL<3^v#}@myb+6nk6=@O zG<e$&X(}G`@&XV!MJMnstU27TlJ4Xbqy=Bqu*6>4!qnh1HDg1)G3Lfb9`d*ts+z;e zWDHN|XvAMxTn#=}#zK6&=4|wY?1eZ*G6u$ZZu(q?;~8G0;J^=h%A-j+X}qDD@xIr$ z9jQ&`vBFAQ&H^s$6hHRIB<7S2v8VKZR!>@b{X3+5>iY3Xzb)A;p;!po#a0-Vkr`6D zPWTXJSpr3>NhZBAW1ZmZr`vlE9`CD~u{^fHt_TvhpcK`HaU<G|tT;6=<#ECl+)63X zBny+Ul2RWx>~|a8rO{o^MG6~x<5)^Yi&mv*Lb|4jfRa7M{A)$&)M!d}L64Mw{_?v} zj-%3AD~ZjZW+ezwvB?#HA;?CQw-T9jUBh+FCaoA9TQNb)7bhJIGK~`K;3?~76M||> z*UqG8{;9#|mw-${OcR~CYK8QNJ*~11*dX?f?W*;mi{IvpN9~*IrFplkGzp`|Z)wQm z`quChDYs;K6RUVh3sRB((z6MFCpsb}x<`vRn6%LdSZ=U&o>MzoTbv91W3M%aAEM>8 z3~pUeKKpta%gD1069A=vk_@EkDoKYAv-Bxig|voW^ZG5ONSZnvtteYEoATPY)mN0@ zBrKS8Q>PY2zIdqIP|`Q2_34u|>DFE5&dV0&**Z}_$*|3da!GI01O%RckLHWDqqCzb zX67oZ)3ZRRq_;VpcFzK5yOu?_nn4W7i!mZmg~UywS`t<CdJ0c!W%&pXkpzfIC7fq< ze*Oyp@oIPAAFpDot5NI3?|Q2bpKPt7)5WWeHk`nOkNasBwF{h-Fdp<Yh8e#cplqeD zC=O*vDI$|GOc=nPW>;!|W0J{Lffk)hG!t6HbhmIQTBHp)WqD(nq7FWJW&#RG)-dSY zc|4D7wY{Nh&cWlY$4-FPy`&R)>Nh_<IFJjidRM3qDpyh;$ZSk@uN`m{;%45Z^qBS% zgt4iM9%b2(j1#Xgl=4T=wg?{hF!W~|k-@WyfUq}>cA~*cGC%Eq#f|>3f$<-Uyqbzq zUs(LN$1%E|-<n@sfPY@`+sj?QcO0L%83`&oT1GzeaphEjtCqiW_;1F#%NggC6j9FA zX%4j+vJ#~nW+aK~n%xR7lG{v7!7{VkXab|eM^knd7Zw)s8uOz3#t8fN(WU|Lc@KS8 za>phx0vCY)%qvZQL20u)?|}T|=XUza`ZlEzQy>34Ko9(5E-e8@VG_ukG}jL9A<mR3 z%vf#(*v*}OO+m;ynJbGw?byx5p#8W%*a7C3XlC|2I-@XTPSWC-6EZ8pE<u0b)=RM8 z2IHc=SFNq;Xn+n%#ZFFHT{4zcGv<_O^2BDWtwm1n+3nDO+)bU;Vedr`=&<u}=ixTD zA;nm}#^DRxh@_|~(Mc?G!o^X7c+Tl^?pBu&$)h7}#ErDiop{sB;@$!%BfkaQ67W05 zji3Mn=bUxpeJ(&s-Av*R!%X_|2Zd7*`LZd1DP<nU`+!q_7<70%0+<#0SUVy&D$`@2 zok_Mzp3O{uNwHei<y9^Mr;MP<j1GZz({U}L05dwWXsddkkAS~2G~(3|Ey)H&ciy#1 z$}~tt#-|Y~F#Nz5o=;pzcxU>N3Mbv`(cE#kcDO&s?t@RfsKH?Cw?SlS4qEYW?VfzB zatnJQZfY_GQbT*J>U7c$UHebp7xq!GKH2LyL|gTLO}a6t-dHa%$NBZuqoaBF2j0*$ z(T4`Jw^yNTso<9N5nJ^hcH2_T7DaOXM@PjfvitCB5&n~L>yai1T5Dt`YF%5TRY@xt zgGPb1W?dR|G{~^_D<Ymvg>x*0`zZ)y&sfMx&=tmf(!SBvNfdNPp>Q7aTBK`(b)+oq zEI2WL?q(DFPUpW6nDEMIli~nzl^(|P@!QgvDC`5NU=~f>wQ|Po$#T<Yh~GBwPA7|N zVit=MBwQd3k=2X6t6Ut3u5$0xUEjF27Bgq&AKoB{IP8&1<+Kx#;(C(tqj-jH0V))Z zq8qF5f7IUKUeEwpW^JNC+`(v~Yp$sSGc?D4ig)YeMMcF_Qh~1H5zbi+PF&p7EcMY$ z^k{MS;9QKERz~c-w(c04<L8oT`=T|F1+E0Sm<H$bsF<F5u5(MW-{~~hK3dsS5G#jc z*qZE~oSoI-nC;Sp3YZ6!c=GPbkN9Odpw$|pR&rsULBGYrjU&<rxOkWj`%^C*`NEKY zQR+SDn%%gr2VoX7%zGnDE7|mI$=mVTTbOi@fYThdK=5z)QOg^c$9}4==*@bGE*nnQ z<M-x9b?ePJTPZjwPtkXYFHMAI&RnWsOe7#`b8Mne&W3>AF{DDV_@eC8PV3Al9DbAI z0uG}Zz|kHREtBSpM1_c-%nkyPr71{%FXN-Wqr{Hjx||8C$EBF085@qnN!Rhh5UmIW z^mMx8ASy;q5q(|6B@{af>^Q1Q0eQ~+_Um?h=u$Og>L0pTo%4Z(!!7}Wc(sauxBb`) zLPm7h8;oT~x62u~t|{7^Eoq{K%tU&us=a~P97JpU6qv*FYE9)n(+&gTL5EI%JOb2H zm(M*z^YTU%-wumx#emH+GQ0E}(fahzW~BM*1AEYo`!4|Uh(SrMYyr3lo9o3pmipW_ zI;#yV2~{!D@1(A#v&F^7<x$#!kOl2k-3Y3O>I~jvy|!S<Q$b6?V|uMoKvTJnYxZ4d zm+5C1Z-IbSNCZ?3Y;4(aTaUPZHh_=cK6cAswS__EnJ3uD19?)6X+?`F0F^cnh<TiY z){ZI7Y@YZ)IB{x)A!^sd0vnHJ(CCf_ElxRDp+?giHc**sOn`1yU2g<Z!Ehqx+3%~3 zVQ^#00g_|i2s5xx?sI+;FGPtHB8#cyJR`D+RrD3%a5Ol)(ae&|J|Rngi#~)~k&Zy} zYld9HG#8CQIEpmX;DcmnVVO}{L!f*yC07d@_+A+FUO31;0OcR76<|~a=Va)2)(RQ% zGK=f0aQY4}S|=W+u_(<KYo8VBH%k_QcY2ZEHgx-)WO_@?VCbG+tDyD5bOQt780}DW z@=HOd@;5lXr*bfMbqQI2U0lI8nM4}l7&T+9+awh+7PsMQlRFu8n>}DxoS>`93dDVZ z>;bI#Fe2s^?KM5;Bse~CJ|B5u5RX|E#rCB^t(iC#4ZNO$Q?kbbh!zaDitvjtCRbgq zVG|kAY&|~M*xl6;i;rOfZY9%R6IE=;MT;$pl0(%b`fvsG<0~hBy0NdGGG1*H6YkJ@ zwc*f;;gka;MnIgQy>?HSFbDC3MrR^JI!H385h?@}<!BPvYzjJrp^V{>E%^Pj3RVI9 zxKBv(-aKN{bhIVC_NkuIe1+_ql$aGk8Y(z(MA-ZAf1r6!M$IsYPW<-8AuG|o*e4kX zWREa7^-CCCTZ}k=9`<|3HtfDCebj;J3YTN49IeflD|J$iIw{>Kx2ZBXc)i6@k95%} z4boMM@>N;rZli@x-6H4lRKB|i-S<wGYoFb(-?)Di-PmO5&c^Wbz4?=6eD&TaWS=?s zMxhBhgAk}W(-L(TLd~EI+Hj3nGkhF!5*XQOf+CL3#;bjQ_Fny_7_Eo6X>^qgacn^X z`+$>qCbQ!kheaIX;}x-w>CUGnUgw=H8Lg@tSP4{UuoKD`sE1Og&kP$H%`x7VupOHe zD&%d{RFk%W>OD#ncLDh4X#wj!?<l%yJw;&Ca(D4c{pMPMxRe4EF5OtSmZ$R)jwa5| zysc)*qI9i)Fpevu;JhO4*(%6)p*r_|suE#WdY*u2+Dib4ybMVJ&W2VxTw9^<^$6*U zIknTs)M+<tY$V889&x^F1r-?_ejAd2HD9lY7v!viv;=6I#i+-0e;*z^+%58&87e@# zSZQn2bqzaK>FbViSCRhRAm@HFd=(SRrqSsS-Q>uBxgHf5{lk-{cGNCoXagjV?BoM! z8$iu<oJ!{tPM5Nil+7ZN9OP`^xv^gO?ROyNk6cdZwfv%6W=<4VGe7OrPf}5$p{ov4 z%4VtXL0aZYOL6{PXWP>j<P0G4y?NQ2I14ALr3~aud)b+dS^V%aTh(NXkZhX(Utq7a zqi>IY-)xVD+}_Sc9Qa2ox0zp_;lvEgq%mRQCbflB3}%g`RK8fQWpfQF&W0e7DD|Z! zg>8CzKYDxt)tK3$Z6J!#^#+Z&&+S*pxdLx9;jPhIuB$OxTnp48BNJ}+%~}#V|MXsM zx8h8LIL#Q2I<Oa0ZQw-T8AX-g6RWBPaH@2F+A0fUFrlTo4EMm{Vb_epyo4!`R+^cn zTUGa}NfK1I2Ru+MdibbZKuuGJO8PJrkEsk|uV!{h$)#<sDb_f#DO*~B4wn0Ab?JC! zYs<ZID$%tqJhZa9#$0SIPP4$TR1OrK@co{$=_lSjm7SXF)=NkVFr3>Wnzh=R@X&UD z8N@BDAEj#PP#0Y#9x7KF5MGFvmCO8zV@a#zVHy1EOIu@*S11~kKCmg3-K-gTi4l?4 zl%`R|h%5f|*{+wCmx#`o8LY{xK~>pX9YXA`k@ykq0uYpzsS5v|a+cAzZo46`TGVE( zmz>OVMVy_oB^Z&bDsjYz8I8bIV`<TUM2&S>Hy51GL@OzjChu5>9tFql<iU{(Auy+N z(sN=BkuvE7o3W0DX|<v$`jCN*(3wJ;L1b?lpN;+f?SuWs9>$Rxx&;i}8ApZH>dp1S zbNDaX6mTi2<fZ|D&+{muDh<4epOT4AjUeYXP%}9Kct{frlB0FbIkOcvi6@4CmXjc3 zWa=N(hhM^{rzw2b#9*>-1W7w9<26X@rwEt;$Lru7mluYawJ}_#4uCvg2pwi`!QRW> z@YOGjQv<w`nV9;#DF)(`U}4HGOG6ve;aohLp`vD*VvH>l$tFb?v-ft@`3_yvga~az z@d8O$smX0WlbYW}q@b;-!EEw>M0BvFfR+Wd=^|riLvlvID`UoVoLuF=@1nD9Gn8tm zt(dA#zLkAy>{X0s%a~XUO`S94%z4a;L*f~_l_DG%dbIr#vn77lE$50Aw#V&+UUb5% zp_3~dVxbvJYr?DqnAN8AFzbBY`Lu508Yo@94L~Xx3M$3gXY+LqRwHwN!E;+~t(>7v z4|?k8?SNiw$`1N$vVam<13irr3Eq}uK;?L{$7cpD`r>-@N{PeBG#W6%G8^SofPzQ$ z$594cR^d>}pj=7s+0MDyltG>LY#zMg$>2xR**L{Rk`Of49HXzJ%92lDc#}$NC_!1} z2J}#uz^pUYHAA${P|o0gYvU%^6!=cU=rkqU8(zw)P|eDx80SQQ(iKZd=!J}+3vV_d zlMdO1%w8YGpkCRb!8=@}%Ss!T2#qkF5nem1R#v)t7K41T_<z8`Y93cp>+tduW|zr% z!VFnYMFwq)^pBt5OFB-HsAEyBS^UyPX`6hM>2gSwk|k6#B;>?@15lr2&rTZ^AT1d3 z04q8UlpPUprDTcqDIS}DUAEk`{~{O+Qtt7qJcWawh2u2H%mWm2({%f%%qd2|^33O$ z7@rLLqvI1GGrbD-TE=4IjE4BlEf8`HVk4A&K`dNk&hSFN48JJsD0VW6?D6KWIi27f z^G>0mb3_zgME|CLaSr{cACBmjt?KOiS&dAs#96s>XPJkk$Y_f9Ud_hC7yg(bVO(r? zboW$jx!sYG1~`;6+^`evWrsP&Dt@tawWqhu4*)p?yLv%rae+#b7FQdFLS7Q%$F3J* z0n8$ff!$+=t}0~FBxhwe+cbn<X&yy4(T2$%#^bd@|9F*u&~!ESj?pqi-ffQKRo>_t zCWJb>Ut6f$tKTfG;$J7?uavn{_C2{WM3ZL2OfU!w5XZQv6cgE-&M-9meD?R0552ig z)?5%BE)3xz&~i)8ci>n?$Lx$42(Zp(Vo*Gi*)k;Sz<4qwAiVEldR;|)CaoVg$45&| zeW+U%W|UKZ9ln%z*3u$Pqw<$gPGqN4Oz_MS((Fr?5^s!>diKcFO|?;4v566dlUGLB zBmk)>D&H6-)3=&XCH>MIxwvXvHLeTI*5POhgKmJ)4;JsH)p84FdFA?UHGNfQlonnd z{NiFNH{I;m%&L|4s$z$2luE9xF><f`!vv6ezYPU{wZF|tgRFzoKnPOcJlfncHbUxF z;`CS)Eju;TMX(DJqgB4uWJnAJc(2}h=N%U7pZkA40d4}h%AIYIY!l<H>_C^2bKqRp z&URyKdw&yUH|{ln@FjKx8{o`)5*`hyLZMJV%N~$XGx-Pj#$Ar*=Sy}o8(!?_?B-E5 zrwCtv^&?vLyoT~bIQR?;1-#k?p#jd0xbBPYxFM%{0rDKa6E7|Z$u5|(l-a}kxHWTy z;-hu!49=Rl(hd4KxbQBpwbEK<wF?k_v!|BbUA}?=O(1tKc6TqfH!ltkFW%q1*xR}| z+%2u+>9$e%zE^o!Y1F@1TqxUvZ;0obbI>1uuxQf}W66le^1=vZ24d@-c7H+~jSCpf z!_5*40(IjGbFF4ny2yr3768)o&*-)!q98X8wjVy(-8k6hJ0LUUnLwR&{1*}@zI%4I zwjYc87G_U<6y0D%><FlsNMtDo)~LY17GIU-fD!yI>SS-M2fem`&Pw91`{Yn8wy;Ql z3c|;-D#qc8;qM>p>vz<XVtMN`d9r&JjL#R_t)(ZoKH9tY=<e|+-Y1V54>nK3{m>iS z8LGa!IVq)+T+rjV9a1_X=gDp=B{kib&(x=q_}CRgm$Z6`eSB4Ru0H?x$?@pU=7Z(q z=J&TY?gR~g^ys{IXJu#q^YgRsKY4b4KIQzy)MjW-hugEQ-NrU1{%-8*(UNl^uwa7# zI@{4`cxe__r0s{kOv4M}(6!quiy-)HM2_b)`@IpP0bFNrZDkSl=R^zQv!F#DmlUah zg6pb4nHArjH1>myR(ljIeEg~3JXq)+-rE?wTw1y3EsvVf=B)U3>)z(ls`Chc-Ji!W zN7UV+O>8FWP2YVk;P0*EL7pT+=i2Q%OBP5y*?sWf*3#mw#l?-~_ix`?Twa=W&b7z8 zTlE9q>td#4VDEuHxaAZ#kx{5%8rHV6`^3EJkr2q~+&befoCSQ+w{GW6dKUvNO9tc0 zC~|oCVB<mW{NeJ(@E!<tcOSNYpFdxGzVOMcKw{1T5sSyM>5V8(-Ovt|Df*lQn>+XJ z<xnG)Fg&~0-+Hvv9-eJ3wH`J<IzHaN)BZS|b$UoIBCq4~n~AK|o}t@Ze7}{q@`)3+ zb<Hy`sukW#kcZnl-cGdre81Vbcl&$q?~NX{TKkQ?(f0Sw9<`(X_Q=hD8|3ngF#PE8 z*2dyW7U*Ue%BvjUY;)i!A%3QZ(_sGDqm@s0_P65?{di?-`O)@i=b*jtvUU9ai@VE@ zK7arFEU!)DaDT3Y!B>ZVxVG@tfpo_Xqe)|%5<(9~$H!wyI99bh7$=zG!YS;cQxjT8 z6);wH-0xAy>L50v-jn@*6vL`Fpg-R`t9-EJZ*AX;hpp3Rx1t9RA2z&=H=;k33oeTN zF!YAb!#)TrS%hd}=Q)IkHY!h;@TzVGM&lXUf|tx_Q_WdN`X7omRJ7%N?*`{QoSN)V zix&)%1S}bp@|h{zvERe!cs|coj;ZQ<$01)Cr4}x9KpBoHMTua4SAffSK7#+cds}Mc z9$C={Pn;3uOK|EUIW`}5t+GftSJj!wmS;1Bk@|h!j$!e_1$2aqa<RcLl7&kskDpCK zJ~;@inw~u@-r^|si!PON%SvfWE){CIL5`nhEDN>oqC}nwcU*P)!<^D=z+u04JVSX^ z#VKa2xVt1nRdlX@lx(;^Z2LpMz3<29Stp{|YTa=^q^N{uaTP+63c5ox*B3N^sb=^A z!NX)VMNrEX(F7{Fx(A4gLi%nNi&9c?7E_{*LgkVPrizz^{B;rjOsiX|r0j?lEh>!} z2uKjMZDCO=cOSEj#RjKI#@E#fviKA+!>qdusdVEkXd|M3BOZ{IDJk&9pA<StmS;B! zuu>?5DCjVB-)je_id&Z#`op-=1%4Rn7w#9yf2;J~Jd{G$KqK=K4TYLrWB;wP=!Ck` zKwM`829cu3m=WH}0=XItgHzSxmJqp<WFi>4IFuVjAd?pdAVrmuc8Yj{(FF{(c#*VL zqB`i(h;3MZY=CA6#BrbwU7nfLqdo<UE$KTIxs%9l*WPBO((~bvLiZLP2QSbhL-olq zVy63j6H+qCya*f;y+vT88?QPKy)lq##PtBL9b5e&`UbwO>1>|#fzL&iCreo~0!*AV zA*%_r{R-9^VO1PI$H6Hc%c$7HP*{9-u=I_rZ(Epu(nJ*y2p&d5e~SKO5bauB-?OCh z?~S^+Z36&v-0z1Nk`MjH7Hu1m421Xw#|qrJL}=N{8ksP+=~KMXm6y=%(ICWdsWf$F zs!Q=TNEJegHfO<Tpcuq1+lh3GO|cgk2n+^A@44rnHByI`yyXM7js*!LD2Q32OSCM3 zgW)%Sc?+fmL|fjr@@@<hB#Q$m9f#=PiqyD*w6?-eyLD7D;*0x<2dGJlQx+K6f#q0e zBx5*3%ZY$SpE)@@RsN0fYl`ovi%nvjZ1tE+x25u3bSz!tHfkIN(^UY?dl6o^G$PoQ zEq~1nVy8pGIG}J;<f<cIrjuVH<kS-4c(H|lTifq<rOXpK(MkU-Tk0WAJw=?bG-QfF z8LMV4nsFSn>CxhuUtMLB%QX?a-BkYjA`-!(IJpO5<;15*57Z9vTm=kAKz{u!Ji(%Q zWzQ{?MbMR*87(=QEAd(S%uA-Il^26Lp|Od;lkik#4kJzhwIoL0YT_bgnr7r5N^qcm zB{NbcCAlP`q8>xP3R-<&+-fbT@#iCdI41E~3x2|URi&em`9b`ksL)kvLj#0+N^Uht z<2G+nnp9Gx29;7qfs;(%dVQ(m%*yht*r%$LiKJR~q+E}r2@{+yz)JNivQ=x6O&h)@ z_^CKJi-X_2VtBW_2}q2E;a425-PT8cj;tWf(FpICmckV?vvittUPklf+}mOaHnP4S z?wX5n&3Q-)iJ|}bD8S5SP78(xe2kLHnkP%sw~d;WNY#L7vW%5}q@^vrj((TF$-;K+ zY!_#^zvr>Otk?IhyqPbquhOY{RBief$z41@Y2gK|S_>oC`e=X-?Uv?w!}GR(D@$=9 zIrVj^XzY5#b-bAun!IGreWuV70>KY@q*M}hrq}R^@f>b`-1*d7+F$gSpL}?F{<L*A ze)#bC?wM6#swnsGEl#KW<4U~Ay}Z(NbiWg!*-R@V*&Tx*vq>h&+K^-MbPIY7E{!YR z>&%SE{;k7lxgt^%$Bl>cs))aT0;oVg1;2=~F>aRDQ_2%7%FM0XMQ()<t9)KyTL0>y z)3op+YQ2=6iDqsy_6^$S7$YHpR+U)qoQSj1@SKf8_z3E7twFmPp=B)vrSY>K*$$s6 z;_|A4=f3pWqt|=a%X79x6y-$hC9tPT7iFV~nb;h@<&?w@4dQ6hc^z_pv`$GQI;%l% zG3qcOcF1y+AQuFuAu!n}n&Vltw8Enl!x6i*KymPZkqfGR)mdCvSrAv@aX<D#r-&Zg z*H-S_xm!~DdfFep@P=f@4BaU~G3j0+;ov%GN)3Hczx^heF!RwTrBo*9n$yROn`g+Q z$w<rnq>`9ia$2Q8JDaM18V&B&(MoD<<qqnQC1{O{2=%;|Ghp$Qtqw$TG#cYL$!n@6 zA{8aU33)?1ZA+}8R0KCJ=khug6q1KMFRWlJ9~t1t2%(_D4da6G$p!7a&}FviAtA85 z*BO#clOfRo<Q^VU@|1KlwOgw?Lz=<zSu{o|j+tW9ktWtn+c4>WYTZ)8IzEy7?K?9f z9d)IkmQ6BWR0uuVuO_!ex*{VZ%orCMnPxuAJW${Tmn*eyDxuf(L%V(1IF=|yv`?>@ zs#0RIDg^*j0i-1u(fC`fJ(FQQ5K1?8jV6NFkuQ(DL`$U=VE1U=bMKr}I~IGgNuCjH zZrO+JVa^%d?E?0H7!N~Nv&#W_=!Va9Vn<#)XU1z-PbKjnuVMypVkfeQR+GspX^WD* zt4zV4!$n19Gp-OXVybf{-)*Qv(y9uTX^zJ9t%63?rP_DVIPk;vbcpb#$dHQ=sTz}m ziQ+S(F4WpazJ3&+iODxCdQ#Eyw7OD!X4IEvo$s=_ER|`0QQ+WBXE7tG-;BCbd}h_3 z+F(DuVlr=UCp*{J-nw*t82Q7*%3jLq`O-Pwnn?poWMMG?{5Zzf1?Po7KI;$LC9CKT z2O0ZEv93=E?ni3aZz}K|_(K>7VEA>s<KX7)Tycrk{O?}WK0~n#q%)AwD)mySbiqco z3ZK8z@%{FHd`U=gOoW4SR}uVaV3VbOEXE_yT*Zc&dV#}oH|UMd-$&-0`M6Aw;+JkM z%xJ@t+lS4hi4U9ucW@G%c*p9n`n_<><RIoiLTMOuU4Sj`eKZPU3?*pGdVkH?qUh5c z=dnd`S&dvjcbnwL08cK)WDntjp)}<SEmWDiNCM-3?wnDspa2D>z5^S*8$?lX>I=tA z_L<$F%ciJ<2IDPAvG9U67oJx|X1GExN_b8khy5nV6vdJVq(?Lr3MpYQcDCITb;#P` z>=l4RW7fUixENrVS`IFR6bs--2cjI5ao%yz=?S1LZrYrxi~t5jjZBnjBznIlL1C%O zfu!(%AF9r;oc8a@Cp7HX6E66~0S<k3u@9(#qP{moNwkT2Pn6Xia_%ZSsuL^#3^0JV zg<p7M?qCeq*K_GBhMuRRDh3kh+^sGwEa3kgPF~m^ez@_y#@_b+;V$iD=JJRejC1-H z3c#&aS@r$xjlIne8y{~!qav~Par=7*dmD{^PY$>Do;5c1KG;v9oh770wROYupeOHo zm}-JF{$;19tb3tQ_<*A7^D7G28F1(|VOR7!VsbpWH`PX$5m}j&cuk{50ESn+^d<O| zci_llQD4@WkuDdesRWP?Hm7tklGRs5zqWLDgAUTDo_89cf1knlys{5T5BF%Ui5bm* z5uw*G%=Anm&SAWsnL<=12$X}cCKsHFfl7v?aHK8+cHw$dK*lEnpy|ZRQF%T_4M zoJWW0oJSi^b{tC-EV?%3ED;4Wh`rikz2-Li?Xg>z+>&d=uA>;4OeSU+A`GDDI!tZ! zjf`e$eC_HW)ADN_zJlo(g<1<}xFGj`i}gNs3S&PStea9iSIJTj2B1!}RI(_NBMe}Y z48?>X9wy2_)sUBPM%`zdd!h-18f=rQ*`lgPLIoVvR(lEg$YWVqaZbiE4wfz0oe94x z4x8i@;RM+DUKL-^8<$+F^C)ssV8XFfMqv8lvNK}FG&%HK&^B~IN7}?)m7zO-;RxP# zQ@*fl4#1Gkc7w)`JE)h<pYq`#H)mtk)q6G|Ybg$$BlgjHk^Dv1Rmx4bCG-m<&pF_* zF^c_M{o>uy)qVN|DQ$W$*P7mNPU|lTRB;pC@@^7r=Q=@%hHp&Ho(o&y3-)so54|$0 zJD}{HIR%=X=oewrT`kOJBOy+I)QN$yRVkVsvg+ORbUAX3V~QU;JWb}5DLVR;gX1Qr z>BtgSB9;%lz!P2cF)fFagz015ICwXvs%+60j`~*2>MUl|%o=A&v7-(9trw#K(|{I4 zc8!xI>{OYN645A8BkDJdas+r3CBrfF;`n|h3nF}KY~V(!2uj3|82);H_uYCq>9~x+ zY5gwG)RYqtjcOp<5%mJ#rQ=x!#>T~yD<#894I&*&QS@rDiV>>(G&h$;6GWHFEDY-p zwrJvB(86$1x=Gx`NPaS7SBqXO1q2mHR@mS*Cx#c1L$J6NQUN{-C?a&Wc0yz@cj?3A zq<=QsIa2JxMhIYQV#>mQ64~rcu*#sLLOUq1lC-$^Z2emOMz-rWmYwd1uwVmq<ORca z5P1<2{)xJhSqvUB8rBxT-3W%xmZj9Ue*$EhwCP3%Z`JvSOgPigZt0F^=)1sT_7rPs zlFB{cN*Fc?gJWzYnRA1EL^4aZMY`DrCphw!?}%OVQFgcFuuxckW7E#-dbH}0o(qk; zcvoq&E#z<INK{Tc>ndsD?Lig=qY#GFk2FBE-cYJ-Asjgf(b`&!Q<gDoW8_lzj|EX@ z-b?am)lP^vrB$?9GVPe<PO*h5${}+pQue;@w<C>^O^OvG!eQWd#s;upR2bx1Y6KY+ z_eV`C04v=kOFtifaFChYH{Rdg-eP166?Kg#yBp7TclHk&2RjG5+YXQ3g-4FoX=C^C z2Rn}%d)uEJ?(A)E!J42D$(5lZ<d>ukoG_XmjC@5Tv1HOYTU<G;H+P7fNSJ0IAekpO zspG8^DDxLOWHmEfyh2VJIFj;KBtZAr>dNpqWnop$)V)f7V<JRk;s_!%j3P=OW|u@G zszd~C8*Jc|&R(MU8~cqg$1qzgmb8nXYkHJuO<zOC8WyAr>=DSHY&)PoGMtBqI=({} zQ8YuBP@YIQNWKnw;vo2=LC}kgM&&wi*%&5SjQU+a4!V8>d_))=pTyzVX$PH-k6C+} zUkR)|rpR`G!_aA=skPB6%c2~#Ff}L+g)|e+*@@qigTbNq`ZPX^5+reBVWMG?d!`C) zSrX+<L<@w{WzFY>Erp?dQIsoCVJa_@|L^r8Z*gt={r?5`mv86lHqBVrTsutfjI|7+ zsh^rp5qo#NSiSYN-Nu+~InkF8>)AA8<bg*;94bS9oLku`td8TPVuA53C$LYQA~#o$ z&{7C?Z;VcC7@~Am(W1D%N(Tvx;ZFTr7`)-r-O`0NkkplIo$M4({oxSyzLS81bUD#1 z2V=gOy!(_C7X}~WodRkCosFi7c4sb32dY!;T#aQ%bm9mlE3OT^{Z<yGJ8sBfU9f&& zo%*AHb$U};cPDa0(?NTpD3i&2s3UX}e%nbFL&Vp}lCLaUuAxi#MtKElg}J(>yy_$^ zD-Ka^$~f5+By`!!V!5be(_V6vC+L)BmGfnOg&)xH1>S!v_(D5a>GXp2g*e0CNSsNS z?=_uoVV@0VT%k^TsX4hR<;bWhW1U7<hhC(AHbd-G8LeaRwX}|T%dpeBMCjoQ3>qok z+2N;En+U;uy|e+m4*?zf!|}{uQ;v=k)&#>f{>N4EZ6e5c`xi-9HVEmTvSIU~C}%(g zC|VEQv)j4%HzrMwMRi>XJXPEGH_!K)=OHRHA(}%25t@^!%w(R2OkFe=QsR;!NlGM2 zgE68+q*6%(X)bdU4fJ1UpWnUiao_)aKE3zpt@T}d?KSPS_u1#%i|>3?SY_6JZdcep zv8a%JVUFJ5Vg1=BRqoha9lH{J@!t(cS^1~Flrh#nf!|iveF*H<F5CLeM|Asd-HsE> zj4Zq2KOd3(kzK7FBC<wOr#SuQr+Rap7{`@I-UlUfUVC~ox54*(@SLa;tIki4bd{Fb zkDm`X{&#Ugcg^>E;pZy*+LFeymvo$s(L8cJu+PrcG3QZ;hUQ;4&+foyWkWCBNk`t_ zsHweNUP-xJ`S)V@T%q$_BNX4bjm{Nq+=8B0oU)J0=XmXU9l*LMfy;cwhX-8h!^^^K z%)aXTy$`oq@;a??ee9dt_vLPvgxx)7B50eKqTv2#jki!u+-sczQDYO!r9#CONAxe5 z$qU?2*n2DfyDep7n-{rh^}W&CyDGe6b>6+nyBrdF&R399doKCo?o0o^x;ZN*MLghB z;;Y^hRQjW6Yp|UDibLK9kF5-gyjHd<bk9%gwZnz{-*{O=?;YX4WHC~o(0HDQ|L6JO zo&CeAox{rmcFUSy+_mtzT(4)tWUhiEi)-z+1Ns~9-_Hm&yddJ^cr-_7ea_uumRpof z<6J36C*RM$W6ZkIQi7dBjD>}ThXwl<?3Y;~!EW&5ZSsQnFGeRHCi7$8`TF0l@LUfJ zC&h8HW1p)Wi6-eyf38w3h7`+<ev0~BB548rr>Ng1lHPH!W52=Mc7U{${xw<tgCs9j zGB)0;Dw7LK;cK#|xv2?<NZSA3@5H5Buk(GWD^&N#MqpT}#`!Nh-;xult8_fP`3+CF ziuuZw98;dt+B0}_B<<a$b*oOt*u6LzrT^_i$NA8R{G!iAx=R9NHaB_g$ZtLW)FPmg zZ*cEVQ@vTX%Of71D?688=_E(y?2o)`l#@g8?}_nH7|Fd-X2I<@`{mBFJqHs?-q?zn zmh2mkksKiZ>=(S=KcTlI-9vhVw_(w{&61bg`sXf-_StuuTSZCPk}spsP}YB+`^V3v zt2Uh8`Cf#@@1(F|$Bq5Qj~Y&2zg%?6Fx#t!J>PNHmlK=nxv!Z^?e;n2yXf<i^4a1- z7QTFMD2K+_QUq)bR&9B~?{PPxyY){_%CUEQSg02t$b3IL8Zh5?n>(q(E9P$~N8_)J zN^?H0zTm%q<zjKM0^ae(B)?UO<cj=#tRYFeWlxN0eXopv_-Vqfr}gIh$Pa(HlR`+v zD};vj$eX=BA8<;1On;(n<?^_7s`K_a&k=njr?*F4(19X$=j*Auq0*;6trFW<LrfD= zW~B?R=kQp!HdGcKuzDYh5#Wr~%dMj%Sj#RfjTW{|=^m_(&HmcaryMDja(8E!-1334 z=b!r*KJVDP&b}ckF1fPKZ&zN^{ZFJXWTDS-J0DM4?B7u!l9RhWy!5s4TQk%5`F!m+ zlqw?Sf4n$x^&cgVLqht*vXPK9nMWdXt!0h*Bb6@dvJ3NX|0SM(^_h&q<)|Cm$6LC2 zU&_R>T69-5eRzFPCR%uNkEZ!nYq_;*d1s7O60TZxvA?_AbXnT;)4jo^_Ex8lCazeh zdB-BP(2HU{C-HvhbsoEonQJ<%HPkxgeS5z=-T1a(kmvgQlbbUsk!gE3I1e6*(t3E~ z=^NpckB%<2)&ai^ELdyA-OMKDb?T_hn=gKIo1H}HqdhlLMcdq@>#tL7Say3yB@GAf ze`~azOT8?Ay>m-<jDKlome}tfe=N*RX1Q)rGSK_H@uBFq%p2xUEG+NLUi<CFXT2Mi zdrI72+of0Re66y(*y}E3kRtbY;^&9;Qp?*PZwxt7dz)p^G7@`e%v$@g@RZ;<VR_eb zH`4=gH{OnkFABT4F^u#(`n6BX*gU`cx1>+(%DmD$T)iP}>(Bc#T4sWkj}J60tIN`q z?%(p4bNYt~u+Q)bYg`=@ho6OiBEZ6;LI2>hhm*S>wWEk6NKH;6i(<dX@&A07@Afv! zqi@y-)&H>xvrT@U($Mo{SZUQ8-NRh!RNe!16?c6G=T{cZS|15Ns{3c_^+vcv)2fsq z^q}nbg)b#Gl-Wm4NzU!&v^k($yrXL3$tjbw50AUs+0{H>ks&-!(_gMw+|2GSM<m5L zvwV|SZl71oFOPvZk1(=CA6I6jmIvnn{yWh_|NJY%v)5Q<A91!{HgC{WH-*ROm+)7r zz*J&wgrAPH!upj_#tI#$GxE3p^XuSLQ|Syb)R*c{(|c~9qronIo-ILM?cP<Nlp*20 zcc)6P?on&}6w+9#ydgyJ_PCq&_~GD+9tua!1Yg8uzlJQqsr@0b`{J)SvML|HFCJ+p z;UM%rM+|=0#gjAh$(3!os#a3Yw;dwfFQr!T5Benc#Oqt}6qYqKyS)f~vnj1|!J|gi zT#dtpJ>kpT!<!P$lNug>8C+&_cDQP5p8g)Gsg8`_dk$C4d3AL@***OShpP8s9i5MR zqbV*YO)k#YIrL~={5kF*J^#8Zl^+jK1l~#nyi32P`mWh8UMu|K;S<Y!Bb&F1p3~Fu z?hEr(&o=1^b-lhLwr4?bjBrxTNX(p+V~^zRF7l*5v03`v-iEAR&Qm9!^XI_4ki$9e zs-wU4@waOHo2>fxkw4ezVcKikMmdM)?@Op5FL^1p9SXPWGZxD@Hnz*89@}1aHn9H5 z;3A#XZ>~OUQ@*l$>y9Pi`!bg1_Pk^{pBa$-uzb!@Q{jXDS!RcK3P!AHUG1=_ReZbF zwbI7B?%HyfIQ9xW+x0@c&0tB*ukuG9Bz?>l-WUJjXr`r_<dZFvdUx&e9P_cqN9P_I zeiXaGh$l(=2W5}thj$CNAK`Z0nz;R#c6wjthO4FZ4_|$iS@3pDuFLG4a_6FUTh@B9 z>tSOSk*z1rMaBfh&mV3|X4!vXyIsp(DT4w^h~0#QG^b(kU`_F{>_ZOjwQHm2d_1*v z9>03g5l;Q#!Vdnrd(D*wM($R9-X6B!8XL^2(>b|H_BT?VR8njgi1Ht7DfCxaNIqV7 zExt!ur?N&)%h~CV_k1-4<8zrB2Ve7LyladekB%|A6S8(qz&2asSB5ID;Nzr@<neQw zVME&{sW$`jZY`10H=1?L_e{*OA1}0j)c>*+Uu|5p)%scQE>`}vbB!<F{irVgNTK!; ztDbg)<sE~UZ)5x3{1l^Tai1)FD(!f?^}tD?ihq4k6TGs$6Gz?eyXNX0h_Ts3X(_!W zUh(4MT#3J&ce_`o3v?N?E$56Ym2`jEU9xPIE$4IHZxR<G<VN$1eC0x|<XJ4a&$*`E zS*9V{W2SmVRG;rpbDyT7?P9aN74g=_(f#ooR)11|x^K;a9F}Xhxfj=)H2Rf%>$}$C zf38=4n4&heW;A+rtizkbzc|PFUAX3%tPmFIBW0vWQOdr1>we2tQF^f>^nKD4*L0=P z+IWe&>^NyPy&2edoRq>!hX1|hL}|<T1ql`wHD{{Q30U<XpR=~c{>=CS==<fqM_;Tt z-Z!Z!CCjC5a;75pwZa}*=RM7i9Cw>;?1~J|<l#`hR(Ne<evNvv$|&XLg)b^Sx2Xnc zgZ}Yb*p6-;yigWtBboj3MAVmk{Y8(g)o(pW^FBs>UNXPxzMHVh<|Feh9$(q{Gm+9h z5Lk8LX0ea;iC^~Txe7cq@(g3Ht$cGNJg+Ef+m@-K!yZ%qdGaR3?s;|E_iA%uMncc_ z$;w38&6({f{8>hS*N4WIhFcN$gEYe?UcI>a@B8&xyEBcmpWH~#IP~WH?A2NI>esC` z<{L&jkGRjitR~L2pW}8NkM<ERHS0{9r74w^gTFWrglG9DFAqDdW~y{q%G~?d)wfU9 z&s{rF+;%mWZ1Qlk>Z*ORch=Na>GYo8d}d>3-o-R?^^sRKl|l|h+9&m-Ub{xPJ!7d= z{~JGf*}UReyv<#!FS-IJ%om30+&^k}+^j+^kkY2_!X06dN<Ffv(r!<@jf9I<!}ZNs zyjy=(Qyx9!3loYjUBEt&YdhlWA-ZJe=BlyF+hsRDR65REaGg4~WzFV8!Rf!UNseP* z9~~k4j+)QD(ORPAxNAgInDuh|iIn5b><N<f9?9lMHl%Ag*o+1k{`*l<Vq^5xbooUV zdH>I^ZYi(s8#iGynCw1cQ?J<)@5^bGx^3sr%hhh7T9l85`#radx14Wp&`It1*IFV{ zaDH*ruRAfkN(HsiKdWrSCpa6Ij{Eeymi(k9YPM;1&AHlw^5XgBrzAa8H{=^Vxi#(> zJtwI<=YEZGOsxK2`z)6M(?xSmdYfq}4l90Itr_b4&wgN%Q{ck;rQ*@lmgEwbyWQ2K zJBD>)sVY|*)hHo<YZq)8xHqS_H`vGA`^9_<@n@gOIb6HT_8JHN<*t`LwV<#4{n<U* z3kw7;I`sV%-(q4O%X*8;NLJu`@5&6xlmn4D&sMJ+Jz@~|O#TsX$lWK)798wVD~|b5 z`Y<h)q*9olE%xxP#M7q9yubx}6}fbO9!svL^jM{paPnOd8sALu7Jq!>iqS3Q^-B)! zoptYrb(5@#Qx1QVV#nmZk4N2_+Aer(b19vrd}G&H|B#x6Ve3*Cws)#zMh<>^@v$*j zMJ}3Z@@P}m)(Wjo@AlwAnGNE$l$QhfT#w!4Sce_8xm#KJNv7{iJ=cYiI{WyhI7<3k z{w-|tDw4XuUzJe#jAJQ9DtLJ9Mf(h~OqD}*=?!OZyT7@;cL!;b-*4I4)0<=q1t%zD zdQ`iOz8(wT2wZf$zl>wIUy8fZ(C(a17d!ZRS8lsVG1J^f>8vXDb=3{jO_ei?B^kf+ z`*pfBXYjW2r7N~t-O<l@6J2``uJ-Y_-qG&4(fWjA|8Hlfg1nS-ssmz_;)JG8J6Jha zZVh-cluPlr^yi+i^7^2sbKmS&zneBG7p3%ewUy+a*u1W%@#|7I>mB@L(PVXhUxTH2 zNBHcTFW1uCel6Vp)S<w^;DDx72k-YVfjhG5!8sgu-`A8{2oIf_UAo2XS!&hBms}Nx zt{U6Fc1+My|LNqsOUWY6$EVEGf$~86ir?Wk_TfJ9dWrt4P8E3VNwxXpHa9s*GWhwX z7S6viNiCrrJMFJo``LLsJ$<XvqEbs_W%f3YMKSX=HT=~&f^Akh^*fwS*Vpc7Tok!J z=fhg96XY#}O7R`1-9J=uT-M4MW$mltUfkt(%}ckHn{|J{r}Fn!CP@bd4DR^Ev{G`f zAH5q_*|_7uun~E9SE$nHr9$KE7<Q}s-e<G4Uj*rCJ)V2Av9RdrE{VY5AD&BpT{%1M zv1p<FSTwb|{ew#A2etXned3=hhF;Zq9Ct+5N6r3fhrRc?FEQJ$?b%QoqI}Y@^?}dZ z{4dM54s1TCH9F#2ap9U}XW8dxyAEG|X6f8b31{b&$f#dGuFUdk@e$XA7l(>UDt8H1 zoah&NcKM6cyQ*-V-T$Vv8(lsw<DuF~4u%;Y+@72QKf&exEM!kzWW&=wR~J{Y@R7LS zfx0hhXH;D3wOkX}*>66|F8SB+Qs9TL$VJng18EohkDLipKjQ3pc&Oo@_|LVGHkYC{ z#TBKoQNAzjkl&Gai|?&&(B*j1XMel>)S8~1a1B-sZQW&Gy}Hmtu&;-Dw7NWN_uBv) z$H#eBHNMr2mX(#~D%Ivb-B(>zRx(=q(s5wE{foYC`?B#>PB)__KlG`$yPj5hq1oM@ zEf8v7EdKO|(8E{NPgHy;!9y`lw>|}Mar2Cf*43GjDFzE1`fdtxX+;K~2@KFYw7K~c ze2aZ_i+IA@9IeIo_%oFcNEv06M{c?PN=m``{qYQ!Ee{_133M0a>Rr#f$)@wIs%CH9 zCOO@O&n>>BT+b)3vEhw>$az)a;DX@25q#buEki4P_YB=%-=X{XyPOyIqT6}iyG~x( zxh!vi9gmmM(H)dUf3p82gcmp*cx>6jbNNbT<HBE3tM-eOFP%8ULoKuLGhN#472ACB zvHkAo9nr;H-G%utW)GEZS{^gPVl2F+M7+!*ZG3HF&$|l?uSWNCkLJ%~BMWH8{`#`e zeZ|#?XL^a8o(s#9j`fi%NzIe?V$b>O|Mm2${Qf05e*ccx1<_5ES5vb;IBzw!UN(2_ zm4G!q+RA0wA=&ShwX%mVJbTfiD4cQKyILrD*Rsb^ua`^vtyb9ISLgWDQg3yk=gHhd zWsgXl`e{buZ!*sRR#=+8tkK=F%cotsZ^x$R{<lp_=0D7gQCHI*EPc>0WpXPeY3{+M zd!thyuIN9$IiIEPes96GITUi1;8m@rzn4AWsRl`VGu2vUN1uF2R;_uzf7<DnhG7Q` z8Z46Aw7OL~%J{c09s0S=TQGFMvG$vu^6ZyRU;Q@@rJXof%`f7yZreozsXZ#Wwh2>X z9h86HCpS>)#x5j1FIYPMRebAe>4yeWUUi&v+I$`OI|Pz{+^8|&t*yD%O;Khki*}o1 zpWwVv*Ftr2>HOdi=LG_XO$QR*J(#un{GR5OQ_BjBuD6rJOdNL^zq44mj(^#Jwdv#_ z4_mD2sHfxprD7h&Zw)+zdPfJYQ?nhq^29GKN-TbH)4sTaRKd%(Z&T^%!i1d9I)Bvf z1&f>@i?eunkBLt$dH3Ez<8Ov!I_0DU)xvmUUZcxyYCOrTZquF*GQ)C_-z$`M#4G%r z+Hp|9TJwjli|66knjgzFhCElFDV)_ud4Eh)PU(Y$=$Ezc_`*&#JPNzd->|C7QCID= zdGYcpKD({niyY#<XN^1c4kXy0?tDshPu}n@yQy;jhzMyQJZZ`&(MU^cs`r%rO^V~L ze?n3vsoht(7hd^1&%B{(L+r!A!Jo1{Z};~E226JOCi1aepEMN?cl&p(!qclVAu@@~ zvbrg@Ue>}QH#K6ryO%+rPEyQ0QN#E9##z7b6X|)vI&#p{NWoB}Jz>s`Sn;@93#2mT zLLP)VuIZ@~|90esecH}P4O^B6z8u(nw1q+%7~j5m;Qr!_hec{>?0IKnA3oPx(BU<e zb3b>>Ty?&p&;6<QD)-OHy~TGfZQQHQHDzu^VElD%%V)Mehjz<Ml;2)65)qiuy{L|L zlc(>>vRo6H&gTXnSyG~^4#-ExSsgvh`s|A4`Bz7-m3B1iRa)owb1vt~OrXfJIs`cF z>I<aQp7A=VQ@*ZEGBreP-j`BkrAJ?HyKZvInG-4f+F9$)Y+?IK>ItjkTWVAiq!Tmd zoZ&xzJ^BJ^O|;rwvyTF6c8)u3IY9d6cJhv@T7OBp?dH~KkI1?r#eJljEWW~?dj;_p z5{m{qOjf^mP@`OO*MT%1A)U7Um%G+Dm-ya4kN%J;ZL70{J??&Dk^OMCOXBJxg)bGM zH4QgpuMOYv@RD4Wond)oGS6kQy7rQHbT-ckIoT!6iQ&hzB?CVT^2L0X*mJ+2|HHxi zH9smBhZ;_;j=H6N(D3{I1kd`%<45;?F5s)VqH@ZaJoKzbVM(I!L9&Zsb$+<aJ43^( z+inf;%NS&jQx=67bcW=sZp+ZExN))bjP01$!sXtN+TIM8toeE9S#{-K0YOgrhvySc zZ06oO)OaP|`PG-3_iSyQx}tt@|0pr_D;mh_-*bHBiN?`p&*I#xq|akrC9%hgRJXHF zmB&Tv4_<y!=%2VXdhxhmh4GuN<nTc53WZ}GRx<Xh3_eBcHBv^G=TBvCjp00Et6q?K zc%|*5u&t{$Mr~`lX5%y4?O<+?>F0^r5qkcQKQ6ZFoxIj!prF6#qx)Epjj9g&nK;9g za+0X6TX<|K_2y9d5}pM$ia|r8$BunZzq2l;d1Lto*X?pY1G~}>QYy~%sh*kIH-4n9 zGa@uDZn=Ww+ImO7Z%ve|k2Xq}c$Ai%ZTmM=@~<{JbaGP1*y-W*)ZxT=-|JkotqS~P zi-dbWPF{48IK1gfq{d_w`*z`=t2<Y$Y}n)6Kw@1a7q_7yt~p+vwM(AelSAvefUS(8 z**Wd)g`2sSOJz*l6=mHJ`;MJ;mee=R<8k78dNy-ESj-i;q3nD+VHq36Lgk@_OulQw zW2<Icdk@coB-T*24|?p!S8Y??>6mrQuVBI2O0JfOgt-r+TOM>TV|Tyc&^0(fUUxFC zW2aNs;OjyGTj`VH><R*-4e{=07F^$C)!rh!#T@>f_%P{^r<Qa_rj?xWyLlUhsu$1y z(0Gl<Dsus6)@t{5aZYs;u^fs@YZ+hB($n6Bt|ui6g*NGF`<u6~Yfca|lO1-J{dzXp zov$a>py8-MrtHb2PLgy$(_635`3-6OFGVb0?Dh7Rl~r8br^0o&vQqhpzvZ2e8SZ`C zk~)VP^YxpCyngOzwyK@eG}L^Ub*<8}vQ+ujddsZAWyj-ez8<Q~I@sf77E2k{Sf5r| zxlC{0pn`y<R`*(0g$yIEBvPtr#oR-4Z7vr!&$da5TI*_2EB=v1y|^t=S##~>dzoj_ zC>FP4*B&3-9BQ;SqH5>Kf94`_TA8bij`tg_u{sqaQ}yxp%QTZeIj2X~7Sy@7kF=(Z zi@SN>Tx2jyN>^`%%EP?lUv{^I+%=-;&-pc2<#I?m!0F^MtDklAS4d?4X&Y^QD7atc z)TGx})mc&VFY7z6x?p+Zi->)MXovd-^HXbY&z^Uz=ya>+hWYI7msP8>4n~<5beJ2# zZyCA@Q{@DfUWu{LI=h^=urj|;*nza=jlOo4>N)o}VVwnY)(I@t54I3F`;z+TQIh*_ zidAb+v1|PapC(mNedW+X)rIrtgu1_!o<H9#Lw}#U*mJw~g2iVZ+&5{AchEoXZ8S&k z%HGzzW0~c49t|(s?>D!b|Ma_Ec|u;`Tl*U6Ls`Lkp+4CkeLYihZt4EJn;^D*<Bj>w z-tn=8pRZ|3%;)@k<+Y1#s=gTSY8`VW)BAHZ4pKZDyE|58AG1<Ab=TY2x?N6L&*?+E zxaH=M)^D*{*~jE;AqIbb^(x3r-a5AkZnJN`tdVs{yej#PX5#GYo7CML{YmR2wjbVl zZt0aRa>aX<t<$9xL%GsV9?INP++N<i+~n9Qu?@aoL|KjXnu;GCY>joydSosyy;1h0 zmVmgr9VIwa?W_Ckk_F)gEAE_A>F{;j<ooE{hqE;*abL8%ju*L~jrvitw)Lc{&pL~z z;$|BJ))@(Z-lC~;OeM}|*ty!k;Fn2TzP_xtf3y3Au0o+W_YV(L^^gCGHN9+e{MTkv z5$l+RF{WD9FTFK2c3t4kU=b{Q$KH2M&ODsERUlHaN073-@~Ha_w_6X68hpKL)|-|* z9BHMbdh*j;=~Jq!jK|tXSBM%0i5d?Iq&|#Qw2Afd8R`5P#rC`;QsD$?-S{29qR$T= zFWvNkBc-b=dg^bLf99^m<%h2&?$0da9eiN;^7PF+AJ$I3?fAjn;G_0Tg-yuGKsM5+ zVs=(d_M&@cIeVok0X{tk*hc<VPMjPrSY>)8c9msGfU{blyoY0+vTE#w4bFjcB=pv^ zioR|X$!w5o8=uvE-se-_&p#a#69$7-CUOg#Vk5R4ASXYi<|)47RvX_ZnLhi^lkV^3 zk@o~`k2cp@DcC5^FD_UeWWi0kecLf->+A1hU*_aUem6VjW0(^_Sw8MmB4jXPqj)Jt zl>F%GJeR!0*VG5QwJDpAh)IQ|$UkJC?QWfOC67fgS8sn#i^E`CaMApKd@p5lN7F^A zAJ|@Xoomwm+r~e#ta@P0hOcig@>g%#H`%)X)so&$%Q;_Le(&c=8cc0`;b;0P@Z0Pl zex9*swYS_-TS{ye1$dM%r-<$h+at9qY1ygJk+8Vc+#-+u3i+(^?l{^~QCRU*KwIgu zhPbkVzJHF_({nGDr*)P8onIg2aq_ZrX7})wMHAj3c3nM#%1hqFEA<z*a|M1KT}4$s zeP;2ahslZm9PiwfIQXeM>g&_*RkF{A)AV1*nSN?E86nL{Iq+xkvytAbi$y6zkB=p1 ziJpE=`QdcIDbBs5$oP5juu*(J$K9N7eTKSOC8p{Pye8w<0`zz8)Y>ta<e~rl)Xfm{ za2pwkvMoCXW?h`T-&^$N-to8Ru5yolJn#QKvvz&;sp><vT{o_*rY<yHc=N#LZJhST z&9aHqP3Mkj2TM}i`D*1k#YapZ4?WAE>?V2L>9V^u?_WXe>|b1ygB(g*ZEpsW3v~+$ zY*)N%y;XbS&1}uZJVRCjOA`;7eKRfUbk&<makXBd!3SqqNjKTdu5Gz7;pTX}^uqU5 zq^^xEX6+-rSM=7o#`&brvEK5|K#6a`da+Z*K@)a9=NzTAw&opgu375t>pL=<zJ#Nj zqL9$Cpk|3?pwFS=(8B_+O#25e_m2uGr{`a-+Ge+7E=fe*mfJgSTSSlBR_d$nhdKIh z7kLhaB#$3Fd+%Wk<@Bl#|2%x3obL;lC<@WMe=1LEN5+)heTTPivK6Y=FNn10%Vrnz zCcpl%jwAm4+wCmr@kY+u0!tkmc=K*<?L1{$N6A-M^-Xi{ug#D3dRs?!@wENyH2Af6 zjz3$0O_6C<)#JFw|MtO`4M%p@vx@s^nukveOUXoDP2r0cYclHbIqF%(d*IZnKLv5Q zJ+HUe{#~GPW@N3K^w7VrlRFz9^FR2M>hj0$aMWowzfWCX6gG64-1t%c(fH)Yi_0Be zrqtKAT<4|;Tzb>ItZlCMQQJ2a3$_~OQP!GjojGK~@(Vt;<+Cuk^koxygU0f0OTW*% z1}}7oUGfM$_C>O^e|5$yDc!u=n|qf<If>u&k}B^#H1WB3!;`tUL@ak_v#vY)sOruO z%^fCxR)`t;Jw6*XP^XZTNm(hace#1X>3qJ5r<H1fpZ4)?rzDvbx#<e+&sF+jC+|U3 zeaHXwo$)=c5O-@8$;q*SzKR|0;i2D3sT%|zx&Gj;(Yq?U{tjhc_w!8EhWg!uC#U=! zGhQ2gGEbiP*I9esd;Y)RbMBp|Qshs5|0;U9qw(2i_6on@bl2j@>YBJins0kNLT#V+ zAKKynta5cv*`unIPRgm*uhb+wlUM>`f_WTfZ7e)=y=bz2xW;g8jA!KUySBdftH@to z`lr6=y&=;(W_Q&_v&L>{n^0KYraxyK&+FQDe;>J<d5h0(p|xXZ_2M)8qu%alT3{2m z>Z#EP>++vY`PUZ)x{Jk~OZ_1$bN|&IFR!DYT3WhSbamZZu)=q_=GRY@XkS}%wf%KF z!h$OM7faM7KIb=zoftbHJ;38;(`*#$S81?q>UT@-_L2A-iOJ$Wj;9+b-}1i{J@NNU z-?3T7i+{}#TjHf?{lzSGRGf3mQ9i>X^S*J`xu0?2ce=E9pNMkggVBp|LyrVzrS&A$ zN=QspT<rV(qnEXG>+6ih!I#ZfDOwYSJ#HUgX?;?^ke^3!o+o;#FtJ`nscmGVnPtST z=aU;#`=tK<8s+)&^QFPkPo&>3cebhYKmT!TqC9@x+@EQsTet;yBMv$J;JmOW*3o#f zdmiV#l#nc8huW4Uo$n<Y%(zv5IQ?;;JpMQq@{R(J+!>#^JBFrGuN9Gu=?};M7Lj7v z(4+L2V$u@&>3K~t=_U_)@*a1Yq(p!6ex<=pjFnn_g~Uh39_?*c53e`a$ii~Liu&jZ zNf&#BM|G(r$<4x!-7mAq+*&5W!jiIrg++oz3Lg5iu&~0P!i0U)6_q3fb~uAa+-R8i zN|G$A5H$w~9N5oHQa9Zo$+GV^s-wOHioBaU3k&=dWmvc?_TW&*#Um8`CM72ed(zZS zd`!3|u;x3L_%<GR)>z2T!Xio-)04X4DoJ))v?BI%W0#`V^eK^9SS}i{u!s@ZYoe&d zz>odn7?Q4pt}E>R{g%WFGnzefMj8iM(k>mA<^p}-?gBz6g6?acM#%6z0dB#gEG*)L z0S+9aI$a~l(bY#r$h}6AWh<$qR$pVZf)O@$|F|2=5*S-Uex|Cc?h#BA9^~#4=0UR# zT^o&!m20lD-p`CMVPP@+Fw;7%kEy}eNiyv4JMozE5-NPiT@S#=IwhyX*1+GeKg1~{ zNmJXd!xY9#ajz?4dS0v#tgHezn}QdV2s2iap^n`kNm28(SV@eALKijy!P{&L<ZzD8 zd93`597r(x76<s<4;GdWf-?p0)Wl(aRU{$0`H|GTDv+A1i^yb81N;~68GM8>WmE%? z><XO6%a0ycbjx9Z(ma$rmI^kpREEncgjwmEBBY>KSXdCv=(M0wEatheW^B!o5EmY} zbD}sCDzg#S`*$@-fc@g}^(bt3F(W#cO)c6=ZP-W_XM1FeGwrAWCb~{o^6k|UU#$db zWwL>VMUkLWoCCGLfh0-2Spx>4<s=HQu^O1{L?}j<BD=cL6s9K}vh>3PP8~^bOJ+HQ z8&R-SBtlYSQ&<HE4#ILTiPKvyfsKVF5-#*86ZDyi#$iLXBr%2z#Adqtc2e<G@ak>2 z96%haHx38c){z9KCyrrw7L2SL1pT@}zgdKVh7xg1eI1ER$Dl|Uu7iosKY+-h?%{r6 zp^@H9;eh;=nbT<b5dv5hMwmm89-fLzKU_}|q5F#+TtTg`2kBMEaq^N<Rzb`-G{YmC z#vN<>`2^-E1M{3sklLSt!?xcf2~X>c-FZ5C6Qqjd;N<3;Bq0XdVFr)5@k;wN$Xv-} zJHAsmNV9<?I1NG(u)P6<auy=GxL=T$OHg1)Kp=A<U<2&Ztq(c}9<Ab<X=s7-m;jX- zveg?wwm=C+lBPN}k^~s&{6}o5$rwGq4A)KZE-N=TnCaTt!T%L|@GW&1V;Q@QScHOH zLR`XVs?lN}xwG~bu-&<aOM2GDDolt*EbT6T;d_1yTqqAgLNs_|9S+;x1O}(2-7GAy zHe7*EwnCP_gBmMKa8e)jHOz?=;?ATEwnB|Ifi@%UNGv&Iy7<zTCKLe^i!-JBp$@Es zlqJU1^Jln12bv+S2-B=-2EkHqaPnv~Nt{kbB75o{*RAJfVabDs+r(NM{QiG)yv<k= zv7k!14I*WR5LqZX+!g<AXYj*x4ZsSX@~Sn8+7MgAU_N5OQ~8QvC8>U*Y<!s2>BSDS zV9tpJs=}br1g!hSbiVKthmoY%n5%#F9Z*Vq3g;NU!=N)-roA{gCZwS3KQ^2hhby?L z!FNbf!me&^@H^Es=MYpnxlh<F8)o7}nrZh62?VBAx6HKra0}>DEQ`ow509NR!F1<f zmfUz3nC8vGWkjrCBV*A#ZAB~ytJBsWXoazRp~oNwl-q0^H*}Z8M-M`Fz)+=IL2QC5 zPF~+i;-`~QM{!z|tw{y)(Gz|lm1yA(4IES63I&rEdMI1^F_G)^5Lw92JHU6>%n6}z zdY6}_yb?6c(O_XwAcTL}LR@ro8;L{@K_t4k4Mdxn;^f{o2G5~tBXkeQj^>C=4sxXp zOScl5aWKZ@Yl)ZyLTEg+%tXUH#901q!H3C-U?Z+RSmbRzJ6Nv|QFm+M%zQs$gTwsV z84D~{Y)-X<R2d(ftdlZBD%QhFI?j#y4HYl|EKW>=djUA?^>H>{EDdPQtRhx88<hlD z?*q&lmO`T6<w7u+Bvm(qjfW5~Xqv4ZppbDm&NA7-u<#*k&btrfQ?ZCF?&cEU;-{zY z=0`Ia-Ka=~e%G7hZlJ;!2tVQ?xi}t|Z&k=9KvV&{L-QLO<9i~`GOrU%MxPmG=I=kg z)hIw&?FEAnXU28}VaRT-%q<kwd>)=S(b@*e?1j~es8DzcKAOc9+ynn>Lgi3U?k~v6 zUIz2<1}L${Wv1aU{~K&%#`4b&qft{Hz%=G%{7)q}dZ$B>Z8YoIqhnC5s>Ek@EZy0- z?9v7{5rS+i@$Dai?3Ob)NB&(l648p-iqL?uye-FBYM-#7^@)&^8jpa(>l)7C_=wTf zSZE%_$Zpj*d3hgkhNuu2bA5N&241)hg<virTQAh%FpVyf*mNPlG<WU-sgBJ!`N1d~ z2X)zJHeQ1I$mr4g&09!d@H<S4XG#kLc&dw`%|cQ4JnOsGD0r(06eIS4<M-%55yF5d z@UtF+Vrx2amX5~^Vo~5vV&pp5qd@A2xcP;<dea?Bk9x%D@&p*;o*_m-H-CEbK<7eQ z-jrRMH3>lsw@%?cD&x*H^f`hGxdnLq2Nv7WHJKdteh16AjLgggxYLWUWVe6-T1wJ9 zjz%@$+>x*y3c^Atu|$Xc`-qU#s;7+oF*3}^Q<zZI5KjLq$}YqhjYw?X4I#Hsm`oHX zMQn6xzv8feQtX1vCU58l$wz+TEcfNu32{CP%h+u%7qm9&vap=LF>^ggqON!fEuQl; zSPp0zh15Oz41}ItKwbG1HhK><*g2^hj_kzs9*e_27~A2+IGb({p|i!ROikE*$MX<> z$xO9EVg(MO_AtZ<vIB=y!sBfadK<vR#6lryievr~215GIdk%`+HN)xVK|~`cV!JH4 zNfSeHAr_Y61vA@+bW0r8`5f8@LbK22`(b1|)RjP3kBF-V_jVk!_yyx`4x93hpHIT8 zLG|Sj9mMij?S^BrUocJ?i^ca_P3pbiq(gD;Ox-%XsheJsq{Y1bqWlBHyaWF`BBlQx zBV#wSo1o_<=E3oB3_oYOe@7;+RQ=w|4*VOK_$Q+<ekp40S$5*GhRR7=w3r(iLR1Gr zlsL||-8fGB74$iT?#liZc&0i5Cm(%9B2DXpJXep=bq?V4;mhpA0|RUke#blK`cVi7 z%&Nqts^<`bkv*9k5~S}9gUDwOK;JV^ABf1hB<ks2(rmh_h+S7Rb@T@eM1`V9jJ!9g zxPGr||04;k`d|k0Pv9IM8`z1<2$H-cGWF9UP~;E<6R{(6$-r@+`WQMggn6sfZ4?Dl zu4M|O(JUNe^_nq|u;3e5WY_2h+M9~boWZSARMviy8hyg-usNVw_Jii}MHoezdh!)J zVIP3%a5=^iS%Nr(1A|-x=^f{ECB_DxQmsvhg$de1L=mIjsSFoy`G#SF=sYm`4ahdQ zjFZdXK>tiDvnViLV&ok+&{WCc{`5l`dURo3j?r6Sx=@Xngn`K;gkJ9H?G6@0yklHG zZ^1CZu*ec4SGOL41tY>DXw{xLwU)Ita=PG$B-nQlmqPE`SVBuuPyHp<8)Uhlcc9rs z8_qG0jYEi7xv}cmgRv-g;4Gx~j9Yw^rg9Q}{Y?;$BQQEqY5oTYB;?^07|EnHvR?js zkUh5xmu=0*L0E5)g1jGq<3tb6VfcY0%#fIvc0m|j;}uSK5aald_QH6F=>RX(krPZ_ z-}xHHWlC}|xA<qy?#>8<U@?L+Ld=HNcR0-VBSU1P`DA|tZPGvC<j#)_Z5CeLl~|}E zV5$Y64Ke;cenA)!5C0%fKW}>Y(&{{Bii}Snd-D)3TWU7Pe<ZMi(7&6RpfWpD5~BR) zBRDR9E^(%4M|2O9eD531@$VDEag*YSsKPbUU*32tfpZr_Xc6~-of9}_=V#c7nFpDn zBSq8@XMF~d7E?G`NS_03TIg#x=D0r?$7fdR=@E!coi8M*8IJY-0`yZ{I6e0Z;dBSX z-^1wAd^r8z7ZRBP54ld&831|=8K=7qkVNT41@*JrJxbN>z)WSbGbi;x1j9&CI|djw zwkXn9M)5csfO$orJ`xM{9yx>|yF~wYoI4GIG6IT-iR3n)#zZd?n8FPh&w3Sn@E?N= zds|d!8=SUrUx2u|0V^=kx9RFQX8X|0a7-Ekk(u*wa-SOq^Qv_hes~yLW4|-4v3K=x zSc*T#f2^?)`&WM|2b>USLre~(#W-$on6Z*#6O<hRZPX1hvNUxxf`hP)LUSw^WLtg! z@?#;>(pIn%gE1@&n7{!{;9e74pyh7j^icKKGzuK+ED(p#uAMGXG|NvHPl%;8zvF{$ z{Dj$TW?ICY*5T3zMhPtec5)&!2C~aG<MfSV5G;f<ganMd&>AC4QU9iJ5Y7yda)TI$ zgB{|K2yqE;^Y9J`^PrzdOsfcUT~nr6|DG2T@V3Uxcum`mk8$`bL%Bf%)O>{jetP5N z(XWKQ7n}B}J@>Lrz}(nAnb^x$`q4ogREKYbxns$9_!~&x8i+I9{KhC5)xj~0{v;Tu zn_ncl8gbZt2ae_lj6;&z@PoubU3!@Vt?cxqzy@jnHdaAuK4wIWOE55i{;-K?Afp0~ zRfixsv!GlP+oJXahEaC>U<gY^Y~SH4AF&cUHM3<p*Dl{j2MW<Q9w<=P9g?jT0?cYi z8)8Z9I!woKQmyWA@G$M5+`Q%uJ!FLn0?HCMW`;-USPp9HPe!YvQO(-S@-_mh9*QwB z>HLo2$k*+}BtWnZ5x-p|u*z+wQYV&<!|cZys|~gfvDa96Wa&yc>-{ye+Qj7kPswoz zH`@Ay#?jrlfwK+NGhnI-<USl@F`JXQ1U*j7NE!o}6WEgIINi56Y*>Ypc-o0pt=b8Q zpxBQ%%jg8dLoF2i3crAyFocth^*H&6oefq$5-^rEqliUlr(d8e{lNq+22t6!$<^Yz z18MRLsuHpC=CV;)e=|LoSo<5q)^cJbX)5J6Nql-`Lh{~g6dV(Q3GV}+5cg}}cyQ3* zZxa7B2u(-&4+z~ZfYUepVT=t#Pr&H2gmHS`R!-s;96f5<-*Yfk9_DZ#&bEo^?ktAm z6m2=t?wMA|kX!%7^Y>ha>1#4gzefg#IXQ9?G8fHq*O&7LH^D3eVX-7y?VUUZlcEm& zB`n%ly30?(EK-!H!E9tHL6;Ev5j#EAQSG2$T*-407qxPd;hYtXEU;TU>m($nF2o_x zz8B%l8YENYrkL6Ziz$$qr-RceQ%v@)!03_sIQ?$~C-E#3jk|xx?ZaANsMjzyF|qC7 zKpPvkH;QvcgN-dD3I9O!+r>D`x>!!MQqWw0COn97bSy(0!rq}_fg$vTj25XFU-~Ap zEZapR#3tk&#;^^daUnf@&G;vtgP!8x8Dhe5t--L;=>uej=XeOCVA5D?4fC>rBqcsh zTDBHps6|OLk`&?IM|djcK@_k-t3|ZQ&^jEab8Kd;VoTHJ+Y`anpd$xU(0$&7;bf>< z>6|lqeGIpQY|}pm<?$$-p%Ax0f45>dtr=-`lMPH}<$#f-s3-IO%dNMKj&WcoUJIDg zRoWTH*|U=wo;{*xNTM+^HD>{Yom~*^_12C0kOKy*V<(HypJpL1kFkR;?{^|HX(#;* zh2T4feWUX%!4H-Y+r-V*+dvE`O?Ll}QwFS}r?-XKWdKqWdK_X_><z<^bEk_rX2@0Z zWb)L(0V)6?_PW7Q_ynvt$$Zn+MBcujra74ovtG?)s*xBRbdi%_Ds24~HuLkb1DD+c zml4D91qBBQagiC;Uramhi*YHFpjjGpL|TL+)ua1xOjawW6rtjy4cK;t#j%AjRyr7g zxPpE?Ont~jR;C*Pc_fCLEXz7fJ<SUKy2MSMJ~KjvaT(i-1(!hBc~G3#1gt)Zln{yb z^9c2rZdeGOwAtw-<^Z<pga}t5Ou;H2tB;b@2p+NogMqOw@cxy8$n{t(GNmqeArAUC z#!2j}F>`Ir3r{!-=K9MNHRb1USl^HT$|kdB>5KvxP70!!xMHN2;<yrCvdFZKXeH|7 zg)mMlM|4r2a9<CGIz+GI$bg#h**pa>eRenpA}$fjD{=9@Y+QtmIl4Jk%m)K3s=+y4 z@sX#W86l?$@dJ5N15S=7a}hfZ%!+^ad}hP?-gYnvG2#lEaM*c%kV<nGItF@yNnLpd zCkKgfiDG>n?IZ{VzkVps^^+iVCCrGJnv3t@uowZx;77_93xHU)`#AlT0F(s!sNguN zFbT+K9^zzE5?OTG)@aQ6p?O;q!9jYEaKtjx_5=r&F@qk*3H9W{)UQJ{5T{?<gM;GK zxMnn5Si59F24zn7;w-z#kdp*m%Q5ooH;63g8@`ZvtA*LV<4xsLWzg7-X%Fr54nfI& zE{kYTntT*3u0<-Rl0faJpf)kx-hIS%;t^ud3HA2RNg7#KVd;s7)|cp$wm}>dAVe0R z_x8voIYKaxCqHrW10nMC)gDFc8SSdAX>m3naxFZOA*vDd8^;(3gBtX6J#5mmBrTKK zAS@!7DuogUbxaVd3(0Xtpks|eyD(@H$A@#ocyOV_rZoo0CN-O6d6q#5YGf+v9+K2e zB2d%`ChTOfhNliJEPfC!#G*b9ci}KS+C|8GM9e}vt=H?ZRgCFES*;?D(G~?0(#An0 zz(EugchRJ}@R22{M@1Re31s3LjLxlt(?>+fVsto)YU#7HpVWh=rC>)!tkPwAIL1zl z%y8a=K!;8p)v<;2O9gWfYgO|?9MpM?i`W$-UB|>gmt9M6mfa_~{^PJCJyYnxAc)q5 zm?esa(+o66olGut35#Y0q!BrBAiWr-a6)xvqy(?PVZ-8NhFexh9YqOHCv4sS)Hy#x zV<cCV&3vsKnCAd^g}9Q>+l1q4CCH2qFtAE8fXO`#H()WB%#tKCoTDP4Zv+*hlOZ(b zLTC^hwTpH*=z1lWFkwYSuB?>=xtTj~mQhKDY(Zp2DIf>BAu`$Dn||y~Hx%|@>6V-0 zx?UJN0Md%+?~}d=DGW#tKl;X>UUsqEav!uejs>6JgIx_VA0GtbTD@%JB0dwuj^r(+ zL9wE6oTK~!7uu)Ok`{TQ6yrF*8|Qc}&FCp)vHnI!`8J4(6i961>gBr^2d$A|>Z7mD z@p*!M5=<M+Ow=~z01hgVVH}CwVQmiel?-Sy`v^|g{(x7C-Sds{i@(?c-{QIC^i2qf z#ZU)`Vm*)Iun1X3v1kIlc@L)kzyz9M0>s6Gasmgvlx19TkX3}`K$mVRPB)cfTK%Ii zx?wI(zsOAQ$LQbkar)Gs8S#yVSSt@K8_(h_aq^6zis<DSo&7vcC$n?^$3ggS*NGIY zXXgYn6H`R)0*<p#AkVm46r})SKU~Dg7Zn(~Jv8cbjGR*Yzfor~P8?a2J)NA$0WJt& z>iBgUa8TbYGAGqomYbhBi%MpJ@YH5H-*g**WH%V+SD%3Cl*4q0%UJ4N9FskV`#*L= z`*lT{)d1rSYZWm>quX&@u_9B5%1ypqi5&@J6Cr~BJjOv}B_<I2-0-h!U?gX_-arJ| z^x&W;%%JZcyjTCS!jnvx8nF@i*^h&k&SvyJTJjuPEN68>)E<GH*C6!G>)zp@_|@E! zjHhm>e|t3>EFAw4aR>#tL`<Kv(y9q!TQLXNI))G%Il$G0)``%Wuyy$~#`JZJ#zemy zLSLG(J|RRRF#Hx|)+>0HM_g+=CjW<Yr=RuG3J;oL&~=_FEpWg%ltZGo-*He+tCOY3 z?$b{J>4g-lh588-nLogwzJMkg)RPw>sWo2Q#99b2s+Ka$=NdoG!SBmW=$O%2+aHW0 zUkK;WRUtE+bz_T*iwb5nah#l?Lhu<@p2lKMcm{#LI+&gyt(L+;Qy`O}x5ZY4zArb= zNI^*1Ku8fMLsGy&?yAse(L93^<^1UR*Vt3g7N~<nqsPO86)+w3o+@KEg6wT(6TMUg z28x%Q3F6ekL0W2zT@i%9n*8S5d+Q-V6qIIS;tg<2GKQf?1a`?a$T1|$3oM|nIkQNo z8RM8?HLxu0Iw`6;v(&+|*6<JlbQkds@Yv}>za2Wgm%<cUH*RTfimjh;nV1+fhv5;0 zI(g2tE?A_TZm10Z3~4tHAjI0Q4387k$<kCg4aO}H=H(3<po_0FB8!AZc)NSh&r7Fu z!Hybq?VAtufkF2&b=^JgxNzqu+}v1-($9~vC{YvNxZM#V*Nds}kOOeoI!&g&CRP)a zx*bAw(SkFfb#G@@K`fBOU-TMoh1Tt(^vuPeDFWe0)9FNrrf2P+g`Yt>EdWCiSJeP$ z3$)0p3=xYNwXk`qrv@~9r}Sn9MSeUs0V!&q7Goe`WkP1`XI(MuXfo7iVrC`dm=)T9 zp%n<!RQYMcoaM7{av7NiJzS*~0>sgYaTw;|9QQ?u94J$EB=x!efO&a?v56~WcOila zg@cD_<!{=*n9j#JzL2G%w7rMz46)eHDaMCvn+J^`O=tAHRU_wot{i0M2}l6q!Cd+! z3?oUMr$ZJeW^=|9%lJqr^)CTO#0Xu*F?kw1Gp_exw=tLM!t6g>$5{e&K^5AQ=UG^s zt-7S-;S5uM2_Z^!YYsIZyd)MF<PqTM?MHuMV|w<Om*>i-+4g~#lcB9A)|hQ~@F6#@ z;9-93v&|*A9t)%&U^q3xx^=h<hh^!J86JY8^QwE+9~_!s_U25MR_ew<vYX%+Xc#jI zD+b$c>>hsrnY~+KrizBIaG2kG=x=D%2{oBn^TBAY@HhqYMF;$aoz`KZh~m=+^7R3n zY@`o$iWYDvoZ@uW>0nofzB2WaC2)R*iM;L2Gvn+VTY8KPK&<gsoFy)Vhp;#y$)h=+ zO0h>}=8(a}O0{$xhdnc3>{1bEf6kJX*po6Y01<Z-mwzLWNRXdPlm~Nsqqznz0Hy4w zaOo#^^AOfUBwzYUy|XlwDmKVmVg_WfQ5y}Q6bUS3I_p`w5XACxBf3yjq<08?Lqjtq zD*5>sn-xEG(_*N?PZtu_MXb8+^pWM>4r71Esy!i)lm#)6EY)}sR18{aMKkhU1TuR> zakAnG9#nj3qoVxW5hr6^49*jV&m|LQGzupPAeHPDPCr?uRY{aiOKjCEu=Cqpu;voi z>95p^c~JCDUEtxQ`Y&d*2U>UUxBN=I0~49gR1%8jVnfPNA1`J+(7|$7;@;{k9&qeN z$X%kE_tbHW@e-y5-rBpdBLzTw03z;fwX`vBNKx~bkQwfWU;}+DKg)gwFqVKJ?)jzk za7;-B5Al!;*>S>T=jJ~!p|1HeYnJ2!9Jl8x58-|`vc(I(#hKXcj#*Gxh~+qVH4Y=+ zCRTA2EBwpAuOa3*$BJcyLlG=iT5oQ4%!UfT9u9Aa=2~n;Rnj9%iUbGyhlftzZ>B{J zigHc2{!bsE{!$<=h=o$i2BE1#FL;Q%FBEOdmV;J)_EaT9Fm2FsGB3SWAf>Z0vKV|F z(-2(z`yCH)KZML-@%}yc8yHy@@|UQ0s5^#JAxiW%1c_xkkwg*C5bP=i^U8(Q?uL27 zvn0T)7nr<y(HGZ;-)QE(aH$appB0FarKv$iOtZnrZIKum?jRcxcG=jFp)7|s9)_uu zL5dKkLW#jaCpmbTE6mhs6W@Q(d+fo2f{^8|yK&g0F{8VYWwlp;F4gfk{RuBGvEU-h zmaLe3b{s5lnW-}7@4<2HD;O;Rxj_Aci9LJ(C+n_cOl0J5$CW@&IE>SCM0p8!yOCmT z7)MMJ&hc+0V;6_AW_&}j3-*i|dpu3-UcVj1L1bxOw5HNZ4;nai6^Q+F9OuZD<0X_e z#4(0(q-P)wa+n{}%`0RReh+fWdKmdE93c^tZ$UOL``~JZBTj^wt9tc%9Qfu6tN_F= z;Q47BGq9Sm*F!hl?Vh;Kg=}1|G!s)=gk!8s07Gw9u;#VAzCHI8RC)?5<wVOUQ^%G- z$d#IaYILh$?s{$lbC#*WB?_97XI>>(ZVGghdYtaJmUqU@2pE-`kFoUMMl9s;|7ee~ z$o@$!)NBW{U4tcqxDd_h#LGk0nwjT;t!qHA*;AaX>qQKFJciAHBjP2_;S|72Jk~%g zM=_R!H#mz=7%#B|p@aVuCF9z!Aj~}>(TVO+d5_}+Bk_QuSsPWngNCaXKZQ8-WXcZP z&p50;nwMCwkVe(!pwa$8oF#t`FP{K&{lQk1`dF5?@}O1)n2p#3F8xXeixba>u+z%a zwIILh2c3nB+P0SQxfkZMNsMQ~Uz{g9nHL>M(*gs<?0J_ZCaEy`B8VsAnkLUd6<!a) zbkbtxrmw>Sr1J9M<e)5G;_*0|ypAQX#PH)R?v{iKh(b91=uS}>HlN9;KZS76jsjkE zfrO?l68jqy>mr78=vXoKK`6DIt$<!Hh3I7O0Qyl4y{*Aw^vCC=p4dTP7mQ7ua-lpf z`AZou;eja{TVox_4pqWAoYpapjVxIew1syG^yDSWW`_Qvxi~29Dn2EeHb|_)dJucp z0OODr3=E?m|4eT%ure_}T)_GP#O)i{uM$%}0`69BAWM_H=&#Yzq8GgvuDAij=fF)# z;Gz1y<VE{J`ihS2+)f9vx_LsCJFs}BIaZisFm?K-4Vicl6Ub(ZQRJvoUvYu78KI|P zr4?Rv*j`E;${Mlxi*UeTGSr}-c#_k0gUAro8$qz16K<-JjZ7<wJa&^M+!d$$Px2DC z1z1ph`WW)<Ff6HZ;05Bqy&gEMY7@ih5Sq>aCbh{ICo67ds7+|Ib=!fp6}#>*7fL!& z<aj8KdBDZTMLn{ap}R)W5OZ&~suNTV2LKb-k6pWP;NWJ4^#fTzW((*tF9s)X*uuCX zqJzlY7+pUer|*{ILz_HWexO?QX3pQ6f?xq>=(~xv<j8&;CcTv`Ipc_8W%iUr6@c=< zY{a_w_Xq-!LOf}ui|%MFkt#PG_h$n~uY$@&+=lTT$4C3LmGS8{V5oA|aDBp?nqUDT z8_JZQ$P977!j_+jOBgWVo6%8YHS>i+KASa+x{&GhCW~AgC$o()fRJ&lp1N{jad`mp zo~Z86GdO5!H6NFdUtswEvj?o$28vxdN9QG6LqJ})Z1~oC8@!&(WRb*+IILqWAMvRm zX2_S~##WJ_*-9wF#HPBi9EXiq;ohd(AKTLZGKmPm-m^Id*-La>cqI;#wS~B(ZRwE_ z@;51v-#|=SL4*+ZJ*%s6Osp;A)){%E!WJgJ=O&^HMtRaNnoZXz%qdTo4CgI|SsaDQ z6W4yhCS0_+9b-(Roud1#75jq$unF#a5R36Cst~sPl-MyoRzd3Y*?~HK9hgi>YMVD7 zaq&gdG!r_15Nm1s!PmrkIlBwT#Ru{c+X#enY0u<b3hHP=U=d@4uN%kxi{j&?_S!S` z*<=S$>hvo*lNe#eMjh=eSO2jnQ0N6TM?^RCzs7Nw92n~p*0}X!VtYU0<g9%&lL3n! zkK9_V$FN6aJ}xvIz;UtLXFj<q-VS0tCvft{(|jD_t|8&OJpABt5-ruIor~4hlU}dB zzk|JpJs6c(2>1S-mO{1K0UHHcNkYzw*#RRpO-=KV{pn{0^dV3w?!!3K*{OQ)U%@b! zQ2I?zdeCEvJejrNk_QC6DFiTa6LgjfgGy6l92s@M-WI#y2$J0daPn(MDDs2@bs;Ap zHwfe8xJ!J*<`=C4Ue)$*uEW&-GWCvI#W9=|Rp<&I@%S2Z&8=iot2Mw}0Y>z=vosEq zyFMeav8Mv6w^(HTp%!d|gL`5W3d-ZKd)0Uuq0IvYZ+c{g<ZQ_83$R!bVLd81?71^j zGR3;U<ZU$(UD(Sz)P?zFGUUhC7~hV0xE#`hnMsGuwrIXkh8fJ(17e)$nl1V`F4~oG zfyIi3uE4!sdC(c#&k$?aw}m*S&z14;2Hp1JcLQBKmf`djZcyWBodj~$lbXh8>{gHn zBn45A1Y;cI+|P%$*R)0m#ot3rs;3EclRE@a@(>^Mc`a{B+QP>$!3WUU5Cu<}W3ZWD zqsejyiJI%EN**Aw)19%dqUEC6LDN1S6t!ULE*@^eKn(A;V70*41H_eXL*j(dhsc<7 z6+7WM(%!JM8pP(pnG>=1*lmaAF9_c-TTH{!Y=BHxEok5A1kjH#Lt+g->WG`JnwuZ> z<#ZV4c{TfB&qa`w;!H<XYus>HyC*}pgN8~w^m4~J80sQSo;cKFFC3$@6B3y=4hllY zonV13e?%4z4}h0rXtSV~5|jx7H{R}K0om~oRYVKC4?$p|@Q~@7{nJ>iz%0Az$tnSB zxDDWmOULp^TrYbsD5ta{hqjj8luwN-VA)WFWrG;S=c8~;trx>C9y$L)$i386U^5*k zWJHW%JdTm~1`MtEp>F<yH_ZR>KAha=&1fEQ1C{IpWWFSvJhhacaQ1-)WouTiVuNC| zZPrYqmmfzkp$P00oMu(p;0T));pL+R(SL=hnDJ%fL-P1CJOe-qFYyJ9QuA<ffG=5s z?oaf&qq3Z>b`u~n3F1bTaH7RYb#a8G$=$+_ZdDQ#X{Z#watW+f3Ljb_Mvmiod?a%} zFbxfZlKZ6}DB=One>OqSAmq=m9-@HBk2dM*fq9YO@gy-|u2&<BaJajNKiw|V5re9{ zjm*IdFpF#uK=kCtCIlvjyVC=et`+uFiZuYV`p|-Fl^4s8cAd2S8&WLyeZC}iCD;sP z6H87;2M$}G$WMIn0A)%CCfVZQ|8x%toPN8Qt~;`eZXobEJVAUS;h|w69xn7}Tr^dY z_fK?{$LoV4`B<0}T&4OFSEMhMpSUN(>ifYtKcl<=)&Xk*(Xf^90ubg5ogl`h5Z#oY z8ug!l98%*i)8Shvy#9lMk~8rtL|gyRoEw8+F55rj9PxSlGx|HMWj^-FQT`^(pb-+4 z7&@omogYlHO)xA`gqB(3%;Ds7pv^3}wLzT1HF(;DVQPXIr-1DGB^Y$6oW$u0Aq>Tj z9ZEFSDg?;G@M=#4T;13?eV9h5c4Zior3hl82DR{`kCoBghu+`W*&*`48H&{@redWp zi{Ye6)5qSlNg@4$LqYauc<Uwt_T!da{DkMlDDu*J`ZB(P=VD<gAUgc+91JE$6%1oO zM+^h8Vrn>j*DL=2*t=abTl(P%sQeP#K<p$pYapDEXOutlSv}HPFdW1uYUAR~!x<mY zV2Q{^KK=GCh+e}adQuNz1pVQ*1XFRt;?#xvQezH4v6oAT`y#~!7*un5(~S1w>mxuD znZ>v!uZQqbOJ5T(iLvE($}dC5{1&7V=Lv7^Ao~qQFz!)NT*yR%*yn~AU51+X4HruY zia3m8Y$f6#M|;yILk|n|s`YD(X`u<mBu$#W)<mx?n6XOJOq-uVScgI?5dC{*Edo+^ z?PBcKu(h$4BRc0Stk?2tGuOth4LGKE7pz%yJ7CSM`ay%xLvnCO+k0mE+;_k+E25wr z(=r(qn{_WP%o+l_JqB+O)3j_C!U*~YP2c^b)hW~)K8%8?e~Up}r0Mr8=nWz^^?Ae2 zPS{1_pGxo*9YQVJoQMIX1eo_8m`j)H{NTiHY9>N4Bf7Lc1>vZ(ECh%r&q$}=(V)|o z<2Z{>4BTy|tAkmn{3-jqVDLmV9Ka9@%xfx+`L|gBB`DoUm^S+4Icu>7Dg)X);<9r- z7l%#8Ft*Mpt5ffM5J-i!qzkV95xbkh0vzNROUP<$nK}{+`X7dGX@F^{4Y9Dc(jo~( z+XzNBg||B}a-6RKYOQG;$e)5g$ByfOs#8!)h%>wdi(mwl(1URdD>lMBJ3kus7!3Uz zK8;0u8D>Ehj`0f<U~Uf19aBGe6@$Shn`jm9MjVzOE5O{^r=IjZQwk9`4t^kx7TSu# zF6<Q$CG6=@MH<}=bEmW;7INhD?LAsdqNyaZoIlk9)Bg&dA{H0-XSnd}Gy&$9!D}cW z`_L<#V}wFjV=%WU!~@;DAJGNjW1{pAjnHh5R>gRXD;-{>z|6ejw7`th66^^0>5o~Q z9T3-|&@L0(Fr`m8uDwt|47*Z7i(4dlQvyid0545ol7F9{DH+SOEOozl8!+ikrWoxV z#c`h#X7*y`krP7{aK%}`5kvGayn%s@Ws%5OIFX56?}&<u!xT<2rKZy_98{Xf@Eil> zLXm3HUNfjLO>p)^tbm<=5k_p6my3Vsf4+Z@9m+c`&E35i-1>}ZvlPTm4UPjvqxL`r zrFjF5+1GKbZ5>RG!ZbM+9vt&(598#}RZIT8VCXY^INf+J!&OT(_b<=qgb#u|PN?L> z?7Ah0V}d#ah;QR!zWJftydW3M^$IeD2;-E%Vch!|lM<^rR;<JKvG1|IhvA6r=r4I3 z<Fk+P$q0&*?0umAFGZZ*xsUM(0_~ny3%GOqp!V(6nW;!OywHo;anXK;nu8jjZOV&= zwZV55Oo!Gd7vPwa`ysGsJrA<eY{9tW*ef?AXyl0JBXY}eOzj^5=FiRO9su=YR^c47 zY$RfVM_$cTJKiz|W@!NF#E^xLccU4U^OA_|D6)*xK@i;zZ_C0YMd9P(KHkyHUkgDa zIKP&Y(*^0aOfB(scxe{1(ZoT<0)hJIafP-ACjk@$6DE4g2;O|fKn{l(Z<k_cWl4uX zB|Uii6(ctsVt64H?b<IGI`coUfIBb?SZ9bF+ks<-=8_1v&rq4PI}B1~ig6D3jrHjl zsE{4%F!GZ!L>7#8r$26(?rN|no(e~RD;Yjmh^f|*hz~=nNa*wE4pu=A)<e&A1S$cs z(3aN-P){ErYtVOvh=2Om*k_(TZ?8lAGSvJ-B*IM$CG3QS_=D1L85#b8Vd2B_UmO01 zgWr^%-s~!2Rkr(*I7b+8%?IVQ30;Tp?f-!$lgQHa8jC>FzZ^SL!!<4c0|h06Ica7< z*3M6ct9n+w|D(SwB1tgbeMfTn3#EUbg+72EIx}J}i1))mX$s?GKS+G|-ZoiQO7e>U ii<6VTi+6yN6QS|EltPvy%dp9?l{|)zHVi;(#qxiIa5S#~ diff --git a/youtube-dl.1 b/youtube-dl.1 index 5b15884..cde2abf 100644 --- a/youtube-dl.1 +++ b/youtube-dl.1 @@ -24,8 +24,9 @@ redistribute it or use it however you like. \-i,\ \-\-ignore\-errors\ \ \ \ \ \ \ \ \ \ \ \ \ \ Continue\ on\ download\ errors,\ for\ example\ to\ skip\ unavailable\ videos\ in\ a\ playlist \-\-abort\-on\-error\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Abort\ downloading\ of\ further\ videos\ (in\ the\ playlist\ or\ the\ command\ line)\ if\ an\ error\ occurs \-\-dump\-user\-agent\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Display\ the\ current\ browser\ identification -\-\-list\-extractors\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ List\ all\ supported\ extractors\ and\ the\ URLs\ they\ would\ handle +\-\-list\-extractors\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ List\ all\ supported\ extractors \-\-extractor\-descriptions\ \ \ \ \ \ \ \ \ Output\ descriptions\ of\ all\ supported\ extractors +\-\-force\-generic\-extractor\ \ \ \ \ \ \ \ Force\ extraction\ to\ use\ the\ generic\ extractor \-\-default\-search\ PREFIX\ \ \ \ \ \ \ \ \ \ Use\ this\ prefix\ for\ unqualified\ URLs.\ For\ example\ "gvsearch2:"\ downloads\ two\ videos\ from\ google\ videos\ for\ youtube\-dl\ "large\ apple". \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ the\ value\ "auto"\ to\ let\ youtube\-dl\ guess\ ("auto_warning"\ to\ emit\ a\ warning\ when\ guessing).\ "error"\ just\ throws\ an\ error.\ The \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ default\ value\ "fixup_error"\ repairs\ broken\ URLs,\ but\ emits\ an\ error\ if\ this\ is\ not\ possible\ instead\ of\ searching. @@ -54,7 +55,7 @@ redistribute it or use it however you like. \f[C] \-\-playlist\-start\ NUMBER\ \ \ \ \ \ \ \ \ \ Playlist\ video\ to\ start\ at\ (default\ is\ 1) \-\-playlist\-end\ NUMBER\ \ \ \ \ \ \ \ \ \ \ \ Playlist\ video\ to\ end\ at\ (default\ is\ last) -\-\-playlist\-items\ ITEM_SPEC\ \ \ \ \ \ \ Playlist\ video\ items\ to\ download.\ Specify\ indices\ of\ the\ videos\ in\ the\ playlist\ seperated\ by\ commas\ like:\ "\-\-playlist\-items\ 1,2,5,8" +\-\-playlist\-items\ ITEM_SPEC\ \ \ \ \ \ \ Playlist\ video\ items\ to\ download.\ Specify\ indices\ of\ the\ videos\ in\ the\ playlist\ separated\ by\ commas\ like:\ "\-\-playlist\-items\ 1,2,5,8" \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ if\ you\ want\ to\ download\ videos\ indexed\ 1,\ 2,\ 5,\ 8\ in\ the\ playlist.\ You\ can\ specify\ range:\ "\-\-playlist\-items\ 1\-3,7,10\-13",\ it\ will \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ download\ the\ videos\ at\ index\ 1,\ 2,\ 3,\ 7,\ 10,\ 11,\ 12\ and\ 13. \-\-match\-title\ REGEX\ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ only\ matching\ titles\ (regex\ or\ caseless\ sub\-string) @@ -91,7 +92,7 @@ redistribute it or use it however you like. \-\-playlist\-reverse\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ playlist\ videos\ in\ reverse\ order \-\-xattr\-set\-filesize\ \ \ \ \ \ \ \ \ \ \ \ \ Set\ file\ xattribute\ ytdl.filesize\ with\ expected\ filesize\ (experimental) \-\-hls\-prefer\-native\ \ \ \ \ \ \ \ \ \ \ \ \ \ Use\ the\ native\ HLS\ downloader\ instead\ of\ ffmpeg\ (experimental) -\-\-external\-downloader\ COMMAND\ \ \ \ Use\ the\ specified\ external\ downloader.\ Currently\ supports\ aria2c,curl,wget +\-\-external\-downloader\ COMMAND\ \ \ \ Use\ the\ specified\ external\ downloader.\ Currently\ supports\ aria2c,curl,httpie,wget \-\-external\-downloader\-args\ ARGS\ \ Give\ these\ arguments\ to\ the\ external\ downloader \f[] .fi @@ -193,8 +194,8 @@ redistribute it or use it however you like. \-\-all\-formats\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Download\ all\ available\ video\ formats \-\-prefer\-free\-formats\ \ \ \ \ \ \ \ \ \ \ \ Prefer\ free\ video\ formats\ unless\ a\ specific\ one\ is\ requested \-F,\ \-\-list\-formats\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ List\ all\ available\ formats -\-\-youtube\-skip\-dash\-manifest\ \ \ \ \ Do\ not\ download\ the\ DASH\ manifest\ on\ YouTube\ videos -\-\-merge\-output\-format\ FORMAT\ \ \ \ \ If\ a\ merge\ is\ required\ (e.g.\ bestvideo+bestaudio),\ output\ to\ given\ container\ format.\ One\ of\ mkv,\ mp4,\ ogg,\ webm,\ flv.Ignored\ if\ no +\-\-youtube\-skip\-dash\-manifest\ \ \ \ \ Do\ not\ download\ the\ DASH\ manifests\ and\ related\ data\ on\ YouTube\ videos +\-\-merge\-output\-format\ FORMAT\ \ \ \ \ If\ a\ merge\ is\ required\ (e.g.\ bestvideo+bestaudio),\ output\ to\ given\ container\ format.\ One\ of\ mkv,\ mp4,\ ogg,\ webm,\ flv.\ Ignored\ if\ no \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ merge\ is\ required \f[] .fi @@ -229,7 +230,8 @@ redistribute it or use it however you like. \-\-audio\-format\ FORMAT\ \ \ \ \ \ \ \ \ \ \ \ Specify\ audio\ format:\ "best",\ "aac",\ "vorbis",\ "mp3",\ "m4a",\ "opus",\ or\ "wav";\ "best"\ by\ default \-\-audio\-quality\ QUALITY\ \ \ \ \ \ \ \ \ \ Specify\ ffmpeg/avconv\ audio\ quality,\ insert\ a\ value\ between\ 0\ (better)\ and\ 9\ (worse)\ for\ VBR\ or\ a\ specific\ bitrate\ like\ 128K\ (default \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 5) -\-\-recode\-video\ FORMAT\ \ \ \ \ \ \ \ \ \ \ \ Encode\ the\ video\ to\ another\ format\ if\ necessary\ (currently\ supported:\ mp4|flv|ogg|webm|mkv) +\-\-recode\-video\ FORMAT\ \ \ \ \ \ \ \ \ \ \ \ Encode\ the\ video\ to\ another\ format\ if\ necessary\ (currently\ supported:\ mp4|flv|ogg|webm|mkv|avi) +\-\-postprocessor\-args\ ARGS\ \ \ \ \ \ \ \ Give\ these\ arguments\ to\ the\ postprocessor \-k,\ \-\-keep\-video\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Keep\ the\ video\ file\ on\ disk\ after\ the\ post\-processing;\ the\ video\ is\ erased\ by\ default \-\-no\-post\-overwrites\ \ \ \ \ \ \ \ \ \ \ \ \ Do\ not\ overwrite\ post\-processed\ files;\ the\ post\-processed\ files\ are\ overwritten\ by\ default \-\-embed\-subs\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Embed\ subtitles\ in\ the\ video\ (only\ for\ mkv\ and\ mp4\ videos) @@ -239,7 +241,7 @@ redistribute it or use it however you like. \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ parameters\ replace\ existing\ values.\ Additional\ templates:\ %(album)s,\ %(artist)s.\ Example:\ \-\-metadata\-from\-title\ "%(artist)s\ \- \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %(title)s"\ matches\ a\ title\ like\ "Coldplay\ \-\ Paradise" \-\-xattrs\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Write\ metadata\ to\ the\ video\ file\[aq]s\ xattrs\ (using\ dublin\ core\ and\ xdg\ standards) -\-\-fixup\ POLICY\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Automatically\ correct\ known\ faults\ of\ the\ file.\ One\ of\ never\ (do\ nothing),\ warn\ (only\ emit\ a\ warning),\ detect_or_warn(the\ default; +\-\-fixup\ POLICY\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Automatically\ correct\ known\ faults\ of\ the\ file.\ One\ of\ never\ (do\ nothing),\ warn\ (only\ emit\ a\ warning),\ detect_or_warn\ (the\ default; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ fix\ file\ if\ we\ can,\ warn\ otherwise) \-\-prefer\-avconv\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Prefer\ avconv\ over\ ffmpeg\ for\ running\ the\ postprocessors\ (default) \-\-prefer\-ffmpeg\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Prefer\ ffmpeg\ over\ avconv\ for\ running\ the\ postprocessors @@ -258,6 +260,50 @@ and not copy the mtime) into \f[C]/etc/youtube\-dl.conf\f[] and/or On Windows, the configuration file locations are \f[C]%APPDATA%\\youtube\-dl\\config.txt\f[] and \f[C]C:\\Users\\<user\ name>\\youtube\-dl.conf\f[]. +.SS Authentication with \f[C]\&.netrc\f[] file +.PP +You may also want to configure automatic credentials storage for +extractors that support authentication (by providing login and password +with \f[C]\-\-username\f[] and \f[C]\-\-password\f[]) in order not to +pass credentials as command line arguments on every youtube\-dl +execution and prevent tracking plain text passwords in shell command +history. +You can achieve this using \f[C]\&.netrc\f[] +file (http://stackoverflow.com/tags/.netrc/info) on per extractor basis. +For that you will need to create \f[C]\&.netrc\f[] file in your +\f[C]$HOME\f[] and restrict permissions to read/write by you only: +.IP +.nf +\f[C] +touch\ $HOME/.netrc +chmod\ a\-rwx,u+rw\ $HOME/.netrc +\f[] +.fi +.PP +After that you can add credentials for extractor in the following +format, where \f[I]extractor\f[] is the name of extractor in lowercase: +.IP +.nf +\f[C] +machine\ <extractor>\ login\ <login>\ password\ <password> +\f[] +.fi +.PP +For example: +.IP +.nf +\f[C] +machine\ youtube\ login\ myaccount\@gmail.com\ password\ my_youtube_password +machine\ twitch\ login\ my_twitch_account_name\ password\ my_twitch_password +\f[] +.fi +.PP +To activate authentication with \f[C]\&.netrc\f[] file you should pass +\f[C]\-\-netrc\f[] to youtube\-dl or to place it in configuration +file (#configuration). +.PP +On Windows you may also need to setup \f[C]%HOME%\f[] environment +variable manually. .SH OUTPUT TEMPLATE .PP The \f[C]\-o\f[] option allows users to indicate a template for the @@ -571,7 +617,7 @@ These two error codes indicate that the service is blocking your IP address because of overuse. Contact the service and ask them to unblock your IP address, or \- if you have acquired a whitelisted IP address already \- use the -\f[C]\-\-proxy\f[] or \f[C]\-\-network\-address\f[] +\f[C]\-\-proxy\f[] or \f[C]\-\-source\-address\f[] options (#network-options) to select another IP address. .SS SyntaxError: Non\-ASCII character .PP diff --git a/youtube-dl.bash-completion b/youtube-dl.bash-completion index 8367bdb..893d7e7 100644 --- a/youtube-dl.bash-completion +++ b/youtube-dl.bash-completion @@ -4,7 +4,7 @@ __youtube_dl() COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" - opts="--help --version --update --ignore-errors --abort-on-error --dump-user-agent --list-extractors --extractor-descriptions --default-search --ignore-config --flat-playlist --no-color --proxy --socket-timeout --source-address --force-ipv4 --force-ipv6 --cn-verification-proxy --playlist-start --playlist-end --playlist-items --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --min-views --max-views --match-filter --no-playlist --yes-playlist --age-limit --download-archive --include-ads --rate-limit --retries --buffer-size --no-resize-buffer --test --playlist-reverse --xattr-set-filesize --hls-prefer-native --external-downloader --external-downloader-args --batch-file --id --output --autonumber-size --restrict-filenames --auto-number --title --literal --no-overwrites --continue --no-continue --no-part --no-mtime --write-description --write-info-json --write-annotations --load-info --cookies --cache-dir --no-cache-dir --rm-cache-dir --write-thumbnail --write-all-thumbnails --list-thumbnails --quiet --no-warnings --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-duration --get-filename --get-format --dump-json --dump-single-json --print-json --newline --no-progress --console-title --verbose --dump-pages --write-pages --youtube-print-sig-code --print-traffic --call-home --no-call-home --encoding --no-check-certificate --prefer-insecure --user-agent --referer --add-header --bidi-workaround --sleep-interval --format --all-formats --prefer-free-formats --list-formats --youtube-include-dash-manifest --youtube-skip-dash-manifest --merge-output-format --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --twofactor --netrc --video-password --extract-audio --audio-format --audio-quality --recode-video --keep-video --no-post-overwrites --embed-subs --embed-thumbnail --add-metadata --metadata-from-title --xattrs --fixup --prefer-avconv --prefer-ffmpeg --ffmpeg-location --exec --convert-subtitles" + opts="--help --version --update --ignore-errors --abort-on-error --dump-user-agent --list-extractors --extractor-descriptions --force-generic-extractor --default-search --ignore-config --flat-playlist --no-color --proxy --socket-timeout --source-address --force-ipv4 --force-ipv6 --cn-verification-proxy --playlist-start --playlist-end --playlist-items --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --min-views --max-views --match-filter --no-playlist --yes-playlist --age-limit --download-archive --include-ads --rate-limit --retries --buffer-size --no-resize-buffer --test --playlist-reverse --xattr-set-filesize --hls-prefer-native --external-downloader --external-downloader-args --batch-file --id --output --autonumber-size --restrict-filenames --auto-number --title --literal --no-overwrites --continue --no-continue --no-part --no-mtime --write-description --write-info-json --write-annotations --load-info --cookies --cache-dir --no-cache-dir --rm-cache-dir --write-thumbnail --write-all-thumbnails --list-thumbnails --quiet --no-warnings --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-duration --get-filename --get-format --dump-json --dump-single-json --print-json --newline --no-progress --console-title --verbose --dump-pages --write-pages --youtube-print-sig-code --print-traffic --call-home --no-call-home --encoding --no-check-certificate --prefer-insecure --user-agent --referer --add-header --bidi-workaround --sleep-interval --format --all-formats --prefer-free-formats --list-formats --youtube-include-dash-manifest --youtube-skip-dash-manifest --merge-output-format --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --twofactor --netrc --video-password --extract-audio --audio-format --audio-quality --recode-video --postprocessor-args --keep-video --no-post-overwrites --embed-subs --embed-thumbnail --add-metadata --metadata-from-title --xattrs --fixup --prefer-avconv --prefer-ffmpeg --ffmpeg-location --exec --convert-subtitles" keywords=":ytfavorites :ytrecommended :ytsubscriptions :ytwatchlater :ythistory" fileopts="-a|--batch-file|--download-archive|--cookies|--load-info" diropts="--cache-dir" diff --git a/youtube-dl.fish b/youtube-dl.fish index 82f424b..eb9828d 100644 --- a/youtube-dl.fish +++ b/youtube-dl.fish @@ -5,8 +5,9 @@ complete --command youtube-dl --long-option update --short-option U --descriptio complete --command youtube-dl --long-option ignore-errors --short-option i --description 'Continue on download errors, for example to skip unavailable videos in a playlist' complete --command youtube-dl --long-option abort-on-error --description 'Abort downloading of further videos (in the playlist or the command line) if an error occurs' complete --command youtube-dl --long-option dump-user-agent --description 'Display the current browser identification' -complete --command youtube-dl --long-option list-extractors --description 'List all supported extractors and the URLs they would handle' +complete --command youtube-dl --long-option list-extractors --description 'List all supported extractors' complete --command youtube-dl --long-option extractor-descriptions --description 'Output descriptions of all supported extractors' +complete --command youtube-dl --long-option force-generic-extractor --description 'Force extraction to use the generic extractor' complete --command youtube-dl --long-option default-search --description 'Use this prefix for unqualified URLs. For example "gvsearch2:" downloads two videos from google videos for youtube-dl "large apple". Use the value "auto" to let youtube-dl guess ("auto_warning" to emit a warning when guessing). "error" just throws an error. The default value "fixup_error" repairs broken URLs, but emits an error if this is not possible instead of searching.' complete --command youtube-dl --long-option ignore-config --description 'Do not read configuration files. When given in the global configuration file /etc/youtube-dl.conf: Do not read the user configuration in ~/.config/youtube-dl/config (%APPDATA%/youtube-dl/config.txt on Windows)' complete --command youtube-dl --long-option flat-playlist --description 'Do not extract the videos of a playlist, only list them.' @@ -19,7 +20,7 @@ complete --command youtube-dl --long-option force-ipv6 --short-option 6 --descri complete --command youtube-dl --long-option cn-verification-proxy --description 'Use this proxy to verify the IP address for some Chinese sites. The default proxy specified by --proxy (or none, if the options is not present) is used for the actual downloading. (experimental)' complete --command youtube-dl --long-option playlist-start --description 'Playlist video to start at (default is %default)' complete --command youtube-dl --long-option playlist-end --description 'Playlist video to end at (default is last)' -complete --command youtube-dl --long-option playlist-items --description 'Playlist video items to download. Specify indices of the videos in the playlist seperated by commas like: "--playlist-items 1,2,5,8" if you want to download videos indexed 1, 2, 5, 8 in the playlist. You can specify range: "--playlist-items 1-3,7,10-13", it will download the videos at index 1, 2, 3, 7, 10, 11, 12 and 13.' +complete --command youtube-dl --long-option playlist-items --description 'Playlist video items to download. Specify indices of the videos in the playlist separated by commas like: "--playlist-items 1,2,5,8" if you want to download videos indexed 1, 2, 5, 8 in the playlist. You can specify range: "--playlist-items 1-3,7,10-13", it will download the videos at index 1, 2, 3, 7, 10, 11, 12 and 13.' complete --command youtube-dl --long-option match-title --description 'Download only matching titles (regex or caseless sub-string)' complete --command youtube-dl --long-option reject-title --description 'Skip download for matching titles (regex or caseless sub-string)' complete --command youtube-dl --long-option max-downloads --description 'Abort after downloading NUMBER files' @@ -44,7 +45,7 @@ complete --command youtube-dl --long-option test complete --command youtube-dl --long-option playlist-reverse --description 'Download playlist videos in reverse order' complete --command youtube-dl --long-option xattr-set-filesize --description 'Set file xattribute ytdl.filesize with expected filesize (experimental)' complete --command youtube-dl --long-option hls-prefer-native --description 'Use the native HLS downloader instead of ffmpeg (experimental)' -complete --command youtube-dl --long-option external-downloader --description 'Use the specified external downloader. Currently supports aria2c,curl,wget' +complete --command youtube-dl --long-option external-downloader --description 'Use the specified external downloader. Currently supports aria2c,curl,httpie,wget' complete --command youtube-dl --long-option external-downloader-args --description 'Give these arguments to the external downloader' complete --command youtube-dl --long-option batch-file --short-option a --description 'File containing URLs to download ('"'"'-'"'"' for stdin)' --require-parameter complete --command youtube-dl --long-option id --description 'Use only video ID in file name' @@ -108,8 +109,8 @@ complete --command youtube-dl --long-option all-formats --description 'Download complete --command youtube-dl --long-option prefer-free-formats --description 'Prefer free video formats unless a specific one is requested' complete --command youtube-dl --long-option list-formats --short-option F --description 'List all available formats' complete --command youtube-dl --long-option youtube-include-dash-manifest -complete --command youtube-dl --long-option youtube-skip-dash-manifest --description 'Do not download the DASH manifest on YouTube videos' -complete --command youtube-dl --long-option merge-output-format --description 'If a merge is required (e.g. bestvideo+bestaudio), output to given container format. One of mkv, mp4, ogg, webm, flv.Ignored if no merge is required' +complete --command youtube-dl --long-option youtube-skip-dash-manifest --description 'Do not download the DASH manifests and related data on YouTube videos' +complete --command youtube-dl --long-option merge-output-format --description 'If a merge is required (e.g. bestvideo+bestaudio), output to given container format. One of mkv, mp4, ogg, webm, flv. Ignored if no merge is required' complete --command youtube-dl --long-option write-sub --description 'Write subtitle file' complete --command youtube-dl --long-option write-auto-sub --description 'Write automatic subtitle file (YouTube only)' complete --command youtube-dl --long-option all-subs --description 'Download all the available subtitles of the video' @@ -124,7 +125,8 @@ complete --command youtube-dl --long-option video-password --description 'Video complete --command youtube-dl --long-option extract-audio --short-option x --description 'Convert video files to audio-only files (requires ffmpeg or avconv and ffprobe or avprobe)' complete --command youtube-dl --long-option audio-format --description 'Specify audio format: "best", "aac", "vorbis", "mp3", "m4a", "opus", or "wav"; "%default" by default' complete --command youtube-dl --long-option audio-quality --description 'Specify ffmpeg/avconv audio quality, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K (default %default)' -complete --command youtube-dl --long-option recode-video --description 'Encode the video to another format if necessary (currently supported: mp4|flv|ogg|webm|mkv)' --arguments 'mp4 flv ogg webm mkv' --exclusive +complete --command youtube-dl --long-option recode-video --description 'Encode the video to another format if necessary (currently supported: mp4|flv|ogg|webm|mkv|avi)' --arguments 'mp4 flv ogg webm mkv' --exclusive +complete --command youtube-dl --long-option postprocessor-args --description 'Give these arguments to the postprocessor' complete --command youtube-dl --long-option keep-video --short-option k --description 'Keep the video file on disk after the post-processing; the video is erased by default' complete --command youtube-dl --long-option no-post-overwrites --description 'Do not overwrite post-processed files; the post-processed files are overwritten by default' complete --command youtube-dl --long-option embed-subs --description 'Embed subtitles in the video (only for mkv and mp4 videos)' @@ -132,7 +134,7 @@ complete --command youtube-dl --long-option embed-thumbnail --description 'Embed complete --command youtube-dl --long-option add-metadata --description 'Write metadata to the video file' complete --command youtube-dl --long-option metadata-from-title --description 'Parse additional metadata like song title / artist from the video title. The format syntax is the same as --output, the parsed parameters replace existing values. Additional templates: %(album)s, %(artist)s. Example: --metadata-from-title "%(artist)s - %(title)s" matches a title like "Coldplay - Paradise"' complete --command youtube-dl --long-option xattrs --description 'Write metadata to the video file'"'"'s xattrs (using dublin core and xdg standards)' -complete --command youtube-dl --long-option fixup --description 'Automatically correct known faults of the file. One of never (do nothing), warn (only emit a warning), detect_or_warn(the default; fix file if we can, warn otherwise)' +complete --command youtube-dl --long-option fixup --description 'Automatically correct known faults of the file. One of never (do nothing), warn (only emit a warning), detect_or_warn (the default; fix file if we can, warn otherwise)' complete --command youtube-dl --long-option prefer-avconv --description 'Prefer avconv over ffmpeg for running the postprocessors (default)' complete --command youtube-dl --long-option prefer-ffmpeg --description 'Prefer ffmpeg over avconv for running the postprocessors' complete --command youtube-dl --long-option ffmpeg-location --description 'Location of the ffmpeg/avconv binary; either the path to the binary or its containing directory.' diff --git a/youtube-dl.zsh b/youtube-dl.zsh index 7dc3ad4..73c95b0 100644 --- a/youtube-dl.zsh +++ b/youtube-dl.zsh @@ -19,7 +19,7 @@ __youtube_dl() { elif [[ ${prev} == "--recode-video" ]]; then _arguments '*: :(mp4 flv ogg webm mkv)' else - _arguments '*: :(--help --version --update --ignore-errors --abort-on-error --dump-user-agent --list-extractors --extractor-descriptions --default-search --ignore-config --flat-playlist --no-color --proxy --socket-timeout --source-address --force-ipv4 --force-ipv6 --cn-verification-proxy --playlist-start --playlist-end --playlist-items --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --min-views --max-views --match-filter --no-playlist --yes-playlist --age-limit --download-archive --include-ads --rate-limit --retries --buffer-size --no-resize-buffer --test --playlist-reverse --xattr-set-filesize --hls-prefer-native --external-downloader --external-downloader-args --batch-file --id --output --autonumber-size --restrict-filenames --auto-number --title --literal --no-overwrites --continue --no-continue --no-part --no-mtime --write-description --write-info-json --write-annotations --load-info --cookies --cache-dir --no-cache-dir --rm-cache-dir --write-thumbnail --write-all-thumbnails --list-thumbnails --quiet --no-warnings --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-duration --get-filename --get-format --dump-json --dump-single-json --print-json --newline --no-progress --console-title --verbose --dump-pages --write-pages --youtube-print-sig-code --print-traffic --call-home --no-call-home --encoding --no-check-certificate --prefer-insecure --user-agent --referer --add-header --bidi-workaround --sleep-interval --format --all-formats --prefer-free-formats --list-formats --youtube-include-dash-manifest --youtube-skip-dash-manifest --merge-output-format --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --twofactor --netrc --video-password --extract-audio --audio-format --audio-quality --recode-video --keep-video --no-post-overwrites --embed-subs --embed-thumbnail --add-metadata --metadata-from-title --xattrs --fixup --prefer-avconv --prefer-ffmpeg --ffmpeg-location --exec --convert-subtitles)' + _arguments '*: :(--help --version --update --ignore-errors --abort-on-error --dump-user-agent --list-extractors --extractor-descriptions --force-generic-extractor --default-search --ignore-config --flat-playlist --no-color --proxy --socket-timeout --source-address --force-ipv4 --force-ipv6 --cn-verification-proxy --playlist-start --playlist-end --playlist-items --match-title --reject-title --max-downloads --min-filesize --max-filesize --date --datebefore --dateafter --min-views --max-views --match-filter --no-playlist --yes-playlist --age-limit --download-archive --include-ads --rate-limit --retries --buffer-size --no-resize-buffer --test --playlist-reverse --xattr-set-filesize --hls-prefer-native --external-downloader --external-downloader-args --batch-file --id --output --autonumber-size --restrict-filenames --auto-number --title --literal --no-overwrites --continue --no-continue --no-part --no-mtime --write-description --write-info-json --write-annotations --load-info --cookies --cache-dir --no-cache-dir --rm-cache-dir --write-thumbnail --write-all-thumbnails --list-thumbnails --quiet --no-warnings --simulate --skip-download --get-url --get-title --get-id --get-thumbnail --get-description --get-duration --get-filename --get-format --dump-json --dump-single-json --print-json --newline --no-progress --console-title --verbose --dump-pages --write-pages --youtube-print-sig-code --print-traffic --call-home --no-call-home --encoding --no-check-certificate --prefer-insecure --user-agent --referer --add-header --bidi-workaround --sleep-interval --format --all-formats --prefer-free-formats --list-formats --youtube-include-dash-manifest --youtube-skip-dash-manifest --merge-output-format --write-sub --write-auto-sub --all-subs --list-subs --sub-format --sub-lang --username --password --twofactor --netrc --video-password --extract-audio --audio-format --audio-quality --recode-video --postprocessor-args --keep-video --no-post-overwrites --embed-subs --embed-thumbnail --add-metadata --metadata-from-title --xattrs --fixup --prefer-avconv --prefer-ffmpeg --ffmpeg-location --exec --convert-subtitles)' fi ;; esac diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index aa6ec9d..00af78e 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -119,7 +119,7 @@ class YoutubeDL(object): username: Username for authentication purposes. password: Password for authentication purposes. - videopassword: Password for acces a video. + videopassword: Password for accessing a video. usenetrc: Use netrc for authentication instead. verbose: Print additional info to stdout. quiet: Do not print messages to stdout. @@ -139,6 +139,7 @@ class YoutubeDL(object): outtmpl: Template for output names. restrictfilenames: Do not allow "&" and spaces in file names ignoreerrors: Do not stop on download errors. + force_generic_extractor: Force downloader to use the generic extractor nooverwrites: Prevent overwriting files. playliststart: Playlist item to start at. playlistend: Playlist item to end at. @@ -261,6 +262,8 @@ class YoutubeDL(object): The following options are used by the post processors: prefer_ffmpeg: If True, use ffmpeg instead of avconv if both are available, otherwise prefer avconv. + postprocessor_args: A list of additional command-line arguments for the + postprocessor. """ params = None @@ -626,13 +629,16 @@ class YoutubeDL(object): info_dict.setdefault(key, value) def extract_info(self, url, download=True, ie_key=None, extra_info={}, - process=True): + process=True, force_generic_extractor=False): ''' Returns a list with a dictionary for each video we find. If 'download', also downloads the videos. extra_info is a dict containing the extra values to add to each result ''' + if not ie_key and force_generic_extractor: + ie_key = 'Generic' + if ie_key: ies = [self.get_info_extractor(ie_key)] else: @@ -1004,7 +1010,7 @@ class YoutubeDL(object): t.get('preference'), t.get('width'), t.get('height'), t.get('id'), t.get('url'))) for i, t in enumerate(thumbnails): - if 'width' in t and 'height' in t: + if t.get('width') and t.get('height'): t['resolution'] = '%dx%d' % (t['width'], t['height']) if t.get('id') is None: t['id'] = '%d' % i @@ -1016,13 +1022,13 @@ class YoutubeDL(object): info_dict['display_id'] = info_dict['id'] if info_dict.get('upload_date') is None and info_dict.get('timestamp') is not None: - # Working around negative timestamps in Windows - # (see http://bugs.python.org/issue1646728) - if info_dict['timestamp'] < 0 and os.name == 'nt': - info_dict['timestamp'] = 0 - upload_date = datetime.datetime.utcfromtimestamp( - info_dict['timestamp']) - info_dict['upload_date'] = upload_date.strftime('%Y%m%d') + # Working around out-of-range timestamp values (e.g. negative ones on Windows, + # see http://bugs.python.org/issue1646728) + try: + upload_date = datetime.datetime.utcfromtimestamp(info_dict['timestamp']) + info_dict['upload_date'] = upload_date.strftime('%Y%m%d') + except (ValueError, OverflowError, OSError): + pass if self.params.get('listsubtitles', False): if 'automatic_captions' in info_dict: @@ -1033,12 +1039,6 @@ class YoutubeDL(object): info_dict['id'], info_dict.get('subtitles'), info_dict.get('automatic_captions')) - # This extractors handle format selection themselves - if info_dict['extractor'] in ['Youku']: - if download: - self.process_info(info_dict) - return info_dict - # We now pick which formats have to be downloaded if info_dict.get('formats') is None: # There's only one format available @@ -1499,7 +1499,8 @@ class YoutubeDL(object): for url in url_list: try: # It also downloads the videos - res = self.extract_info(url) + res = self.extract_info( + url, force_generic_extractor=self.params.get('force_generic_extractor', False)) except UnavailableVideoError: self.report_error('unable to download video') except MaxDownloadsReached: diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index ace1785..55b22c8 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -169,7 +169,7 @@ def _real_main(argv=None): if not opts.audioquality.isdigit(): parser.error('invalid audio quality specified') if opts.recodevideo is not None: - if opts.recodevideo not in ['mp4', 'flv', 'webm', 'ogg', 'mkv']: + if opts.recodevideo not in ['mp4', 'flv', 'webm', 'ogg', 'mkv', 'avi']: parser.error('invalid video recode format specified') if opts.convertsubtitles is not None: if opts.convertsubtitles not in ['srt', 'vtt', 'ass']: @@ -263,6 +263,9 @@ def _real_main(argv=None): external_downloader_args = None if opts.external_downloader_args: external_downloader_args = shlex.split(opts.external_downloader_args) + postprocessor_args = None + if opts.postprocessor_args: + postprocessor_args = shlex.split(opts.postprocessor_args) match_filter = ( None if opts.match_filter is None else match_filter_func(opts.match_filter)) @@ -293,6 +296,7 @@ def _real_main(argv=None): 'autonumber_size': opts.autonumber_size, 'restrictfilenames': opts.restrictfilenames, 'ignoreerrors': opts.ignoreerrors, + 'force_generic_extractor': opts.force_generic_extractor, 'ratelimit': opts.ratelimit, 'nooverwrites': opts.nooverwrites, 'retries': opts_retries, @@ -366,6 +370,7 @@ def _real_main(argv=None): 'ffmpeg_location': opts.ffmpeg_location, 'hls_prefer_native': opts.hls_prefer_native, 'external_downloader_args': external_downloader_args, + 'postprocessor_args': postprocessor_args, 'cn_verification_proxy': opts.cn_verification_proxy, } diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py index f952921..0c57c7a 100644 --- a/youtube_dl/compat.py +++ b/youtube_dl/compat.py @@ -9,6 +9,7 @@ import shutil import socket import subprocess import sys +import itertools try: @@ -74,42 +75,74 @@ except ImportError: import BaseHTTPServer as compat_http_server try: + from urllib.parse import unquote_to_bytes as compat_urllib_parse_unquote_to_bytes from urllib.parse import unquote as compat_urllib_parse_unquote -except ImportError: - def compat_urllib_parse_unquote(string, encoding='utf-8', errors='replace'): - if string == '': + from urllib.parse import unquote_plus as compat_urllib_parse_unquote_plus +except ImportError: # Python 2 + _asciire = (compat_urllib_parse._asciire if hasattr(compat_urllib_parse, '_asciire') + else re.compile('([\x00-\x7f]+)')) + + # HACK: The following are the correct unquote_to_bytes, unquote and unquote_plus + # implementations from cpython 3.4.3's stdlib. Python 2's version + # is apparently broken (see https://github.com/rg3/youtube-dl/pull/6244) + + def compat_urllib_parse_unquote_to_bytes(string): + """unquote_to_bytes('abc%20def') -> b'abc def'.""" + # Note: strings are encoded as UTF-8. This is only an issue if it contains + # unescaped non-ASCII characters, which URIs should not. + if not string: + # Is it a string-like object? + string.split + return b'' + if isinstance(string, unicode): + string = string.encode('utf-8') + bits = string.split(b'%') + if len(bits) == 1: return string - res = string.split('%') - if len(res) == 1: + res = [bits[0]] + append = res.append + for item in bits[1:]: + try: + append(compat_urllib_parse._hextochr[item[:2]]) + append(item[2:]) + except KeyError: + append(b'%') + append(item) + return b''.join(res) + + def compat_urllib_parse_unquote(string, encoding='utf-8', errors='replace'): + """Replace %xx escapes by their single-character equivalent. The optional + encoding and errors parameters specify how to decode percent-encoded + sequences into Unicode characters, as accepted by the bytes.decode() + method. + By default, percent-encoded sequences are decoded with UTF-8, and invalid + sequences are replaced by a placeholder character. + + unquote('abc%20def') -> 'abc def'. + """ + if '%' not in string: + string.split return string if encoding is None: encoding = 'utf-8' if errors is None: errors = 'replace' - # pct_sequence: contiguous sequence of percent-encoded bytes, decoded - pct_sequence = b'' - string = res[0] - for item in res[1:]: - try: - if not item: - raise ValueError - pct_sequence += item[:2].decode('hex') - rest = item[2:] - if not rest: - # This segment was just a single percent-encoded character. - # May be part of a sequence of code units, so delay decoding. - # (Stored in pct_sequence). - continue - except ValueError: - rest = '%' + item - # Encountered non-percent-encoded characters. Flush the current - # pct_sequence. - string += pct_sequence.decode(encoding, errors) + rest - pct_sequence = b'' - if pct_sequence: - # Flush the final pct_sequence - string += pct_sequence.decode(encoding, errors) - return string + bits = _asciire.split(string) + res = [bits[0]] + append = res.append + for i in range(1, len(bits), 2): + append(compat_urllib_parse_unquote_to_bytes(bits[i]).decode(encoding, errors)) + append(bits[i + 1]) + return ''.join(res) + + def compat_urllib_parse_unquote_plus(string, encoding='utf-8', errors='replace'): + """Like unquote(), but also replace plus signs by spaces, as required for + unquoting HTML form values. + + unquote_plus('%7e/abc+def') -> '~/abc def' + """ + string = string.replace('+', ' ') + return compat_urllib_parse_unquote(string, encoding, errors) try: compat_str = unicode # Python 2 @@ -388,6 +421,15 @@ else: pass return _terminal_size(columns, lines) +try: + itertools.count(start=0, step=1) + compat_itertools_count = itertools.count +except TypeError: # Python 2.6 + def compat_itertools_count(start=0, step=1): + n = start + while True: + yield n + n += step __all__ = [ 'compat_HTTPError', @@ -401,6 +443,7 @@ __all__ = [ 'compat_html_entities', 'compat_http_client', 'compat_http_server', + 'compat_itertools_count', 'compat_kwargs', 'compat_ord', 'compat_parse_qs', @@ -411,6 +454,8 @@ __all__ = [ 'compat_urllib_error', 'compat_urllib_parse', 'compat_urllib_parse_unquote', + 'compat_urllib_parse_unquote_plus', + 'compat_urllib_parse_unquote_to_bytes', 'compat_urllib_parse_urlparse', 'compat_urllib_request', 'compat_urlparse', diff --git a/youtube_dl/downloader/__init__.py b/youtube_dl/downloader/__init__.py index f110830..dccc592 100644 --- a/youtube_dl/downloader/__init__.py +++ b/youtube_dl/downloader/__init__.py @@ -8,6 +8,7 @@ from .hls import NativeHlsFD from .http import HttpFD from .rtsp import RtspFD from .rtmp import RtmpFD +from .dash import DashSegmentsFD from ..utils import ( determine_protocol, @@ -20,6 +21,7 @@ PROTOCOL_MAP = { 'mms': RtspFD, 'rtsp': RtspFD, 'f4m': F4mFD, + 'http_dash_segments': DashSegmentsFD, } diff --git a/youtube_dl/downloader/dash.py b/youtube_dl/downloader/dash.py new file mode 100644 index 0000000..a4685d3 --- /dev/null +++ b/youtube_dl/downloader/dash.py @@ -0,0 +1,66 @@ +from __future__ import unicode_literals + +import re + +from .common import FileDownloader +from ..compat import compat_urllib_request + + +class DashSegmentsFD(FileDownloader): + """ + Download segments in a DASH manifest + """ + def real_download(self, filename, info_dict): + self.report_destination(filename) + tmpfilename = self.temp_name(filename) + base_url = info_dict['url'] + segment_urls = info_dict['segment_urls'] + + is_test = self.params.get('test', False) + remaining_bytes = self._TEST_FILE_SIZE if is_test else None + byte_counter = 0 + + def append_url_to_file(outf, target_url, target_name, remaining_bytes=None): + self.to_screen('[DashSegments] %s: Downloading %s' % (info_dict['id'], target_name)) + req = compat_urllib_request.Request(target_url) + if remaining_bytes is not None: + req.add_header('Range', 'bytes=0-%d' % (remaining_bytes - 1)) + + data = self.ydl.urlopen(req).read() + + if remaining_bytes is not None: + data = data[:remaining_bytes] + + outf.write(data) + return len(data) + + def combine_url(base_url, target_url): + if re.match(r'^https?://', target_url): + return target_url + return '%s/%s' % (base_url, target_url) + + with open(tmpfilename, 'wb') as outf: + append_url_to_file( + outf, combine_url(base_url, info_dict['initialization_url']), + 'initialization segment') + for i, segment_url in enumerate(segment_urls): + segment_len = append_url_to_file( + outf, combine_url(base_url, segment_url), + 'segment %d / %d' % (i + 1, len(segment_urls)), + remaining_bytes) + byte_counter += segment_len + if remaining_bytes is not None: + remaining_bytes -= segment_len + if remaining_bytes <= 0: + break + + self.try_rename(tmpfilename, filename) + + self._hook_progress({ + 'downloaded_bytes': byte_counter, + 'total_bytes': byte_counter, + 'filename': filename, + 'status': 'finished', + }) + + return True diff --git a/youtube_dl/downloader/external.py b/youtube_dl/downloader/external.py index 7ca2d31..1d5cc99 100644 --- a/youtube_dl/downloader/external.py +++ b/youtube_dl/downloader/external.py @@ -109,6 +109,14 @@ class Aria2cFD(ExternalFD): cmd += ['--', info_dict['url']] return cmd + +class HttpieFD(ExternalFD): + def _make_cmd(self, tmpfilename, info_dict): + cmd = ['http', '--download', '--output', tmpfilename, info_dict['url']] + for key, val in info_dict['http_headers'].items(): + cmd += ['%s:%s' % (key, val)] + return cmd + _BY_NAME = dict( (klass.get_basename(), klass) for name, klass in globals().items() @@ -123,5 +131,6 @@ def list_external_downloaders(): def get_external_downloader(external_downloader): """ Given the name of the executable, see whether we support the given downloader . """ - bn = os.path.basename(external_downloader) + # Drop .exe extension on Windows + bn = os.path.splitext(os.path.basename(external_downloader))[0] return _BY_NAME[bn] diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 67eb960..50da088 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -4,7 +4,10 @@ from .abc import ABCIE from .abc7news import Abc7NewsIE from .academicearth import AcademicEarthCourseIE from .addanime import AddAnimeIE -from .adobetv import AdobeTVIE +from .adobetv import ( + AdobeTVIE, + AdobeTVVideoIE, +) from .adultswim import AdultSwimIE from .aftenposten import AftenpostenIE from .aftonbladet import AftonbladetIE @@ -16,9 +19,14 @@ from .anysex import AnySexIE from .aol import AolIE from .allocine import AllocineIE from .aparat import AparatIE +from .appleconnect import AppleConnectIE from .appletrailers import AppleTrailersIE from .archiveorg import ArchiveOrgIE -from .ard import ARDIE, ARDMediathekIE +from .ard import ( + ARDIE, + ARDMediathekIE, + SportschauIE, +) from .arte import ( ArteTvIE, ArteTVPlus7IE, @@ -103,6 +111,7 @@ from .dailymotion import ( DailymotionIE, DailymotionPlaylistIE, DailymotionUserIE, + DailymotionCloudIE, ) from .daum import DaumIE from .dbtv import DBTVIE @@ -112,6 +121,10 @@ from .dfb import DFBIE from .dhm import DHMIE from .dotsub import DotsubIE from .douyutv import DouyuTVIE +from .dramafever import ( + DramaFeverIE, + DramaFeverSeriesIE, +) from .dreisat import DreiSatIE from .drbonanza import DRBonanzaIE from .drtuber import DrTuberIE @@ -136,7 +149,6 @@ from .ellentv import ( ) from .elpais import ElPaisIE from .embedly import EmbedlyIE -from .empflix import EMPFlixIE from .engadget import EngadgetIE from .eporner import EpornerIE from .eroprofile import EroProfileIE @@ -152,6 +164,7 @@ from .fc2 import FC2IE from .firstpost import FirstpostIE from .firsttv import FirstTVIE from .fivemin import FiveMinIE +from .fivetv import FiveTVIE from .fktv import ( FKTVIE, FKTVPosteckeIE, @@ -229,6 +242,7 @@ from .infoq import InfoQIE from .instagram import InstagramIE, InstagramUserIE from .internetvideoarchive import InternetVideoArchiveIE from .iprima import IPrimaIE +from .iqiyi import IqiyiIE from .ivi import ( IviIE, IviCompilationIE @@ -251,6 +265,14 @@ from .keek import KeekIE from .kontrtube import KontrTubeIE from .krasview import KrasViewIE from .ku6 import Ku6IE +from .kuwo import ( + KuwoIE, + KuwoAlbumIE, + KuwoChartIE, + KuwoSingerIE, + KuwoCategoryIE, + KuwoMvIE, +) from .la7 import LA7IE from .laola1tv import Laola1TvIE from .letv import ( @@ -314,6 +336,7 @@ from .musicvault import MusicVaultIE from .muzu import MuzuTVIE from .myspace import MySpaceIE, MySpaceAlbumIE from .myspass import MySpassIE +from .myvi import MyviIE from .myvideo import MyVideoIE from .myvidster import MyVidsterIE from .nationalgeographic import NationalGeographicIE @@ -333,6 +356,15 @@ from .ndtv import NDTVIE from .netzkino import NetzkinoIE from .nerdcubed import NerdCubedFeedIE from .nerdist import NerdistIE +from .neteasemusic import ( + NetEaseMusicIE, + NetEaseMusicAlbumIE, + NetEaseMusicSingerIE, + NetEaseMusicListIE, + NetEaseMusicMvIE, + NetEaseMusicProgramIE, + NetEaseMusicDjRadioIE, +) from .newgrounds import NewgroundsIE from .newstube import NewstubeIE from .nextmedia import ( @@ -362,7 +394,8 @@ from .npo import ( NPOLiveIE, NPORadioIE, NPORadioFragmentIE, - TegenlichtVproIE, + VPROIE, + WNLIE ) from .nrk import ( NRKIE, @@ -378,6 +411,7 @@ from .nytimes import ( from .nuvid import NuvidIE from .odnoklassniki import OdnoklassnikiIE from .oktoberfesttv import OktoberfestTVIE +from .onionstudios import OnionStudiosIE from .ooyala import ( OoyalaIE, OoyalaExternalIE, @@ -395,6 +429,7 @@ from .pbs import PBSIE from .philharmoniedeparis import PhilharmonieDeParisIE from .phoenix import PhoenixIE from .photobucket import PhotobucketIE +from .pinkbike import PinkbikeIE from .planetaplay import PlanetaPlayIE from .pladform import PladformIE from .played import PlayedIE @@ -421,6 +456,7 @@ from .qqmusic import ( QQMusicSingerIE, QQMusicAlbumIE, QQMusicToplistIE, + QQMusicPlaylistIE, ) from .quickvid import QuickVidIE from .r7 import R7IE @@ -430,6 +466,7 @@ from .radiobremen import RadioBremenIE from .radiofrance import RadioFranceIE from .rai import RaiIE from .rbmaradio import RBMARadioIE +from .rds import RDSIE from .redtube import RedTubeIE from .restudy import RestudyIE from .reverbnation import ReverbNationIE @@ -453,6 +490,7 @@ from .rutube import ( RutubePersonIE, ) from .rutv import RUTVIE +from .ruutu import RuutuIE from .sandia import SandiaIE from .safari import ( SafariIE, @@ -480,6 +518,10 @@ from .smotri import ( SmotriUserIE, SmotriBroadcastIE, ) +from .snagfilms import ( + SnagFilmsIE, + SnagFilmsEmbedIE, +) from .snotr import SnotrIE from .sohu import SohuIE from .soompi import ( @@ -553,6 +595,7 @@ from .tf1 import TF1IE from .theonion import TheOnionIE from .theplatform import ThePlatformIE from .thesixtyone import TheSixtyOneIE +from .thisamericanlife import ThisAmericanLifeIE from .thisav import ThisAVIE from .tinypic import TinyPicIE from .tlc import TlcIE, TlcDeIE @@ -560,7 +603,11 @@ from .tmz import ( TMZIE, TMZArticleIE, ) -from .tnaflix import TNAFlixIE +from .tnaflix import ( + TNAFlixIE, + EMPFlixIE, + MovieFapIE, +) from .thvideo import ( THVideoIE, THVideoPlaylistIE @@ -582,6 +629,10 @@ from .tv2 import ( TV2ArticleIE, ) from .tv4 import TV4IE +from .tvc import ( + TVCIE, + TVCArticleIE, +) from .tvigle import TvigleIE from .tvp import TvpIE, TvpSeriesIE from .tvplay import TVPlayIE @@ -600,6 +651,7 @@ from .twitch import ( TwitchBookmarksIE, TwitchStreamIE, ) +from .twitter import TwitterCardIE from .ubu import UbuIE from .udemy import ( UdemyIE, @@ -676,7 +728,10 @@ from .wdr import ( WDRMobileIE, WDRMausIE, ) -from .webofstories import WebOfStoriesIE +from .webofstories import ( + WebOfStoriesIE, + WebOfStoriesPlaylistIE, +) from .weibo import WeiboIE from .wimp import WimpIE from .wistia import WistiaIE @@ -685,7 +740,10 @@ from .wrzuta import WrzutaIE from .wsj import WSJIE from .xbef import XBefIE from .xboxclips import XboxClipsIE -from .xhamster import XHamsterIE +from .xhamster import ( + XHamsterIE, + XHamsterEmbedIE, +) from .xminus import XMinusIE from .xnxx import XNXXIE from .xstream import XstreamIE @@ -704,6 +762,7 @@ from .yandexmusic import ( YandexMusicPlaylistIE, ) from .yesjapan import YesJapanIE +from .yinyuetai import YinYueTaiIE from .ynet import YnetIE from .youjizz import YouJizzIE from .youku import YoukuIE diff --git a/youtube_dl/extractor/adobetv.py b/youtube_dl/extractor/adobetv.py index 97d1285..5e43adc 100644 --- a/youtube_dl/extractor/adobetv.py +++ b/youtube_dl/extractor/adobetv.py @@ -5,6 +5,8 @@ from ..utils import ( parse_duration, unified_strdate, str_to_int, + float_or_none, + ISO639Utils, ) @@ -69,3 +71,61 @@ class AdobeTVIE(InfoExtractor): 'view_count': view_count, 'formats': formats, } + + +class AdobeTVVideoIE(InfoExtractor): + _VALID_URL = r'https?://video\.tv\.adobe\.com/v/(?P<id>\d+)' + + _TEST = { + # From https://helpx.adobe.com/acrobat/how-to/new-experience-acrobat-dc.html?set=acrobat--get-started--essential-beginners + 'url': 'https://video.tv.adobe.com/v/2456/', + 'md5': '43662b577c018ad707a63766462b1e87', + 'info_dict': { + 'id': '2456', + 'ext': 'mp4', + 'title': 'New experience with Acrobat DC', + 'description': 'New experience with Acrobat DC', + 'duration': 248.667, + }, + } + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage(url, video_id) + + player_params = self._parse_json(self._search_regex( + r'var\s+bridge\s*=\s*([^;]+);', webpage, 'player parameters'), + video_id) + + formats = [{ + 'url': source['src'], + 'width': source.get('width'), + 'height': source.get('height'), + 'tbr': source.get('bitrate'), + } for source in player_params['sources']] + + # For both metadata and downloaded files the duration varies among + # formats. I just pick the max one + duration = max(filter(None, [ + float_or_none(source.get('duration'), scale=1000) + for source in player_params['sources']])) + + subtitles = {} + for translation in player_params.get('translations', []): + lang_id = translation.get('language_w3c') or ISO639Utils.long2short(translation['language_medium']) + if lang_id not in subtitles: + subtitles[lang_id] = [] + subtitles[lang_id].append({ + 'url': translation['vttPath'], + 'ext': 'vtt', + }) + + return { + 'id': video_id, + 'formats': formats, + 'title': player_params['title'], + 'description': self._og_search_description(webpage), + 'duration': duration, + 'subtitles': subtitles, + } diff --git a/youtube_dl/extractor/appleconnect.py b/youtube_dl/extractor/appleconnect.py new file mode 100644 index 0000000..ea7a703 --- /dev/null +++ b/youtube_dl/extractor/appleconnect.py @@ -0,0 +1,50 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..utils import ( + str_to_int, + ExtractorError +) + + +class AppleConnectIE(InfoExtractor): + _VALID_URL = r'https?://itunes\.apple\.com/\w{0,2}/?post/idsa\.(?P<id>[\w-]+)' + _TEST = { + 'url': 'https://itunes.apple.com/us/post/idsa.4ab17a39-2720-11e5-96c5-a5b38f6c42d3', + 'md5': '10d0f2799111df4cb1c924520ca78f98', + 'info_dict': { + 'id': '4ab17a39-2720-11e5-96c5-a5b38f6c42d3', + 'ext': 'm4v', + 'title': 'Energy', + 'uploader': 'Drake', + 'thumbnail': 'http://is5.mzstatic.com/image/thumb/Video5/v4/78/61/c5/7861c5fa-ad6d-294b-1464-cf7605b911d6/source/1920x1080sr.jpg', + 'upload_date': '20150710', + 'timestamp': 1436545535, + }, + } + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + + try: + video_json = self._html_search_regex( + r'class="auc-video-data">(\{.*?\})', webpage, 'json') + except ExtractorError: + raise ExtractorError('This post doesn\'t contain a video', expected=True) + + video_data = self._parse_json(video_json, video_id) + timestamp = str_to_int(self._html_search_regex(r'data-timestamp="(\d+)"', webpage, 'timestamp')) + like_count = str_to_int(self._html_search_regex(r'(\d+) Loves', webpage, 'like count')) + + return { + 'id': video_id, + 'url': video_data['sslSrc'], + 'title': video_data['title'], + 'description': video_data['description'], + 'uploader': video_data['artistName'], + 'thumbnail': video_data['artworkUrl'], + 'timestamp': timestamp, + 'like_count': like_count, + } diff --git a/youtube_dl/extractor/ard.py b/youtube_dl/extractor/ard.py index 6a35ea4..6f46578 100644 --- a/youtube_dl/extractor/ard.py +++ b/youtube_dl/extractor/ard.py @@ -8,6 +8,7 @@ from .generic import GenericIE from ..utils import ( determine_ext, ExtractorError, + get_element_by_attribute, qualities, int_or_none, parse_duration, @@ -22,19 +23,125 @@ class ARDMediathekIE(InfoExtractor): _VALID_URL = r'^https?://(?:(?:www\.)?ardmediathek\.de|mediathek\.daserste\.de)/(?:.*/)(?P<video_id>[0-9]+|[^0-9][^/\?]+)[^/\?]*(?:\?.*)?' _TESTS = [{ - 'url': 'http://mediathek.daserste.de/sendungen_a-z/328454_anne-will/22429276_vertrauen-ist-gut-spionieren-ist-besser-geht', - 'only_matching': True, + 'url': 'http://www.ardmediathek.de/tv/Dokumentation-und-Reportage/Ich-liebe-das-Leben-trotzdem/rbb-Fernsehen/Video?documentId=29582122&bcastId=3822114', + 'info_dict': { + 'id': '29582122', + 'ext': 'mp4', + 'title': 'Ich liebe das Leben trotzdem', + 'description': 'md5:45e4c225c72b27993314b31a84a5261c', + 'duration': 4557, + }, + 'params': { + # m3u8 download + 'skip_download': True, + }, }, { - 'url': 'http://www.ardmediathek.de/tv/Tatort/Das-Wunder-von-Wolbeck-Video-tgl-ab-20/Das-Erste/Video?documentId=22490580&bcastId=602916', + 'url': 'http://www.ardmediathek.de/tv/Tatort/Tatort-Scheinwelten-H%C3%B6rfassung-Video/Das-Erste/Video?documentId=29522730&bcastId=602916', + 'md5': 'f4d98b10759ac06c0072bbcd1f0b9e3e', 'info_dict': { - 'id': '22490580', + 'id': '29522730', 'ext': 'mp4', - 'title': 'Das Wunder von Wolbeck (Video tgl. ab 20 Uhr)', - 'description': 'Auf einem restaurierten Hof bei Wolbeck wird der Heilpraktiker Raffael Lembeck eines morgens von seiner Frau Stella tot aufgefunden. Das Opfer war offensichtlich in seiner Praxis zu Fall gekommen und ist dann verblutet, erklärt Prof. Boerne am Tatort.', + 'title': 'Tatort: Scheinwelten - Hörfassung (Video tgl. ab 20 Uhr)', + 'description': 'md5:196392e79876d0ac94c94e8cdb2875f1', + 'duration': 5252, }, - 'skip': 'Blocked outside of Germany', + }, { + # audio + 'url': 'http://www.ardmediathek.de/tv/WDR-H%C3%B6rspiel-Speicher/Tod-eines-Fu%C3%9Fballers/WDR-3/Audio-Podcast?documentId=28488308&bcastId=23074086', + 'md5': '219d94d8980b4f538c7fcb0865eb7f2c', + 'info_dict': { + 'id': '28488308', + 'ext': 'mp3', + 'title': 'Tod eines FuÃballers', + 'description': 'md5:f6e39f3461f0e1f54bfa48c8875c86ef', + 'duration': 3240, + }, + }, { + 'url': 'http://mediathek.daserste.de/sendungen_a-z/328454_anne-will/22429276_vertrauen-ist-gut-spionieren-ist-besser-geht', + 'only_matching': True, }] + def _extract_media_info(self, media_info_url, webpage, video_id): + media_info = self._download_json( + media_info_url, video_id, 'Downloading media JSON') + + formats = self._extract_formats(media_info, video_id) + + if not formats: + if '"fsk"' in webpage: + raise ExtractorError( + 'This video is only available after 20:00', expected=True) + elif media_info.get('_geoblocked'): + raise ExtractorError('This video is not available due to geo restriction', expected=True) + + self._sort_formats(formats) + + duration = int_or_none(media_info.get('_duration')) + thumbnail = media_info.get('_previewImage') + + subtitles = {} + subtitle_url = media_info.get('_subtitleUrl') + if subtitle_url: + subtitles['de'] = [{ + 'ext': 'srt', + 'url': subtitle_url, + }] + + return { + 'id': video_id, + 'duration': duration, + 'thumbnail': thumbnail, + 'formats': formats, + 'subtitles': subtitles, + } + + def _extract_formats(self, media_info, video_id): + type_ = media_info.get('_type') + media_array = media_info.get('_mediaArray', []) + formats = [] + for num, media in enumerate(media_array): + for stream in media.get('_mediaStreamArray', []): + stream_urls = stream.get('_stream') + if not stream_urls: + continue + if not isinstance(stream_urls, list): + stream_urls = [stream_urls] + quality = stream.get('_quality') + server = stream.get('_server') + for stream_url in stream_urls: + ext = determine_ext(stream_url) + if ext == 'f4m': + formats.extend(self._extract_f4m_formats( + stream_url + '?hdcore=3.1.1&plugin=aasp-3.1.1.69.124', + video_id, preference=-1, f4m_id='hds')) + elif ext == 'm3u8': + formats.extend(self._extract_m3u8_formats( + stream_url, video_id, 'mp4', preference=1, m3u8_id='hls')) + else: + if server and server.startswith('rtmp'): + f = { + 'url': server, + 'play_path': stream_url, + 'format_id': 'a%s-rtmp-%s' % (num, quality), + } + elif stream_url.startswith('http'): + f = { + 'url': stream_url, + 'format_id': 'a%s-%s-%s' % (num, ext, quality) + } + else: + continue + m = re.search(r'_(?P<width>\d+)x(?P<height>\d+)\.mp4$', stream_url) + if m: + f.update({ + 'width': int(m.group('width')), + 'height': int(m.group('height')), + }) + if type_ == 'audio': + f['vcodec'] = 'none' + formats.append(f) + return formats + def _real_extract(self, url): # determine video id from url m = re.match(self._VALID_URL, url) @@ -92,46 +199,22 @@ class ARDMediathekIE(InfoExtractor): 'format_id': fid, 'url': furl, }) + self._sort_formats(formats) + info = { + 'formats': formats, + } else: # request JSON file - media_info = self._download_json( - 'http://www.ardmediathek.de/play/media/%s' % video_id, video_id) - # The second element of the _mediaArray contains the standard http urls - streams = media_info['_mediaArray'][1]['_mediaStreamArray'] - if not streams: - if '"fsk"' in webpage: - raise ExtractorError('This video is only available after 20:00') - - formats = [] - for s in streams: - if type(s['_stream']) == list: - for index, url in enumerate(s['_stream'][::-1]): - quality = s['_quality'] + index - formats.append({ - 'quality': quality, - 'url': url, - 'format_id': '%s-%s' % (determine_ext(url), quality) - }) - continue - - format = { - 'quality': s['_quality'], - 'url': s['_stream'], - } - - format['format_id'] = '%s-%s' % ( - determine_ext(format['url']), format['quality']) + info = self._extract_media_info( + 'http://www.ardmediathek.de/play/media/%s' % video_id, webpage, video_id) - formats.append(format) - - self._sort_formats(formats) - - return { + info.update({ 'id': video_id, 'title': title, 'description': description, - 'formats': formats, 'thumbnail': thumbnail, - } + }) + + return info class ARDIE(InfoExtractor): @@ -189,3 +272,41 @@ class ARDIE(InfoExtractor): 'upload_date': upload_date, 'thumbnail': thumbnail, } + + +class SportschauIE(ARDMediathekIE): + IE_NAME = 'Sportschau' + _VALID_URL = r'(?P<baseurl>https?://(?:www\.)?sportschau\.de/(?:[^/]+/)+video(?P<id>[^/#?]+))\.html' + _TESTS = [{ + 'url': 'http://www.sportschau.de/tourdefrance/videoseppeltkokainhatnichtsmitklassischemdopingzutun100.html', + 'info_dict': { + 'id': 'seppeltkokainhatnichtsmitklassischemdopingzutun100', + 'ext': 'mp4', + 'title': 'Seppelt: "Kokain hat nichts mit klassischem Doping zu tun"', + 'thumbnail': 're:^https?://.*\.jpg$', + 'description': 'Der ARD-Doping Experte Hajo Seppelt gibt seine Einschätzung zum ersten Dopingfall der diesjährigen Tour de France um den Italiener Luca Paolini ab.', + }, + 'params': { + # m3u8 download + 'skip_download': True, + }, + }] + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group('id') + base_url = mobj.group('baseurl') + + webpage = self._download_webpage(url, video_id) + title = get_element_by_attribute('class', 'headline', webpage) + description = self._html_search_meta('description', webpage, 'description') + + info = self._extract_media_info( + base_url + '-mc_defaultQuality-h.json', webpage, video_id) + + info.update({ + 'title': title, + 'description': description, + }) + + return info diff --git a/youtube_dl/extractor/baidu.py b/youtube_dl/extractor/baidu.py index 906895c..e37ee44 100644 --- a/youtube_dl/extractor/baidu.py +++ b/youtube_dl/extractor/baidu.py @@ -8,6 +8,7 @@ from ..compat import compat_urlparse class BaiduVideoIE(InfoExtractor): + IE_DESC = 'ç¾åº¦è§é¢' _VALID_URL = r'http://v\.baidu\.com/(?P<type>[a-z]+)/(?P<id>\d+)\.htm' _TESTS = [{ 'url': 'http://v.baidu.com/comic/1069.htm?frp=bdbrand&q=%E4%B8%AD%E5%8D%8E%E5%B0%8F%E5%BD%93%E5%AE%B6', diff --git a/youtube_dl/extractor/bbccouk.py b/youtube_dl/extractor/bbccouk.py index 249bc6b..5825d28 100644 --- a/youtube_dl/extractor/bbccouk.py +++ b/youtube_dl/extractor/bbccouk.py @@ -129,6 +129,20 @@ class BBCCoUkIE(InfoExtractor): 'skip_download': True, }, 'skip': 'geolocation', + }, { + 'url': 'http://www.bbc.co.uk/iplayer/episode/b05zmgwn/royal-academy-summer-exhibition', + 'info_dict': { + 'id': 'b05zmgw1', + 'ext': 'flv', + 'description': 'Kirsty Wark and Morgan Quaintance visit the Royal Academy as it prepares for its annual artistic extravaganza, meeting people who have come together to make the show unique.', + 'title': 'Royal Academy Summer Exhibition', + 'duration': 3540, + }, + 'params': { + # rtmp download + 'skip_download': True, + }, + 'skip': 'geolocation', }, { 'url': 'http://www.bbc.co.uk/iplayer/playlist/p01dvks4', 'only_matching': True, @@ -237,26 +251,11 @@ class BBCCoUkIE(InfoExtractor): for connection in self._extract_connections(media): captions = self._download_xml(connection.get('href'), programme_id, 'Downloading captions') lang = captions.get('{http://www.w3.org/XML/1998/namespace}lang', 'en') - ps = captions.findall('./{0}body/{0}div/{0}p'.format('{http://www.w3.org/2006/10/ttaf1}')) - srt = '' - - def _extract_text(p): - if p.text is not None: - stripped_text = p.text.strip() - if stripped_text: - return stripped_text - return ' '.join(span.text.strip() for span in p.findall('{http://www.w3.org/2006/10/ttaf1}span')) - for pos, p in enumerate(ps): - srt += '%s\r\n%s --> %s\r\n%s\r\n\r\n' % (str(pos), p.get('begin'), p.get('end'), _extract_text(p)) subtitles[lang] = [ { 'url': connection.get('href'), 'ext': 'ttml', }, - { - 'data': srt, - 'ext': 'srt', - }, ] return subtitles @@ -267,7 +266,7 @@ class BBCCoUkIE(InfoExtractor): programme_id, 'Downloading media selection XML') except ExtractorError as ee: if isinstance(ee.cause, compat_HTTPError) and ee.cause.code == 403: - media_selection = xml.etree.ElementTree.fromstring(ee.cause.read().encode('utf-8')) + media_selection = xml.etree.ElementTree.fromstring(ee.cause.read().decode('utf-8')) else: raise @@ -362,7 +361,7 @@ class BBCCoUkIE(InfoExtractor): formats, subtitles = self._download_media_selector(programme_id) title = self._og_search_title(webpage) description = self._search_regex( - r'<p class="medium-description">([^<]+)</p>', + r'<p class="[^"]*medium-description[^"]*">([^<]+)</p>', webpage, 'description', fatal=False) else: programme_id, title, description, duration, formats, subtitles = self._download_playlist(group_id) diff --git a/youtube_dl/extractor/bet.py b/youtube_dl/extractor/bet.py index 26b9345..03dad46 100644 --- a/youtube_dl/extractor/bet.py +++ b/youtube_dl/extractor/bet.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals from .common import InfoExtractor -from ..compat import compat_urllib_parse +from ..compat import compat_urllib_parse_unquote from ..utils import ( xpath_text, xpath_with_ns, @@ -57,7 +57,7 @@ class BetIE(InfoExtractor): display_id = self._match_id(url) webpage = self._download_webpage(url, display_id) - media_url = compat_urllib_parse.unquote(self._search_regex( + media_url = compat_urllib_parse_unquote(self._search_regex( [r'mediaURL\s*:\s*"([^"]+)"', r"var\s+mrssMediaUrl\s*=\s*'([^']+)'"], webpage, 'media URL')) diff --git a/youtube_dl/extractor/bilibili.py b/youtube_dl/extractor/bilibili.py index 2103ed7..ecc17eb 100644 --- a/youtube_dl/extractor/bilibili.py +++ b/youtube_dl/extractor/bilibili.py @@ -41,8 +41,15 @@ class BiliBiliIE(InfoExtractor): video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) - if self._search_regex(r'(æ¤è§é¢ä¸åå¨æ被å é¤)', webpage, 'error message', default=None): - raise ExtractorError('The video does not exist or was deleted', expected=True) + if '(æ¤è§é¢ä¸åå¨æ被å é¤)' in webpage: + raise ExtractorError( + 'The video does not exist or was deleted', expected=True) + + if '>ä½ æ²¡ææéæµè§ï¼ ç±äºçæç¸å ³é®é¢ æ们ä¸å¯¹æ¨æå¨çå°åºæä¾æå¡<' in webpage: + raise ExtractorError( + 'The video is not available in your region due to copyright reasons', + expected=True) + video_code = self._search_regex( r'(?s)<div itemprop="video".*?>(.*?)</div>', webpage, 'video code') @@ -105,7 +112,7 @@ class BiliBiliIE(InfoExtractor): 'filesize': int_or_none( lq_durl.find('./size'), get_attr='text'), }] - if hq_durl: + if hq_durl is not None: formats.append({ 'format_id': 'hq', 'quality': 2, diff --git a/youtube_dl/extractor/bliptv.py b/youtube_dl/extractor/bliptv.py index fb56cd7..c329628 100644 --- a/youtube_dl/extractor/bliptv.py +++ b/youtube_dl/extractor/bliptv.py @@ -5,7 +5,6 @@ import re from .common import InfoExtractor from ..compat import ( - compat_str, compat_urllib_request, compat_urlparse, ) @@ -14,6 +13,8 @@ from ..utils import ( int_or_none, parse_iso8601, unescapeHTML, + xpath_text, + xpath_with_ns, ) @@ -23,10 +24,10 @@ class BlipTVIE(InfoExtractor): _TESTS = [ { 'url': 'http://blip.tv/cbr/cbr-exclusive-gotham-city-imposters-bats-vs-jokerz-short-3-5796352', - 'md5': 'c6934ad0b6acf2bd920720ec888eb812', + 'md5': '80baf1ec5c3d2019037c1c707d676b9f', 'info_dict': { 'id': '5779306', - 'ext': 'mov', + 'ext': 'm4v', 'title': 'CBR EXCLUSIVE: "Gotham City Imposters" Bats VS Jokerz Short 3', 'description': 'md5:9bc31f227219cde65e47eeec8d2dc596', 'timestamp': 1323138843, @@ -100,6 +101,20 @@ class BlipTVIE(InfoExtractor): 'vcodec': 'none', } }, + { + # missing duration + 'url': 'http://blip.tv/rss/flash/6700880', + 'info_dict': { + 'id': '6684191', + 'ext': 'm4v', + 'title': 'Cowboy Bebop: Gateway Shuffle Review', + 'description': 'md5:3acc480c0f9ae157f5fe88547ecaf3f8', + 'timestamp': 1386639757, + 'upload_date': '20131210', + 'uploader': 'sfdebris', + 'uploader_id': '706520', + } + } ] @staticmethod @@ -128,35 +143,34 @@ class BlipTVIE(InfoExtractor): rss = self._download_xml('http://blip.tv/rss/flash/%s' % video_id, video_id, 'Downloading video RSS') - def blip(s): - return '{http://blip.tv/dtd/blip/1.0}%s' % s - - def media(s): - return '{http://search.yahoo.com/mrss/}%s' % s - - def itunes(s): - return '{http://www.itunes.com/dtds/podcast-1.0.dtd}%s' % s + def _x(p): + return xpath_with_ns(p, { + 'blip': 'http://blip.tv/dtd/blip/1.0', + 'media': 'http://search.yahoo.com/mrss/', + 'itunes': 'http://www.itunes.com/dtds/podcast-1.0.dtd', + }) item = rss.find('channel/item') - video_id = item.find(blip('item_id')).text - title = item.find('./title').text - description = clean_html(compat_str(item.find(blip('puredescription')).text)) - timestamp = parse_iso8601(item.find(blip('datestamp')).text) - uploader = item.find(blip('user')).text - uploader_id = item.find(blip('userid')).text - duration = int(item.find(blip('runtime')).text) - media_thumbnail = item.find(media('thumbnail')) - thumbnail = media_thumbnail.get('url') if media_thumbnail is not None else item.find(itunes('image')).text - categories = [category.text for category in item.findall('category')] + video_id = xpath_text(item, _x('blip:item_id'), 'video id') or lookup_id + title = xpath_text(item, 'title', 'title', fatal=True) + description = clean_html(xpath_text(item, _x('blip:puredescription'), 'description')) + timestamp = parse_iso8601(xpath_text(item, _x('blip:datestamp'), 'timestamp')) + uploader = xpath_text(item, _x('blip:user'), 'uploader') + uploader_id = xpath_text(item, _x('blip:userid'), 'uploader id') + duration = int_or_none(xpath_text(item, _x('blip:runtime'), 'duration')) + media_thumbnail = item.find(_x('media:thumbnail')) + thumbnail = (media_thumbnail.get('url') if media_thumbnail is not None + else xpath_text(item, 'image', 'thumbnail')) + categories = [category.text for category in item.findall('category') if category is not None] formats = [] subtitles_urls = {} - media_group = item.find(media('group')) - for media_content in media_group.findall(media('content')): + media_group = item.find(_x('media:group')) + for media_content in media_group.findall(_x('media:content')): url = media_content.get('url') - role = media_content.get(blip('role')) + role = media_content.get(_x('blip:role')) msg = self._download_webpage( url + '?showplayer=20140425131715&referrer=http://blip.tv&mask=7&skin=flashvars&view=url', video_id, 'Resolving URL for %s' % role) @@ -175,8 +189,8 @@ class BlipTVIE(InfoExtractor): 'url': real_url, 'format_id': role, 'format_note': media_type, - 'vcodec': media_content.get(blip('vcodec')) or 'none', - 'acodec': media_content.get(blip('acodec')), + 'vcodec': media_content.get(_x('blip:vcodec')) or 'none', + 'acodec': media_content.get(_x('blip:acodec')), 'filesize': media_content.get('filesize'), 'width': int_or_none(media_content.get('width')), 'height': int_or_none(media_content.get('height')), diff --git a/youtube_dl/extractor/brightcove.py b/youtube_dl/extractor/brightcove.py index 4f60d53..4721c22 100644 --- a/youtube_dl/extractor/brightcove.py +++ b/youtube_dl/extractor/brightcove.py @@ -13,6 +13,7 @@ from ..compat import ( compat_urllib_parse_urlparse, compat_urllib_request, compat_urlparse, + compat_xml_parse_error, ) from ..utils import ( determine_ext, @@ -119,7 +120,7 @@ class BrightcoveIE(InfoExtractor): try: object_doc = xml.etree.ElementTree.fromstring(object_str.encode('utf-8')) - except xml.etree.ElementTree.ParseError: + except compat_xml_parse_error: return fv_el = find_xpath_attr(object_doc, './param', 'name', 'flashVars') @@ -156,6 +157,28 @@ class BrightcoveIE(InfoExtractor): linkBase = find_param('linkBaseURL') if linkBase is not None: params['linkBaseURL'] = linkBase + return cls._make_brightcove_url(params) + + @classmethod + def _build_brighcove_url_from_js(cls, object_js): + # The layout of JS is as follows: + # customBC.createVideo = function (width, height, playerID, playerKey, videoPlayer, VideoRandomID) { + # // build Brightcove <object /> XML + # } + m = re.search( + r'''(?x)customBC.\createVideo\( + .*? # skipping width and height + ["\'](?P<playerID>\d+)["\']\s*,\s* # playerID + ["\'](?P<playerKey>AQ[^"\']{48})[^"\']*["\']\s*,\s* # playerKey begins with AQ and is 50 characters + # in length, however it's appended to itself + # in places, so truncate + ["\'](?P<videoID>\d+)["\'] # @videoPlayer + ''', object_js) + if m: + return cls._make_brightcove_url(m.groupdict()) + + @classmethod + def _make_brightcove_url(cls, params): data = compat_urllib_parse.urlencode(params) return cls._FEDERATED_URL_TEMPLATE % data @@ -172,7 +195,7 @@ class BrightcoveIE(InfoExtractor): """Return a list of all Brightcove URLs from the webpage """ url_m = re.search( - r'<meta\s+property="og:video"\s+content="(https?://(?:secure|c)\.brightcove.com/[^"]+)"', + r'<meta\s+property=[\'"]og:video[\'"]\s+content=[\'"](https?://(?:secure|c)\.brightcove.com/[^\'"]+)[\'"]', webpage) if url_m: url = unescapeHTML(url_m.group(1)) @@ -188,7 +211,12 @@ class BrightcoveIE(InfoExtractor): [^>]*?>\s*<param\s+name="movie"\s+value="https?://[^/]*brightcove\.com/ ).+?>\s*</object>''', webpage) - return list(filter(None, [cls._build_brighcove_url(m) for m in matches])) + if matches: + return list(filter(None, [cls._build_brighcove_url(m) for m in matches])) + + return list(filter(None, [ + cls._build_brighcove_url_from_js(custom_bc) + for custom_bc in re.findall(r'(customBC\.createVideo\(.+?\);)', webpage)])) def _real_extract(self, url): url, smuggled_data = unsmuggle_url(url, {}) diff --git a/youtube_dl/extractor/cbs.py b/youtube_dl/extractor/cbs.py index 1ceb9d8..75fffb1 100644 --- a/youtube_dl/extractor/cbs.py +++ b/youtube_dl/extractor/cbs.py @@ -4,12 +4,13 @@ from .common import InfoExtractor class CBSIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?cbs\.com/shows/[^/]+/(?:video|artist)/(?P<id>[^/]+)/.*' + _VALID_URL = r'https?://(?:www\.)?(?:cbs\.com/shows/[^/]+/(?:video|artist)|colbertlateshow\.com/(?:video|podcasts))/[^/]+/(?P<id>[^/]+)' _TESTS = [{ 'url': 'http://www.cbs.com/shows/garth-brooks/video/_u7W953k6la293J7EPTd9oHkSPs6Xn6_/connect-chat-feat-garth-brooks/', 'info_dict': { 'id': '4JUVEwq3wUT7', + 'display_id': 'connect-chat-feat-garth-brooks', 'ext': 'flv', 'title': 'Connect Chat feat. Garth Brooks', 'description': 'Connect with country music singer Garth Brooks, as he chats with fans on Wednesday November 27, 2013. Be sure to tune in to Garth Brooks: Live from Las Vegas, Friday November 29, at 9/8c on CBS!', @@ -24,6 +25,7 @@ class CBSIE(InfoExtractor): 'url': 'http://www.cbs.com/shows/liveonletterman/artist/221752/st-vincent/', 'info_dict': { 'id': 'WWF_5KqY3PK1', + 'display_id': 'st-vincent', 'ext': 'flv', 'title': 'Live on Letterman - St. Vincent', 'description': 'Live On Letterman: St. Vincent in concert from New York\'s Ed Sullivan Theater on Tuesday, July 16, 2014.', @@ -34,12 +36,23 @@ class CBSIE(InfoExtractor): 'skip_download': True, }, '_skip': 'Blocked outside the US', + }, { + 'url': 'http://colbertlateshow.com/video/8GmB0oY0McANFvp2aEffk9jZZZ2YyXxy/the-colbeard/', + 'only_matching': True, + }, { + 'url': 'http://www.colbertlateshow.com/podcasts/dYSwjqPs_X1tvbV_P2FcPWRa_qT6akTC/in-the-bad-room-with-stephen/', + 'only_matching': True, }] def _real_extract(self, url): - video_id = self._match_id(url) - webpage = self._download_webpage(url, video_id) + display_id = self._match_id(url) + webpage = self._download_webpage(url, display_id) real_id = self._search_regex( - r"video\.settings\.pid\s*=\s*'([^']+)';", + [r"video\.settings\.pid\s*=\s*'([^']+)';", r"cbsplayer\.pid\s*=\s*'([^']+)';"], webpage, 'real video ID') - return self.url_result('theplatform:%s' % real_id) + return { + '_type': 'url_transparent', + 'ie_key': 'ThePlatform', + 'url': 'theplatform:%s' % real_id, + 'display_id': display_id, + } diff --git a/youtube_dl/extractor/ceskatelevize.py b/youtube_dl/extractor/ceskatelevize.py index 65f6be6..dda5836 100644 --- a/youtube_dl/extractor/ceskatelevize.py +++ b/youtube_dl/extractor/ceskatelevize.py @@ -7,6 +7,7 @@ from .common import InfoExtractor from ..compat import ( compat_urllib_request, compat_urllib_parse, + compat_urllib_parse_unquote, compat_urllib_parse_urlparse, ) from ..utils import ( @@ -88,7 +89,7 @@ class CeskaTelevizeIE(InfoExtractor): if playlist_url == 'error_region': raise ExtractorError(NOT_AVAILABLE_STRING, expected=True) - req = compat_urllib_request.Request(compat_urllib_parse.unquote(playlist_url)) + req = compat_urllib_request.Request(compat_urllib_parse_unquote(playlist_url)) req.add_header('Referer', url) playlist = self._download_json(req, video_id) diff --git a/youtube_dl/extractor/clipsyndicate.py b/youtube_dl/extractor/clipsyndicate.py index d07d544..8306d6f 100644 --- a/youtube_dl/extractor/clipsyndicate.py +++ b/youtube_dl/extractor/clipsyndicate.py @@ -1,7 +1,5 @@ from __future__ import unicode_literals -import re - from .common import InfoExtractor from ..utils import ( find_xpath_attr, @@ -10,9 +8,9 @@ from ..utils import ( class ClipsyndicateIE(InfoExtractor): - _VALID_URL = r'http://www\.clipsyndicate\.com/video/play(list/\d+)?/(?P<id>\d+)' + _VALID_URL = r'http://(?:chic|www)\.clipsyndicate\.com/video/play(list/\d+)?/(?P<id>\d+)' - _TEST = { + _TESTS = [{ 'url': 'http://www.clipsyndicate.com/video/play/4629301/brick_briscoe', 'md5': '4d7d549451bad625e0ff3d7bd56d776c', 'info_dict': { @@ -22,11 +20,13 @@ class ClipsyndicateIE(InfoExtractor): 'duration': 612, 'thumbnail': 're:^https?://.+\.jpg', }, - } + }, { + 'url': 'http://chic.clipsyndicate.com/video/play/5844117/shark_attack', + 'only_matching': True, + }] def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') + video_id = self._match_id(url) js_player = self._download_webpage( 'http://eplayer.clipsyndicate.com/embed/player.js?va_id=%s' % video_id, video_id, 'Downlaoding player') diff --git a/youtube_dl/extractor/cnet.py b/youtube_dl/extractor/cnet.py index 3145b30..5dd69bf 100644 --- a/youtube_dl/extractor/cnet.py +++ b/youtube_dl/extractor/cnet.py @@ -11,7 +11,7 @@ from ..utils import ( class CNETIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?cnet\.com/videos/(?P<id>[^/]+)/' - _TEST = { + _TESTS = [{ 'url': 'http://www.cnet.com/videos/hands-on-with-microsofts-windows-8-1-update/', 'info_dict': { 'id': '56f4ea68-bd21-4852-b08c-4de5b8354c60', @@ -25,7 +25,20 @@ class CNETIE(InfoExtractor): 'params': { 'skip_download': 'requires rtmpdump', } - } + }, { + 'url': 'http://www.cnet.com/videos/whiny-pothole-tweets-at-local-government-when-hit-by-cars-tomorrow-daily-187/', + 'info_dict': { + 'id': '56527b93-d25d-44e3-b738-f989ce2e49ba', + 'ext': 'flv', + 'description': 'Khail and Ashley wonder what other civic woes can be solved by self-tweeting objects, investigate a new kind of VR camera and watch an origami robot self-assemble, walk, climb, dig and dissolve. #TDPothole', + 'uploader_id': 'b163284d-6b73-44fc-b3e6-3da66c392d40', + 'uploader': 'Ashley Esqueda', + 'title': 'Whiny potholes tweet at local government when hit by cars (Tomorrow Daily 187)', + }, + 'params': { + 'skip_download': True, # requires rtmpdump + }, + }] def _real_extract(self, url): display_id = self._match_id(url) @@ -42,7 +55,7 @@ class CNETIE(InfoExtractor): raise ExtractorError('Cannot find video data') mpx_account = data['config']['players']['default']['mpx_account'] - vid = vdata['files']['rtmp'] + vid = vdata['files'].get('rtmp', vdata['files']['hds']) tp_link = 'http://link.theplatform.com/s/%s/%s' % (mpx_account, vid) video_id = vdata['id'] diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index cecf917..b9014fc 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -22,18 +22,20 @@ from ..compat import ( compat_str, ) from ..utils import ( + NO_DEFAULT, age_restricted, bug_reports_message, clean_html, compiled_regex_type, + determine_ext, ExtractorError, + fix_xml_ampersands, float_or_none, int_or_none, RegexNotFoundError, sanitize_filename, unescapeHTML, ) -_NO_DEFAULT = object() class InfoExtractor(object): @@ -523,7 +525,7 @@ class InfoExtractor(object): video_info['description'] = playlist_description return video_info - def _search_regex(self, pattern, string, name, default=_NO_DEFAULT, fatal=True, flags=0, group=None): + def _search_regex(self, pattern, string, name, default=NO_DEFAULT, fatal=True, flags=0, group=None): """ Perform a regex search on the given string, using a single or a list of patterns returning the first matching group. @@ -549,7 +551,7 @@ class InfoExtractor(object): return next(g for g in mobj.groups() if g is not None) else: return mobj.group(group) - elif default is not _NO_DEFAULT: + elif default is not NO_DEFAULT: return default elif fatal: raise RegexNotFoundError('Unable to extract %s' % _name) @@ -557,7 +559,7 @@ class InfoExtractor(object): self._downloader.report_warning('unable to extract %s' % _name + bug_reports_message()) return None - def _html_search_regex(self, pattern, string, name, default=_NO_DEFAULT, fatal=True, flags=0, group=None): + def _html_search_regex(self, pattern, string, name, default=NO_DEFAULT, fatal=True, flags=0, group=None): """ Like _search_regex, but strips HTML tags and unescapes entities. """ @@ -705,6 +707,25 @@ class InfoExtractor(object): return self._html_search_meta('twitter:player', html, 'twitter card player') + @staticmethod + def _hidden_inputs(html): + return dict([ + (input.group('name'), input.group('value')) for input in re.finditer( + r'''(?x) + <input\s+ + type=(?P<q_hidden>["\'])hidden(?P=q_hidden)\s+ + name=(?P<q_name>["\'])(?P<name>.+?)(?P=q_name)\s+ + (?:id=(?P<q_id>["\']).+?(?P=q_id)\s+)? + value=(?P<q_value>["\'])(?P<value>.*?)(?P=q_value) + ''', html) + ]) + + def _form_hidden_inputs(self, form_id, html): + form = self._search_regex( + r'(?s)<form[^>]+?id=(["\'])%s\1[^>]*>(?P<form>.+?)</form>' % form_id, + html, '%s form' % form_id, group='form') + return self._hidden_inputs(form) + def _sort_formats(self, formats, field_preference=None): if not formats: raise ExtractorError('No video formats found') @@ -815,10 +836,14 @@ class InfoExtractor(object): self.to_screen(msg) time.sleep(timeout) - def _extract_f4m_formats(self, manifest_url, video_id, preference=None, f4m_id=None): + def _extract_f4m_formats(self, manifest_url, video_id, preference=None, f4m_id=None, + transform_source=lambda s: fix_xml_ampersands(s).strip()): manifest = self._download_xml( manifest_url, video_id, 'Downloading f4m manifest', - 'Unable to download f4m manifest') + 'Unable to download f4m manifest', + # Some manifests may be malformed, e.g. prosiebensat1 generated manifests + # (see https://github.com/rg3/youtube-dl/issues/6215#issuecomment-121704244) + transform_source=transform_source) formats = [] manifest_version = '1.0' @@ -828,8 +853,19 @@ class InfoExtractor(object): media_nodes = manifest.findall('{http://ns.adobe.com/f4m/2.0}media') for i, media_el in enumerate(media_nodes): if manifest_version == '2.0': - manifest_url = ('/'.join(manifest_url.split('/')[:-1]) + '/' + - (media_el.attrib.get('href') or media_el.attrib.get('url'))) + media_url = media_el.attrib.get('href') or media_el.attrib.get('url') + if not media_url: + continue + manifest_url = ( + media_url if media_url.startswith('http://') or media_url.startswith('https://') + else ('/'.join(manifest_url.split('/')[:-1]) + '/' + media_url)) + # If media_url is itself a f4m manifest do the recursive extraction + # since bitrates in parent manifest (this one) and media_url manifest + # may differ leading to inability to resolve the format by requested + # bitrate in f4m downloader + if determine_ext(manifest_url) == 'f4m': + formats.extend(self._extract_f4m_formats(manifest_url, video_id, preference, f4m_id)) + continue tbr = int_or_none(media_el.attrib.get('bitrate')) formats.append({ 'format_id': '-'.join(filter(None, [f4m_id, compat_str(i if tbr is None else tbr)])), @@ -846,7 +882,8 @@ class InfoExtractor(object): def _extract_m3u8_formats(self, m3u8_url, video_id, ext=None, entry_protocol='m3u8', preference=None, - m3u8_id=None): + m3u8_id=None, note=None, errnote=None, + fatal=True): formats = [{ 'format_id': '-'.join(filter(None, [m3u8_id, 'meta'])), @@ -865,8 +902,11 @@ class InfoExtractor(object): m3u8_doc = self._download_webpage( m3u8_url, video_id, - note='Downloading m3u8 information', - errnote='Failed to download m3u8 information') + note=note or 'Downloading m3u8 information', + errnote=errnote or 'Failed to download m3u8 information', + fatal=fatal) + if m3u8_doc is False: + return m3u8_doc last_info = None last_media = None kv_rex = re.compile( @@ -956,7 +996,7 @@ class InfoExtractor(object): def _parse_smil_video(self, video, video_id, base, rtmp_count): src = video.get('src') if not src: - return ([], rtmp_count) + return [], rtmp_count bitrate = int_or_none(video.get('system-bitrate') or video.get('systemBitrate'), 1000) width = int_or_none(video.get('width')) height = int_or_none(video.get('height')) @@ -969,7 +1009,7 @@ class InfoExtractor(object): proto = 'http' ext = video.get('ext') if proto == 'm3u8': - return (self._extract_m3u8_formats(src, video_id, ext), rtmp_count) + return self._extract_m3u8_formats(src, video_id, ext), rtmp_count elif proto == 'rtmp': rtmp_count += 1 streamer = video.get('streamer') or base diff --git a/youtube_dl/extractor/crunchyroll.py b/youtube_dl/extractor/crunchyroll.py index 41f0c73..d1b6d73 100644 --- a/youtube_dl/extractor/crunchyroll.py +++ b/youtube_dl/extractor/crunchyroll.py @@ -12,6 +12,7 @@ from math import pow, sqrt, floor from .common import InfoExtractor from ..compat import ( compat_urllib_parse, + compat_urllib_parse_unquote, compat_urllib_request, ) from ..utils import ( @@ -27,7 +28,7 @@ from ..aes import ( class CrunchyrollIE(InfoExtractor): - _VALID_URL = r'https?://(?:(?P<prefix>www|m)\.)?(?P<url>crunchyroll\.(?:com|fr)/(?:[^/]*/[^/?&]*?|media/\?id=)(?P<video_id>[0-9]+))(?:[/?&]|$)' + _VALID_URL = r'https?://(?:(?P<prefix>www|m)\.)?(?P<url>crunchyroll\.(?:com|fr)/(?:media(?:-|/\?id=)|[^/]*/[^/?&]*?)(?P<video_id>[0-9]+))(?:[/?&]|$)' _NETRC_MACHINE = 'crunchyroll' _TESTS = [{ 'url': 'http://www.crunchyroll.com/wanna-be-the-strongest-in-the-world/episode-1-an-idol-wrestler-is-born-645513', @@ -45,6 +46,22 @@ class CrunchyrollIE(InfoExtractor): # rtmp 'skip_download': True, }, + }, { + 'url': 'http://www.crunchyroll.com/media-589804/culture-japan-1', + 'info_dict': { + 'id': '589804', + 'ext': 'flv', + 'title': 'Culture Japan Episode 1 â Rebuilding Japan after the 3.11', + 'description': 'md5:fe2743efedb49d279552926d0bd0cd9e', + 'thumbnail': 're:^https?://.*\.jpg$', + 'uploader': 'Danny Choo Network', + 'upload_date': '20120213', + }, + 'params': { + # rtmp + 'skip_download': True, + }, + }, { 'url': 'http://www.crunchyroll.fr/girl-friend-beta/episode-11-goodbye-la-mode-661697', 'only_matching': True, @@ -238,7 +255,7 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text video_upload_date = unified_strdate(video_upload_date) video_uploader = self._html_search_regex(r'<div>\s*Publisher:(.+?)</div>', webpage, 'video_uploader', fatal=False, flags=re.DOTALL) - playerdata_url = compat_urllib_parse.unquote(self._html_search_regex(r'"config_url":"([^"]+)', webpage, 'playerdata_url')) + playerdata_url = compat_urllib_parse_unquote(self._html_search_regex(r'"config_url":"([^"]+)', webpage, 'playerdata_url')) playerdata_req = compat_urllib_request.Request(playerdata_url) playerdata_req.data = compat_urllib_parse.urlencode({'current_page': webpage_url}) playerdata_req.add_header('Content-Type', 'application/x-www-form-urlencoded') @@ -251,16 +268,17 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text for fmt in re.findall(r'showmedia\.([0-9]{3,4})p', webpage): stream_quality, stream_format = self._FORMAT_IDS[fmt] video_format = fmt + 'p' - streamdata_req = compat_urllib_request.Request('http://www.crunchyroll.com/xml/') - # urlencode doesn't work! - streamdata_req.data = 'req=RpcApiVideoEncode%5FGetStreamInfo&video%5Fencode%5Fquality=' + stream_quality + '&media%5Fid=' + stream_id + '&video%5Fformat=' + stream_format + streamdata_req = compat_urllib_request.Request( + 'http://www.crunchyroll.com/xml/?req=RpcApiVideoPlayer_GetStandardConfig&media_id=%s&video_format=%s&video_quality=%s' + % (stream_id, stream_format, stream_quality), + compat_urllib_parse.urlencode({'current_page': url}).encode('utf-8')) streamdata_req.add_header('Content-Type', 'application/x-www-form-urlencoded') - streamdata_req.add_header('Content-Length', str(len(streamdata_req.data))) streamdata = self._download_xml( streamdata_req, video_id, note='Downloading media info for %s' % video_format) - video_url = streamdata.find('./host').text - video_play_path = streamdata.find('./file').text + stream_info = streamdata.find('./{default}preload/stream_info') + video_url = stream_info.find('./host').text + video_play_path = stream_info.find('./file').text formats.append({ 'url': video_url, 'play_path': video_play_path, diff --git a/youtube_dl/extractor/ctsnews.py b/youtube_dl/extractor/ctsnews.py index 0226f80..45049bf 100644 --- a/youtube_dl/extractor/ctsnews.py +++ b/youtube_dl/extractor/ctsnews.py @@ -6,6 +6,7 @@ from ..utils import parse_iso8601, ExtractorError class CtsNewsIE(InfoExtractor): + IE_DESC = 'è¯è¦æ°è' # https connection failed (Connection reset) _VALID_URL = r'http://news\.cts\.com\.tw/[a-z]+/[a-z]+/\d+/(?P<id>\d+)\.html' _TESTS = [{ diff --git a/youtube_dl/extractor/dailymotion.py b/youtube_dl/extractor/dailymotion.py index 70aa433..1a41c0d 100644 --- a/youtube_dl/extractor/dailymotion.py +++ b/youtube_dl/extractor/dailymotion.py @@ -53,6 +53,7 @@ class DailymotionIE(DailymotionBaseInfoExtractor): 'uploader': 'IGN', 'title': 'Steam Machine Models, Pricing Listed on Steam Store - IGN News', 'upload_date': '20150306', + 'duration': 74, } }, # Vevo video @@ -164,6 +165,7 @@ class DailymotionIE(DailymotionBaseInfoExtractor): 'thumbnail': info['thumbnail_url'], 'age_limit': age_limit, 'view_count': view_count, + 'duration': info['duration'] } def _get_subtitles(self, video_id, webpage): @@ -251,3 +253,53 @@ class DailymotionUserIE(DailymotionPlaylistIE): 'title': full_user, 'entries': self._extract_entries(user), } + + +class DailymotionCloudIE(DailymotionBaseInfoExtractor): + _VALID_URL_PREFIX = r'http://api\.dmcloud\.net/(?:player/)?embed/' + _VALID_URL = r'%s[^/]+/(?P<id>[^/?]+)' % _VALID_URL_PREFIX + _VALID_EMBED_URL = r'%s[^/]+/[^\'"]+' % _VALID_URL_PREFIX + + _TESTS = [{ + # From http://www.francetvinfo.fr/economie/entreprises/les-entreprises-familiales-le-secret-de-la-reussite_933271.html + # Tested at FranceTvInfo_2 + 'url': 'http://api.dmcloud.net/embed/4e7343f894a6f677b10006b4/556e03339473995ee145930c?auth=1464865870-0-jyhsm84b-ead4c701fb750cf9367bf4447167a3db&autoplay=1', + 'only_matching': True, + }, { + # http://www.francetvinfo.fr/societe/larguez-les-amarres-le-cobaturage-se-developpe_980101.html + 'url': 'http://api.dmcloud.net/player/embed/4e7343f894a6f677b10006b4/559545469473996d31429f06?auth=1467430263-0-90tglw2l-a3a4b64ed41efe48d7fccad85b8b8fda&autoplay=1', + 'only_matching': True, + }] + + @classmethod + def _extract_dmcloud_url(self, webpage): + mobj = re.search(r'<iframe[^>]+src=[\'"](%s)[\'"]' % self._VALID_EMBED_URL, webpage) + if mobj: + return mobj.group(1) + + mobj = re.search( + r'<input[^>]+id=[\'"]dmcloudUrlEmissionSelect[\'"][^>]+value=[\'"](%s)[\'"]' % self._VALID_EMBED_URL, + webpage) + if mobj: + return mobj.group(1) + + def _real_extract(self, url): + video_id = self._match_id(url) + + request = self._build_request(url) + webpage = self._download_webpage(request, video_id) + + title = self._html_search_regex(r'<title>([^>]+)</title>', webpage, 'title') + + video_info = self._parse_json(self._search_regex( + r'var\s+info\s*=\s*([^;]+);', webpage, 'video info'), video_id) + + # TODO: parse ios_url, which is in fact a manifest + video_url = video_info['mp4_url'] + + return { + 'id': video_id, + 'url': video_url, + 'title': title, + 'thumbnail': video_info.get('thumbnail_url'), + } diff --git a/youtube_dl/extractor/dfb.py b/youtube_dl/extractor/dfb.py index 8049779..263532c 100644 --- a/youtube_dl/extractor/dfb.py +++ b/youtube_dl/extractor/dfb.py @@ -3,42 +3,47 @@ from __future__ import unicode_literals import re from .common import InfoExtractor +from ..utils import unified_strdate class DFBIE(InfoExtractor): IE_NAME = 'tv.dfb.de' - _VALID_URL = r'https?://tv\.dfb\.de/video/[^/]+/(?P<id>\d+)' + _VALID_URL = r'https?://tv\.dfb\.de/video/(?P<display_id>[^/]+)/(?P<id>\d+)' _TEST = { - 'url': 'http://tv.dfb.de/video/highlights-des-empfangs-in-berlin/9070/', + 'url': 'http://tv.dfb.de/video/u-19-em-stimmen-zum-spiel-gegen-russland/11633/', # The md5 is different each time 'info_dict': { - 'id': '9070', + 'id': '11633', + 'display_id': 'u-19-em-stimmen-zum-spiel-gegen-russland', 'ext': 'flv', - 'title': 'Highlights des Empfangs in Berlin', - 'upload_date': '20140716', + 'title': 'U 19-EM: Stimmen zum Spiel gegen Russland', + 'upload_date': '20150714', }, } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) video_id = mobj.group('id') + display_id = mobj.group('display_id') - webpage = self._download_webpage(url, video_id) + webpage = self._download_webpage(url, display_id) player_info = self._download_xml( 'http://tv.dfb.de/server/hd_video.php?play=%s' % video_id, - video_id) + display_id) video_info = player_info.find('video') - f4m_info = self._download_xml(self._proto_relative_url(video_info.find('url').text.strip()), video_id) + f4m_info = self._download_xml( + self._proto_relative_url(video_info.find('url').text.strip()), display_id) token_el = f4m_info.find('token') manifest_url = token_el.attrib['url'] + '?' + 'hdnea=' + token_el.attrib['auth'] + '&hdcore=3.2.0' + formats = self._extract_f4m_formats(manifest_url, display_id) return { 'id': video_id, + 'display_id': display_id, 'title': video_info.find('title').text, - 'url': manifest_url, - 'ext': 'flv', 'thumbnail': self._og_search_thumbnail(webpage), - 'upload_date': ''.join(video_info.find('time_date').text.split('.')[::-1]), + 'upload_date': unified_strdate(video_info.find('time_date').text), + 'formats': formats, } diff --git a/youtube_dl/extractor/discovery.py b/youtube_dl/extractor/discovery.py index d3e6675..d6723ec 100644 --- a/youtube_dl/extractor/discovery.py +++ b/youtube_dl/extractor/discovery.py @@ -2,19 +2,19 @@ from __future__ import unicode_literals from .common import InfoExtractor from ..utils import ( + parse_duration, parse_iso8601, - int_or_none, ) +from ..compat import compat_str class DiscoveryIE(InfoExtractor): _VALID_URL = r'http://www\.discovery\.com\/[a-zA-Z0-9\-]*/[a-zA-Z0-9\-]*/videos/(?P<id>[a-zA-Z0-9_\-]*)(?:\.htm)?' - _TEST = { + _TESTS = [{ 'url': 'http://www.discovery.com/tv-shows/mythbusters/videos/mission-impossible-outtakes.htm', - 'md5': '3c69d77d9b0d82bfd5e5932a60f26504', 'info_dict': { - 'id': 'mission-impossible-outtakes', - 'ext': 'flv', + 'id': '20769', + 'ext': 'mp4', 'title': 'Mission Impossible Outtakes', 'description': ('Watch Jamie Hyneman and Adam Savage practice being' ' each other -- to the point of confusing Jamie\'s dog -- and ' @@ -24,22 +24,36 @@ class DiscoveryIE(InfoExtractor): 'timestamp': 1303099200, 'upload_date': '20110418', }, - } + 'params': { + 'skip_download': True, # requires ffmpeg + } + }, { + 'url': 'http://www.discovery.com/tv-shows/mythbusters/videos/mythbusters-the-simpsons', + 'info_dict': { + 'id': 'mythbusters-the-simpsons', + 'title': 'MythBusters: The Simpsons', + }, + 'playlist_count': 9, + }] def _real_extract(self, url): video_id = self._match_id(url) - webpage = self._download_webpage(url, video_id) + info = self._download_json(url + '?flat=1', video_id) - info = self._parse_json(self._search_regex( - r'(?s)<script type="application/ld\+json">(.*?)</script>', - webpage, 'video info'), video_id) + video_title = info.get('playlist_title') or info.get('video_title') - return { - 'id': video_id, - 'title': info['name'], - 'url': info['contentURL'], - 'description': info.get('description'), - 'thumbnail': info.get('thumbnailUrl'), - 'timestamp': parse_iso8601(info.get('uploadDate')), - 'duration': int_or_none(info.get('duration')), - } + entries = [{ + 'id': compat_str(video_info['id']), + 'formats': self._extract_m3u8_formats( + video_info['src'], video_id, ext='mp4', + note='Download m3u8 information for video %d' % (idx + 1)), + 'title': video_info['title'], + 'description': video_info.get('description'), + 'duration': parse_duration(video_info.get('video_length')), + 'webpage_url': video_info.get('href'), + 'thumbnail': video_info.get('thumbnailURL'), + 'alt_title': video_info.get('secondary_title'), + 'timestamp': parse_iso8601(video_info.get('publishedDate')), + } for idx, video_info in enumerate(info['playlist'])] + + return self.playlist_result(entries, video_id, video_title) diff --git a/youtube_dl/extractor/douyutv.py b/youtube_dl/extractor/douyutv.py index 479430c..373b3b4 100644 --- a/youtube_dl/extractor/douyutv.py +++ b/youtube_dl/extractor/douyutv.py @@ -9,6 +9,7 @@ from ..compat import (compat_str, compat_basestring) class DouyuTVIE(InfoExtractor): + IE_DESC = 'æé±¼' _VALID_URL = r'http://(?:www\.)?douyutv\.com/(?P<id>[A-Za-z0-9]+)' _TESTS = [{ 'url': 'http://www.douyutv.com/iseven', diff --git a/youtube_dl/extractor/dramafever.py b/youtube_dl/extractor/dramafever.py new file mode 100644 index 0000000..38e6597 --- /dev/null +++ b/youtube_dl/extractor/dramafever.py @@ -0,0 +1,216 @@ +# encoding: utf-8 +from __future__ import unicode_literals + +import itertools + +from .common import InfoExtractor +from ..compat import ( + compat_HTTPError, + compat_urllib_parse, + compat_urllib_request, + compat_urlparse, +) +from ..utils import ( + ExtractorError, + clean_html, + determine_ext, + int_or_none, + parse_iso8601, +) + + +class DramaFeverBaseIE(InfoExtractor): + _LOGIN_URL = 'https://www.dramafever.com/accounts/login/' + _NETRC_MACHINE = 'dramafever' + + _CONSUMER_SECRET = 'DA59dtVXYLxajktV' + + _consumer_secret = None + + def _get_consumer_secret(self): + mainjs = self._download_webpage( + 'http://www.dramafever.com/static/51afe95/df2014/scripts/main.js', + None, 'Downloading main.js', fatal=False) + if not mainjs: + return self._CONSUMER_SECRET + return self._search_regex( + r"var\s+cs\s*=\s*'([^']+)'", mainjs, + 'consumer secret', default=self._CONSUMER_SECRET) + + def _real_initialize(self): + self._login() + self._consumer_secret = self._get_consumer_secret() + + def _login(self): + (username, password) = self._get_login_info() + if username is None: + return + + login_form = { + 'username': username, + 'password': password, + } + + request = compat_urllib_request.Request( + self._LOGIN_URL, compat_urllib_parse.urlencode(login_form).encode('utf-8')) + response = self._download_webpage( + request, None, 'Logging in as %s' % username) + + if all(logout_pattern not in response + for logout_pattern in ['href="/accounts/logout/"', '>Log out<']): + error = self._html_search_regex( + r'(?s)class="hidden-xs prompt"[^>]*>(.+?)<', + response, 'error message', default=None) + if error: + raise ExtractorError('Unable to login: %s' % error, expected=True) + raise ExtractorError('Unable to log in') + + +class DramaFeverIE(DramaFeverBaseIE): + IE_NAME = 'dramafever' + _VALID_URL = r'https?://(?:www\.)?dramafever\.com/drama/(?P<id>[0-9]+/[0-9]+)(?:/|$)' + _TEST = { + 'url': 'http://www.dramafever.com/drama/4512/1/Cooking_with_Shin/', + 'info_dict': { + 'id': '4512.1', + 'ext': 'flv', + 'title': 'Cooking with Shin 4512.1', + 'description': 'md5:a8eec7942e1664a6896fcd5e1287bfd0', + 'thumbnail': 're:^https?://.*\.jpg', + 'timestamp': 1404336058, + 'upload_date': '20140702', + 'duration': 343, + } + } + + def _real_extract(self, url): + video_id = self._match_id(url).replace('/', '.') + + try: + feed = self._download_json( + 'http://www.dramafever.com/amp/episode/feed.json?guid=%s' % video_id, + video_id, 'Downloading episode JSON')['channel']['item'] + except ExtractorError as e: + if isinstance(e.cause, compat_HTTPError): + raise ExtractorError( + 'Currently unavailable in your country.', expected=True) + raise + + media_group = feed.get('media-group', {}) + + formats = [] + for media_content in media_group['media-content']: + src = media_content.get('@attributes', {}).get('url') + if not src: + continue + ext = determine_ext(src) + if ext == 'f4m': + formats.extend(self._extract_f4m_formats( + src, video_id, f4m_id='hds')) + elif ext == 'm3u8': + formats.extend(self._extract_m3u8_formats( + src, video_id, 'mp4', m3u8_id='hls')) + else: + formats.append({ + 'url': src, + }) + self._sort_formats(formats) + + title = media_group.get('media-title') + description = media_group.get('media-description') + duration = int_or_none(media_group['media-content'][0].get('@attributes', {}).get('duration')) + thumbnail = self._proto_relative_url( + media_group.get('media-thumbnail', {}).get('@attributes', {}).get('url')) + timestamp = parse_iso8601(feed.get('pubDate'), ' ') + + subtitles = {} + for media_subtitle in media_group.get('media-subTitle', []): + lang = media_subtitle.get('@attributes', {}).get('lang') + href = media_subtitle.get('@attributes', {}).get('href') + if not lang or not href: + continue + subtitles[lang] = [{ + 'ext': 'ttml', + 'url': href, + }] + + series_id, episode_number = video_id.split('.') + episode_info = self._download_json( + # We only need a single episode info, so restricting page size to one episode + # and dealing with page number as with episode number + r'http://www.dramafever.com/api/4/episode/series/?cs=%s&series_id=%s&page_number=%s&page_size=1' + % (self._consumer_secret, series_id, episode_number), + video_id, 'Downloading episode info JSON', fatal=False) + if episode_info: + value = episode_info.get('value') + if value: + subfile = value[0].get('subfile') or value[0].get('new_subfile') + if subfile and subfile != 'http://www.dramafever.com/st/': + subtitles.setdefault('English', []).append({ + 'ext': 'srt', + 'url': subfile, + }) + + return { + 'id': video_id, + 'title': title, + 'description': description, + 'thumbnail': thumbnail, + 'timestamp': timestamp, + 'duration': duration, + 'formats': formats, + 'subtitles': subtitles, + } + + +class DramaFeverSeriesIE(DramaFeverBaseIE): + IE_NAME = 'dramafever:series' + _VALID_URL = r'https?://(?:www\.)?dramafever\.com/drama/(?P<id>[0-9]+)(?:/(?:(?!\d+(?:/|$)).+)?)?$' + _TESTS = [{ + 'url': 'http://www.dramafever.com/drama/4512/Cooking_with_Shin/', + 'info_dict': { + 'id': '4512', + 'title': 'Cooking with Shin', + 'description': 'md5:84a3f26e3cdc3fb7f500211b3593b5c1', + }, + 'playlist_count': 4, + }, { + 'url': 'http://www.dramafever.com/drama/124/IRIS/', + 'info_dict': { + 'id': '124', + 'title': 'IRIS', + 'description': 'md5:b3a30e587cf20c59bd1c01ec0ee1b862', + }, + 'playlist_count': 20, + }] + + _PAGE_SIZE = 60 # max is 60 (see http://api.drama9.com/#get--api-4-episode-series-) + + def _real_extract(self, url): + series_id = self._match_id(url) + + series = self._download_json( + 'http://www.dramafever.com/api/4/series/query/?cs=%s&series_id=%s' + % (self._consumer_secret, series_id), + series_id, 'Downloading series JSON')['series'][series_id] + + title = clean_html(series['name']) + description = clean_html(series.get('description') or series.get('description_short')) + + entries = [] + for page_num in itertools.count(1): + episodes = self._download_json( + 'http://www.dramafever.com/api/4/episode/series/?cs=%s&series_id=%s&page_size=%d&page_number=%d' + % (self._consumer_secret, series_id, self._PAGE_SIZE, page_num), + series_id, 'Downloading episodes JSON page #%d' % page_num) + for episode in episodes.get('value', []): + episode_url = episode.get('episode_url') + if not episode_url: + continue + entries.append(self.url_result( + compat_urlparse.urljoin(url, episode_url), + 'DramaFever', episode.get('guid'))) + if page_num == episodes['num_pages']: + break + + return self.playlist_result(entries, series_id, title, description) diff --git a/youtube_dl/extractor/drbonanza.py b/youtube_dl/extractor/drbonanza.py index 7626219..8b98b01 100644 --- a/youtube_dl/extractor/drbonanza.py +++ b/youtube_dl/extractor/drbonanza.py @@ -15,7 +15,6 @@ class DRBonanzaIE(InfoExtractor): _TESTS = [{ 'url': 'http://www.dr.dk/bonanza/serie/portraetter/Talkshowet.htm?assetId=65517', - 'md5': 'fe330252ddea607635cf2eb2c99a0af3', 'info_dict': { 'id': '65517', 'ext': 'mp4', @@ -26,6 +25,9 @@ class DRBonanzaIE(InfoExtractor): 'upload_date': '20110120', 'duration': 3664, }, + 'params': { + 'skip_download': True, # requires rtmp + }, }, { 'url': 'http://www.dr.dk/bonanza/radio/serie/sport/fodbold.htm?assetId=59410', 'md5': '6dfe039417e76795fb783c52da3de11d', @@ -93,6 +95,11 @@ class DRBonanzaIE(InfoExtractor): 'format_id': file['Type'].replace('Video', ''), 'preference': preferencemap.get(file['Type'], -10), }) + if format['url'].startswith('rtmp'): + rtmp_url = format['url'] + format['rtmp_live'] = True # --resume does not work + if '/bonanza/' in rtmp_url: + format['play_path'] = rtmp_url.split('/bonanza/')[1] formats.append(format) elif file['Type'] == "Thumb": thumbnail = file['Location'] @@ -111,9 +118,6 @@ class DRBonanzaIE(InfoExtractor): description = '%s\n%s\n%s\n' % ( info['Description'], info['Actors'], info['Colophon']) - for f in formats: - f['url'] = f['url'].replace('rtmp://vod-bonanza.gss.dr.dk/bonanza/', 'http://vodfiles.dr.dk/') - f['url'] = f['url'].replace('mp4:bonanza', 'bonanza') self._sort_formats(formats) display_id = re.sub(r'[^\w\d-]', '', re.sub(r' ', '-', title.lower())) + '-' + asset_id diff --git a/youtube_dl/extractor/drtuber.py b/youtube_dl/extractor/drtuber.py index 37c5c18..639f918 100644 --- a/youtube_dl/extractor/drtuber.py +++ b/youtube_dl/extractor/drtuber.py @@ -36,25 +36,24 @@ class DrTuberIE(InfoExtractor): r'<source src="([^"]+)"', webpage, 'video URL') title = self._html_search_regex( - [r'class="hd_title" style="[^"]+">([^<]+)</h1>', r'<title>([^<]+) - \d+'], + [r'<p[^>]+class="title_substrate">([^<]+)</p>', r'<title>([^<]+) - \d+'], webpage, 'title') thumbnail = self._html_search_regex( r'poster="([^"]+)"', webpage, 'thumbnail', fatal=False) - like_count = str_to_int(self._html_search_regex( - r'<span id="rate_likes">\s*<img[^>]+>\s*<span>([\d,\.]+)</span>', - webpage, 'like count', fatal=False)) - dislike_count = str_to_int(self._html_search_regex( - r'<span id="rate_dislikes">\s*<img[^>]+>\s*<span>([\d,\.]+)</span>', - webpage, 'like count', fatal=False)) - comment_count = str_to_int(self._html_search_regex( - r'<span class="comments_count">([\d,\.]+)</span>', - webpage, 'comment count', fatal=False)) + def extract_count(id_, name): + return str_to_int(self._html_search_regex( + r'<span[^>]+(?:class|id)="%s"[^>]*>([\d,\.]+)</span>' % id_, + webpage, '%s count' % name, fatal=False)) + + like_count = extract_count('rate_likes', 'like') + dislike_count = extract_count('rate_dislikes', 'dislike') + comment_count = extract_count('comments_count', 'comment') cats_str = self._search_regex( - r'<span>Categories:</span><div>(.+?)</div>', webpage, 'categories', fatal=False) + r'<div[^>]+class="categories_list">(.+?)</div>', webpage, 'categories', fatal=False) categories = [] if not cats_str else re.findall(r'<a title="([^"]+)"', cats_str) return { diff --git a/youtube_dl/extractor/ehow.py b/youtube_dl/extractor/ehow.py index 9cb1bf3..b1cd4f5 100644 --- a/youtube_dl/extractor/ehow.py +++ b/youtube_dl/extractor/ehow.py @@ -1,9 +1,7 @@ from __future__ import unicode_literals -from ..compat import ( - compat_urllib_parse, -) from .common import InfoExtractor +from ..compat import compat_urllib_parse_unquote class EHowIE(InfoExtractor): @@ -26,7 +24,7 @@ class EHowIE(InfoExtractor): webpage = self._download_webpage(url, video_id) video_url = self._search_regex( r'(?:file|source)=(http[^\'"&]*)', webpage, 'video URL') - final_url = compat_urllib_parse.unquote(video_url) + final_url = compat_urllib_parse_unquote(video_url) uploader = self._html_search_meta('uploader', webpage) title = self._og_search_title(webpage).replace(' | eHow', '') diff --git a/youtube_dl/extractor/empflix.py b/youtube_dl/extractor/empflix.py deleted file mode 100644 index 4827022..0000000 --- a/youtube_dl/extractor/empflix.py +++ /dev/null @@ -1,31 +0,0 @@ -from __future__ import unicode_literals - -from .tnaflix import TNAFlixIE - - -class EMPFlixIE(TNAFlixIE): - _VALID_URL = r'https?://(?:www\.)?empflix\.com/videos/(?P<display_id>.+?)-(?P<id>[0-9]+)\.html' - - _TITLE_REGEX = r'name="title" value="(?P<title>[^"]*)"' - _DESCRIPTION_REGEX = r'name="description" value="([^"]*)"' - _CONFIG_REGEX = r'flashvars\.config\s*=\s*escape\("([^"]+)"' - - _TESTS = [ - { - 'url': 'http://www.empflix.com/videos/Amateur-Finger-Fuck-33051.html', - 'md5': 'b1bc15b6412d33902d6e5952035fcabc', - 'info_dict': { - 'id': '33051', - 'display_id': 'Amateur-Finger-Fuck', - 'ext': 'mp4', - 'title': 'Amateur Finger Fuck', - 'description': 'Amateur solo finger fucking.', - 'thumbnail': 're:https?://.*\.jpg$', - 'age_limit': 18, - } - }, - { - 'url': 'http://www.empflix.com/videos/[AROMA][ARMD-718]-Aoi-Yoshino-Sawa-25826.html', - 'only_matching': True, - } - ] diff --git a/youtube_dl/extractor/facebook.py b/youtube_dl/extractor/facebook.py index 82dc27b..e17bb9a 100644 --- a/youtube_dl/extractor/facebook.py +++ b/youtube_dl/extractor/facebook.py @@ -9,7 +9,7 @@ from ..compat import ( compat_http_client, compat_str, compat_urllib_error, - compat_urllib_parse, + compat_urllib_parse_unquote, compat_urllib_request, ) from ..utils import ( @@ -136,7 +136,7 @@ class FacebookIE(InfoExtractor): else: raise ExtractorError('Cannot parse data') data = dict(json.loads(m.group(1))) - params_raw = compat_urllib_parse.unquote(data['params']) + params_raw = compat_urllib_parse_unquote(data['params']) params = json.loads(params_raw) video_data = params['video_data'][0] diff --git a/youtube_dl/extractor/faz.py b/youtube_dl/extractor/faz.py index 3c39ca4..cebdd01 100644 --- a/youtube_dl/extractor/faz.py +++ b/youtube_dl/extractor/faz.py @@ -6,9 +6,9 @@ from .common import InfoExtractor class FazIE(InfoExtractor): IE_NAME = 'faz.net' - _VALID_URL = r'https?://www\.faz\.net/multimedia/videos/.*?-(?P<id>\d+)\.html' + _VALID_URL = r'https?://(?:www\.)?faz\.net/(?:[^/]+/)*.*?-(?P<id>\d+)\.html' - _TEST = { + _TESTS = [{ 'url': 'http://www.faz.net/multimedia/videos/stockholm-chemie-nobelpreis-fuer-drei-amerikanische-forscher-12610585.html', 'info_dict': { 'id': '12610585', @@ -16,7 +16,22 @@ class FazIE(InfoExtractor): 'title': 'Stockholm: Chemie-Nobelpreis für drei amerikanische Forscher', 'description': 'md5:1453fbf9a0d041d985a47306192ea253', }, - } + }, { + 'url': 'http://www.faz.net/aktuell/politik/berlin-gabriel-besteht-zerreissprobe-ueber-datenspeicherung-13659345.html', + 'only_matching': True, + }, { + 'url': 'http://www.faz.net/berlin-gabriel-besteht-zerreissprobe-ueber-datenspeicherung-13659345.html', + 'only_matching': True, + }, { + 'url': 'http://www.faz.net/-13659345.html', + 'only_matching': True, + }, { + 'url': 'http://www.faz.net/aktuell/politik/-13659345.html', + 'only_matching': True, + }, { + 'url': 'http://www.faz.net/foobarblafasel-13659345.html', + 'only_matching': True, + }] def _real_extract(self, url): video_id = self._match_id(url) diff --git a/youtube_dl/extractor/fivetv.py b/youtube_dl/extractor/fivetv.py new file mode 100644 index 0000000..13fbc4d --- /dev/null +++ b/youtube_dl/extractor/fivetv.py @@ -0,0 +1,88 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import int_or_none + + +class FiveTVIE(InfoExtractor): + _VALID_URL = r'''(?x) + http:// + (?:www\.)?5-tv\.ru/ + (?: + (?:[^/]+/)+(?P<id>\d+)| + (?P<path>[^/?#]+)(?:[/?#])? + ) + ''' + + _TESTS = [{ + 'url': 'http://5-tv.ru/news/96814/', + 'md5': 'bbff554ad415ecf5416a2f48c22d9283', + 'info_dict': { + 'id': '96814', + 'ext': 'mp4', + 'title': 'РоÑÑиÑне вÑбÑали Ð¸Ð¼Ñ Ð´Ð»Ñ Ð¾Ð±ÑенаÑионалÑной плаÑежной ÑиÑÑемÑ', + 'description': 'md5:a8aa13e2b7ad36789e9f77a74b6de660', + 'thumbnail': 're:^https?://.*\.jpg$', + 'duration': 180, + }, + }, { + 'url': 'http://5-tv.ru/video/1021729/', + 'info_dict': { + 'id': '1021729', + 'ext': 'mp4', + 'title': '3D пÑинÑеÑ', + 'description': 'md5:d76c736d29ef7ec5c0cf7d7c65ffcb41', + 'thumbnail': 're:^https?://.*\.jpg$', + 'duration': 180, + }, + }, { + 'url': 'http://www.5-tv.ru/glavnoe/#itemDetails', + 'info_dict': { + 'id': 'glavnoe', + 'ext': 'mp4', + 'title': 'ÐÑоги недели Ñ 8 по 14 иÑÐ½Ñ 2015 года', + 'thumbnail': 're:^https?://.*\.jpg$', + }, + }, { + 'url': 'http://www.5-tv.ru/glavnoe/broadcasts/508645/', + 'only_matching': True, + }, { + 'url': 'http://5-tv.ru/films/1507502/', + 'only_matching': True, + }, { + 'url': 'http://5-tv.ru/programs/broadcast/508713/', + 'only_matching': True, + }, { + 'url': 'http://5-tv.ru/angel/', + 'only_matching': True, + }, { + 'url': 'http://www.5-tv.ru/schedule/?iframe=true&width=900&height=450', + 'only_matching': True, + }] + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group('id') or mobj.group('path') + + webpage = self._download_webpage(url, video_id) + + video_url = self._search_regex( + r'<a[^>]+?href="([^"]+)"[^>]+?class="videoplayer"', + webpage, 'video url') + + title = self._og_search_title(webpage, default=None) or self._search_regex( + r'<title>([^<]+)</title>', webpage, 'title') + duration = int_or_none(self._og_search_property( + 'video:duration', webpage, 'duration', default=None)) + + return { + 'id': video_id, + 'url': video_url, + 'title': title, + 'description': self._og_search_description(webpage, default=None), + 'thumbnail': self._og_search_thumbnail(webpage, default=None), + 'duration': duration, + } diff --git a/youtube_dl/extractor/francetv.py b/youtube_dl/extractor/francetv.py index edf555b..75723c0 100644 --- a/youtube_dl/extractor/francetv.py +++ b/youtube_dl/extractor/francetv.py @@ -6,18 +6,15 @@ import re import json from .common import InfoExtractor -from ..compat import ( - compat_urllib_parse_urlparse, - compat_urlparse, -) +from ..compat import compat_urlparse from ..utils import ( clean_html, ExtractorError, int_or_none, - float_or_none, parse_duration, determine_ext, ) +from .dailymotion import DailymotionCloudIE class FranceTVBaseInfoExtractor(InfoExtractor): @@ -58,12 +55,12 @@ class FranceTVBaseInfoExtractor(InfoExtractor): # See https://github.com/rg3/youtube-dl/issues/3963 # m3u8 urls work fine continue - video_url_parsed = compat_urllib_parse_urlparse(video_url) f4m_url = self._download_webpage( - 'http://hdfauth.francetv.fr/esi/urltokengen2.html?url=%s' % video_url_parsed.path, + 'http://hdfauth.francetv.fr/esi/TA?url=%s' % video_url, video_id, 'Downloading f4m manifest token', fatal=False) if f4m_url: - formats.extend(self._extract_f4m_formats(f4m_url, video_id, 1, format_id)) + formats.extend(self._extract_f4m_formats( + f4m_url + '&hdcore=3.7.0&plugin=aasp-3.7.0.39.44', video_id, 1, format_id)) elif ext == 'm3u8': formats.extend(self._extract_m3u8_formats(video_url, video_id, 'mp4', m3u8_id=format_id)) elif video_url.startswith('rtmp'): @@ -86,7 +83,7 @@ class FranceTVBaseInfoExtractor(InfoExtractor): 'title': info['titre'], 'description': clean_html(info['synopsis']), 'thumbnail': compat_urlparse.urljoin('http://pluzz.francetv.fr', info['image']), - 'duration': float_or_none(info.get('real_duration'), 1000) or parse_duration(info['duree']), + 'duration': int_or_none(info.get('real_duration')) or parse_duration(info['duree']), 'timestamp': int_or_none(info['diffusion']['timestamp']), 'formats': formats, } @@ -131,12 +128,26 @@ class FranceTvInfoIE(FranceTVBaseInfoExtractor): 'skip_download': 'HLS (reqires ffmpeg)' }, 'skip': 'Ce direct est terminé et sera disponible en rattrapage dans quelques minutes.', + }, { + 'url': 'http://www.francetvinfo.fr/economie/entreprises/les-entreprises-familiales-le-secret-de-la-reussite_933271.html', + 'md5': 'f485bda6e185e7d15dbc69b72bae993e', + 'info_dict': { + 'id': '556e03339473995ee145930c', + 'ext': 'mp4', + 'title': 'Les entreprises familiales : le secret de la réussite', + 'thumbnail': 're:^https?://.*\.jpe?g$', + } }] def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) page_title = mobj.group('title') webpage = self._download_webpage(url, page_title) + + dmcloud_url = DailymotionCloudIE._extract_dmcloud_url(webpage) + if dmcloud_url: + return self.url_result(dmcloud_url, 'DailymotionCloud') + video_id, catalogue = self._search_regex( r'id-video=([^@]+@[^"]+)', webpage, 'video id').split('@') return self._extract_video(video_id, catalogue) @@ -145,11 +156,21 @@ class FranceTvInfoIE(FranceTVBaseInfoExtractor): class FranceTVIE(FranceTVBaseInfoExtractor): IE_NAME = 'francetv' IE_DESC = 'France 2, 3, 4, 5 and Ã' - _VALID_URL = r'''(?x)https?://www\.france[2345o]\.fr/ - (?: - emissions/.*?/(videos|emissions)/(?P<id>[^/?]+) - | (emissions?|jt)/(?P<key>[^/?]+) - )''' + _VALID_URL = r'''(?x) + https?:// + (?: + (?:www\.)?france[2345o]\.fr/ + (?: + emissions/[^/]+/(?:videos|diffusions)| + emission/[^/]+| + videos| + jt + ) + /| + embed\.francetv\.fr/\?ue= + ) + (?P<id>[^/?]+) + ''' _TESTS = [ # france2 @@ -206,24 +227,46 @@ class FranceTVIE(FranceTVBaseInfoExtractor): }, # franceo { - 'url': 'http://www.franceo.fr/jt/info-afrique/04-12-2013', - 'md5': '52f0bfe202848b15915a2f39aaa8981b', + 'url': 'http://www.franceo.fr/jt/info-soir/18-07-2015', + 'md5': '47d5816d3b24351cdce512ad7ab31da8', 'info_dict': { - 'id': '108634970', + 'id': '125377621', 'ext': 'flv', - 'title': 'Infô Afrique', - 'description': 'md5:ebf346da789428841bee0fd2a935ea55', - 'upload_date': '20140915', - 'timestamp': 1410822000, + 'title': 'Infô soir', + 'description': 'md5:01b8c6915a3d93d8bbbd692651714309', + 'upload_date': '20150718', + 'timestamp': 1437241200, + 'duration': 414, + }, + }, + { + # francetv embed + 'url': 'http://embed.francetv.fr/?ue=8d7d3da1e3047c42ade5a5d7dfd3fc87', + 'info_dict': { + 'id': 'EV_30231', + 'ext': 'flv', + 'title': 'Alcaline, le concert avec Calogero', + 'description': 'md5:61f08036dcc8f47e9cfc33aed08ffaff', + 'upload_date': '20150226', + 'timestamp': 1424989860, + 'duration': 5400, }, }, + { + 'url': 'http://www.france4.fr/emission/highlander/diffusion-du-17-07-2015-04h05', + 'only_matching': True, + }, + { + 'url': 'http://www.franceo.fr/videos/125377617', + 'only_matching': True, + } ] def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - webpage = self._download_webpage(url, mobj.group('key') or mobj.group('id')) + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) video_id, catalogue = self._html_search_regex( - r'href="http://videos\.francetv\.fr/video/([^@]+@[^"]+)"', + r'href="http://videos?\.francetv\.fr/video/([^@]+@[^"]+)"', webpage, 'video ID').split('@') return self._extract_video(video_id, catalogue) diff --git a/youtube_dl/extractor/gamespot.py b/youtube_dl/extractor/gamespot.py index 2d33fa7..b3f1baf 100644 --- a/youtube_dl/extractor/gamespot.py +++ b/youtube_dl/extractor/gamespot.py @@ -5,7 +5,7 @@ import json from .common import InfoExtractor from ..compat import ( - compat_urllib_parse, + compat_urllib_parse_unquote, compat_urlparse, ) from ..utils import ( @@ -75,7 +75,7 @@ class GameSpotIE(InfoExtractor): return { 'id': data_video['guid'], 'display_id': page_id, - 'title': compat_urllib_parse.unquote(data_video['title']), + 'title': compat_urllib_parse_unquote(data_video['title']), 'formats': formats, 'description': self._html_search_meta('description', webpage), 'thumbnail': self._og_search_thumbnail(webpage), diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index 96ca398..cd133a1 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -8,7 +8,6 @@ import re from .common import InfoExtractor from .youtube import YoutubeIE from ..compat import ( - compat_urllib_parse, compat_urllib_parse_unquote, compat_urllib_request, compat_urlparse, @@ -34,13 +33,21 @@ from .brightcove import BrightcoveIE from .nbc import NBCSportsVPlayerIE from .ooyala import OoyalaIE from .rutv import RUTVIE +from .tvc import TVCIE from .sportbox import SportBoxEmbedIE from .smotri import SmotriIE +from .myvi import MyviIE from .condenast import CondeNastIE from .udn import UDNEmbedIE from .senateisvp import SenateISVPIE from .bliptv import BlipTVIE from .svt import SVTIE +from .pornhub import PornHubIE +from .xhamster import XHamsterEmbedIE +from .vimeo import VimeoIE +from .dailymotion import DailymotionCloudIE +from .onionstudios import OnionStudiosIE +from .snagfilms import SnagFilmsEmbedIE class GenericIE(InfoExtractor): @@ -291,6 +298,15 @@ class GenericIE(InfoExtractor): 'skip_download': True, }, }, + # TVC embed + { + 'url': 'http://sch1298sz.mskobr.ru/dou_edu/karamel_ki/filial_galleries/video/iframe_src_http_tvc_ru_video_iframe_id_55304_isplay_false_acc_video_id_channel_brand_id_11_show_episodes_episode_id_32307_frameb/', + 'info_dict': { + 'id': '55304', + 'ext': 'mp4', + 'title': 'ÐоÑколÑное воÑпиÑание', + }, + }, # SportBox embed { 'url': 'http://www.vestifinance.ru/articles/25753', @@ -322,6 +338,26 @@ class GenericIE(InfoExtractor): 'skip_download': True, }, }, + # Myvi.ru embed + { + 'url': 'http://www.kinomyvi.tv/news/detail/Pervij-dublirovannij-trejler--Uzhastikov-_nOw1', + 'info_dict': { + 'id': 'f4dafcad-ff21-423d-89b5-146cfd89fa1e', + 'ext': 'mp4', + 'title': 'УжаÑÑики, ÑÑÑÑкий ÑÑÐµÐ¹Ð»ÐµÑ (2015)', + 'thumbnail': 're:^https?://.*\.jpg$', + 'duration': 153, + } + }, + # XHamster embed + { + 'url': 'http://www.numisc.com/forum/showthread.php?11696-FM15-which-pumiscer-was-this-%28-vid-%29-%28-alfa-as-fuck-srx-%29&s=711f5db534502e22260dec8c5e2d66d8', + 'info_dict': { + 'id': 'showthread', + 'title': '[NSFL] [FM15] which pumiscer was this ( vid ) ( alfa as fuck srx )', + }, + 'playlist_mincount': 7, + }, # Embedded TED video { 'url': 'http://en.support.wordpress.com/videos/ted-talks/', @@ -371,6 +407,26 @@ class GenericIE(InfoExtractor): 'skip_download': 'Requires rtmpdump' } }, + # francetv embed + { + 'url': 'http://www.tsprod.com/replay-du-concert-alcaline-de-calogero', + 'info_dict': { + 'id': 'EV_30231', + 'ext': 'mp4', + 'title': 'Alcaline, le concert avec Calogero', + 'description': 'md5:61f08036dcc8f47e9cfc33aed08ffaff', + 'upload_date': '20150226', + 'timestamp': 1424989860, + 'duration': 5400, + }, + 'params': { + # m3u8 downloads + 'skip_download': True, + }, + 'expected_warnings': [ + 'Forbidden' + ] + }, # Condé Nast embed { 'url': 'http://www.wired.com/2014/04/honda-asimo/', @@ -644,6 +700,18 @@ class GenericIE(InfoExtractor): 'title': 'John Carlson Postgame 2/25/15', }, }, + # Kaltura embed (different embed code) + { + 'url': 'http://www.premierchristianradio.com/Shows/Saturday/Unbelievable/Conference-Videos/Os-Guinness-Is-It-Fools-Talk-Unbelievable-Conference-2014', + 'info_dict': { + 'id': '1_a52wc67y', + 'ext': 'flv', + 'upload_date': '20150127', + 'uploader_id': 'PremierMedia', + 'timestamp': int, + 'title': 'Os Guinness // Is It Fools Talk? // Unbelievable? Conference 2014', + }, + }, # Eagle.Platform embed (generic URL) { 'url': 'http://lenta.ru/news/2015/03/06/navalny/', @@ -789,6 +857,62 @@ class GenericIE(InfoExtractor): # rtmpe downloads 'skip_download': True, } + }, + # Brightcove URL in single quotes + { + 'url': 'http://www.sportsnet.ca/baseball/mlb/sn-presents-russell-martin-world-citizen/', + 'md5': '4ae374f1f8b91c889c4b9203c8c752af', + 'info_dict': { + 'id': '4255764656001', + 'ext': 'mp4', + 'title': 'SN Presents: Russell Martin, World Citizen', + 'description': 'To understand why he was the Toronto Blue Jaysâ top off-season priority is to appreciate his background and upbringing in Montreal, where he first developed his baseball skills. Written and narrated by Stephen Brunt.', + 'uploader': 'Rogers Sportsnet', + }, + }, + # Dailymotion Cloud video + { + 'url': 'http://replay.publicsenat.fr/vod/le-debat/florent-kolandjian,dominique-cena,axel-decourtye,laurence-abeille,bruno-parmentier/175910', + 'md5': '49444254273501a64675a7e68c502681', + 'info_dict': { + 'id': '5585de919473990de4bee11b', + 'ext': 'mp4', + 'title': 'Le débat', + 'thumbnail': 're:^https?://.*\.jpe?g$', + } + }, + # OnionStudios embed + { + 'url': 'http://www.clickhole.com/video/dont-understand-bitcoin-man-will-mumble-explanatio-2537', + 'info_dict': { + 'id': '2855', + 'ext': 'mp4', + 'title': 'Donât Understand Bitcoin? This Man Will Mumble An Explanation At You', + 'thumbnail': 're:^https?://.*\.jpe?g$', + 'uploader': 'ClickHole', + 'uploader_id': 'clickhole', + } + }, + # SnagFilms embed + { + 'url': 'http://whilewewatch.blogspot.ru/2012/06/whilewewatch-whilewewatch-gripping.html', + 'info_dict': { + 'id': '74849a00-85a9-11e1-9660-123139220831', + 'ext': 'mp4', + 'title': '#whilewewatch', + } + }, + # AdobeTVVideo embed + { + 'url': 'https://helpx.adobe.com/acrobat/how-to/new-experience-acrobat-dc.html?set=acrobat--get-started--essential-beginners', + 'md5': '43662b577c018ad707a63766462b1e87', + 'info_dict': { + 'id': '2456', + 'ext': 'mp4', + 'title': 'New experience with Acrobat DC', + 'description': 'New experience with Acrobat DC', + 'duration': 248.667, + }, } ] @@ -956,7 +1080,9 @@ class GenericIE(InfoExtractor): } if not self._downloader.params.get('test', False) and not is_intentional: - self._downloader.report_warning('Falling back on generic information extractor.') + force = self._downloader.params.get('force_generic_extractor', False) + self._downloader.report_warning( + '%s on generic information extractor.' % ('Forcing' if force else 'Falling back')) if not full_response: request = compat_urllib_request.Request(url) @@ -1008,7 +1134,7 @@ class GenericIE(InfoExtractor): # Sometimes embedded video player is hidden behind percent encoding # (e.g. https://github.com/rg3/youtube-dl/issues/2448) # Unescaping the whole page allows to handle those cases in a generic way - webpage = compat_urllib_parse.unquote(webpage) + webpage = compat_urllib_parse_unquote(webpage) # it's tempting to parse this further, but you would # have to take into account all the variations like @@ -1061,23 +1187,20 @@ class GenericIE(InfoExtractor): # Look for embedded rtl.nl player matches = re.findall( - r'<iframe\s+(?:[a-zA-Z-]+="[^"]+"\s+)*?src="((?:https?:)?//(?:www\.)?rtl\.nl/system/videoplayer/[^"]+video_embed[^"]+)"', + r'<iframe[^>]+?src="((?:https?:)?//(?:www\.)?rtl\.nl/system/videoplayer/[^"]+(?:video_)?embed[^"]+)"', webpage) if matches: return _playlist_from_matches(matches, ie='RtlNl') - # Look for embedded (iframe) Vimeo player - mobj = re.search( - r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//player\.vimeo\.com/video/.+?)\1', webpage) - if mobj: - player_url = unescapeHTML(mobj.group('url')) - surl = smuggle_url(player_url, {'Referer': url}) - return self.url_result(surl) - # Look for embedded (swf embed) Vimeo player - mobj = re.search( - r'<embed[^>]+?src="((?:https?:)?//(?:www\.)?vimeo\.com/moogaloop\.swf.+?)"', webpage) - if mobj: - return self.url_result(mobj.group(1)) + vimeo_url = VimeoIE._extract_vimeo_url(url, webpage) + if vimeo_url is not None: + return self.url_result(vimeo_url) + + vid_me_embed_url = self._search_regex( + r'src=[\'"](https?://vid\.me/[^\'"]+)[\'"]', + webpage, 'vid.me embed', default=None) + if vid_me_embed_url is not None: + return self.url_result(vid_me_embed_url, 'Vidme') # Look for embedded YouTube player matches = re.findall(r'''(?x) @@ -1271,7 +1394,7 @@ class GenericIE(InfoExtractor): return self.url_result(mobj.group('url')) mobj = re.search(r'class=["\']embedly-embed["\'][^>]src=["\'][^"\']*url=(?P<url>[^&]+)', webpage) if mobj is not None: - return self.url_result(compat_urllib_parse.unquote(mobj.group('url'))) + return self.url_result(compat_urllib_parse_unquote(mobj.group('url'))) # Look for funnyordie embed matches = re.findall(r'<iframe[^>]+?src="(https?://(?:www\.)?funnyordie\.com/embed/[^"]+)"', webpage) @@ -1289,11 +1412,32 @@ class GenericIE(InfoExtractor): if rutv_url: return self.url_result(rutv_url, 'RUTV') + # Look for embedded TVC player + tvc_url = TVCIE._extract_url(webpage) + if tvc_url: + return self.url_result(tvc_url, 'TVC') + # Look for embedded SportBox player sportbox_urls = SportBoxEmbedIE._extract_urls(webpage) if sportbox_urls: return _playlist_from_matches(sportbox_urls, ie='SportBoxEmbed') + # Look for embedded PornHub player + pornhub_url = PornHubIE._extract_url(webpage) + if pornhub_url: + return self.url_result(pornhub_url, 'PornHub') + + # Look for embedded XHamster player + xhamster_urls = XHamsterEmbedIE._extract_urls(webpage) + if xhamster_urls: + return _playlist_from_matches(xhamster_urls, ie='XHamsterEmbed') + + # Look for embedded Tvigle player + mobj = re.search( + r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//cloud\.tvigle\.ru/video/.+?)\1', webpage) + if mobj is not None: + return self.url_result(mobj.group('url'), 'Tvigle') + # Look for embedded TED player mobj = re.search( r'<iframe[^>]+?src=(["\'])(?P<url>https?://embed(?:-ssl)?\.ted\.com/.+?)\1', webpage) @@ -1313,11 +1457,23 @@ class GenericIE(InfoExtractor): if mobj is not None: return self.url_result(mobj.group('url'), 'ArteTVEmbed') + # Look for embedded francetv player + mobj = re.search( + r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?://)?embed\.francetv\.fr/\?ue=.+?)\1', + webpage) + if mobj is not None: + return self.url_result(mobj.group('url')) + # Look for embedded smotri.com player smotri_url = SmotriIE._extract_url(webpage) if smotri_url: return self.url_result(smotri_url, 'Smotri') + # Look for embedded Myvi.ru player + myvi_url = MyviIE._extract_url(webpage) + if myvi_url: + return self.url_result(myvi_url) + # Look for embeded soundcloud player mobj = re.search( r'<iframe\s+(?:[a-zA-Z0-9_-]+="[^"]+"\s+)*src="(?P<url>https?://(?:w\.)?soundcloud\.com/player[^"]+)"', @@ -1397,8 +1553,8 @@ class GenericIE(InfoExtractor): return self.url_result(mobj.group('url'), 'Zapiks') # Look for Kaltura embeds - mobj = re.search( - r"(?s)kWidget\.(?:thumb)?[Ee]mbed\(\{.*?'wid'\s*:\s*'_?(?P<partner_id>[^']+)',.*?'entry_id'\s*:\s*'(?P<id>[^']+)',", webpage) + mobj = (re.search(r"(?s)kWidget\.(?:thumb)?[Ee]mbed\(\{.*?'wid'\s*:\s*'_?(?P<partner_id>[^']+)',.*?'entry_id'\s*:\s*'(?P<id>[^']+)',", webpage) or + re.search(r'(?s)(["\'])(?:https?:)?//cdnapisec\.kaltura\.com/.*?(?:p|partner_id)/(?P<partner_id>\d+).*?\1.*?entry_id\s*:\s*(["\'])(?P<id>[^\2]+?)\2', webpage)) if mobj is not None: return self.url_result('kaltura:%(partner_id)s:%(id)s' % mobj.groupdict(), 'Kaltura') @@ -1455,6 +1611,30 @@ class GenericIE(InfoExtractor): if senate_isvp_url: return self.url_result(senate_isvp_url, 'SenateISVP') + # Look for Dailymotion Cloud videos + dmcloud_url = DailymotionCloudIE._extract_dmcloud_url(webpage) + if dmcloud_url: + return self.url_result(dmcloud_url, 'DailymotionCloud') + + # Look for OnionStudios embeds + onionstudios_url = OnionStudiosIE._extract_url(webpage) + if onionstudios_url: + return self.url_result(onionstudios_url) + + # Look for SnagFilms embeds + snagfilms_url = SnagFilmsEmbedIE._extract_url(webpage) + if snagfilms_url: + return self.url_result(snagfilms_url) + + # Look for AdobeTVVideo embeds + mobj = re.search( + r'<iframe[^>]+src=[\'"]((?:https?:)?//video\.tv\.adobe\.com/v/\d+[^"]+)[\'"]', + webpage) + if mobj is not None: + return self.url_result( + self._proto_relative_url(unescapeHTML(mobj.group(1))), + 'AdobeTVVideo') + def check_video(vurl): if YoutubeIE.suitable(vurl): return True @@ -1534,7 +1714,7 @@ class GenericIE(InfoExtractor): entries = [] for video_url in found: video_url = compat_urlparse.urljoin(url, video_url) - video_id = compat_urllib_parse.unquote(os.path.basename(video_url)) + video_id = compat_urllib_parse_unquote(os.path.basename(video_url)) # Sometimes, jwplayer extraction will result in a YouTube URL if YoutubeIE.suitable(video_url): diff --git a/youtube_dl/extractor/gfycat.py b/youtube_dl/extractor/gfycat.py index 397f1d4..884700c 100644 --- a/youtube_dl/extractor/gfycat.py +++ b/youtube_dl/extractor/gfycat.py @@ -6,12 +6,13 @@ from ..utils import ( int_or_none, float_or_none, qualities, + ExtractorError, ) class GfycatIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?gfycat\.com/(?P<id>[^/?#]+)' - _TEST = { + _VALID_URL = r'https?://(?:www\.)?gfycat\.com/(?:ifr/)?(?P<id>[^/?#]+)' + _TESTS = [{ 'url': 'http://gfycat.com/DeadlyDecisiveGermanpinscher', 'info_dict': { 'id': 'DeadlyDecisiveGermanpinscher', @@ -27,14 +28,33 @@ class GfycatIE(InfoExtractor): 'categories': list, 'age_limit': 0, } - } + }, { + 'url': 'http://gfycat.com/ifr/JauntyTimelyAmazontreeboa', + 'info_dict': { + 'id': 'JauntyTimelyAmazontreeboa', + 'ext': 'mp4', + 'title': 'JauntyTimelyAmazontreeboa', + 'timestamp': 1411720126, + 'upload_date': '20140926', + 'uploader': 'anonymous', + 'duration': 3.52, + 'view_count': int, + 'like_count': int, + 'dislike_count': int, + 'categories': list, + 'age_limit': 0, + } + }] def _real_extract(self, url): video_id = self._match_id(url) gfy = self._download_json( 'http://gfycat.com/cajax/get/%s' % video_id, - video_id, 'Downloading video info')['gfyItem'] + video_id, 'Downloading video info') + if 'error' in gfy: + raise ExtractorError('Gfycat said: ' + gfy['error'], expected=True) + gfy = gfy['gfyItem'] title = gfy.get('title') or gfy['gfyName'] description = gfy.get('description') diff --git a/youtube_dl/extractor/gorillavid.py b/youtube_dl/extractor/gorillavid.py index 6147596..f006f0c 100644 --- a/youtube_dl/extractor/gorillavid.py +++ b/youtube_dl/extractor/gorillavid.py @@ -78,12 +78,7 @@ class GorillaVidIE(InfoExtractor): if re.search(self._FILE_NOT_FOUND_REGEX, webpage) is not None: raise ExtractorError('Video %s does not exist' % video_id, expected=True) - fields = dict(re.findall(r'''(?x)<input\s+ - type="hidden"\s+ - name="([^"]+)"\s+ - (?:id="[^"]+"\s+)? - value="([^"]*)" - ''', webpage)) + fields = self._hidden_inputs(webpage) if fields['op'] == 'download1': countdown = int_or_none(self._search_regex( diff --git a/youtube_dl/extractor/hentaistigma.py b/youtube_dl/extractor/hentaistigma.py index 63d87b7..f5aa73d 100644 --- a/youtube_dl/extractor/hentaistigma.py +++ b/youtube_dl/extractor/hentaistigma.py @@ -1,7 +1,5 @@ from __future__ import unicode_literals -import re - from .common import InfoExtractor @@ -19,20 +17,19 @@ class HentaiStigmaIE(InfoExtractor): } def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') + video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) title = self._html_search_regex( - r'<h2 class="posttitle"><a[^>]*>([^<]+)</a>', + r'<h2[^>]+class="posttitle"[^>]*><a[^>]*>([^<]+)</a>', webpage, 'title') wrap_url = self._html_search_regex( - r'<iframe src="([^"]+mp4)"', webpage, 'wrapper url') + r'<iframe[^>]+src="([^"]+mp4)"', webpage, 'wrapper url') wrap_webpage = self._download_webpage(wrap_url, video_id) video_url = self._html_search_regex( - r'clip:\s*{\s*url: "([^"]*)"', wrap_webpage, 'video url') + r'file\s*:\s*"([^"]+)"', wrap_webpage, 'video url') return { 'id': video_id, diff --git a/youtube_dl/extractor/hostingbulk.py b/youtube_dl/extractor/hostingbulk.py index 704d028..a3154cf 100644 --- a/youtube_dl/extractor/hostingbulk.py +++ b/youtube_dl/extractor/hostingbulk.py @@ -58,11 +58,7 @@ class HostingBulkIE(InfoExtractor): r'<img src="([^"]+)".+?class="pic"', webpage, 'thumbnail', fatal=False) - fields = dict(re.findall(r'''(?x)<input\s+ - type="hidden"\s+ - name="([^"]+)"\s+ - value="([^"]*)" - ''', webpage)) + fields = self._hidden_inputs(webpage) request = compat_urllib_request.Request(url, urlencode_postdata(fields)) request.add_header('Content-type', 'application/x-www-form-urlencoded') diff --git a/youtube_dl/extractor/howcast.py b/youtube_dl/extractor/howcast.py index 3f7d666..16677f1 100644 --- a/youtube_dl/extractor/howcast.py +++ b/youtube_dl/extractor/howcast.py @@ -1,8 +1,7 @@ from __future__ import unicode_literals -import re - from .common import InfoExtractor +from ..utils import parse_iso8601 class HowcastIE(InfoExtractor): @@ -13,29 +12,31 @@ class HowcastIE(InfoExtractor): 'info_dict': { 'id': '390161', 'ext': 'mp4', - 'description': 'The square knot, also known as the reef knot, is one of the oldest, most basic knots to tie, and can be used in many different ways. Here\'s the proper way to tie a square knot.', 'title': 'How to Tie a Square Knot Properly', - } + 'description': 'md5:dbe792e5f6f1489027027bf2eba188a3', + 'timestamp': 1276081287, + 'upload_date': '20100609', + }, + 'params': { + # m3u8 download + 'skip_download': True, + }, } def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) + video_id = self._match_id(url) - video_id = mobj.group('id') webpage = self._download_webpage(url, video_id) - self.report_extraction(video_id) - - video_url = self._search_regex(r'\'?file\'?: "(http://mobile-media\.howcast\.com/[0-9]+\.mp4)', - webpage, 'video URL') - - video_description = self._html_search_regex(r'<meta content=(?:"([^"]+)"|\'([^\']+)\') name=\'description\'', - webpage, 'description', fatal=False) + embed_code = self._search_regex( + r'<iframe[^>]+src="[^"]+\bembed_code=([^\b]+)\b', + webpage, 'ooyala embed code') return { + '_type': 'url_transparent', + 'ie_key': 'Ooyala', + 'url': 'ooyala:%s' % embed_code, 'id': video_id, - 'url': video_url, - 'title': self._og_search_title(webpage), - 'description': video_description, - 'thumbnail': self._og_search_thumbnail(webpage), + 'timestamp': parse_iso8601(self._html_search_meta( + 'article:published_time', webpage, 'timestamp')), } diff --git a/youtube_dl/extractor/howstuffworks.py b/youtube_dl/extractor/howstuffworks.py index e973391..663e663 100644 --- a/youtube_dl/extractor/howstuffworks.py +++ b/youtube_dl/extractor/howstuffworks.py @@ -10,7 +10,7 @@ from ..utils import ( class HowStuffWorksIE(InfoExtractor): - _VALID_URL = r'https?://[\da-z-]+\.howstuffworks\.com/(?:[^/]+/)*\d+-(?P<id>.+?)-video\.htm' + _VALID_URL = r'https?://[\da-z-]+\.howstuffworks\.com/(?:[^/]+/)*(?:\d+-)?(?P<id>.+?)-video\.htm' _TESTS = [ { 'url': 'http://adventure.howstuffworks.com/5266-cool-jobs-iditarod-musher-video.htm', @@ -46,6 +46,10 @@ class HowStuffWorksIE(InfoExtractor): 'thumbnail': 're:^https?://.*\.jpg$', }, }, + { + 'url': 'http://shows.howstuffworks.com/stuff-to-blow-your-mind/optical-illusions-video.htm', + 'only_matching': True, + } ] def _real_extract(self, url): diff --git a/youtube_dl/extractor/imdb.py b/youtube_dl/extractor/imdb.py index f29df36..4bb574c 100644 --- a/youtube_dl/extractor/imdb.py +++ b/youtube_dl/extractor/imdb.py @@ -46,7 +46,7 @@ class ImdbIE(InfoExtractor): format_info = info['videoPlayerObject']['video'] formats.append({ 'format_id': f_id, - 'url': format_info['url'], + 'url': format_info['videoInfoList'][0]['videoUrl'], }) return { diff --git a/youtube_dl/extractor/ina.py b/youtube_dl/extractor/ina.py index 0847074..65712ab 100644 --- a/youtube_dl/extractor/ina.py +++ b/youtube_dl/extractor/ina.py @@ -7,7 +7,7 @@ from .common import InfoExtractor class InaIE(InfoExtractor): - _VALID_URL = r'http://(?:www\.)?ina\.fr/video/(?P<id>I?[A-Z0-9]+)' + _VALID_URL = r'https?://(?:www\.)?ina\.fr/video/(?P<id>I?[A-Z0-9]+)' _TEST = { 'url': 'http://www.ina.fr/video/I12055569/francois-hollande-je-crois-que-c-est-clair-video.html', 'md5': 'a667021bf2b41f8dc6049479d9bb38a3', diff --git a/youtube_dl/extractor/infoq.py b/youtube_dl/extractor/infoq.py index f25f436..71cfd12 100644 --- a/youtube_dl/extractor/infoq.py +++ b/youtube_dl/extractor/infoq.py @@ -4,14 +4,15 @@ import base64 from .common import InfoExtractor from ..compat import ( - compat_urllib_parse, + compat_urllib_parse_unquote, + compat_urlparse, ) class InfoQIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?infoq\.com/[^/]+/(?P<id>[^/]+)$' + _VALID_URL = r'https?://(?:www\.)?infoq\.com/(?:[^/]+/)+(?P<id>[^/]+)' - _TEST = { + _TESTS = [{ 'url': 'http://www.infoq.com/presentations/A-Few-of-My-Favorite-Python-Things', 'md5': 'b5ca0e0a8c1fed93b0e65e48e462f9a2', 'info_dict': { @@ -20,7 +21,10 @@ class InfoQIE(InfoExtractor): 'description': 'Mike Pirnat presents some tips and tricks, standard libraries and third party packages that make programming in Python a richer experience.', 'title': 'A Few of My Favorite [Python] Things', }, - } + }, { + 'url': 'http://www.infoq.com/fr/presentations/changez-avis-sur-javascript', + 'only_matching': True, + }] def _real_extract(self, url): video_id = self._match_id(url) @@ -35,14 +39,14 @@ class InfoQIE(InfoExtractor): # Extract video URL encoded_id = self._search_regex( r"jsclassref\s*=\s*'([^']*)'", webpage, 'encoded id') - real_id = compat_urllib_parse.unquote(base64.b64decode(encoded_id.encode('ascii')).decode('utf-8')) + real_id = compat_urllib_parse_unquote(base64.b64decode(encoded_id.encode('ascii')).decode('utf-8')) playpath = 'mp4:' + real_id video_filename = playpath.split('/')[-1] video_id, extension = video_filename.split('.') http_base = self._search_regex( - r'EXPRESSINSTALL_SWF\s*=\s*"(https?://[^/"]+/)', webpage, + r'EXPRESSINSTALL_SWF\s*=\s*[^"]*"((?:https?:)?//[^/"]+/)', webpage, 'HTTP base URL') formats = [{ @@ -52,7 +56,7 @@ class InfoQIE(InfoExtractor): 'play_path': playpath, }, { 'format_id': 'http', - 'url': http_base + real_id, + 'url': compat_urlparse.urljoin(url, http_base) + real_id, }] self._sort_formats(formats) diff --git a/youtube_dl/extractor/instagram.py b/youtube_dl/extractor/instagram.py index b107557..3d78f78 100644 --- a/youtube_dl/extractor/instagram.py +++ b/youtube_dl/extractor/instagram.py @@ -3,7 +3,10 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..utils import int_or_none +from ..utils import ( + int_or_none, + limit_length, +) class InstagramIE(InfoExtractor): @@ -100,11 +103,13 @@ class InstagramUserIE(InfoExtractor): thumbnails_el = it.get('images', {}) thumbnail = thumbnails_el.get('thumbnail', {}).get('url') - title = it.get('caption', {}).get('text', it['id']) + # In some cases caption is null, which corresponds to None + # in python. As a result, it.get('caption', {}) gives None + title = (it.get('caption') or {}).get('text', it['id']) entries.append({ 'id': it['id'], - 'title': title, + 'title': limit_length(title, 80), 'formats': formats, 'thumbnail': thumbnail, 'webpage_url': it.get('link'), diff --git a/youtube_dl/extractor/iqiyi.py b/youtube_dl/extractor/iqiyi.py new file mode 100644 index 0000000..afb7f4e --- /dev/null +++ b/youtube_dl/extractor/iqiyi.py @@ -0,0 +1,273 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import hashlib +import math +import random +import time +import uuid + +from .common import InfoExtractor +from ..compat import compat_urllib_parse +from ..utils import ExtractorError + + +class IqiyiIE(InfoExtractor): + IE_NAME = 'iqiyi' + IE_DESC = 'ç±å¥èº' + + _VALID_URL = r'http://(?:www\.)iqiyi.com/v_.+?\.html' + + _TESTS = [{ + 'url': 'http://www.iqiyi.com/v_19rrojlavg.html', + 'md5': '2cb594dc2781e6c941a110d8f358118b', + 'info_dict': { + 'id': '9c1fb1b99d192b21c559e5a1a2cb3c73', + 'title': 'ç¾å½å¾·å·ç©ºä¸æç°å¥å¼äºå¢ é ·ä¼¼UFO', + 'ext': 'f4v', + } + }, { + 'url': 'http://www.iqiyi.com/v_19rrhnnclk.html', + 'info_dict': { + 'id': 'e3f585b550a280af23c98b6cb2be19fb', + 'title': 'å侦æ¢æ¯å第752é', + }, + 'playlist': [{ + 'info_dict': { + 'id': 'e3f585b550a280af23c98b6cb2be19fb_part1', + 'ext': 'f4v', + 'title': 'å侦æ¢æ¯å第752é', + }, + }, { + 'info_dict': { + 'id': 'e3f585b550a280af23c98b6cb2be19fb_part2', + 'ext': 'f4v', + 'title': 'å侦æ¢æ¯å第752é', + }, + }, { + 'info_dict': { + 'id': 'e3f585b550a280af23c98b6cb2be19fb_part3', + 'ext': 'f4v', + 'title': 'å侦æ¢æ¯å第752é', + }, + }, { + 'info_dict': { + 'id': 'e3f585b550a280af23c98b6cb2be19fb_part4', + 'ext': 'f4v', + 'title': 'å侦æ¢æ¯å第752é', + }, + }, { + 'info_dict': { + 'id': 'e3f585b550a280af23c98b6cb2be19fb_part5', + 'ext': 'f4v', + 'title': 'å侦æ¢æ¯å第752é', + }, + }, { + 'info_dict': { + 'id': 'e3f585b550a280af23c98b6cb2be19fb_part6', + 'ext': 'f4v', + 'title': 'å侦æ¢æ¯å第752é', + }, + }, { + 'info_dict': { + 'id': 'e3f585b550a280af23c98b6cb2be19fb_part7', + 'ext': 'f4v', + 'title': 'å侦æ¢æ¯å第752é', + }, + }, { + 'info_dict': { + 'id': 'e3f585b550a280af23c98b6cb2be19fb_part8', + 'ext': 'f4v', + 'title': 'å侦æ¢æ¯å第752é', + }, + }], + 'params': { + 'skip_download': True, + }, + }] + + _FORMATS_MAP = [ + ('1', 'h6'), + ('2', 'h5'), + ('3', 'h4'), + ('4', 'h3'), + ('5', 'h2'), + ('10', 'h1'), + ] + + def construct_video_urls(self, data, video_id, _uuid): + def do_xor(x, y): + a = y % 3 + if a == 1: + return x ^ 121 + if a == 2: + return x ^ 72 + return x ^ 103 + + def get_encode_code(l): + a = 0 + b = l.split('-') + c = len(b) + s = '' + for i in range(c - 1, -1, -1): + a = do_xor(int(b[c - i - 1], 16), i) + s += chr(a) + return s[::-1] + + def get_path_key(x, format_id, segment_index): + mg = ')(*&^flash@#$%a' + tm = self._download_json( + 'http://data.video.qiyi.com/t?tn=' + str(random.random()), video_id, + note='Download path key of segment %d for format %s' % (segment_index + 1, format_id) + )['t'] + t = str(int(math.floor(int(tm) / (600.0)))) + return hashlib.md5((t + mg + x).encode('utf8')).hexdigest() + + video_urls_dict = {} + for format_item in data['vp']['tkl'][0]['vs']: + if 0 < int(format_item['bid']) <= 10: + format_id = self.get_format(format_item['bid']) + else: + continue + + video_urls = [] + + video_urls_info = format_item['fs'] + if not format_item['fs'][0]['l'].startswith('/'): + t = get_encode_code(format_item['fs'][0]['l']) + if t.endswith('mp4'): + video_urls_info = format_item['flvs'] + + for segment_index, segment in enumerate(video_urls_info): + vl = segment['l'] + if not vl.startswith('/'): + vl = get_encode_code(vl) + key = get_path_key( + vl.split('/')[-1].split('.')[0], format_id, segment_index) + filesize = segment['b'] + base_url = data['vp']['du'].split('/') + base_url.insert(-1, key) + base_url = '/'.join(base_url) + param = { + 'su': _uuid, + 'qyid': uuid.uuid4().hex, + 'client': '', + 'z': '', + 'bt': '', + 'ct': '', + 'tn': str(int(time.time())) + } + api_video_url = base_url + vl + '?' + \ + compat_urllib_parse.urlencode(param) + js = self._download_json( + api_video_url, video_id, + note='Download video info of segment %d for format %s' % (segment_index + 1, format_id)) + video_url = js['l'] + video_urls.append( + (video_url, filesize)) + + video_urls_dict[format_id] = video_urls + return video_urls_dict + + def get_format(self, bid): + matched_format_ids = [_format_id for _bid, _format_id in self._FORMATS_MAP if _bid == str(bid)] + return matched_format_ids[0] if len(matched_format_ids) else None + + def get_bid(self, format_id): + matched_bids = [_bid for _bid, _format_id in self._FORMATS_MAP if _format_id == format_id] + return matched_bids[0] if len(matched_bids) else None + + def get_raw_data(self, tvid, video_id, enc_key, _uuid): + tm = str(int(time.time())) + param = { + 'key': 'fvip', + 'src': hashlib.md5(b'youtube-dl').hexdigest(), + 'tvId': tvid, + 'vid': video_id, + 'vinfo': 1, + 'tm': tm, + 'enc': hashlib.md5( + (enc_key + tm + tvid).encode('utf8')).hexdigest(), + 'qyid': _uuid, + 'tn': random.random(), + 'um': 0, + 'authkey': hashlib.md5( + (tm + tvid).encode('utf8')).hexdigest() + } + + api_url = 'http://cache.video.qiyi.com/vms' + '?' + \ + compat_urllib_parse.urlencode(param) + raw_data = self._download_json(api_url, video_id) + return raw_data + + def get_enc_key(self, swf_url, video_id): + enc_key = '8e29ab5666d041c3a1ea76e06dabdffb' + return enc_key + + def _real_extract(self, url): + webpage = self._download_webpage( + url, 'temp_id', note='download video page') + tvid = self._search_regex( + r'data-player-tvid\s*=\s*[\'"](\d+)', webpage, 'tvid') + video_id = self._search_regex( + r'data-player-videoid\s*=\s*[\'"]([a-f\d]+)', webpage, 'video_id') + swf_url = self._search_regex( + r'(http://[^\'"]+MainPlayer[^.]+\.swf)', webpage, 'swf player URL') + _uuid = uuid.uuid4().hex + + enc_key = self.get_enc_key(swf_url, video_id) + + raw_data = self.get_raw_data(tvid, video_id, enc_key, _uuid) + + if raw_data['code'] != 'A000000': + raise ExtractorError('Unable to load data. Error code: ' + raw_data['code']) + + if not raw_data['data']['vp']['tkl']: + raise ExtractorError('No support iQiqy VIP video') + + data = raw_data['data'] + + title = data['vi']['vn'] + + # generate video_urls_dict + video_urls_dict = self.construct_video_urls( + data, video_id, _uuid) + + # construct info + entries = [] + for format_id in video_urls_dict: + video_urls = video_urls_dict[format_id] + for i, video_url_info in enumerate(video_urls): + if len(entries) < i + 1: + entries.append({'formats': []}) + entries[i]['formats'].append( + { + 'url': video_url_info[0], + 'filesize': video_url_info[-1], + 'format_id': format_id, + 'preference': int(self.get_bid(format_id)) + } + ) + + for i in range(len(entries)): + self._sort_formats(entries[i]['formats']) + entries[i].update( + { + 'id': '%s_part%d' % (video_id, i + 1), + 'title': title, + } + ) + + if len(entries) > 1: + info = { + '_type': 'multi_video', + 'id': video_id, + 'title': title, + 'entries': entries, + } + else: + info = entries[0] + info['id'] = video_id + info['title'] = title + + return info diff --git a/youtube_dl/extractor/izlesene.py b/youtube_dl/extractor/izlesene.py index 99a1361..bc226fa 100644 --- a/youtube_dl/extractor/izlesene.py +++ b/youtube_dl/extractor/izlesene.py @@ -4,6 +4,7 @@ from __future__ import unicode_literals import re from .common import InfoExtractor +from ..compat import compat_urllib_parse_unquote from ..utils import ( determine_ext, float_or_none, @@ -30,7 +31,7 @@ class IzleseneIE(InfoExtractor): 'description': 'md5:253753e2655dde93f59f74b572454f6d', 'thumbnail': 're:^http://.*\.jpg', 'uploader_id': 'pelikzzle', - 'timestamp': 1404302298, + 'timestamp': int, 'upload_date': '20140702', 'duration': 95.395, 'age_limit': 0, @@ -46,7 +47,7 @@ class IzleseneIE(InfoExtractor): 'description': 'Tarkan Dortmund 2006 Konseri', 'thumbnail': 're:^http://.*\.jpg', 'uploader_id': 'parlayankiz', - 'timestamp': 1163322193, + 'timestamp': int, 'upload_date': '20061112', 'duration': 253.666, 'age_limit': 0, @@ -67,9 +68,9 @@ class IzleseneIE(InfoExtractor): uploader = self._html_search_regex( r"adduserUsername\s*=\s*'([^']+)';", - webpage, 'uploader', fatal=False, default='') + webpage, 'uploader', fatal=False) timestamp = parse_iso8601(self._html_search_meta( - 'uploadDate', webpage, 'upload date', fatal=False)) + 'uploadDate', webpage, 'upload date')) duration = float_or_none(self._html_search_regex( r'"videoduration"\s*:\s*"([^"]+)"', @@ -86,8 +87,7 @@ class IzleseneIE(InfoExtractor): # Might be empty for some videos. streams = self._html_search_regex( - r'"qualitylevel"\s*:\s*"([^"]+)"', - webpage, 'streams', fatal=False, default='') + r'"qualitylevel"\s*:\s*"([^"]+)"', webpage, 'streams', default='') formats = [] if streams: @@ -95,15 +95,15 @@ class IzleseneIE(InfoExtractor): quality, url = re.search(r'\[(\w+)\](.+)', stream).groups() formats.append({ 'format_id': '%sp' % quality if quality else 'sd', - 'url': url, + 'url': compat_urllib_parse_unquote(url), 'ext': ext, }) else: stream_url = self._search_regex( - r'"streamurl"\s?:\s?"([^"]+)"', webpage, 'stream URL') + r'"streamurl"\s*:\s*"([^"]+)"', webpage, 'stream URL') formats.append({ 'format_id': 'sd', - 'url': stream_url, + 'url': compat_urllib_parse_unquote(stream_url), 'ext': ext, }) diff --git a/youtube_dl/extractor/jeuxvideo.py b/youtube_dl/extractor/jeuxvideo.py index d0720ff..1df084d 100644 --- a/youtube_dl/extractor/jeuxvideo.py +++ b/youtube_dl/extractor/jeuxvideo.py @@ -8,9 +8,9 @@ from .common import InfoExtractor class JeuxVideoIE(InfoExtractor): - _VALID_URL = r'http://.*?\.jeuxvideo\.com/.*/(.*?)-\d+\.htm' + _VALID_URL = r'http://.*?\.jeuxvideo\.com/.*/(.*?)\.htm' - _TEST = { + _TESTS = [{ 'url': 'http://www.jeuxvideo.com/reportages-videos-jeux/0004/00046170/tearaway-playstation-vita-gc-2013-tearaway-nous-presente-ses-papiers-d-identite-00115182.htm', 'md5': '046e491afb32a8aaac1f44dd4ddd54ee', 'info_dict': { @@ -19,7 +19,10 @@ class JeuxVideoIE(InfoExtractor): 'title': 'Tearaway : GC 2013 : Tearaway nous présente ses papiers d\'identité', 'description': 'Lorsque les développeurs de LittleBigPlanet proposent un nouveau titre, on ne peut que s\'attendre à un résultat original et fort attrayant.', }, - } + }, { + 'url': 'http://www.jeuxvideo.com/videos/chroniques/434220/l-histoire-du-jeu-video-la-saturn.htm', + 'only_matching': True, + }] def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) diff --git a/youtube_dl/extractor/karaoketv.py b/youtube_dl/extractor/karaoketv.py index e3b43ff..06daf5a 100644 --- a/youtube_dl/extractor/karaoketv.py +++ b/youtube_dl/extractor/karaoketv.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from .common import InfoExtractor -from ..compat import compat_urllib_parse +from ..compat import compat_urllib_parse_unquote_plus from ..utils import ( js_to_json, ) @@ -24,7 +24,7 @@ class KaraoketvIE(InfoExtractor): webpage = self._download_webpage(url, video_id) page_video_url = self._og_search_video_url(webpage, video_id) - config_json = compat_urllib_parse.unquote_plus(self._search_regex( + config_json = compat_urllib_parse_unquote_plus(self._search_regex( r'config=(.*)', page_video_url, 'configuration')) urls_info_json = self._download_json( diff --git a/youtube_dl/extractor/kickstarter.py b/youtube_dl/extractor/kickstarter.py index 7d4b570..1d391e6 100644 --- a/youtube_dl/extractor/kickstarter.py +++ b/youtube_dl/extractor/kickstarter.py @@ -28,6 +28,14 @@ class KickStarterIE(InfoExtractor): 'uploader': 'Pebble Technology', 'title': 'Pebble iOS Notifications', } + }, { + 'url': 'https://www.kickstarter.com/projects/1420158244/power-drive-2000/widget/video.html', + 'info_dict': { + 'id': '1420158244', + 'ext': 'mp4', + 'title': 'Power Drive 2000', + }, + 'expected_warnings': ['OpenGraph description'], }] def _real_extract(self, url): @@ -48,10 +56,15 @@ class KickStarterIE(InfoExtractor): 'title': title, } + thumbnail = self._og_search_thumbnail(webpage, default=None) + if thumbnail is None: + thumbnail = self._html_search_regex( + r'<img[^>]+class="[^"]+\s*poster\s*[^"]+"[^>]+src="([^"]+)"', + webpage, 'thumbnail image', fatal=False) return { 'id': video_id, 'url': video_url, 'title': title, 'description': self._og_search_description(webpage), - 'thumbnail': self._og_search_thumbnail(webpage), + 'thumbnail': thumbnail, } diff --git a/youtube_dl/extractor/kuwo.py b/youtube_dl/extractor/kuwo.py new file mode 100644 index 0000000..1077846 --- /dev/null +++ b/youtube_dl/extractor/kuwo.py @@ -0,0 +1,314 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re +import itertools + +from .common import InfoExtractor +from ..utils import ( + get_element_by_id, + clean_html, + ExtractorError, + remove_start, +) + + +class KuwoBaseIE(InfoExtractor): + _FORMATS = [ + {'format': 'ape', 'ext': 'ape', 'preference': 100}, + {'format': 'mp3-320', 'ext': 'mp3', 'br': '320kmp3', 'abr': 320, 'preference': 80}, + {'format': 'mp3-192', 'ext': 'mp3', 'br': '192kmp3', 'abr': 192, 'preference': 70}, + {'format': 'mp3-128', 'ext': 'mp3', 'br': '128kmp3', 'abr': 128, 'preference': 60}, + {'format': 'wma', 'ext': 'wma', 'preference': 20}, + {'format': 'aac', 'ext': 'aac', 'abr': 48, 'preference': 10} + ] + + def _get_formats(self, song_id): + formats = [] + for file_format in self._FORMATS: + song_url = self._download_webpage( + 'http://antiserver.kuwo.cn/anti.s?format=%s&br=%s&rid=MUSIC_%s&type=convert_url&response=url' % + (file_format['ext'], file_format.get('br', ''), song_id), + song_id, note='Download %s url info' % file_format['format'], + ) + if song_url.startswith('http://') or song_url.startswith('https://'): + formats.append({ + 'url': song_url, + 'format_id': file_format['format'], + 'format': file_format['format'], + 'preference': file_format['preference'], + 'abr': file_format.get('abr'), + }) + self._sort_formats(formats) + return formats + + +class KuwoIE(KuwoBaseIE): + IE_NAME = 'kuwo:song' + IE_DESC = 'é ·æé³ä¹' + _VALID_URL = r'http://www\.kuwo\.cn/yinyue/(?P<id>\d+?)/' + _TESTS = [{ + 'url': 'http://www.kuwo.cn/yinyue/635632/', + 'info_dict': { + 'id': '635632', + 'ext': 'ape', + 'title': 'ç±æå«èµ°', + 'creator': 'å¼ éå²³', + 'upload_date': '20080122', + 'description': 'md5:ed13f58e3c3bf3f7fd9fbc4e5a7aa75c' + }, + }, { + 'url': 'http://www.kuwo.cn/yinyue/6446136/', + 'info_dict': { + 'id': '6446136', + 'ext': 'mp3', + 'title': 'å¿', + 'creator': 'IU', + 'upload_date': '20150518', + }, + 'params': { + 'format': 'mp3-320' + }, + }] + + def _real_extract(self, url): + song_id = self._match_id(url) + webpage = self._download_webpage( + url, song_id, note='Download song detail info', + errnote='Unable to get song detail info') + + song_name = self._html_search_regex( + r'<h1[^>]+title="([^"]+)">', webpage, 'song name') + singer_name = self._html_search_regex( + r'<div[^>]+class="s_img">\s*<a[^>]+title="([^>]+)"', + webpage, 'singer name', fatal=False) + lrc_content = clean_html(get_element_by_id('lrcContent', webpage)) + if lrc_content == 'ææ ': # indicates no lyrics + lrc_content = None + + formats = self._get_formats(song_id) + + album_id = self._html_search_regex( + r'<p[^>]+class="album"[^<]+<a[^>]+href="http://www\.kuwo\.cn/album/(\d+)/"', + webpage, 'album id', fatal=False) + + publish_time = None + if album_id is not None: + album_info_page = self._download_webpage( + 'http://www.kuwo.cn/album/%s/' % album_id, song_id, + note='Download album detail info', + errnote='Unable to get album detail info') + + publish_time = self._html_search_regex( + r'åè¡æ¶é´ï¼(\d{4}-\d{2}-\d{2})', album_info_page, + 'publish time', fatal=False) + if publish_time: + publish_time = publish_time.replace('-', '') + + return { + 'id': song_id, + 'title': song_name, + 'creator': singer_name, + 'upload_date': publish_time, + 'description': lrc_content, + 'formats': formats, + } + + +class KuwoAlbumIE(InfoExtractor): + IE_NAME = 'kuwo:album' + IE_DESC = 'é ·æé³ä¹ - ä¸è¾' + _VALID_URL = r'http://www\.kuwo\.cn/album/(?P<id>\d+?)/' + _TEST = { + 'url': 'http://www.kuwo.cn/album/502294/', + 'info_dict': { + 'id': '502294', + 'title': 'M', + 'description': 'md5:6a7235a84cc6400ec3b38a7bdaf1d60c', + }, + 'playlist_count': 2, + } + + def _real_extract(self, url): + album_id = self._match_id(url) + + webpage = self._download_webpage( + url, album_id, note='Download album info', + errnote='Unable to get album info') + + album_name = self._html_search_regex( + r'<div[^>]+class="comm"[^<]+<h1[^>]+title="([^"]+)"', webpage, + 'album name') + album_intro = remove_start( + clean_html(get_element_by_id('intro', webpage)), + '%sç®ä»ï¼' % album_name) + + entries = [ + self.url_result(song_url, 'Kuwo') for song_url in re.findall( + r'<p[^>]+class="listen"><a[^>]+href="(http://www\.kuwo\.cn/yinyue/\d+/)"', + webpage) + ] + return self.playlist_result(entries, album_id, album_name, album_intro) + + +class KuwoChartIE(InfoExtractor): + IE_NAME = 'kuwo:chart' + IE_DESC = 'é ·æé³ä¹ - æè¡æ¦' + _VALID_URL = r'http://yinyue\.kuwo\.cn/billboard_(?P<id>[^.]+).htm' + _TEST = { + 'url': 'http://yinyue.kuwo.cn/billboard_é¦æ¸¯ä¸æé¾èæ¦.htm', + 'info_dict': { + 'id': 'é¦æ¸¯ä¸æé¾èæ¦', + 'title': 'é¦æ¸¯ä¸æé¾èæ¦', + 'description': 're:\d{4}第\d{2}æ', + }, + 'playlist_mincount': 10, + } + + def _real_extract(self, url): + chart_id = self._match_id(url) + webpage = self._download_webpage( + url, chart_id, note='Download chart info', + errnote='Unable to get chart info') + + chart_name = self._html_search_regex( + r'<h1[^>]+class="unDis">([^<]+)</h1>', webpage, 'chart name') + + chart_desc = self._html_search_regex( + r'<p[^>]+class="tabDef">(\d{4}第\d{2}æ)</p>', webpage, 'chart desc') + + entries = [ + self.url_result(song_url, 'Kuwo') for song_url in re.findall( + r'<a[^>]+href="(http://www\.kuwo\.cn/yinyue/\d+)/"', webpage) + ] + return self.playlist_result(entries, chart_id, chart_name, chart_desc) + + +class KuwoSingerIE(InfoExtractor): + IE_NAME = 'kuwo:singer' + IE_DESC = 'é ·æé³ä¹ - ææ' + _VALID_URL = r'http://www\.kuwo\.cn/mingxing/(?P<id>[^/]+)' + _TESTS = [{ + 'url': 'http://www.kuwo.cn/mingxing/bruno+mars/', + 'info_dict': { + 'id': 'bruno+mars', + 'title': 'Bruno Mars', + }, + 'playlist_count': 10, + }, { + 'url': 'http://www.kuwo.cn/mingxing/Ali/music.htm', + 'info_dict': { + 'id': 'Ali', + 'title': 'Ali', + }, + 'playlist_mincount': 95, + }] + + def _real_extract(self, url): + singer_id = self._match_id(url) + webpage = self._download_webpage( + url, singer_id, note='Download singer info', + errnote='Unable to get singer info') + + singer_name = self._html_search_regex( + r'<div class="title clearfix">\s*<h1>([^<]+)<span', webpage, 'singer name' + ) + + entries = [] + first_page_only = False if re.search(r'/music(?:_\d+)?\.htm', url) else True + for page_num in itertools.count(1): + webpage = self._download_webpage( + 'http://www.kuwo.cn/mingxing/%s/music_%d.htm' % (singer_id, page_num), + singer_id, note='Download song list page #%d' % page_num, + errnote='Unable to get song list page #%d' % page_num) + + entries.extend([ + self.url_result(song_url, 'Kuwo') for song_url in re.findall( + r'<p[^>]+class="m_name"><a[^>]+href="(http://www\.kuwo\.cn/yinyue/\d+)/', + webpage) + ][:10 if first_page_only else None]) + + if first_page_only or not re.search(r'<a[^>]+href="[^"]+">ä¸ä¸é¡µ</a>', webpage): + break + + return self.playlist_result(entries, singer_id, singer_name) + + +class KuwoCategoryIE(InfoExtractor): + IE_NAME = 'kuwo:category' + IE_DESC = 'é ·æé³ä¹ - åç±»' + _VALID_URL = r'http://yinyue\.kuwo\.cn/yy/cinfo_(?P<id>\d+?).htm' + _TEST = { + 'url': 'http://yinyue.kuwo.cn/yy/cinfo_86375.htm', + 'info_dict': { + 'id': '86375', + 'title': 'å «å年代精é', + 'description': 'è¿äºé½æ¯å±äºå «å年代çåå¿ï¼', + }, + 'playlist_count': 30, + } + + def _real_extract(self, url): + category_id = self._match_id(url) + webpage = self._download_webpage( + url, category_id, note='Download category info', + errnote='Unable to get category info') + + category_name = self._html_search_regex( + r'<h1[^>]+title="([^<>]+?)">[^<>]+?</h1>', webpage, 'category name') + + category_desc = remove_start( + get_element_by_id('intro', webpage).strip(), + '%sç®ä»ï¼' % category_name) + + jsonm = self._parse_json(self._html_search_regex( + r'var\s+jsonm\s*=\s*([^;]+);', webpage, 'category songs'), category_id) + + entries = [ + self.url_result('http://www.kuwo.cn/yinyue/%s/' % song['musicrid'], 'Kuwo') + for song in jsonm['musiclist'] + ] + return self.playlist_result(entries, category_id, category_name, category_desc) + + +class KuwoMvIE(KuwoBaseIE): + IE_NAME = 'kuwo:mv' + IE_DESC = 'é ·æé³ä¹ - MV' + _VALID_URL = r'http://www\.kuwo\.cn/mv/(?P<id>\d+?)/' + _TEST = { + 'url': 'http://www.kuwo.cn/mv/6480076/', + 'info_dict': { + 'id': '6480076', + 'ext': 'mkv', + 'title': 'æ们家MV', + 'creator': '2PM', + }, + } + _FORMATS = KuwoBaseIE._FORMATS + [ + {'format': 'mkv', 'ext': 'mkv', 'preference': 250}, + {'format': 'mp4', 'ext': 'mp4', 'preference': 200}, + ] + + def _real_extract(self, url): + song_id = self._match_id(url) + webpage = self._download_webpage( + url, song_id, note='Download mv detail info: %s' % song_id, + errnote='Unable to get mv detail info: %s' % song_id) + + mobj = re.search( + r'<h1[^>]+title="(?P<song>[^"]+)">[^<]+<span[^>]+title="(?P<singer>[^"]+)"', + webpage) + if mobj: + song_name = mobj.group('song') + singer_name = mobj.group('singer') + else: + raise ExtractorError('Unable to find song or singer names') + + formats = self._get_formats(song_id) + + return { + 'id': song_id, + 'title': song_name, + 'creator': singer_name, + 'formats': formats, + } diff --git a/youtube_dl/extractor/letv.py b/youtube_dl/extractor/letv.py index da896ca..ba2ae80 100644 --- a/youtube_dl/extractor/letv.py +++ b/youtube_dl/extractor/letv.py @@ -19,6 +19,7 @@ from ..utils import ( class LetvIE(InfoExtractor): + IE_DESC = 'ä¹è§ç½' _VALID_URL = r'http://www\.letv\.com/ptv/vplay/(?P<id>\d+).html' _TESTS = [{ diff --git a/youtube_dl/extractor/lifenews.py b/youtube_dl/extractor/lifenews.py index 42cb6e3..f8cbca7 100644 --- a/youtube_dl/extractor/lifenews.py +++ b/youtube_dl/extractor/lifenews.py @@ -8,6 +8,7 @@ from ..compat import compat_urlparse from ..utils import ( determine_ext, int_or_none, + remove_end, unified_strdate, ExtractorError, ) @@ -39,7 +40,6 @@ class LifeNewsIE(InfoExtractor): 'title': 'РСеÑи поÑвилоÑÑ Ð²Ð¸Ð´ÐµÐ¾ Ð·Ð°Ñ Ð²Ð°Ñа «ÐÑавÑм ÑекÑоÑом» ÐºÐ¾Ð»Ñ Ð¾Ð·Ð½ÑÑ Ð¿Ð¾Ð»ÐµÐ¹ ', 'description': 'ÐиÑели двÑÑ Ð¿Ð¾Ñелков ÐнепÑопеÑÑовÑкой облаÑÑи не пÑоÑÑили Ñадикалам ÑгÑÐ¾Ð·Ñ Ð»Ð¸ÑÐµÐ½Ð¸Ñ Ð¿Ð»Ð¾Ð´Ð¾ÑоднÑÑ Ð·ÐµÐ¼ÐµÐ»Ñ Ð¸ поÑли в лобовÑÑ. ', 'upload_date': '20150402', - 'uploader': 'embed.life.ru', } }, { 'url': 'http://lifenews.ru/news/153461', @@ -50,7 +50,6 @@ class LifeNewsIE(InfoExtractor): 'title': 'Ð ÐоÑкве ÑпаÑли поÑеÑÑвÑегоÑÑ Ð¼ÐµÐ´Ð²ÐµÐ¶Ð¾Ð½ÐºÐ°, коÑоÑÑй ÑпÑÑÑалÑÑ Ð½Ð° деÑеве', 'description': 'ÐаленÑкий Ñ Ð¸Ñник не Ñмог найÑи доÑÐ¾Ð³Ñ Ð´Ð¾Ð¼Ð¾Ð¹ и обÑел вÑеменное ÑбежиÑе на Ñополе недалеко Ð¾Ñ Ð¶Ð¸Ð»Ð¾Ð³Ð¾ маÑÑива, пока его не наÑла ÑоÑедÑÐºÐ°Ñ Ñобака.', 'upload_date': '20150505', - 'uploader': 'embed.life.ru', } }, { 'url': 'http://lifenews.ru/video/13035', @@ -72,20 +71,20 @@ class LifeNewsIE(InfoExtractor): if not videos and not iframe_link: raise ExtractorError('No media links available for %s' % video_id) - title = self._og_search_title(webpage) - TITLE_SUFFIX = ' - ÐеÑвÑй по ÑÑоÑнÑм новоÑÑÑм â LIFE | NEWS' - if title.endswith(TITLE_SUFFIX): - title = title[:-len(TITLE_SUFFIX)] + title = remove_end( + self._og_search_title(webpage), + ' - ÐеÑвÑй по ÑÑоÑнÑм новоÑÑÑм â LIFE | NEWS') description = self._og_search_description(webpage) view_count = self._html_search_regex( r'<div class=\'views\'>\s*(\d+)\s*</div>', webpage, 'view count', fatal=False) comment_count = self._html_search_regex( - r'<div class=\'comments\'>\s*<span class=\'counter\'>\s*(\d+)\s*</span>', webpage, 'comment count', fatal=False) + r'=\'commentCount\'[^>]*>\s*(\d+)\s*<', + webpage, 'comment count', fatal=False) upload_date = self._html_search_regex( - r'<time datetime=\'([^\']+)\'>', webpage, 'upload date', fatal=False) + r'<time[^>]*datetime=\'([^\']+)\'', webpage, 'upload date', fatal=False) if upload_date is not None: upload_date = unified_strdate(upload_date) diff --git a/youtube_dl/extractor/liveleak.py b/youtube_dl/extractor/liveleak.py index 3582206..857edfd 100644 --- a/youtube_dl/extractor/liveleak.py +++ b/youtube_dl/extractor/liveleak.py @@ -40,6 +40,17 @@ class LiveLeakIE(InfoExtractor): 'title': 'Man is Fatally Struck by Reckless Car While Packing up a Moving Truck', 'age_limit': 18, } + }, { + # Covers https://github.com/rg3/youtube-dl/pull/5983 + 'url': 'http://www.liveleak.com/view?i=801_1409392012', + 'md5': '0b3bec2d888c20728ca2ad3642f0ef15', + 'info_dict': { + 'id': '801_1409392012', + 'ext': 'mp4', + 'description': "Happened on 27.7.2014. \r\nAt 0:53 you can see people still swimming at near beach.", + 'uploader': 'bony333', + 'title': 'Crazy Hungarian tourist films close call waterspout in Croatia' + } }] def _real_extract(self, url): @@ -85,7 +96,10 @@ class LiveLeakIE(InfoExtractor): 'url': s['file'], } for i, s in enumerate(sources)] for i, s in enumerate(sources): - orig_url = s['file'].replace('.h264_base.mp4', '') + # Removing '.h264_*.mp4' gives the raw video, which is essentially + # the same video without the LiveLeak logo at the top (see + # https://github.com/rg3/youtube-dl/pull/4768) + orig_url = re.sub(r'\.h264_.+?\.mp4', '', s['file']) if s['file'] != orig_url: formats.append({ 'format_id': 'original-%s' % i, diff --git a/youtube_dl/extractor/lynda.py b/youtube_dl/extractor/lynda.py index cfd3b14..a00f6e5 100644 --- a/youtube_dl/extractor/lynda.py +++ b/youtube_dl/extractor/lynda.py @@ -30,13 +30,13 @@ class LyndaBaseIE(InfoExtractor): return login_form = { - 'username': username, - 'password': password, + 'username': username.encode('utf-8'), + 'password': password.encode('utf-8'), 'remember': 'false', 'stayPut': 'false' } request = compat_urllib_request.Request( - self._LOGIN_URL, compat_urllib_parse.urlencode(login_form)) + self._LOGIN_URL, compat_urllib_parse.urlencode(login_form).encode('utf-8')) login_page = self._download_webpage( request, None, 'Logging in as %s' % username) @@ -65,7 +65,7 @@ class LyndaBaseIE(InfoExtractor): 'stayPut': 'false', } request = compat_urllib_request.Request( - self._LOGIN_URL, compat_urllib_parse.urlencode(confirm_form)) + self._LOGIN_URL, compat_urllib_parse.urlencode(confirm_form).encode('utf-8')) login_page = self._download_webpage( request, None, 'Confirming log in and log out from another device') diff --git a/youtube_dl/extractor/malemotion.py b/youtube_dl/extractor/malemotion.py index 0b85a59..92511a6 100644 --- a/youtube_dl/extractor/malemotion.py +++ b/youtube_dl/extractor/malemotion.py @@ -2,9 +2,7 @@ from __future__ import unicode_literals from .common import InfoExtractor -from ..compat import ( - compat_urllib_parse, -) +from ..compat import compat_urllib_parse_unquote class MalemotionIE(InfoExtractor): @@ -24,7 +22,7 @@ class MalemotionIE(InfoExtractor): video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) - video_url = compat_urllib_parse.unquote(self._search_regex( + video_url = compat_urllib_parse_unquote(self._search_regex( r'<source type="video/mp4" src="(.+?)"', webpage, 'video URL')) video_title = self._html_search_regex( r'<title>(.*?)</title', webpage, 'title') diff --git a/youtube_dl/extractor/metacafe.py b/youtube_dl/extractor/metacafe.py index 8bc333b..6e2e73a 100644 --- a/youtube_dl/extractor/metacafe.py +++ b/youtube_dl/extractor/metacafe.py @@ -6,6 +6,7 @@ from .common import InfoExtractor from ..compat import ( compat_parse_qs, compat_urllib_parse, + compat_urllib_parse_unquote, compat_urllib_request, ) from ..utils import ( @@ -155,7 +156,7 @@ class MetacafeIE(InfoExtractor): video_url = None mobj = re.search(r'(?m)&mediaURL=([^&]+)', webpage) if mobj is not None: - mediaURL = compat_urllib_parse.unquote(mobj.group(1)) + mediaURL = compat_urllib_parse_unquote(mobj.group(1)) video_ext = mediaURL[-3:] # Extract gdaKey if available diff --git a/youtube_dl/extractor/mitele.py b/youtube_dl/extractor/mitele.py index 7091f33..852d722 100644 --- a/youtube_dl/extractor/mitele.py +++ b/youtube_dl/extractor/mitele.py @@ -5,6 +5,7 @@ import json from .common import InfoExtractor from ..compat import ( compat_urllib_parse, + compat_urllib_parse_unquote, compat_urlparse, ) from ..utils import ( @@ -48,7 +49,7 @@ class MiTeleIE(InfoExtractor): domain = 'http://' + domain info_url = compat_urlparse.urljoin( domain, - compat_urllib_parse.unquote(embed_data['flashvars']['host']) + compat_urllib_parse_unquote(embed_data['flashvars']['host']) ) info_el = self._download_xml(info_url, episode).find('./video/info') diff --git a/youtube_dl/extractor/mixcloud.py b/youtube_dl/extractor/mixcloud.py index 425a4cc..d47aece 100644 --- a/youtube_dl/extractor/mixcloud.py +++ b/youtube_dl/extractor/mixcloud.py @@ -3,9 +3,7 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import ( - compat_urllib_parse, -) +from ..compat import compat_urllib_parse_unquote from ..utils import ( ExtractorError, HEADRequest, @@ -60,7 +58,7 @@ class MixcloudIE(InfoExtractor): mobj = re.match(self._VALID_URL, url) uploader = mobj.group(1) cloudcast_name = mobj.group(2) - track_id = compat_urllib_parse.unquote('-'.join((uploader, cloudcast_name))) + track_id = compat_urllib_parse_unquote('-'.join((uploader, cloudcast_name))) webpage = self._download_webpage(url, track_id) diff --git a/youtube_dl/extractor/mofosex.py b/youtube_dl/extractor/mofosex.py index 2cec12d..9bf99a5 100644 --- a/youtube_dl/extractor/mofosex.py +++ b/youtube_dl/extractor/mofosex.py @@ -5,9 +5,9 @@ import re from .common import InfoExtractor from ..compat import ( + compat_urllib_parse_unquote, compat_urllib_parse_urlparse, compat_urllib_request, - compat_urllib_parse, ) @@ -34,7 +34,7 @@ class MofosexIE(InfoExtractor): webpage = self._download_webpage(req, video_id) video_title = self._html_search_regex(r'<h1>(.+?)<', webpage, 'title') - video_url = compat_urllib_parse.unquote(self._html_search_regex(r'flashvars.video_url = \'([^\']+)', webpage, 'video_url')) + video_url = compat_urllib_parse_unquote(self._html_search_regex(r'flashvars.video_url = \'([^\']+)', webpage, 'video_url')) path = compat_urllib_parse_urlparse(video_url).path extension = os.path.splitext(path)[1][1:] format = path.split('/')[5].split('_')[:2] diff --git a/youtube_dl/extractor/myspass.py b/youtube_dl/extractor/myspass.py index 5b9b9fb..4557a2b 100644 --- a/youtube_dl/extractor/myspass.py +++ b/youtube_dl/extractor/myspass.py @@ -35,7 +35,8 @@ class MySpassIE(InfoExtractor): # get metadata metadata_url = META_DATA_URL_TEMPLATE % video_id - metadata = self._download_xml(metadata_url, video_id) + metadata = self._download_xml( + metadata_url, video_id, transform_source=lambda s: s.strip()) # extract values from metadata url_flv_el = metadata.find('url_flv') diff --git a/youtube_dl/extractor/myvi.py b/youtube_dl/extractor/myvi.py new file mode 100644 index 0000000..4c65be1 --- /dev/null +++ b/youtube_dl/extractor/myvi.py @@ -0,0 +1,60 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .vimple import SprutoBaseIE + + +class MyviIE(SprutoBaseIE): + _VALID_URL = r'''(?x) + https?:// + myvi\.(?:ru/player|tv)/ + (?: + (?: + embed/html| + flash| + api/Video/Get + )/| + content/preloader\.swf\?.*\bid= + ) + (?P<id>[\da-zA-Z_-]+) + ''' + _TESTS = [{ + 'url': 'http://myvi.ru/player/embed/html/oOy4euHA6LVwNNAjhD9_Jq5Ha2Qf0rtVMVFMAZav8wObeRTZaCATzucDQIDph8hQU0', + 'md5': '571bbdfba9f9ed229dc6d34cc0f335bf', + 'info_dict': { + 'id': 'f16b2bbd-cde8-481c-a981-7cd48605df43', + 'ext': 'mp4', + 'title': 'Ñ Ð¾Ð·Ñин жизни', + 'thumbnail': 're:^https?://.*\.jpg$', + 'duration': 25, + }, + }, { + 'url': 'http://myvi.ru/player/content/preloader.swf?id=oOy4euHA6LVwNNAjhD9_Jq5Ha2Qf0rtVMVFMAZav8wOYf1WFpPfc_bWTKGVf_Zafr0', + 'only_matching': True, + }, { + 'url': 'http://myvi.ru/player/api/Video/Get/oOy4euHA6LVwNNAjhD9_Jq5Ha2Qf0rtVMVFMAZav8wObeRTZaCATzucDQIDph8hQU0', + 'only_matching': True, + }, { + 'url': 'http://myvi.tv/embed/html/oTGTNWdyz4Zwy_u1nraolwZ1odenTd9WkTnRfIL9y8VOgHYqOHApE575x4_xxS9Vn0?ap=0', + 'only_matching': True, + }, { + 'url': 'http://myvi.ru/player/flash/ocp2qZrHI-eZnHKQBK4cZV60hslH8LALnk0uBfKsB-Q4WnY26SeGoYPi8HWHxu0O30', + 'only_matching': True, + }] + + @classmethod + def _extract_url(cls, webpage): + mobj = re.search( + r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//myvi\.(?:ru/player|tv)/(?:embed/html|flash)/[^"]+)\1', webpage) + if mobj: + return mobj.group('url') + + def _real_extract(self, url): + video_id = self._match_id(url) + + spruto = self._download_json( + 'http://myvi.ru/player/api/Video/Get/%s?sig' % video_id, video_id)['sprutoData'] + + return self._extract_spruto(spruto, video_id) diff --git a/youtube_dl/extractor/myvideo.py b/youtube_dl/extractor/myvideo.py index 5e754fc..c96f472 100644 --- a/youtube_dl/extractor/myvideo.py +++ b/youtube_dl/extractor/myvideo.py @@ -10,6 +10,7 @@ from .common import InfoExtractor from ..compat import ( compat_ord, compat_urllib_parse, + compat_urllib_parse_unquote, compat_urllib_request, ) from ..utils import ( @@ -107,7 +108,7 @@ class MyVideoIE(InfoExtractor): if not a == '_encxml': params[a] = b else: - encxml = compat_urllib_parse.unquote(b) + encxml = compat_urllib_parse_unquote(b) if not params.get('domain'): params['domain'] = 'www.myvideo.de' xmldata_url = '%s?%s' % (encxml, compat_urllib_parse.urlencode(params)) @@ -135,7 +136,7 @@ class MyVideoIE(InfoExtractor): video_url = None mobj = re.search('connectionurl=\'(.*?)\'', dec_data) if mobj: - video_url = compat_urllib_parse.unquote(mobj.group(1)) + video_url = compat_urllib_parse_unquote(mobj.group(1)) if 'myvideo2flash' in video_url: self.report_warning( 'Rewriting URL to use unencrypted rtmp:// ...', @@ -147,10 +148,10 @@ class MyVideoIE(InfoExtractor): mobj = re.search('path=\'(http.*?)\' source=\'(.*?)\'', dec_data) if mobj is None: raise ExtractorError('unable to extract url') - video_url = compat_urllib_parse.unquote(mobj.group(1)) + compat_urllib_parse.unquote(mobj.group(2)) + video_url = compat_urllib_parse_unquote(mobj.group(1)) + compat_urllib_parse_unquote(mobj.group(2)) video_file = self._search_regex('source=\'(.*?)\'', dec_data, 'video file') - video_file = compat_urllib_parse.unquote(video_file) + video_file = compat_urllib_parse_unquote(video_file) if not video_file.endswith('f4m'): ppath, prefix = video_file.split('.') @@ -159,7 +160,7 @@ class MyVideoIE(InfoExtractor): video_playpath = '' video_swfobj = self._search_regex('swfobject.embedSWF\(\'(.+?)\'', webpage, 'swfobj') - video_swfobj = compat_urllib_parse.unquote(video_swfobj) + video_swfobj = compat_urllib_parse_unquote(video_swfobj) video_title = self._html_search_regex("<h1(?: class='globalHd')?>(.*?)</h1>", webpage, 'title') diff --git a/youtube_dl/extractor/nationalgeographic.py b/youtube_dl/extractor/nationalgeographic.py index c18640c..f793b72 100644 --- a/youtube_dl/extractor/nationalgeographic.py +++ b/youtube_dl/extractor/nationalgeographic.py @@ -25,8 +25,11 @@ class NationalGeographicIE(InfoExtractor): name = url_basename(url) webpage = self._download_webpage(url, name) - feed_url = self._search_regex(r'data-feed-url="([^"]+)"', webpage, 'feed url') - guid = self._search_regex(r'data-video-guid="([^"]+)"', webpage, 'guid') + feed_url = self._search_regex( + r'data-feed-url="([^"]+)"', webpage, 'feed url') + guid = self._search_regex( + r'id="(?:videoPlayer|player-container)"[^>]+data-guid="([^"]+)"', + webpage, 'guid') feed = self._download_xml('%s?byGuid=%s' % (feed_url, guid), name) content = feed.find('.//{http://search.yahoo.com/mrss/}content') diff --git a/youtube_dl/extractor/neteasemusic.py b/youtube_dl/extractor/neteasemusic.py new file mode 100644 index 0000000..a8e0a64 --- /dev/null +++ b/youtube_dl/extractor/neteasemusic.py @@ -0,0 +1,459 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from hashlib import md5 +from base64 import b64encode +from datetime import datetime +import re + +from .common import InfoExtractor +from ..compat import ( + compat_urllib_request, + compat_urllib_parse, + compat_str, + compat_itertools_count, +) + + +class NetEaseMusicBaseIE(InfoExtractor): + _FORMATS = ['bMusic', 'mMusic', 'hMusic'] + _NETEASE_SALT = '3go8&$8*3*3h0k(2)2' + _API_BASE = 'http://music.163.com/api/' + + @classmethod + def _encrypt(cls, dfsid): + salt_bytes = bytearray(cls._NETEASE_SALT.encode('utf-8')) + string_bytes = bytearray(compat_str(dfsid).encode('ascii')) + salt_len = len(salt_bytes) + for i in range(len(string_bytes)): + string_bytes[i] = string_bytes[i] ^ salt_bytes[i % salt_len] + m = md5() + m.update(bytes(string_bytes)) + result = b64encode(m.digest()).decode('ascii') + return result.replace('/', '_').replace('+', '-') + + @classmethod + def extract_formats(cls, info): + formats = [] + for song_format in cls._FORMATS: + details = info.get(song_format) + if not details: + continue + formats.append({ + 'url': 'http://m1.music.126.net/%s/%s.%s' % + (cls._encrypt(details['dfsId']), details['dfsId'], + details['extension']), + 'ext': details.get('extension'), + 'abr': details.get('bitrate', 0) / 1000, + 'format_id': song_format, + 'filesize': details.get('size'), + 'asr': details.get('sr') + }) + return formats + + @classmethod + def convert_milliseconds(cls, ms): + return int(round(ms / 1000.0)) + + def query_api(self, endpoint, video_id, note): + req = compat_urllib_request.Request('%s%s' % (self._API_BASE, endpoint)) + req.add_header('Referer', self._API_BASE) + return self._download_json(req, video_id, note) + + +class NetEaseMusicIE(NetEaseMusicBaseIE): + IE_NAME = 'netease:song' + IE_DESC = 'ç½æäºé³ä¹' + _VALID_URL = r'https?://music\.163\.com/(#/)?song\?id=(?P<id>[0-9]+)' + _TESTS = [{ + 'url': 'http://music.163.com/#/song?id=32102397', + 'md5': 'f2e97280e6345c74ba9d5677dd5dcb45', + 'info_dict': { + 'id': '32102397', + 'ext': 'mp3', + 'title': 'Bad Blood (feat. Kendrick Lamar)', + 'creator': 'Taylor Swift / Kendrick Lamar', + 'upload_date': '20150517', + 'timestamp': 1431878400, + 'description': 'md5:a10a54589c2860300d02e1de821eb2ef', + }, + }, { + 'note': 'No lyrics translation.', + 'url': 'http://music.163.com/#/song?id=29822014', + 'info_dict': { + 'id': '29822014', + 'ext': 'mp3', + 'title': 'å¬è§ä¸é¨ç声é³', + 'creator': 'å¨æ°ä¼¦', + 'upload_date': '20141225', + 'timestamp': 1419523200, + 'description': 'md5:a4d8d89f44656af206b7b2555c0bce6c', + }, + }, { + 'note': 'No lyrics.', + 'url': 'http://music.163.com/song?id=17241424', + 'info_dict': { + 'id': '17241424', + 'ext': 'mp3', + 'title': 'Opus 28', + 'creator': 'Dustin O\'Halloran', + 'upload_date': '20080211', + 'timestamp': 1202745600, + }, + }, { + 'note': 'Has translated name.', + 'url': 'http://music.163.com/#/song?id=22735043', + 'info_dict': { + 'id': '22735043', + 'ext': 'mp3', + 'title': 'ììì ë§í´ë´ (Genie)', + 'creator': 'å°å¥³æ¶ä»£', + 'description': 'md5:79d99cc560e4ca97e0c4d86800ee4184', + 'upload_date': '20100127', + 'timestamp': 1264608000, + 'alt_title': '说åºæ¿æå§(Genie)', + } + }] + + def _process_lyrics(self, lyrics_info): + original = lyrics_info.get('lrc', {}).get('lyric') + translated = lyrics_info.get('tlyric', {}).get('lyric') + + if not translated: + return original + + lyrics_expr = r'(\[[0-9]{2}:[0-9]{2}\.[0-9]{2,}\])([^\n]+)' + original_ts_texts = re.findall(lyrics_expr, original) + translation_ts_dict = dict( + (time_stamp, text) for time_stamp, text in re.findall(lyrics_expr, translated) + ) + lyrics = '\n'.join([ + '%s%s / %s' % (time_stamp, text, translation_ts_dict.get(time_stamp, '')) + for time_stamp, text in original_ts_texts + ]) + return lyrics + + def _real_extract(self, url): + song_id = self._match_id(url) + + params = { + 'id': song_id, + 'ids': '[%s]' % song_id + } + info = self.query_api( + 'song/detail?' + compat_urllib_parse.urlencode(params), + song_id, 'Downloading song info')['songs'][0] + + formats = self.extract_formats(info) + self._sort_formats(formats) + + lyrics_info = self.query_api( + 'song/lyric?id=%s&lv=-1&tv=-1' % song_id, + song_id, 'Downloading lyrics data') + lyrics = self._process_lyrics(lyrics_info) + + alt_title = None + if info.get('transNames'): + alt_title = '/'.join(info.get('transNames')) + + return { + 'id': song_id, + 'title': info['name'], + 'alt_title': alt_title, + 'creator': ' / '.join([artist['name'] for artist in info.get('artists', [])]), + 'timestamp': self.convert_milliseconds(info.get('album', {}).get('publishTime')), + 'thumbnail': info.get('album', {}).get('picUrl'), + 'duration': self.convert_milliseconds(info.get('duration', 0)), + 'description': lyrics, + 'formats': formats, + } + + +class NetEaseMusicAlbumIE(NetEaseMusicBaseIE): + IE_NAME = 'netease:album' + IE_DESC = 'ç½æäºé³ä¹ - ä¸è¾' + _VALID_URL = r'https?://music\.163\.com/(#/)?album\?id=(?P<id>[0-9]+)' + _TEST = { + 'url': 'http://music.163.com/#/album?id=220780', + 'info_dict': { + 'id': '220780', + 'title': 'B\'day', + }, + 'playlist_count': 23, + } + + def _real_extract(self, url): + album_id = self._match_id(url) + + info = self.query_api( + 'album/%s?id=%s' % (album_id, album_id), + album_id, 'Downloading album data')['album'] + + name = info['name'] + desc = info.get('description') + entries = [ + self.url_result('http://music.163.com/#/song?id=%s' % song['id'], + 'NetEaseMusic', song['id']) + for song in info['songs'] + ] + return self.playlist_result(entries, album_id, name, desc) + + +class NetEaseMusicSingerIE(NetEaseMusicBaseIE): + IE_NAME = 'netease:singer' + IE_DESC = 'ç½æäºé³ä¹ - ææ' + _VALID_URL = r'https?://music\.163\.com/(#/)?artist\?id=(?P<id>[0-9]+)' + _TESTS = [{ + 'note': 'Singer has aliases.', + 'url': 'http://music.163.com/#/artist?id=10559', + 'info_dict': { + 'id': '10559', + 'title': 'å¼ æ 妹 - aMEI;é¿å¯ç¹', + }, + 'playlist_count': 50, + }, { + 'note': 'Singer has translated name.', + 'url': 'http://music.163.com/#/artist?id=124098', + 'info_dict': { + 'id': '124098', + 'title': 'ææåº - ì´ì¹ê¸°', + }, + 'playlist_count': 50, + }] + + def _real_extract(self, url): + singer_id = self._match_id(url) + + info = self.query_api( + 'artist/%s?id=%s' % (singer_id, singer_id), + singer_id, 'Downloading singer data') + + name = info['artist']['name'] + if info['artist']['trans']: + name = '%s - %s' % (name, info['artist']['trans']) + if info['artist']['alias']: + name = '%s - %s' % (name, ';'.join(info['artist']['alias'])) + + entries = [ + self.url_result('http://music.163.com/#/song?id=%s' % song['id'], + 'NetEaseMusic', song['id']) + for song in info['hotSongs'] + ] + return self.playlist_result(entries, singer_id, name) + + +class NetEaseMusicListIE(NetEaseMusicBaseIE): + IE_NAME = 'netease:playlist' + IE_DESC = 'ç½æäºé³ä¹ - æå' + _VALID_URL = r'https?://music\.163\.com/(#/)?(playlist|discover/toplist)\?id=(?P<id>[0-9]+)' + _TESTS = [{ + 'url': 'http://music.163.com/#/playlist?id=79177352', + 'info_dict': { + 'id': '79177352', + 'title': 'Billboard 2007 Top 100', + 'description': 'md5:12fd0819cab2965b9583ace0f8b7b022' + }, + 'playlist_count': 99, + }, { + 'note': 'Toplist/Charts sample', + 'url': 'http://music.163.com/#/discover/toplist?id=3733003', + 'info_dict': { + 'id': '3733003', + 'title': 're:é©å½Melonæè¡æ¦å¨æ¦ [0-9]{4}-[0-9]{2}-[0-9]{2}', + 'description': 'md5:73ec782a612711cadc7872d9c1e134fc', + }, + 'playlist_count': 50, + }] + + def _real_extract(self, url): + list_id = self._match_id(url) + + info = self.query_api( + 'playlist/detail?id=%s&lv=-1&tv=-1' % list_id, + list_id, 'Downloading playlist data')['result'] + + name = info['name'] + desc = info.get('description') + + if info.get('specialType') == 10: # is a chart/toplist + datestamp = datetime.fromtimestamp( + self.convert_milliseconds(info['updateTime'])).strftime('%Y-%m-%d') + name = '%s %s' % (name, datestamp) + + entries = [ + self.url_result('http://music.163.com/#/song?id=%s' % song['id'], + 'NetEaseMusic', song['id']) + for song in info['tracks'] + ] + return self.playlist_result(entries, list_id, name, desc) + + +class NetEaseMusicMvIE(NetEaseMusicBaseIE): + IE_NAME = 'netease:mv' + IE_DESC = 'ç½æäºé³ä¹ - MV' + _VALID_URL = r'https?://music\.163\.com/(#/)?mv\?id=(?P<id>[0-9]+)' + _TEST = { + 'url': 'http://music.163.com/#/mv?id=415350', + 'info_dict': { + 'id': '415350', + 'ext': 'mp4', + 'title': 'ì´ë´ê±°ë©´ ê·¸ë¬ì§ë§ì§', + 'description': 'ç½é è¨èªä½æ²å±çèç±æ ', + 'creator': 'ç½é è¨', + 'upload_date': '20150520', + }, + } + + def _real_extract(self, url): + mv_id = self._match_id(url) + + info = self.query_api( + 'mv/detail?id=%s&type=mp4' % mv_id, + mv_id, 'Downloading mv info')['data'] + + formats = [ + {'url': mv_url, 'ext': 'mp4', 'format_id': '%sp' % brs, 'height': int(brs)} + for brs, mv_url in info['brs'].items() + ] + self._sort_formats(formats) + + return { + 'id': mv_id, + 'title': info['name'], + 'description': info.get('desc') or info.get('briefDesc'), + 'creator': info['artistName'], + 'upload_date': info['publishTime'].replace('-', ''), + 'formats': formats, + 'thumbnail': info.get('cover'), + 'duration': self.convert_milliseconds(info.get('duration', 0)), + } + + +class NetEaseMusicProgramIE(NetEaseMusicBaseIE): + IE_NAME = 'netease:program' + IE_DESC = 'ç½æäºé³ä¹ - çµå°èç®' + _VALID_URL = r'https?://music\.163\.com/(#/?)program\?id=(?P<id>[0-9]+)' + _TESTS = [{ + 'url': 'http://music.163.com/#/program?id=10109055', + 'info_dict': { + 'id': '10109055', + 'ext': 'mp3', + 'title': 'ä¸ä¸¹è¶³çèåçæ äº', + 'description': 'å马æé 人ç足ç梦 ...', + 'creator': '大è¯è¥¿è', + 'timestamp': 1434179342, + 'upload_date': '20150613', + 'duration': 900, + }, + }, { + 'note': 'This program has accompanying songs.', + 'url': 'http://music.163.com/#/program?id=10141022', + 'info_dict': { + 'id': '10141022', + 'title': '25å²ï¼ä½ æ¯èªå¨å¦é£çå°å¹´<27°C>', + 'description': 'md5:8d594db46cc3e6509107ede70a4aaa3b', + }, + 'playlist_count': 4, + }, { + 'note': 'This program has accompanying songs.', + 'url': 'http://music.163.com/#/program?id=10141022', + 'info_dict': { + 'id': '10141022', + 'ext': 'mp3', + 'title': '25å²ï¼ä½ æ¯èªå¨å¦é£çå°å¹´<27°C>', + 'description': 'md5:8d594db46cc3e6509107ede70a4aaa3b', + 'timestamp': 1434450841, + 'upload_date': '20150616', + }, + 'params': { + 'noplaylist': True + } + }] + + def _real_extract(self, url): + program_id = self._match_id(url) + + info = self.query_api( + 'dj/program/detail?id=%s' % program_id, + program_id, 'Downloading program info')['program'] + + name = info['name'] + description = info['description'] + + if not info['songs'] or self._downloader.params.get('noplaylist'): + if info['songs']: + self.to_screen( + 'Downloading just the main audio %s because of --no-playlist' + % info['mainSong']['id']) + + formats = self.extract_formats(info['mainSong']) + self._sort_formats(formats) + + return { + 'id': program_id, + 'title': name, + 'description': description, + 'creator': info['dj']['brand'], + 'timestamp': self.convert_milliseconds(info['createTime']), + 'thumbnail': info['coverUrl'], + 'duration': self.convert_milliseconds(info.get('duration', 0)), + 'formats': formats, + } + + self.to_screen( + 'Downloading playlist %s - add --no-playlist to just download the main audio %s' + % (program_id, info['mainSong']['id'])) + + song_ids = [info['mainSong']['id']] + song_ids.extend([song['id'] for song in info['songs']]) + entries = [ + self.url_result('http://music.163.com/#/song?id=%s' % song_id, + 'NetEaseMusic', song_id) + for song_id in song_ids + ] + return self.playlist_result(entries, program_id, name, description) + + +class NetEaseMusicDjRadioIE(NetEaseMusicBaseIE): + IE_NAME = 'netease:djradio' + IE_DESC = 'ç½æäºé³ä¹ - çµå°' + _VALID_URL = r'https?://music\.163\.com/(#/)?djradio\?id=(?P<id>[0-9]+)' + _TEST = { + 'url': 'http://music.163.com/#/djradio?id=42', + 'info_dict': { + 'id': '42', + 'title': '声é³è延', + 'description': 'md5:766220985cbd16fdd552f64c578a6b15' + }, + 'playlist_mincount': 40, + } + _PAGE_SIZE = 1000 + + def _real_extract(self, url): + dj_id = self._match_id(url) + + name = None + desc = None + entries = [] + for offset in compat_itertools_count(start=0, step=self._PAGE_SIZE): + info = self.query_api( + 'dj/program/byradio?asc=false&limit=%d&radioId=%s&offset=%d' + % (self._PAGE_SIZE, dj_id, offset), + dj_id, 'Downloading dj programs - %d' % offset) + + entries.extend([ + self.url_result( + 'http://music.163.com/#/program?id=%s' % program['id'], + 'NetEaseMusicProgram', program['id']) + for program in info['programs'] + ]) + + if name is None: + radio = info['programs'][0]['radio'] + name = radio['name'] + desc = radio['desc'] + + if not info['more']: + break + + return self.playlist_result(entries, dj_id, name, desc) diff --git a/youtube_dl/extractor/newstube.py b/youtube_dl/extractor/newstube.py index 85fcad0..5a9e73c 100644 --- a/youtube_dl/extractor/newstube.py +++ b/youtube_dl/extractor/newstube.py @@ -31,7 +31,7 @@ class NewstubeIE(InfoExtractor): page = self._download_webpage(url, video_id, 'Downloading page') video_guid = self._html_search_regex( - r'<meta property="og:video" content="https?://(?:www\.)?newstube\.ru/freshplayer\.swf\?guid=(?P<guid>[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12})', + r'<meta property="og:video:url" content="https?://(?:www\.)?newstube\.ru/freshplayer\.swf\?guid=(?P<guid>[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12})', page, 'video GUID') player = self._download_xml( diff --git a/youtube_dl/extractor/nextmedia.py b/youtube_dl/extractor/nextmedia.py index d1b7cff..c10784f 100644 --- a/youtube_dl/extractor/nextmedia.py +++ b/youtube_dl/extractor/nextmedia.py @@ -6,6 +6,7 @@ from ..utils import parse_iso8601 class NextMediaIE(InfoExtractor): + IE_DESC = 'èææ¥å ±' _VALID_URL = r'http://hk.apple.nextmedia.com/[^/]+/[^/]+/(?P<date>\d+)/(?P<id>\d+)' _TESTS = [{ 'url': 'http://hk.apple.nextmedia.com/realtime/news/20141108/53109199', @@ -66,6 +67,7 @@ class NextMediaIE(InfoExtractor): class NextMediaActionNewsIE(NextMediaIE): + IE_DESC = 'èææ¥å ± - åæ°è' _VALID_URL = r'http://hk.dv.nextmedia.com/actionnews/[^/]+/(?P<date>\d+)/(?P<id>\d+)/\d+' _TESTS = [{ 'url': 'http://hk.dv.nextmedia.com/actionnews/hit/20150121/19009428/20061460', @@ -90,6 +92,7 @@ class NextMediaActionNewsIE(NextMediaIE): class AppleDailyIE(NextMediaIE): + IE_DESC = 'èºç£èææ¥å ±' _VALID_URL = r'http://(www|ent).appledaily.com.tw/(?:animation|appledaily|enews|realtimenews)/[^/]+/[^/]+/(?P<date>\d+)/(?P<id>\d+)(/.*)?' _TESTS = [{ 'url': 'http://ent.appledaily.com.tw/enews/article/entertainment/20150128/36354694', diff --git a/youtube_dl/extractor/nfl.py b/youtube_dl/extractor/nfl.py index 2684dd2..dc54634 100644 --- a/youtube_dl/extractor/nfl.py +++ b/youtube_dl/extractor/nfl.py @@ -19,7 +19,7 @@ class NFLIE(InfoExtractor): _VALID_URL = r'''(?x)https?:// (?P<host>(?:www\.)?(?:nfl\.com|.*?\.clubs\.nfl\.com))/ (?:.+?/)* - (?P<id>(?:\d[a-z]{2}\d{13}|\w{8}\-(?:\w{4}\-){3}\w{12}))''' + (?P<id>(?:[a-z0-9]{16}|\w{8}\-(?:\w{4}\-){3}\w{12}))''' _TESTS = [ { 'url': 'http://www.nfl.com/videos/nfl-game-highlights/0ap3000000398478/Week-3-Redskins-vs-Eagles-highlights', @@ -58,6 +58,10 @@ class NFLIE(InfoExtractor): 'upload_date': '20150202', }, }, + { + 'url': 'http://www.nfl.com/videos/nfl-network-top-ten/09000d5d810a6bd4/Top-10-Gutsiest-Performances-Jack-Youngblood', + 'only_matching': True, + } ] @staticmethod diff --git a/youtube_dl/extractor/niconico.py b/youtube_dl/extractor/niconico.py index 3cecebf..0f8aa5a 100644 --- a/youtube_dl/extractor/niconico.py +++ b/youtube_dl/extractor/niconico.py @@ -182,7 +182,6 @@ class NiconicoIE(InfoExtractor): extension = xpath_text(video_info, './/movie_type') if not extension: extension = determine_ext(video_real_url) - video_format = extension.upper() thumbnail = ( xpath_text(video_info, './/thumbnail_url') or @@ -241,7 +240,7 @@ class NiconicoIE(InfoExtractor): 'url': video_real_url, 'title': title, 'ext': extension, - 'format': video_format, + 'format_id': 'economy' if video_real_url.endswith('low') else 'normal', 'thumbnail': thumbnail, 'description': description, 'uploader': uploader, diff --git a/youtube_dl/extractor/noco.py b/youtube_dl/extractor/noco.py index 664dc81..a53e27b 100644 --- a/youtube_dl/extractor/noco.py +++ b/youtube_dl/extractor/noco.py @@ -166,6 +166,10 @@ class NocoIE(InfoExtractor): self._sort_formats(formats) timestamp = parse_iso8601(show.get('online_date_start_utc'), ' ') + + if timestamp is not None and timestamp < 0: + timestamp = None + uploader = show.get('partner_name') uploader_id = show.get('partner_key') duration = float_or_none(show.get('duration_ms'), 1000) @@ -191,7 +195,7 @@ class NocoIE(InfoExtractor): if episode_number: title += ' #' + compat_str(episode_number) if episode: - title += ' - ' + episode + title += ' - ' + compat_str(episode) description = show.get('show_resume') or show.get('family_resume') diff --git a/youtube_dl/extractor/nowtv.py b/youtube_dl/extractor/nowtv.py index 173e46c..0b5ff47 100644 --- a/youtube_dl/extractor/nowtv.py +++ b/youtube_dl/extractor/nowtv.py @@ -133,7 +133,7 @@ class NowTVIE(InfoExtractor): station = mobj.group('station') info = self._download_json( - 'https://api.nowtv.de/v3/movies/%s?fields=*,format,files' % display_id, + 'https://api.nowtv.de/v3/movies/%s?fields=id,title,free,geoblocked,articleLong,articleShort,broadcastStartDate,seoUrl,duration,format,files' % display_id, display_id) video_id = compat_str(info['id']) diff --git a/youtube_dl/extractor/npo.py b/youtube_dl/extractor/npo.py index 5d84485..0c2d02c 100644 --- a/youtube_dl/extractor/npo.py +++ b/youtube_dl/extractor/npo.py @@ -1,5 +1,7 @@ from __future__ import unicode_literals +import re + from .common import InfoExtractor from ..utils import ( fix_xml_ampersands, @@ -7,7 +9,6 @@ from ..utils import ( qualities, strip_jsonp, unified_strdate, - url_basename, ) @@ -16,13 +17,42 @@ class NPOBaseIE(InfoExtractor): token_page = self._download_webpage( 'http://ida.omroep.nl/npoplayer/i.js', video_id, note='Downloading token') - return self._search_regex( + token = self._search_regex( r'npoplayer\.token = "(.+?)"', token_page, 'token') + # Decryption algorithm extracted from http://npoplayer.omroep.nl/csjs/npoplayer-min.js + token_l = list(token) + first = second = None + for i in range(5, len(token_l) - 4): + if token_l[i].isdigit(): + if first is None: + first = i + elif second is None: + second = i + if first is None or second is None: + first = 12 + second = 13 + + token_l[first], token_l[second] = token_l[second], token_l[first] + + return ''.join(token_l) class NPOIE(NPOBaseIE): - IE_NAME = 'npo.nl' - _VALID_URL = r'https?://(?:www\.)?npo\.nl/(?!live|radio)[^/]+/[^/]+/(?P<id>[^/?]+)' + IE_NAME = 'npo' + IE_DESC = 'npo.nl and ntr.nl' + _VALID_URL = r'''(?x) + (?: + npo:| + https?:// + (?:www\.)? + (?: + npo\.nl/(?!live|radio)(?:[^/]+/){2}| + ntr\.nl/(?:[^/]+/){2,}| + omroepwnl\.nl/video/fragment/[^/]+__ + ) + ) + (?P<id>[^/?#]+) + ''' _TESTS = [ { @@ -42,7 +72,7 @@ class NPOIE(NPOBaseIE): 'info_dict': { 'id': 'VARA_101191800', 'ext': 'm4v', - 'title': 'De Mega Mike & Mega Thomas show', + 'title': 'De Mega Mike & Mega Thomas show: The best of.', 'description': 'md5:3b74c97fc9d6901d5a665aac0e5400f4', 'upload_date': '20090227', 'duration': 2400, @@ -54,8 +84,8 @@ class NPOIE(NPOBaseIE): 'info_dict': { 'id': 'VPWON_1169289', 'ext': 'm4v', - 'title': 'Tegenlicht', - 'description': 'md5:d6476bceb17a8c103c76c3b708f05dd1', + 'title': 'Tegenlicht: De toekomst komt uit Afrika', + 'description': 'md5:52cf4eefbc96fffcbdc06d024147abea', 'upload_date': '20130225', 'duration': 3000, }, @@ -84,6 +114,30 @@ class NPOIE(NPOBaseIE): 'title': 'Hoe gaat Europa verder na Parijs?', }, }, + { + 'url': 'http://www.ntr.nl/Aap-Poot-Pies/27/detail/Aap-poot-pies/VPWON_1233944#content', + 'md5': '01c6a2841675995da1f0cf776f03a9c3', + 'info_dict': { + 'id': 'VPWON_1233944', + 'ext': 'm4v', + 'title': 'Aap, poot, pies', + 'description': 'md5:c9c8005d1869ae65b858e82c01a91fde', + 'upload_date': '20150508', + 'duration': 599, + }, + }, + { + 'url': 'http://www.omroepwnl.nl/video/fragment/vandaag-de-dag-verkiezingen__POMS_WNL_853698', + 'md5': 'd30cd8417b8b9bca1fdff27428860d08', + 'info_dict': { + 'id': 'POW_00996502', + 'ext': 'm4v', + 'title': '''"Dit is wel een 'landslide'..."''', + 'description': 'md5:f8d66d537dfb641380226e31ca57b8e8', + 'upload_date': '20150508', + 'duration': 462, + }, + } ] def _real_extract(self, url): @@ -92,12 +146,24 @@ class NPOIE(NPOBaseIE): def _get_info(self, video_id): metadata = self._download_json( - 'http://e.omroep.nl/metadata/aflevering/%s' % video_id, + 'http://e.omroep.nl/metadata/%s' % video_id, video_id, # We have to remove the javascript callback transform_source=strip_jsonp, ) + # For some videos actual video id (prid) is different (e.g. for + # http://www.omroepwnl.nl/video/fragment/vandaag-de-dag-verkiezingen__POMS_WNL_853698 + # video id is POMS_WNL_853698 but prid is POW_00996502) + video_id = metadata.get('prid') or video_id + + # titel is too generic in some cases so utilize aflevering_titel as well + # when available (e.g. http://tegenlicht.vpro.nl/afleveringen/2014-2015/access-to-africa.html) + title = metadata['titel'] + sub_title = metadata.get('aflevering_titel') + if sub_title and sub_title != title: + title += ': %s' % sub_title + token = self._get_token(video_id) formats = [] @@ -170,8 +236,8 @@ class NPOIE(NPOBaseIE): return { 'id': video_id, - 'title': metadata['titel'], - 'description': metadata['info'], + 'title': title, + 'description': metadata.get('info'), 'thumbnail': metadata.get('images', [{'url': None}])[-1]['url'], 'upload_date': unified_strdate(metadata.get('gidsdatum')), 'duration': parse_duration(metadata.get('tijdsduur')), @@ -340,9 +406,8 @@ class NPORadioFragmentIE(InfoExtractor): } -class TegenlichtVproIE(NPOIE): - IE_NAME = 'tegenlicht.vpro.nl' - _VALID_URL = r'https?://tegenlicht\.vpro\.nl/afleveringen/.*?' +class VPROIE(NPOIE): + _VALID_URL = r'https?://(?:www\.)?(?:tegenlicht\.)?vpro\.nl/(?:[^/]+/){2,}(?P<id>[^/]+)\.html' _TESTS = [ { @@ -351,17 +416,72 @@ class TegenlichtVproIE(NPOIE): 'info_dict': { 'id': 'VPWON_1169289', 'ext': 'm4v', - 'title': 'Tegenlicht', - 'description': 'md5:d6476bceb17a8c103c76c3b708f05dd1', + 'title': 'De toekomst komt uit Afrika', + 'description': 'md5:52cf4eefbc96fffcbdc06d024147abea', 'upload_date': '20130225', }, }, + { + 'url': 'http://www.vpro.nl/programmas/2doc/2015/sergio-herman.html', + 'info_dict': { + 'id': 'sergio-herman', + 'title': 'Sergio Herman: Fucking perfect', + }, + 'playlist_count': 2, + }, + { + # playlist with youtube embed + 'url': 'http://www.vpro.nl/programmas/2doc/2015/education-education.html', + 'info_dict': { + 'id': 'education-education', + 'title': '2Doc', + }, + 'playlist_count': 2, + } ] def _real_extract(self, url): - name = url_basename(url) - webpage = self._download_webpage(url, name) - urn = self._html_search_meta('mediaurn', webpage) - info_page = self._download_json( - 'http://rs.vpro.nl/v2/api/media/%s.json' % urn, name) - return self._get_info(info_page['mid']) + playlist_id = self._match_id(url) + + webpage = self._download_webpage(url, playlist_id) + + entries = [ + self.url_result('npo:%s' % video_id if not video_id.startswith('http') else video_id) + for video_id in re.findall(r'data-media-id="([^"]+)"', webpage) + ] + + playlist_title = self._search_regex( + r'<title>\s*([^>]+?)\s*-\s*Teledoc\s*-\s*VPRO\s*</title>', + webpage, 'playlist title', default=None) or self._og_search_title(webpage) + + return self.playlist_result(entries, playlist_id, playlist_title) + + +class WNLIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?omroepwnl\.nl/video/detail/(?P<id>[^/]+)__\d+' + + _TEST = { + 'url': 'http://www.omroepwnl.nl/video/detail/vandaag-de-dag-6-mei__060515', + 'info_dict': { + 'id': 'vandaag-de-dag-6-mei', + 'title': 'Vandaag de Dag 6 mei', + }, + 'playlist_count': 4, + } + + def _real_extract(self, url): + playlist_id = self._match_id(url) + + webpage = self._download_webpage(url, playlist_id) + + entries = [ + self.url_result('npo:%s' % video_id, 'NPO') + for video_id, part in re.findall( + r'<a[^>]+href="([^"]+)"[^>]+class="js-mid"[^>]*>(Deel \d+)', webpage) + ] + + playlist_title = self._html_search_regex( + r'(?s)<h1[^>]+class="subject"[^>]*>(.+?)</h1>', + webpage, 'playlist title') + + return self.playlist_result(entries, playlist_id, playlist_title) diff --git a/youtube_dl/extractor/nrk.py b/youtube_dl/extractor/nrk.py index cc70c29..d066a96 100644 --- a/youtube_dl/extractor/nrk.py +++ b/youtube_dl/extractor/nrk.py @@ -13,7 +13,7 @@ from ..utils import ( class NRKIE(InfoExtractor): - _VALID_URL = r'(?:nrk:|http://(?:www\.)?nrk\.no/video/PS\*)(?P<id>\d+)' + _VALID_URL = r'(?:nrk:|https?://(?:www\.)?nrk\.no/video/PS\*)(?P<id>\d+)' _TESTS = [ { @@ -76,7 +76,7 @@ class NRKIE(InfoExtractor): class NRKPlaylistIE(InfoExtractor): - _VALID_URL = r'http://(?:www\.)?nrk\.no/(?!video)(?:[^/]+/)+(?P<id>[^/]+)' + _VALID_URL = r'https?://(?:www\.)?nrk\.no/(?!video)(?:[^/]+/)+(?P<id>[^/]+)' _TESTS = [{ 'url': 'http://www.nrk.no/troms/gjenopplev-den-historiske-solformorkelsen-1.12270763', @@ -116,11 +116,12 @@ class NRKPlaylistIE(InfoExtractor): class NRKTVIE(InfoExtractor): - _VALID_URL = r'(?P<baseurl>http://tv\.nrk(?:super)?\.no/)(?:serie/[^/]+|program)/(?P<id>[a-zA-Z]{4}\d{8})(?:/\d{2}-\d{2}-\d{4})?(?:#del=(?P<part_id>\d+))?' + IE_DESC = 'NRK TV and NRK Radio' + _VALID_URL = r'(?P<baseurl>https?://(?:tv|radio)\.nrk(?:super)?\.no/)(?:serie/[^/]+|program)/(?P<id>[a-zA-Z]{4}\d{8})(?:/\d{2}-\d{2}-\d{4})?(?:#del=(?P<part_id>\d+))?' _TESTS = [ { - 'url': 'http://tv.nrk.no/serie/20-spoersmaal-tv/MUHH48000314/23-05-2014', + 'url': 'https://tv.nrk.no/serie/20-spoersmaal-tv/MUHH48000314/23-05-2014', 'md5': 'adf2c5454fa2bf032f47a9f8fb351342', 'info_dict': { 'id': 'MUHH48000314', @@ -132,7 +133,7 @@ class NRKTVIE(InfoExtractor): }, }, { - 'url': 'http://tv.nrk.no/program/mdfp15000514', + 'url': 'https://tv.nrk.no/program/mdfp15000514', 'md5': '383650ece2b25ecec996ad7b5bb2a384', 'info_dict': { 'id': 'mdfp15000514', @@ -145,7 +146,7 @@ class NRKTVIE(InfoExtractor): }, { # single playlist video - 'url': 'http://tv.nrk.no/serie/tour-de-ski/MSPO40010515/06-01-2015#del=2', + 'url': 'https://tv.nrk.no/serie/tour-de-ski/MSPO40010515/06-01-2015#del=2', 'md5': 'adbd1dbd813edaf532b0a253780719c2', 'info_dict': { 'id': 'MSPO40010515-part2', @@ -157,7 +158,7 @@ class NRKTVIE(InfoExtractor): 'skip': 'Only works from Norway', }, { - 'url': 'http://tv.nrk.no/serie/tour-de-ski/MSPO40010515/06-01-2015', + 'url': 'https://tv.nrk.no/serie/tour-de-ski/MSPO40010515/06-01-2015', 'playlist': [ { 'md5': '9480285eff92d64f06e02a5367970a7a', @@ -188,6 +189,10 @@ class NRKTVIE(InfoExtractor): 'duration': 6947.5199999999995, }, 'skip': 'Only works from Norway', + }, + { + 'url': 'https://radio.nrk.no/serie/dagsnytt/NPUB21019315/12-07-2015#', + 'only_matching': True, } ] @@ -206,7 +211,8 @@ class NRKTVIE(InfoExtractor): ]} def _extract_f4m(self, manifest_url, video_id): - return self._extract_f4m_formats(manifest_url + '?hdcore=3.1.1&plugin=aasp-3.1.1.69.124', video_id) + return self._extract_f4m_formats( + manifest_url + '?hdcore=3.1.1&plugin=aasp-3.1.1.69.124', video_id, f4m_id='hds') def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -268,7 +274,7 @@ class NRKTVIE(InfoExtractor): m3u8_url = re.search(r'data-hls-media="([^"]+)"', webpage) if m3u8_url: - formats.extend(self._extract_m3u8_formats(m3u8_url.group(1), video_id, 'mp4')) + formats.extend(self._extract_m3u8_formats(m3u8_url.group(1), video_id, 'mp4', m3u8_id='hls')) self._sort_formats(formats) subtitles_url = self._html_search_regex( diff --git a/youtube_dl/extractor/odnoklassniki.py b/youtube_dl/extractor/odnoklassniki.py index 6c7149f..215ffe8 100644 --- a/youtube_dl/extractor/odnoklassniki.py +++ b/youtube_dl/extractor/odnoklassniki.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from .common import InfoExtractor -from ..compat import compat_urllib_parse +from ..compat import compat_urllib_parse_unquote from ..utils import ( unified_strdate, int_or_none, @@ -62,7 +62,7 @@ class OdnoklassnikiIE(InfoExtractor): metadata = self._parse_json(metadata, video_id) else: metadata = self._download_json( - compat_urllib_parse.unquote(flashvars['metadataUrl']), + compat_urllib_parse_unquote(flashvars['metadataUrl']), video_id, 'Downloading metadata JSON') movie = metadata['movie'] diff --git a/youtube_dl/extractor/onionstudios.py b/youtube_dl/extractor/onionstudios.py new file mode 100644 index 0000000..0f1f448 --- /dev/null +++ b/youtube_dl/extractor/onionstudios.py @@ -0,0 +1,76 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import determine_ext + + +class OnionStudiosIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?onionstudios\.com/(?:videos/[^/]+-|embed\?.*\bid=)(?P<id>\d+)(?!-)' + + _TESTS = [{ + 'url': 'http://www.onionstudios.com/videos/hannibal-charges-forward-stops-for-a-cocktail-2937', + 'md5': 'd4851405d31adfadf71cd7a487b765bb', + 'info_dict': { + 'id': '2937', + 'ext': 'mp4', + 'title': 'Hannibal charges forward, stops for a cocktail', + 'description': 'md5:545299bda6abf87e5ec666548c6a9448', + 'thumbnail': 're:^https?://.*\.jpg$', + 'uploader': 'The A.V. Club', + 'uploader_id': 'TheAVClub', + }, + }, { + 'url': 'http://www.onionstudios.com/embed?id=2855&autoplay=true', + 'only_matching': True, + }] + + @staticmethod + def _extract_url(webpage): + mobj = re.search( + r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:www\.)?onionstudios\.com/embed.+?)\1', webpage) + if mobj: + return mobj.group('url') + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage( + 'http://www.onionstudios.com/embed?id=%s' % video_id, video_id) + + formats = [] + for src in re.findall(r'<source[^>]+src="([^"]+)"', webpage): + if determine_ext(src) != 'm3u8': # m3u8 always results in 403 + formats.append({ + 'url': src, + }) + self._sort_formats(formats) + + title = self._search_regex( + r'share_title\s*=\s*(["\'])(?P<title>[^\1]+?)\1', + webpage, 'title', group='title') + description = self._search_regex( + r'share_description\s*=\s*(["\'])(?P<description>[^\1]+?)\1', + webpage, 'description', default=None, group='description') + thumbnail = self._search_regex( + r'poster\s*=\s*(["\'])(?P<thumbnail>[^\1]+?)\1', + webpage, 'thumbnail', default=False, group='thumbnail') + + uploader_id = self._search_regex( + r'twitter_handle\s*=\s*(["\'])(?P<uploader_id>[^\1]+?)\1', + webpage, 'uploader id', fatal=False, group='uploader_id') + uploader = self._search_regex( + r'window\.channelName\s*=\s*(["\'])Embedded:(?P<uploader>[^\1]+?)\1', + webpage, 'uploader', default=False, group='uploader') + + return { + 'id': video_id, + 'title': title, + 'description': description, + 'thumbnail': thumbnail, + 'uploader': uploader, + 'uploader_id': uploader_id, + 'formats': formats, + } diff --git a/youtube_dl/extractor/openfilm.py b/youtube_dl/extractor/openfilm.py index 2249657..d2ceedd 100644 --- a/youtube_dl/extractor/openfilm.py +++ b/youtube_dl/extractor/openfilm.py @@ -3,9 +3,9 @@ from __future__ import unicode_literals import json from .common import InfoExtractor +from ..compat import compat_urllib_parse_unquote_plus from ..utils import ( parse_iso8601, - compat_urllib_parse, parse_age_limit, int_or_none, ) @@ -37,7 +37,7 @@ class OpenFilmIE(InfoExtractor): webpage = self._download_webpage(url, display_id) - player = compat_urllib_parse.unquote_plus( + player = compat_urllib_parse_unquote_plus( self._og_search_video_url(webpage)) video = json.loads(self._search_regex( diff --git a/youtube_dl/extractor/pbs.py b/youtube_dl/extractor/pbs.py index 143a766..fec5d65 100644 --- a/youtube_dl/extractor/pbs.py +++ b/youtube_dl/extractor/pbs.py @@ -1,3 +1,4 @@ +# coding: utf-8 from __future__ import unicode_literals import re @@ -35,6 +36,9 @@ class PBSIE(InfoExtractor): 'description': 'md5:ba0c207295339c8d6eced00b7c363c6a', 'duration': 3190, }, + 'params': { + 'skip_download': True, # requires ffmpeg + }, }, { 'url': 'http://www.pbs.org/wgbh/pages/frontline/losing-iraq/', @@ -46,6 +50,9 @@ class PBSIE(InfoExtractor): 'description': 'md5:f5bfbefadf421e8bb8647602011caf8e', 'duration': 5050, }, + 'params': { + 'skip_download': True, # requires ffmpeg + } }, { 'url': 'http://www.pbs.org/newshour/bb/education-jan-june12-cyberschools_02-23/', @@ -68,7 +75,10 @@ class PBSIE(InfoExtractor): 'title': 'Dudamel Conducts Verdi Requiem at the Hollywood Bowl - Full', 'duration': 6559, 'thumbnail': 're:^https?://.*\.jpg$', - } + }, + 'params': { + 'skip_download': True, # requires ffmpeg + }, }, { 'url': 'http://www.pbs.org/wgbh/nova/earth/killer-typhoon.html', @@ -82,7 +92,10 @@ class PBSIE(InfoExtractor): 'duration': 3172, 'thumbnail': 're:^https?://.*\.jpg$', 'upload_date': '20140122', - } + }, + 'params': { + 'skip_download': True, # requires ffmpeg + }, }, { 'url': 'http://www.pbs.org/wgbh/pages/frontline/united-states-of-secrets/', @@ -90,6 +103,21 @@ class PBSIE(InfoExtractor): 'id': 'united-states-of-secrets', }, 'playlist_count': 2, + }, + { + 'url': 'http://www.pbs.org/wgbh/americanexperience/films/death/player/', + 'info_dict': { + 'id': '2280706814', + 'display_id': 'player', + 'ext': 'mp4', + 'title': 'Death and the Civil War', + 'description': 'American Experience, TVâs most-watched history series, brings to life the compelling stories from our past that inform our understanding of the world today.', + 'duration': 6705, + 'thumbnail': 're:^https?://.*\.jpg$', + }, + 'params': { + 'skip_download': True, # requires ffmpeg + }, } ] @@ -123,7 +151,7 @@ class PBSIE(InfoExtractor): return media_id, presumptive_id, upload_date url = self._search_regex( - r'<iframe\s+(?:class|id)=["\']partnerPlayer["\'].*?\s+src=["\'](.*?)["\']>', + r'<iframe\s+[^>]*\s+src=["\']([^\'"]+partnerplayer[^\'"]+)["\']', webpage, 'player URL') mobj = re.match(self._VALID_URL, url) @@ -196,6 +224,14 @@ class PBSIE(InfoExtractor): rating_str = rating_str.rpartition('-')[2] age_limit = US_RATINGS.get(rating_str) + subtitles = {} + closed_captions_url = info.get('closed_captions_url') + if closed_captions_url: + subtitles['en'] = [{ + 'ext': 'ttml', + 'url': closed_captions_url, + }] + return { 'id': video_id, 'display_id': display_id, @@ -206,4 +242,5 @@ class PBSIE(InfoExtractor): 'age_limit': age_limit, 'upload_date': upload_date, 'formats': formats, + 'subtitles': subtitles, } diff --git a/youtube_dl/extractor/photobucket.py b/youtube_dl/extractor/photobucket.py index c66db3c..788411c 100644 --- a/youtube_dl/extractor/photobucket.py +++ b/youtube_dl/extractor/photobucket.py @@ -4,7 +4,7 @@ import json import re from .common import InfoExtractor -from ..compat import compat_urllib_parse +from ..compat import compat_urllib_parse_unquote class PhotobucketIE(InfoExtractor): @@ -34,7 +34,7 @@ class PhotobucketIE(InfoExtractor): info_json = self._search_regex(r'Pb\.Data\.Shared\.put\(Pb\.Data\.Shared\.MEDIA, (.*?)\);', webpage, 'info json') info = json.loads(info_json) - url = compat_urllib_parse.unquote(self._html_search_regex(r'file=(.+\.mp4)', info['linkcodes']['html'], 'url')) + url = compat_urllib_parse_unquote(self._html_search_regex(r'file=(.+\.mp4)', info['linkcodes']['html'], 'url')) return { 'id': video_id, 'url': url, diff --git a/youtube_dl/extractor/pinkbike.py b/youtube_dl/extractor/pinkbike.py new file mode 100644 index 0000000..a52210f --- /dev/null +++ b/youtube_dl/extractor/pinkbike.py @@ -0,0 +1,96 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import ( + int_or_none, + remove_end, + remove_start, + str_to_int, + unified_strdate, +) + + +class PinkbikeIE(InfoExtractor): + _VALID_URL = r'https?://(?:(?:www\.)?pinkbike\.com/video/|es\.pinkbike\.org/i/kvid/kvid-y5\.swf\?id=)(?P<id>[0-9]+)' + _TESTS = [{ + 'url': 'http://www.pinkbike.com/video/402811/', + 'md5': '4814b8ca7651034cd87e3361d5c2155a', + 'info_dict': { + 'id': '402811', + 'ext': 'mp4', + 'title': 'Brandon Semenuk - RAW 100', + 'description': 'Official release: www.redbull.ca/rupertwalker', + 'thumbnail': 're:^https?://.*\.jpg$', + 'duration': 100, + 'upload_date': '20150406', + 'uploader': 'revelco', + 'location': 'Victoria, British Columbia, Canada', + 'view_count': int, + 'comment_count': int, + } + }, { + 'url': 'http://es.pinkbike.org/i/kvid/kvid-y5.swf?id=406629', + 'only_matching': True, + }] + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage( + 'http://www.pinkbike.com/video/%s' % video_id, video_id) + + formats = [] + for _, format_id, src in re.findall( + r'data-quality=((?:\\)?["\'])(.+?)\1[^>]+src=\1(.+?)\1', webpage): + height = int_or_none(self._search_regex( + r'^(\d+)[pP]$', format_id, 'height', default=None)) + formats.append({ + 'url': src, + 'format_id': format_id, + 'height': height, + }) + self._sort_formats(formats) + + title = remove_end(self._og_search_title(webpage), ' Video - Pinkbike') + description = self._html_search_regex( + r'(?s)id="media-description"[^>]*>(.+?)<', + webpage, 'description', default=None) or remove_start( + self._og_search_description(webpage), title + '. ') + thumbnail = self._og_search_thumbnail(webpage) + duration = int_or_none(self._html_search_meta( + 'video:duration', webpage, 'duration')) + + uploader = self._search_regex( + r'un:\s*"([^"]+)"', webpage, 'uploader', fatal=False) + upload_date = unified_strdate(self._search_regex( + r'class="fullTime"[^>]+title="([^"]+)"', + webpage, 'upload date', fatal=False)) + + location = self._html_search_regex( + r'(?s)<dt>Location</dt>\s*<dd>(.+?)<', + webpage, 'location', fatal=False) + + def extract_count(webpage, label): + return str_to_int(self._search_regex( + r'<span[^>]+class="stat-num"[^>]*>([\d,.]+)</span>\s*<span[^>]+class="stat-label"[^>]*>%s' % label, + webpage, label, fatal=False)) + + view_count = extract_count(webpage, 'Views') + comment_count = extract_count(webpage, 'Comments') + + return { + 'id': video_id, + 'title': title, + 'description': description, + 'thumbnail': thumbnail, + 'duration': duration, + 'upload_date': upload_date, + 'uploader': uploader, + 'location': location, + 'view_count': view_count, + 'comment_count': comment_count, + 'formats': formats + } diff --git a/youtube_dl/extractor/planetaplay.py b/youtube_dl/extractor/planetaplay.py index 596c621..06505e9 100644 --- a/youtube_dl/extractor/planetaplay.py +++ b/youtube_dl/extractor/planetaplay.py @@ -18,7 +18,8 @@ class PlanetaPlayIE(InfoExtractor): 'id': '3586', 'ext': 'flv', 'title': 'md5:e829428ee28b1deed00de90de49d1da1', - } + }, + 'skip': 'Not accessible from Travis CI server', } _SONG_FORMATS = { diff --git a/youtube_dl/extractor/played.py b/youtube_dl/extractor/played.py index 45716c7..8a1c296 100644 --- a/youtube_dl/extractor/played.py +++ b/youtube_dl/extractor/played.py @@ -38,9 +38,7 @@ class PlayedIE(InfoExtractor): if m_error: raise ExtractorError(m_error.group('msg'), expected=True) - fields = re.findall( - r'type="hidden" name="([^"]+)"\s+value="([^"]+)">', orig_webpage) - data = dict(fields) + data = self._hidden_inputs(orig_webpage) self._sleep(2, video_id) diff --git a/youtube_dl/extractor/playvid.py b/youtube_dl/extractor/playvid.py index c3e667e..2eb4fd9 100644 --- a/youtube_dl/extractor/playvid.py +++ b/youtube_dl/extractor/playvid.py @@ -4,7 +4,8 @@ import re from .common import InfoExtractor from ..compat import ( - compat_urllib_parse, + compat_urllib_parse_unquote, + compat_urllib_parse_unquote_plus, ) from ..utils import ( clean_html, @@ -44,7 +45,7 @@ class PlayvidIE(InfoExtractor): flashvars = self._html_search_regex( r'flashvars="(.+?)"', webpage, 'flashvars') - infos = compat_urllib_parse.unquote(flashvars).split(r'&') + infos = compat_urllib_parse_unquote(flashvars).split(r'&') for info in infos: videovars_match = re.match(r'^video_vars\[(.+?)\]=(.+?)$', info) if videovars_match: @@ -52,7 +53,7 @@ class PlayvidIE(InfoExtractor): val = videovars_match.group(2) if key == 'title': - video_title = compat_urllib_parse.unquote_plus(val) + video_title = compat_urllib_parse_unquote_plus(val) if key == 'duration': try: duration = int(val) diff --git a/youtube_dl/extractor/pornhub.py b/youtube_dl/extractor/pornhub.py index daa284e..0b78868 100644 --- a/youtube_dl/extractor/pornhub.py +++ b/youtube_dl/extractor/pornhub.py @@ -5,7 +5,8 @@ import re from .common import InfoExtractor from ..compat import ( - compat_urllib_parse, + compat_urllib_parse_unquote, + compat_urllib_parse_unquote_plus, compat_urllib_parse_urlparse, compat_urllib_request, ) @@ -19,8 +20,8 @@ from ..aes import ( class PornHubIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?pornhub\.com/view_video\.php\?viewkey=(?P<id>[0-9a-f]+)' - _TEST = { + _VALID_URL = r'https?://(?:www\.)?pornhub\.com/(?:view_video\.php\?viewkey=|embed/)(?P<id>[0-9a-z]+)' + _TESTS = [{ 'url': 'http://www.pornhub.com/view_video.php?viewkey=648719015', 'md5': '882f488fa1f0026f023f33576004a2ed', 'info_dict': { @@ -30,7 +31,17 @@ class PornHubIE(InfoExtractor): "title": "Seductive Indian beauty strips down and fingers her pink pussy", "age_limit": 18 } - } + }, { + 'url': 'http://www.pornhub.com/view_video.php?viewkey=ph557bbb6676d2d', + 'only_matching': True, + }] + + @classmethod + def _extract_url(cls, webpage): + mobj = re.search( + r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:www\.)?pornhub\.com/embed/\d+)\1', webpage) + if mobj: + return mobj.group('url') def _extract_count(self, pattern, webpage, name): return str_to_int(self._search_regex( @@ -39,7 +50,8 @@ class PornHubIE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) - req = compat_urllib_request.Request(url) + req = compat_urllib_request.Request( + 'http://www.pornhub.com/view_video.php?viewkey=%s' % video_id) req.add_header('Cookie', 'age_verified=1') webpage = self._download_webpage(req, video_id) @@ -58,7 +70,7 @@ class PornHubIE(InfoExtractor): webpage, 'uploader', fatal=False) thumbnail = self._html_search_regex(r'"image_url":"([^"]+)', webpage, 'thumbnail', fatal=False) if thumbnail: - thumbnail = compat_urllib_parse.unquote(thumbnail) + thumbnail = compat_urllib_parse_unquote(thumbnail) view_count = self._extract_count( r'<span class="count">([\d,\.]+)</span> views', webpage, 'view') @@ -69,9 +81,9 @@ class PornHubIE(InfoExtractor): comment_count = self._extract_count( r'All Comments\s*<span>\(([\d,.]+)\)', webpage, 'comment') - video_urls = list(map(compat_urllib_parse.unquote, re.findall(r'"quality_[0-9]{3}p":"([^"]+)', webpage))) + video_urls = list(map(compat_urllib_parse_unquote, re.findall(r'"quality_[0-9]{3}p":"([^"]+)', webpage))) if webpage.find('"encrypted":true') != -1: - password = compat_urllib_parse.unquote_plus( + password = compat_urllib_parse_unquote_plus( self._search_regex(r'"video_title":"([^"]+)', webpage, 'password')) video_urls = list(map(lambda s: aes_decrypt_text(s, password, 32).decode('utf-8'), video_urls)) diff --git a/youtube_dl/extractor/pornovoisines.py b/youtube_dl/extractor/pornovoisines.py index 9688ed9..eba4dfb 100644 --- a/youtube_dl/extractor/pornovoisines.py +++ b/youtube_dl/extractor/pornovoisines.py @@ -34,7 +34,7 @@ class PornoVoisinesIE(InfoExtractor): 'duration': 120, 'view_count': int, 'average_rating': float, - 'categories': ['Débutante', 'Scénario', 'Sodomie'], + 'categories': ['Débutantes', 'Scénario', 'Sodomie'], 'age_limit': 18, } } @@ -71,7 +71,7 @@ class PornoVoisinesIE(InfoExtractor): view_count = int_or_none(self._search_regex( r'(\d+) vues', webpage, 'view count', fatal=False)) average_rating = self._search_regex( - r'Note : (\d+,\d+)', webpage, 'average rating', fatal=False) + r'Note\s*:\s*(\d+(?:,\d+)?)', webpage, 'average rating', fatal=False) if average_rating: average_rating = float_or_none(average_rating.replace(',', '.')) diff --git a/youtube_dl/extractor/primesharetv.py b/youtube_dl/extractor/primesharetv.py index 01cc3d9..304359d 100644 --- a/youtube_dl/extractor/primesharetv.py +++ b/youtube_dl/extractor/primesharetv.py @@ -1,7 +1,5 @@ from __future__ import unicode_literals -import re - from .common import InfoExtractor from ..compat import ( compat_urllib_parse, @@ -31,12 +29,7 @@ class PrimeShareTVIE(InfoExtractor): if '>File not exist<' in webpage: raise ExtractorError('Video %s does not exist' % video_id, expected=True) - fields = dict(re.findall(r'''(?x)<input\s+ - type="hidden"\s+ - name="([^"]+)"\s+ - (?:id="[^"]+"\s+)? - value="([^"]*)" - ''', webpage)) + fields = self._hidden_inputs(webpage) headers = { 'Referer': url, diff --git a/youtube_dl/extractor/promptfile.py b/youtube_dl/extractor/promptfile.py index f536e6e..8190ed6 100644 --- a/youtube_dl/extractor/promptfile.py +++ b/youtube_dl/extractor/promptfile.py @@ -35,10 +35,7 @@ class PromptFileIE(InfoExtractor): raise ExtractorError('Video %s does not exist' % video_id, expected=True) - fields = dict(re.findall(r'''(?x)type="hidden"\s+ - name="(.+?)"\s+ - value="(.*?)" - ''', webpage)) + fields = self._hidden_inputs(webpage) post = compat_urllib_parse.urlencode(fields) req = compat_urllib_request.Request(url, post) req.add_header('Content-type', 'application/x-www-form-urlencoded') diff --git a/youtube_dl/extractor/prosiebensat1.py b/youtube_dl/extractor/prosiebensat1.py index 255d4ab..fec008c 100644 --- a/youtube_dl/extractor/prosiebensat1.py +++ b/youtube_dl/extractor/prosiebensat1.py @@ -9,8 +9,9 @@ from ..compat import ( compat_urllib_parse, ) from ..utils import ( - unified_strdate, + determine_ext, int_or_none, + unified_strdate, ) @@ -21,6 +22,11 @@ class ProSiebenSat1IE(InfoExtractor): _TESTS = [ { + # Tests changes introduced in https://github.com/rg3/youtube-dl/pull/6242 + # in response to fixing https://github.com/rg3/youtube-dl/issues/6215: + # - malformed f4m manifest support + # - proper handling of URLs starting with `https?://` in 2.0 manifests + # - recursive child f4m manifests extraction 'url': 'http://www.prosieben.de/tv/circus-halligalli/videos/218-staffel-2-episode-18-jahresrueckblick-ganze-folge', 'info_dict': { 'id': '2104602', @@ -177,6 +183,7 @@ class ProSiebenSat1IE(InfoExtractor): r'<header class="clearfix">\s*<h3>(.+?)</h3>', r'<!-- start video -->\s*<h1>(.+?)</h1>', r'<h1 class="att-name">\s*(.+?)</h1>', + r'<header class="module_header">\s*<h2>([^<]+)</h2>\s*</header>', ] _DESCRIPTION_REGEXES = [ r'<p itemprop="description">\s*(.+?)</p>', @@ -206,8 +213,8 @@ class ProSiebenSat1IE(InfoExtractor): def _extract_clip(self, url, webpage): clip_id = self._html_search_regex(self._CLIPID_REGEXES, webpage, 'clip id') - access_token = 'testclient' - client_name = 'kolibri-1.2.5' + access_token = 'prosieben' + client_name = 'kolibri-2.0.19-splec4' client_location = url videos_api_url = 'http://vas.sim-technik.de/vas/live/v2/videos?%s' % compat_urllib_parse.urlencode({ @@ -274,23 +281,30 @@ class ProSiebenSat1IE(InfoExtractor): for source in urls_sources: protocol = source['protocol'] + source_url = source['url'] if protocol == 'rtmp' or protocol == 'rtmpe': - mobj = re.search(r'^(?P<url>rtmpe?://[^/]+/(?P<app>[^/]+))/(?P<playpath>.+)$', source['url']) + mobj = re.search(r'^(?P<url>rtmpe?://[^/]+)/(?P<path>.+)$', source_url) if not mobj: continue + path = mobj.group('path') + mp4colon_index = path.rfind('mp4:') + app = path[:mp4colon_index] + play_path = path[mp4colon_index:] formats.append({ - 'url': mobj.group('url'), - 'app': mobj.group('app'), - 'play_path': mobj.group('playpath'), + 'url': '%s/%s' % (mobj.group('url'), app), + 'app': app, + 'play_path': play_path, 'player_url': 'http://livepassdl.conviva.com/hf/ver/2.79.0.17083/LivePassModuleMain.swf', 'page_url': 'http://www.prosieben.de', 'vbr': fix_bitrate(source['bitrate']), 'ext': 'mp4', 'format_id': '%s_%s' % (source['cdn'], source['bitrate']), }) + elif 'f4mgenerator' in source_url or determine_ext(source_url) == 'f4m': + formats.extend(self._extract_f4m_formats(source_url, clip_id)) else: formats.append({ - 'url': source['url'], + 'url': source_url, 'vbr': fix_bitrate(source['bitrate']), }) diff --git a/youtube_dl/extractor/qqmusic.py b/youtube_dl/extractor/qqmusic.py index f773332..1654a64 100644 --- a/youtube_dl/extractor/qqmusic.py +++ b/youtube_dl/extractor/qqmusic.py @@ -9,26 +9,48 @@ from .common import InfoExtractor from ..utils import ( strip_jsonp, unescapeHTML, + clean_html, ) from ..compat import compat_urllib_request class QQMusicIE(InfoExtractor): IE_NAME = 'qqmusic' + IE_DESC = 'QQé³ä¹' _VALID_URL = r'http://y.qq.com/#type=song&mid=(?P<id>[0-9A-Za-z]+)' _TESTS = [{ 'url': 'http://y.qq.com/#type=song&mid=004295Et37taLD', - 'md5': 'bed90b6db2a7a7a7e11bc585f471f63a', + 'md5': '9ce1c1c8445f561506d2e3cfb0255705', 'info_dict': { 'id': '004295Et37taLD', - 'ext': 'm4a', + 'ext': 'mp3', 'title': 'å¯æ没å¦æ', 'upload_date': '20141227', 'creator': 'æä¿æ°', 'description': 'md5:d327722d0361576fde558f1ac68a7065', + 'thumbnail': 're:^https?://.*\.jpg$', + } + }, { + 'note': 'There is no mp3-320 version of this song.', + 'url': 'http://y.qq.com/#type=song&mid=004MsGEo3DdNxV', + 'md5': 'fa3926f0c585cda0af8fa4f796482e3e', + 'info_dict': { + 'id': '004MsGEo3DdNxV', + 'ext': 'mp3', + 'title': 'å¦æ', + 'upload_date': '20050626', + 'creator': 'æå£ç¾', + 'description': 'md5:46857d5ed62bc4ba84607a805dccf437', + 'thumbnail': 're:^https?://.*\.jpg$', } }] + _FORMATS = { + 'mp3-320': {'prefix': 'M800', 'ext': 'mp3', 'preference': 40, 'abr': 320}, + 'mp3-128': {'prefix': 'M500', 'ext': 'mp3', 'preference': 30, 'abr': 128}, + 'm4a': {'prefix': 'C200', 'ext': 'm4a', 'preference': 10} + } + # Reference: m_r_GetRUin() in top_player.js # http://imgcache.gtimg.cn/music/portal_v3/y/top_player.js @staticmethod @@ -62,21 +84,42 @@ class QQMusicIE(InfoExtractor): if lrc_content: lrc_content = lrc_content.replace('\\n', '\n') + thumbnail_url = None + albummid = self._search_regex( + [r'albummid:\'([0-9a-zA-Z]+)\'', r'"albummid":"([0-9a-zA-Z]+)"'], + detail_info_page, 'album mid', default=None) + if albummid: + thumbnail_url = "http://i.gtimg.cn/music/photo/mid_album_500/%s/%s/%s.jpg" \ + % (albummid[-2:-1], albummid[-1], albummid) + guid = self.m_r_get_ruin() vkey = self._download_json( 'http://base.music.qq.com/fcgi-bin/fcg_musicexpress.fcg?json=3&guid=%s' % guid, mid, note='Retrieve vkey', errnote='Unable to get vkey', transform_source=strip_jsonp)['key'] - song_url = 'http://cc.stream.qqmusic.qq.com/C200%s.m4a?vkey=%s&guid=%s&fromtag=0' % (mid, vkey, guid) + + formats = [] + for format_id, details in self._FORMATS.items(): + formats.append({ + 'url': 'http://cc.stream.qqmusic.qq.com/%s%s.%s?vkey=%s&guid=%s&fromtag=0' + % (details['prefix'], mid, details['ext'], vkey, guid), + 'format': format_id, + 'format_id': format_id, + 'preference': details['preference'], + 'abr': details.get('abr'), + }) + self._check_formats(formats, mid) + self._sort_formats(formats) return { 'id': mid, - 'url': song_url, + 'formats': formats, 'title': song_name, 'upload_date': publish_time, 'creator': singer, 'description': lrc_content, + 'thumbnail': thumbnail_url, } @@ -100,6 +143,7 @@ class QQPlaylistBaseIE(InfoExtractor): class QQMusicSingerIE(QQPlaylistBaseIE): IE_NAME = 'qqmusic:singer' + IE_DESC = 'QQé³ä¹ - ææ' _VALID_URL = r'http://y.qq.com/#type=singer&mid=(?P<id>[0-9A-Za-z]+)' _TEST = { 'url': 'http://y.qq.com/#type=singer&mid=001BLpXF2DyJe2', @@ -144,39 +188,50 @@ class QQMusicSingerIE(QQPlaylistBaseIE): class QQMusicAlbumIE(QQPlaylistBaseIE): IE_NAME = 'qqmusic:album' + IE_DESC = 'QQé³ä¹ - ä¸è¾' _VALID_URL = r'http://y.qq.com/#type=album&mid=(?P<id>[0-9A-Za-z]+)' - _TEST = { - 'url': 'http://y.qq.com/#type=album&mid=000gXCTb2AhRR1&play=0', + _TESTS = [{ + 'url': 'http://y.qq.com/#type=album&mid=000gXCTb2AhRR1', 'info_dict': { 'id': '000gXCTb2AhRR1', 'title': 'æ们é½æ¯è¿æ ·é¿å¤§ç', - 'description': 'md5:d216c55a2d4b3537fe4415b8767d74d6', + 'description': 'md5:179c5dce203a5931970d306aa9607ea6', }, 'playlist_count': 4, - } + }, { + 'url': 'http://y.qq.com/#type=album&mid=002Y5a3b3AlCu3', + 'info_dict': { + 'id': '002Y5a3b3AlCu3', + 'title': 'ê·¸ë¦¬ê³ ...', + 'description': 'md5:a48823755615508a95080e81b51ba729', + }, + 'playlist_count': 8, + }] def _real_extract(self, url): mid = self._match_id(url) - album_page = self._download_webpage( - self.qq_static_url('album', mid), mid, 'Download album page') - - entries = self.get_entries_from_page(album_page) + album = self._download_json( + 'http://i.y.qq.com/v8/fcg-bin/fcg_v8_album_info_cp.fcg?albummid=%s&format=json' % mid, + mid, 'Download album page')['data'] - album_name = self._html_search_regex( - r"albumname\s*:\s*'([^']+)',", album_page, 'album name', - default=None) - - album_detail = self._html_search_regex( - r'<div class="album_detail close_detail">\s*<p>((?:[^<>]+(?:<br />)?)+)</p>', - album_page, 'album details', default=None) + entries = [ + self.url_result( + 'http://y.qq.com/#type=song&mid=' + song['songmid'], 'QQMusic', song['songmid'] + ) for song in album['list'] + ] + album_name = album.get('name') + album_detail = album.get('desc') + if album_detail is not None: + album_detail = album_detail.strip() return self.playlist_result(entries, mid, album_name, album_detail) class QQMusicToplistIE(QQPlaylistBaseIE): IE_NAME = 'qqmusic:toplist' + IE_DESC = 'QQé³ä¹ - æè¡æ¦' _VALID_URL = r'http://y\.qq\.com/#type=toplist&p=(?P<id>(top|global)_[0-9]+)' _TESTS = [{ @@ -226,3 +281,37 @@ class QQMusicToplistIE(QQPlaylistBaseIE): list_name = topinfo.get('ListName') list_description = topinfo.get('info') return self.playlist_result(entries, list_id, list_name, list_description) + + +class QQMusicPlaylistIE(QQPlaylistBaseIE): + IE_NAME = 'qqmusic:playlist' + IE_DESC = 'QQé³ä¹ - æå' + _VALID_URL = r'http://y\.qq\.com/#type=taoge&id=(?P<id>[0-9]+)' + + _TEST = { + 'url': 'http://y.qq.com/#type=taoge&id=3462654915', + 'info_dict': { + 'id': '3462654915', + 'title': 'é©å½5ææ°æç²¾éä¸æ¬', + 'description': 'md5:d2c9d758a96b9888cf4fe82f603121d4', + }, + 'playlist_count': 40, + } + + def _real_extract(self, url): + list_id = self._match_id(url) + + list_json = self._download_json( + 'http://i.y.qq.com/qzone-music/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg?type=1&json=1&utf8=1&onlysong=0&disstid=%s' + % list_id, list_id, 'Download list page', + transform_source=strip_jsonp)['cdlist'][0] + + entries = [ + self.url_result( + 'http://y.qq.com/#type=song&mid=' + song['songmid'], 'QQMusic', song['songmid'] + ) for song in list_json['songlist'] + ] + + list_name = list_json.get('dissname') + list_description = clean_html(unescapeHTML(list_json.get('desc'))) + return self.playlist_result(entries, list_id, list_name, list_description) diff --git a/youtube_dl/extractor/quickvid.py b/youtube_dl/extractor/quickvid.py index af7d76c..f414e23 100644 --- a/youtube_dl/extractor/quickvid.py +++ b/youtube_dl/extractor/quickvid.py @@ -24,6 +24,7 @@ class QuickVidIE(InfoExtractor): 'thumbnail': 're:^https?://.*\.(?:png|jpg|gif)$', 'view_count': int, }, + 'skip': 'Not accessible from Travis CI server', } def _real_extract(self, url): diff --git a/youtube_dl/extractor/rds.py b/youtube_dl/extractor/rds.py new file mode 100644 index 0000000..796adfd --- /dev/null +++ b/youtube_dl/extractor/rds.py @@ -0,0 +1,73 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import ( + parse_duration, + parse_iso8601, +) + + +class RDSIE(InfoExtractor): + IE_DESC = 'RDS.ca' + _VALID_URL = r'https?://(?:www\.)?rds\.ca/vid(?:[eé]|%C3%A9)os/(?:[^/]+/)*(?P<display_id>[^/]+)-(?P<id>\d+\.\d+)' + + _TESTS = [{ + 'url': 'http://www.rds.ca/videos/football/nfl/fowler-jr-prend-la-direction-de-jacksonville-3.1132799', + 'info_dict': { + 'id': '3.1132799', + 'display_id': 'fowler-jr-prend-la-direction-de-jacksonville', + 'ext': 'mp4', + 'title': 'Fowler Jr. prend la direction de Jacksonville', + 'description': 'Dante Fowler Jr. est le troisième choix du repêchage 2015 de la NFL. ', + 'timestamp': 1430397346, + 'upload_date': '20150430', + 'duration': 154.354, + 'age_limit': 0, + } + }, { + 'url': 'http://www.rds.ca/vid%C3%A9os/un-voyage-positif-3.877934', + 'only_matching': True, + }] + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group('id') + display_id = mobj.group('display_id') + + webpage = self._download_webpage(url, display_id) + + # TODO: extract f4m from 9c9media.com + video_url = self._search_regex( + r'<span[^>]+itemprop="contentURL"[^>]+content="([^"]+)"', + webpage, 'video url') + + title = self._og_search_title(webpage) or self._html_search_meta( + 'title', webpage, 'title', fatal=True) + description = self._og_search_description(webpage) or self._html_search_meta( + 'description', webpage, 'description') + thumbnail = self._og_search_thumbnail(webpage) or self._search_regex( + [r'<link[^>]+itemprop="thumbnailUrl"[^>]+href="([^"]+)"', + r'<span[^>]+itemprop="thumbnailUrl"[^>]+content="([^"]+)"'], + webpage, 'thumbnail', fatal=False) + timestamp = parse_iso8601(self._search_regex( + r'<span[^>]+itemprop="uploadDate"[^>]+content="([^"]+)"', + webpage, 'upload date', fatal=False)) + duration = parse_duration(self._search_regex( + r'<span[^>]+itemprop="duration"[^>]+content="([^"]+)"', + webpage, 'duration', fatal=False)) + age_limit = self._family_friendly_search(webpage) + + return { + 'id': video_id, + 'display_id': display_id, + 'url': video_url, + 'title': title, + 'description': description, + 'thumbnail': thumbnail, + 'timestamp': timestamp, + 'duration': duration, + 'age_limit': age_limit, + } diff --git a/youtube_dl/extractor/rtbf.py b/youtube_dl/extractor/rtbf.py index 5a381d9..e4215d5 100644 --- a/youtube_dl/extractor/rtbf.py +++ b/youtube_dl/extractor/rtbf.py @@ -21,6 +21,13 @@ class RTBFIE(InfoExtractor): } } + _QUALITIES = [ + ('mobile', 'mobile'), + ('web', 'SD'), + ('url', 'MD'), + ('high', 'HD'), + ] + def _real_extract(self, url): video_id = self._match_id(url) @@ -32,14 +39,21 @@ class RTBFIE(InfoExtractor): r'data-video="([^"]+)"', webpage, 'data video')), video_id) - video_url = data.get('downloadUrl') or data.get('url') - if data.get('provider').lower() == 'youtube': + video_url = data.get('downloadUrl') or data.get('url') return self.url_result(video_url, 'Youtube') + formats = [] + for key, format_id in self._QUALITIES: + format_url = data['sources'].get(key) + if format_url: + formats.append({ + 'format_id': format_id, + 'url': format_url, + }) return { 'id': video_id, - 'url': video_url, + 'formats': formats, 'title': data['title'], 'description': data.get('description') or data.get('subtitle'), 'thumbnail': data.get('thumbnail'), diff --git a/youtube_dl/extractor/rtlnl.py b/youtube_dl/extractor/rtlnl.py index cfce455..e0c530d 100644 --- a/youtube_dl/extractor/rtlnl.py +++ b/youtube_dl/extractor/rtlnl.py @@ -12,10 +12,10 @@ class RtlNlIE(InfoExtractor): IE_NAME = 'rtl.nl' IE_DESC = 'rtl.nl and rtlxl.nl' _VALID_URL = r'''(?x) - https?://(www\.)? + https?://(?:www\.)? (?: rtlxl\.nl/\#!/[^/]+/| - rtl\.nl/system/videoplayer/[^?#]+?/video_embed\.html\#uuid= + rtl\.nl/system/videoplayer/(?:[^/]+/)+(?:video_)?embed\.html\b.+?\buuid= ) (?P<id>[0-9a-f-]+)''' @@ -43,22 +43,51 @@ class RtlNlIE(InfoExtractor): 'upload_date': '20150215', 'description': 'Er zijn nieuwe beelden vrijgegeven die vlak na de aanslag in Kopenhagen zijn gemaakt. Op de video is goed te zien hoe omstanders zich bekommeren om één van de slachtoffers, terwijl de eerste agenten ter plaatse komen.', } + }, { + # empty synopsis and missing episodes (see https://github.com/rg3/youtube-dl/issues/6275) + 'url': 'http://www.rtl.nl/system/videoplayer/derden/rtlnieuws/video_embed.html#uuid=f536aac0-1dc3-4314-920e-3bd1c5b3811a/autoplay=false', + 'info_dict': { + 'id': 'f536aac0-1dc3-4314-920e-3bd1c5b3811a', + 'ext': 'mp4', + 'title': 'RTL Nieuws - Meer beelden van overval juwelier', + 'thumbnail': 're:^https?://screenshots\.rtl\.nl/system/thumb/sz=[0-9]+x[0-9]+/uuid=f536aac0-1dc3-4314-920e-3bd1c5b3811a$', + 'timestamp': 1437233400, + 'upload_date': '20150718', + 'duration': 30.474, + }, + 'params': { + 'skip_download': True, + }, + }, { + # encrypted m3u8 streams, georestricted + 'url': 'http://www.rtlxl.nl/#!/afl-2-257632/52a74543-c504-4cde-8aa8-ec66fe8d68a7', + 'only_matching': True, + }, { + 'url': 'http://www.rtl.nl/system/videoplayer/derden/embed.html#!/uuid=bb0353b0-d6a4-1dad-90e9-18fe75b8d1f0', + 'only_matching': True, }] def _real_extract(self, url): uuid = self._match_id(url) info = self._download_json( - 'http://www.rtl.nl/system/s4m/vfd/version=2/uuid=%s/fmt=flash/' % uuid, + 'http://www.rtl.nl/system/s4m/vfd/version=2/uuid=%s/fmt=adaptive/' % uuid, uuid) material = info['material'][0] - progname = info['abstracts'][0]['name'] - subtitle = material['title'] or info['episodes'][0]['name'] - description = material.get('synopsis') or info['episodes'][0]['synopsis'] + title = info['abstracts'][0]['name'] + subtitle = material.get('title') + if subtitle: + title += ' - %s' % subtitle + description = material.get('synopsis') + + meta = info.get('meta', {}) # Use unencrypted m3u8 streams (See https://github.com/rg3/youtube-dl/issues/4118) - videopath = material['videopath'].replace('.f4m', '.m3u8') - m3u8_url = 'http://manifest.us.rtl.nl' + videopath + # NB: nowadays, recent ffmpeg and avconv can handle these encrypted streams, so + # this adaptive -> flash workaround is not required in general, but it also + # allows bypassing georestriction therefore is retained for now. + videopath = material['videopath'].replace('/adaptive/', '/flash/') + m3u8_url = meta.get('videohost', 'http://manifest.us.rtl.nl') + videopath formats = self._extract_m3u8_formats(m3u8_url, uuid, ext='mp4') @@ -79,7 +108,7 @@ class RtlNlIE(InfoExtractor): self._sort_formats(formats) thumbnails = [] - meta = info.get('meta', {}) + for p in ('poster_base_url', '"thumb_base_url"'): if not meta.get(p): continue @@ -95,7 +124,7 @@ class RtlNlIE(InfoExtractor): return { 'id': uuid, - 'title': '%s - %s' % (progname, subtitle), + 'title': title, 'formats': formats, 'timestamp': material['original_date'], 'description': description, diff --git a/youtube_dl/extractor/ruutu.py b/youtube_dl/extractor/ruutu.py new file mode 100644 index 0000000..4e22628 --- /dev/null +++ b/youtube_dl/extractor/ruutu.py @@ -0,0 +1,119 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..compat import compat_urllib_parse_urlparse +from ..utils import ( + determine_ext, + int_or_none, + xpath_text, +) + + +class RuutuIE(InfoExtractor): + _VALID_URL = r'http://(?:www\.)?ruutu\.fi/ohjelmat/(?:[^/?#]+/)*(?P<id>[^/?#]+)' + _TESTS = [ + { + 'url': 'http://www.ruutu.fi/ohjelmat/oletko-aina-halunnut-tietaa-mita-tapahtuu-vain-hetki-ennen-lahetysta-nyt-se-selvisi', + 'md5': 'ab2093f39be1ca8581963451b3c0234f', + 'info_dict': { + 'id': '2058907', + 'display_id': 'oletko-aina-halunnut-tietaa-mita-tapahtuu-vain-hetki-ennen-lahetysta-nyt-se-selvisi', + 'ext': 'mp4', + 'title': 'Oletko aina halunnut tietää mitä tapahtuu vain hetki ennen lähetystä? - Nyt se selvisi!', + 'description': 'md5:cfc6ccf0e57a814360df464a91ff67d6', + 'thumbnail': 're:^https?://.*\.jpg$', + 'duration': 114, + 'age_limit': 0, + }, + }, + { + 'url': 'http://www.ruutu.fi/ohjelmat/superpesis/superpesis-katso-koko-kausi-ruudussa', + 'md5': '065a10ae4d5b8cfd9d0c3d332465e3d9', + 'info_dict': { + 'id': '2057306', + 'display_id': 'superpesis-katso-koko-kausi-ruudussa', + 'ext': 'mp4', + 'title': 'Superpesis: katso koko kausi Ruudussa', + 'description': 'md5:44c44a99fdbe5b380ab74ebd75f0af77', + 'thumbnail': 're:^https?://.*\.jpg$', + 'duration': 40, + 'age_limit': 0, + }, + }, + ] + + def _real_extract(self, url): + display_id = self._match_id(url) + + webpage = self._download_webpage(url, display_id) + + video_id = self._search_regex( + r'data-media-id="(\d+)"', webpage, 'media id') + + video_xml_url = None + + media_data = self._search_regex( + r'jQuery\.extend\([^,]+,\s*(.+?)\);', webpage, + 'media data', default=None) + if media_data: + media_json = self._parse_json(media_data, display_id, fatal=False) + if media_json: + xml_url = media_json.get('ruutuplayer', {}).get('xmlUrl') + if xml_url: + video_xml_url = xml_url.replace('{ID}', video_id) + + if not video_xml_url: + video_xml_url = 'http://gatling.ruutu.fi/media-xml-cache?id=%s' % video_id + + video_xml = self._download_xml(video_xml_url, video_id) + + formats = [] + processed_urls = [] + + def extract_formats(node): + for child in node: + if child.tag.endswith('Files'): + extract_formats(child) + elif child.tag.endswith('File'): + video_url = child.text + if not video_url or video_url in processed_urls or 'NOT_USED' in video_url: + return + processed_urls.append(video_url) + ext = determine_ext(video_url) + if ext == 'm3u8': + formats.extend(self._extract_m3u8_formats( + video_url, video_id, 'mp4', m3u8_id='hls')) + elif ext == 'f4m': + formats.extend(self._extract_f4m_formats( + video_url, video_id, f4m_id='hds')) + else: + proto = compat_urllib_parse_urlparse(video_url).scheme + if not child.tag.startswith('HTTP') and proto != 'rtmp': + continue + preference = -1 if proto == 'rtmp' else 1 + label = child.get('label') + tbr = int_or_none(child.get('bitrate')) + width, height = [int_or_none(x) for x in child.get('resolution', '').split('x')] + formats.append({ + 'format_id': '%s-%s' % (proto, label if label else tbr), + 'url': video_url, + 'width': width, + 'height': height, + 'tbr': tbr, + 'preference': preference, + }) + + extract_formats(video_xml.find('./Clip')) + self._sort_formats(formats) + + return { + 'id': video_id, + 'display_id': display_id, + 'title': self._og_search_title(webpage), + 'description': self._og_search_description(webpage), + 'thumbnail': self._og_search_thumbnail(webpage), + 'duration': int_or_none(xpath_text(video_xml, './/Runtime', 'duration')), + 'age_limit': int_or_none(xpath_text(video_xml, './/AgeLimit', 'age limit')), + 'formats': formats, + } diff --git a/youtube_dl/extractor/safari.py b/youtube_dl/extractor/safari.py index 10251f2..f3c8070 100644 --- a/youtube_dl/extractor/safari.py +++ b/youtube_dl/extractor/safari.py @@ -83,7 +83,7 @@ class SafariIE(SafariBaseIE): library/view/[^/]+| api/v1/book )/ - (?P<course_id>\d+)/ + (?P<course_id>[^/]+)/ (?:chapter(?:-content)?/)? (?P<part>part\d+)\.html ''' @@ -100,6 +100,10 @@ class SafariIE(SafariBaseIE): }, { 'url': 'https://www.safaribooksonline.com/api/v1/book/9780133392838/chapter/part00.html', 'only_matching': True, + }, { + # non-digits in course id + 'url': 'https://www.safaribooksonline.com/library/view/create-a-nodejs/100000006A0210/part00.html', + 'only_matching': True, }] def _real_extract(self, url): @@ -122,7 +126,7 @@ class SafariCourseIE(SafariBaseIE): IE_NAME = 'safari:course' IE_DESC = 'safaribooksonline.com online courses' - _VALID_URL = r'https?://(?:www\.)?safaribooksonline\.com/(?:library/view/[^/]+|api/v1/book)/(?P<id>\d+)/?(?:[#?]|$)' + _VALID_URL = r'https?://(?:www\.)?safaribooksonline\.com/(?:library/view/[^/]+|api/v1/book)/(?P<id>[^/]+)/?(?:[#?]|$)' _TESTS = [{ 'url': 'https://www.safaribooksonline.com/library/view/hadoop-fundamentals-livelessons/9780133392838/', diff --git a/youtube_dl/extractor/sbs.py b/youtube_dl/extractor/sbs.py index d4bd1a0..d6ee2d9 100644 --- a/youtube_dl/extractor/sbs.py +++ b/youtube_dl/extractor/sbs.py @@ -1,17 +1,12 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -import re from .common import InfoExtractor -from ..utils import ( - js_to_json, - remove_end, -) class SBSIE(InfoExtractor): IE_DESC = 'sbs.com.au' - _VALID_URL = r'https?://(?:www\.)?sbs\.com\.au/ondemand/video/(?:single/)?(?P<id>[0-9]+)' + _VALID_URL = r'https?://(?:www\.)?sbs\.com\.au/(?:ondemand|news)/video/(?:single/)?(?P<id>[0-9]+)' _TESTS = [{ # Original URL is handled by the generic IE which finds the iframe: @@ -21,39 +16,36 @@ class SBSIE(InfoExtractor): 'info_dict': { 'id': '320403011771', 'ext': 'mp4', - 'title': 'Dingo Conservation', - 'description': 'Dingoes are on the brink of extinction; most of the animals we think are dingoes are in fact crossbred with wild dogs. This family run a dingo conservation park to prevent their extinction', + 'title': 'Dingo Conservation (The Feed)', + 'description': 'md5:f250a9856fca50d22dec0b5b8015f8a5', 'thumbnail': 're:http://.*\.jpg', + 'duration': 308, }, - 'add_ies': ['generic'], }, { 'url': 'http://www.sbs.com.au/ondemand/video/320403011771/Dingo-Conservation-The-Feed', 'only_matching': True, + }, { + 'url': 'http://www.sbs.com.au/news/video/471395907773/The-Feed-July-9', + 'only_matching': True, }] def _real_extract(self, url): video_id = self._match_id(url) - webpage = self._download_webpage(url, video_id) - - player = self._search_regex( - r'(?s)playerParams\.releaseUrls\s*=\s*(\{.*?\n\});\n', - webpage, 'player') - player = re.sub(r"'\s*\+\s*[\da-zA-Z_]+\s*\+\s*'", '', player) - - release_urls = self._parse_json(js_to_json(player), video_id) + webpage = self._download_webpage( + 'http://www.sbs.com.au/ondemand/video/single/%s?context=web' % video_id, video_id) - theplatform_url = release_urls.get('progressive') or release_urls['standard'] + player_params = self._parse_json( + self._search_regex( + r'(?s)var\s+playerParams\s*=\s*({.+?});', webpage, 'playerParams'), + video_id) - title = remove_end(self._og_search_title(webpage), ' (The Feed)') - description = self._html_search_meta('description', webpage) - thumbnail = self._og_search_thumbnail(webpage) + urls = player_params['releaseUrls'] + theplatform_url = (urls.get('progressive') or urls.get('standard') or + urls.get('html') or player_params['relatedItemsURL']) return { '_type': 'url_transparent', 'id': video_id, 'url': theplatform_url, - 'title': title, - 'description': description, - 'thumbnail': thumbnail, } diff --git a/youtube_dl/extractor/shared.py b/youtube_dl/extractor/shared.py index 9f3e944..a076776 100644 --- a/youtube_dl/extractor/shared.py +++ b/youtube_dl/extractor/shared.py @@ -1,6 +1,5 @@ from __future__ import unicode_literals -import re import base64 from .common import InfoExtractor @@ -35,8 +34,7 @@ class SharedIE(InfoExtractor): raise ExtractorError( 'Video %s does not exist' % video_id, expected=True) - download_form = dict(re.findall( - r'<input type="hidden" name="([^"]+)" value="([^"]*)"', webpage)) + download_form = self._hidden_inputs(webpage) request = compat_urllib_request.Request( url, compat_urllib_parse.urlencode(download_form)) request.add_header('Content-Type', 'application/x-www-form-urlencoded') diff --git a/youtube_dl/extractor/smotri.py b/youtube_dl/extractor/smotri.py index 24746a0..93a7cfe 100644 --- a/youtube_dl/extractor/smotri.py +++ b/youtube_dl/extractor/smotri.py @@ -53,7 +53,7 @@ class SmotriIE(InfoExtractor): 'thumbnail': 'http://frame4.loadup.ru/03/ed/57591.2.3.jpg', }, }, - # video-password + # video-password, not approved by moderator { 'url': 'http://smotri.com/video/view/?id=v1390466a13c', 'md5': 'f6331cef33cad65a0815ee482a54440b', @@ -71,7 +71,24 @@ class SmotriIE(InfoExtractor): }, 'skip': 'Video is not approved by moderator', }, - # age limit + video-password + # video-password + { + 'url': 'http://smotri.com/video/view/?id=v6984858774#', + 'md5': 'f11e01d13ac676370fc3b95b9bda11b0', + 'info_dict': { + 'id': 'v6984858774', + 'ext': 'mp4', + 'title': 'ÐаÑа СолжениÑина ÐÐÐ ÐÐЬ 223322', + 'uploader': 'psavari1', + 'uploader_id': 'psavari1', + 'upload_date': '20081103', + 'thumbnail': 're:^https?://.*\.jpg$', + }, + 'params': { + 'videopassword': '223322', + }, + }, + # age limit + video-password, not approved by moderator { 'url': 'http://smotri.com/video/view/?id=v15408898bcf', 'md5': '91e909c9f0521adf5ee86fbe073aad70', @@ -90,19 +107,22 @@ class SmotriIE(InfoExtractor): }, 'skip': 'Video is not approved by moderator', }, - # not approved by moderator, but available + # age limit + video-password { - 'url': 'http://smotri.com/video/view/?id=v28888533b73', - 'md5': 'f44bc7adac90af518ef1ecf04893bb34', + 'url': 'http://smotri.com/video/view/?id=v7780025814', + 'md5': 'b4599b068422559374a59300c5337d72', 'info_dict': { - 'id': 'v28888533b73', + 'id': 'v7780025814', 'ext': 'mp4', - 'title': 'Russian Spies Killed By ISIL Child Soldier', - 'uploader': 'Mopeder', - 'uploader_id': 'mopeder', - 'duration': 71, - 'thumbnail': 'http://frame9.loadup.ru/d7/32/2888853.2.3.jpg', - 'upload_date': '20150114', + 'title': 'Sexy Beach (паÑÐ¾Ð»Ñ 123)', + 'uploader': 'вÐÑÑ', + 'uploader_id': 'asya_prosto', + 'upload_date': '20081218', + 'thumbnail': 're:^https?://.*\.jpg$', + 'age_limit': 18, + }, + 'params': { + 'videopassword': '123' }, }, # swf player @@ -152,6 +172,10 @@ class SmotriIE(InfoExtractor): 'getvideoinfo': '1', } + video_password = self._downloader.params.get('videopassword', None) + if video_password: + video_form['pass'] = hashlib.md5(video_password.encode('utf-8')).hexdigest() + request = compat_urllib_request.Request( 'http://smotri.com/video/view/url/bot/', compat_urllib_parse.urlencode(video_form)) request.add_header('Content-Type', 'application/x-www-form-urlencoded') @@ -161,13 +185,18 @@ class SmotriIE(InfoExtractor): video_url = video.get('_vidURL') or video.get('_vidURL_mp4') if not video_url: - if video.get('_moderate_no') or not video.get('moderated'): + if video.get('_moderate_no'): raise ExtractorError( 'Video %s has not been approved by moderator' % video_id, expected=True) if video.get('error'): raise ExtractorError('Video %s does not exist' % video_id, expected=True) + if video.get('_pass_protected') == 1: + msg = ('Invalid video password' if video_password + else 'This video is protected by a password, use the --video-password option') + raise ExtractorError(msg, expected=True) + title = video['title'] thumbnail = video['_imgURL'] upload_date = unified_strdate(video['added']) diff --git a/youtube_dl/extractor/snagfilms.py b/youtube_dl/extractor/snagfilms.py new file mode 100644 index 0000000..cf495f3 --- /dev/null +++ b/youtube_dl/extractor/snagfilms.py @@ -0,0 +1,171 @@ +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import ( + ExtractorError, + clean_html, + determine_ext, + int_or_none, + js_to_json, + parse_duration, +) + + +class SnagFilmsEmbedIE(InfoExtractor): + _VALID_URL = r'https?://(?:(?:www|embed)\.)?snagfilms\.com/embed/player\?.*\bfilmId=(?P<id>[\da-f-]{36})' + _TESTS = [{ + 'url': 'http://embed.snagfilms.com/embed/player?filmId=74849a00-85a9-11e1-9660-123139220831&w=500', + 'md5': '2924e9215c6eff7a55ed35b72276bd93', + 'info_dict': { + 'id': '74849a00-85a9-11e1-9660-123139220831', + 'ext': 'mp4', + 'title': '#whilewewatch', + } + }, { + 'url': 'http://www.snagfilms.com/embed/player?filmId=0000014c-de2f-d5d6-abcf-ffef58af0017', + 'only_matching': True, + }] + + @staticmethod + def _extract_url(webpage): + mobj = re.search( + r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:embed\.)?snagfilms\.com/embed/player.+?)\1', + webpage) + if mobj: + return mobj.group('url') + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage(url, video_id) + + if '>This film is not playable in your area.<' in webpage: + raise ExtractorError( + 'Film %s is not playable in your area.' % video_id, expected=True) + + formats = [] + for source in self._parse_json(js_to_json(self._search_regex( + r'(?s)sources:\s*(\[.+?\]),', webpage, 'json')), video_id): + file_ = source.get('file') + if not file_: + continue + type_ = source.get('type') + format_id = source.get('label') + ext = determine_ext(file_) + if any(_ == 'm3u8' for _ in (type_, ext)): + formats.extend(self._extract_m3u8_formats( + file_, video_id, 'mp4', m3u8_id='hls')) + else: + bitrate = int_or_none(self._search_regex( + r'(\d+)kbps', file_, 'bitrate', default=None)) + height = int_or_none(self._search_regex( + r'^(\d+)[pP]$', format_id, 'height', default=None)) + formats.append({ + 'url': file_, + 'format_id': format_id, + 'tbr': bitrate, + 'height': height, + }) + self._sort_formats(formats) + + title = self._search_regex( + [r"title\s*:\s*'([^']+)'", r'<title>([^<]+)</title>'], + webpage, 'title') + + return { + 'id': video_id, + 'title': title, + 'formats': formats, + } + + +class SnagFilmsIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?snagfilms\.com/(?:films/title|show)/(?P<id>[^?#]+)' + _TESTS = [{ + 'url': 'http://www.snagfilms.com/films/title/lost_for_life', + 'md5': '19844f897b35af219773fd63bdec2942', + 'info_dict': { + 'id': '0000014c-de2f-d5d6-abcf-ffef58af0017', + 'display_id': 'lost_for_life', + 'ext': 'mp4', + 'title': 'Lost for Life', + 'description': 'md5:fbdacc8bb6b455e464aaf98bc02e1c82', + 'thumbnail': 're:^https?://.*\.jpg', + 'duration': 4489, + 'categories': ['Documentary', 'Crime', 'Award Winning', 'Festivals'] + } + }, { + 'url': 'http://www.snagfilms.com/show/the_world_cut_project/india', + 'md5': 'e6292e5b837642bbda82d7f8bf3fbdfd', + 'info_dict': { + 'id': '00000145-d75c-d96e-a9c7-ff5c67b20000', + 'display_id': 'the_world_cut_project/india', + 'ext': 'mp4', + 'title': 'India', + 'description': 'md5:5c168c5a8f4719c146aad2e0dfac6f5f', + 'thumbnail': 're:^https?://.*\.jpg', + 'duration': 979, + 'categories': ['Documentary', 'Sports', 'Politics'] + } + }, { + # Film is not playable in your area. + 'url': 'http://www.snagfilms.com/films/title/inside_mecca', + 'only_matching': True, + }, { + # Film is not available. + 'url': 'http://www.snagfilms.com/show/augie_alone/flirting', + 'only_matching': True, + }] + + def _real_extract(self, url): + display_id = self._match_id(url) + + webpage = self._download_webpage(url, display_id) + + if ">Sorry, the Film you're looking for is not available.<" in webpage: + raise ExtractorError( + 'Film %s is not available.' % display_id, expected=True) + + film_id = self._search_regex(r'filmId=([\da-f-]{36})"', webpage, 'film id') + + snag = self._parse_json( + self._search_regex( + 'Snag\.page\.data\s*=\s*(\[.+?\]);', webpage, 'snag'), + display_id) + + for item in snag: + if item.get('data', {}).get('film', {}).get('id') == film_id: + data = item['data']['film'] + title = data['title'] + description = clean_html(data.get('synopsis')) + thumbnail = data.get('image') + duration = int_or_none(data.get('duration') or data.get('runtime')) + categories = [ + category['title'] for category in data.get('categories', []) + if category.get('title')] + break + else: + title = self._search_regex( + r'itemprop="title">([^<]+)<', webpage, 'title') + description = self._html_search_regex( + r'(?s)<div itemprop="description" class="film-synopsis-inner ">(.+?)</div>', + webpage, 'description', default=None) or self._og_search_description(webpage) + thumbnail = self._og_search_thumbnail(webpage) + duration = parse_duration(self._search_regex( + r'<span itemprop="duration" class="film-duration strong">([^<]+)<', + webpage, 'duration', fatal=False)) + categories = re.findall(r'<a href="/movies/[^"]+">([^<]+)</a>', webpage) + + return { + '_type': 'url_transparent', + 'url': 'http://embed.snagfilms.com/embed/player?filmId=%s' % film_id, + 'id': film_id, + 'display_id': display_id, + 'title': title, + 'description': description, + 'thumbnail': thumbnail, + 'duration': duration, + 'categories': categories, + } diff --git a/youtube_dl/extractor/sohu.py b/youtube_dl/extractor/sohu.py index 29bd9ce..ba2d5e1 100644 --- a/youtube_dl/extractor/sohu.py +++ b/youtube_dl/extractor/sohu.py @@ -6,9 +6,12 @@ import re from .common import InfoExtractor from ..compat import ( compat_str, - compat_urllib_request + compat_urllib_request, + compat_urllib_parse, +) +from ..utils import ( + ExtractorError, ) -from ..utils import ExtractorError class SohuIE(InfoExtractor): @@ -26,7 +29,7 @@ class SohuIE(InfoExtractor): 'skip': 'On available in China', }, { 'url': 'http://tv.sohu.com/20150305/n409385080.shtml', - 'md5': 'ac9a5d322b4bf9ae184d53e4711e4f1a', + 'md5': '699060e75cf58858dd47fb9c03c42cfb', 'info_dict': { 'id': '409385080', 'ext': 'mp4', @@ -34,7 +37,7 @@ class SohuIE(InfoExtractor): } }, { 'url': 'http://my.tv.sohu.com/us/232799889/78693464.shtml', - 'md5': '49308ff6dafde5ece51137d04aec311e', + 'md5': '9bf34be48f2f4dadcb226c74127e203c', 'info_dict': { 'id': '78693464', 'ext': 'mp4', @@ -48,7 +51,7 @@ class SohuIE(InfoExtractor): 'title': 'ãç¥æ¢èå®æç§ç±ã第13æ æäºä¹å½± 赫å¡éå§', }, 'playlist': [{ - 'md5': '492923eac023ba2f13ff69617c32754a', + 'md5': 'bdbfb8f39924725e6589c146bc1883ad', 'info_dict': { 'id': '78910339_part1', 'ext': 'mp4', @@ -56,7 +59,7 @@ class SohuIE(InfoExtractor): 'title': 'ãç¥æ¢èå®æç§ç±ã第13æ æäºä¹å½± 赫å¡éå§', } }, { - 'md5': 'de604848c0e8e9c4a4dde7e1347c0637', + 'md5': '3e1f46aaeb95354fd10e7fca9fc1804e', 'info_dict': { 'id': '78910339_part2', 'ext': 'mp4', @@ -64,7 +67,7 @@ class SohuIE(InfoExtractor): 'title': 'ãç¥æ¢èå®æç§ç±ã第13æ æäºä¹å½± 赫å¡éå§', } }, { - 'md5': '93584716ee0657c0b205b8aa3d27aa13', + 'md5': '8407e634175fdac706766481b9443450', 'info_dict': { 'id': '78910339_part3', 'ext': 'mp4', @@ -139,21 +142,42 @@ class SohuIE(InfoExtractor): for i in range(part_count): formats = [] for format_id, format_data in formats_json.items(): + allot = format_data['allot'] + data = format_data['data'] + clips_url = data['clipsURL'] + su = data['su'] - # URLs starts with http://newflv.sohu.ccgslb.net/ is not usable - # so retry until got a working URL video_url = 'newflv.sohu.ccgslb.net' + cdnId = None retries = 0 - while 'newflv.sohu.ccgslb.net' in video_url and retries < 5: - download_note = 'Download information from CDN gateway for format ' + format_id + + while 'newflv.sohu.ccgslb.net' in video_url: + params = { + 'prot': 9, + 'file': clips_url[i], + 'new': su[i], + 'prod': 'flash', + } + + if cdnId is not None: + params['idc'] = cdnId + + download_note = 'Downloading %s video URL part %d of %d' % ( + format_id, i + 1, part_count) + if retries > 0: download_note += ' (retry #%d)' % retries + part_info = self._parse_json(self._download_webpage( + 'http://%s/?%s' % (allot, compat_urllib_parse.urlencode(params)), + video_id, download_note), video_id) + + video_url = part_info['url'] + cdnId = part_info.get('nid') + retries += 1 - cdn_info = self._download_json( - 'http://data.vod.itc.cn/cdnList?new=' + data['su'][i], - video_id, download_note) - video_url = cdn_info['url'] + if retries > 5: + raise ExtractorError('Failed to get video URL') formats.append({ 'url': video_url, diff --git a/youtube_dl/extractor/soundcloud.py b/youtube_dl/extractor/soundcloud.py index c23c5ee..118ca48 100644 --- a/youtube_dl/extractor/soundcloud.py +++ b/youtube_dl/extractor/soundcloud.py @@ -29,7 +29,7 @@ class SoundcloudIE(InfoExtractor): _VALID_URL = r'''(?x)^(?:https?://)? (?:(?:(?:www\.|m\.)?soundcloud\.com/ (?P<uploader>[\w\d-]+)/ - (?!sets/|likes/?(?:$|[?#])) + (?!sets/|(?:likes|tracks)/?(?:$|[?#])) (?P<title>[\w\d-]+)/? (?P<token>[^?]+?)?(?:[?].*)?$) |(?:api\.soundcloud\.com/tracks/(?P<track_id>\d+) @@ -307,6 +307,9 @@ class SoundcloudUserIE(SoundcloudIE): 'title': 'The Royal Concept', }, 'playlist_mincount': 1, + }, { + 'url': 'https://soundcloud.com/the-akashic-chronicler/tracks', + 'only_matching': True, }] def _real_extract(self, url): diff --git a/youtube_dl/extractor/spankwire.py b/youtube_dl/extractor/spankwire.py index 06d6e66..5fa6faf 100644 --- a/youtube_dl/extractor/spankwire.py +++ b/youtube_dl/extractor/spankwire.py @@ -4,7 +4,7 @@ import re from .common import InfoExtractor from ..compat import ( - compat_urllib_parse, + compat_urllib_parse_unquote, compat_urllib_parse_urlparse, compat_urllib_request, ) @@ -27,7 +27,7 @@ class SpankwireIE(InfoExtractor): 'description': 'Crazy Bitch X rated music video.', 'uploader': 'oreusz', 'uploader_id': '124697', - 'upload_date': '20070508', + 'upload_date': '20070507', 'age_limit': 18, } } @@ -44,7 +44,7 @@ class SpankwireIE(InfoExtractor): title = self._html_search_regex( r'<h1>([^<]+)', webpage, 'title') description = self._html_search_regex( - r'<div\s+id="descriptionContent">([^<]+)<', + r'(?s)<div\s+id="descriptionContent">(.+?)</div>', webpage, 'description', fatal=False) thumbnail = self._html_search_regex( r'playerData\.screenShot\s*=\s*["\']([^"\']+)["\']', @@ -64,12 +64,12 @@ class SpankwireIE(InfoExtractor): r'<div id="viewsCounter"><span>([\d,\.]+)</span> views</div>', webpage, 'view count', fatal=False)) comment_count = str_to_int(self._html_search_regex( - r'Comments<span[^>]+>\s*\(([\d,\.]+)\)</span>', + r'<span\s+id="spCommentCount"[^>]*>([\d,\.]+)</span>', webpage, 'comment count', fatal=False)) video_urls = list(map( - compat_urllib_parse.unquote, - re.findall(r'playerData\.cdnPath[0-9]{3,}\s*=\s*["\']([^"\']+)["\']', webpage))) + compat_urllib_parse_unquote, + re.findall(r'playerData\.cdnPath[0-9]{3,}\s*=\s*(?:encodeURIComponent\()?["\']([^"\']+)["\']', webpage))) if webpage.find('flashvars\.encrypted = "true"') != -1: password = self._search_regex( r'flashvars\.video_title = "([^"]+)', diff --git a/youtube_dl/extractor/spiegeltv.py b/youtube_dl/extractor/spiegeltv.py index 359722a..27f4033 100644 --- a/youtube_dl/extractor/spiegeltv.py +++ b/youtube_dl/extractor/spiegeltv.py @@ -2,7 +2,11 @@ from __future__ import unicode_literals from .common import InfoExtractor -from ..utils import float_or_none +from ..compat import compat_urllib_parse_urlparse +from ..utils import ( + determine_ext, + float_or_none, +) class SpiegeltvIE(InfoExtractor): @@ -17,7 +21,7 @@ class SpiegeltvIE(InfoExtractor): 'thumbnail': 're:http://.*\.jpg$', }, 'params': { - # rtmp download + # m3u8 download 'skip_download': True, } }, { @@ -53,7 +57,37 @@ class SpiegeltvIE(InfoExtractor): server_json = self._download_json( 'http://spiegeltv-prod-static.s3.amazonaws.com/projectConfigs/projectConfig.json', video_id, note='Downloading server information') - server = server_json['streamingserver'][0]['endpoint'] + + format = '16x9' if is_wide else '4x3' + + formats = [] + for streamingserver in server_json['streamingserver']: + endpoint = streamingserver.get('endpoint') + if not endpoint: + continue + play_path = 'mp4:%s_spiegeltv_0500_%s.m4v' % (uuid, format) + if endpoint.startswith('rtmp'): + formats.append({ + 'url': endpoint, + 'format_id': 'rtmp', + 'app': compat_urllib_parse_urlparse(endpoint).path[1:], + 'play_path': play_path, + 'player_path': 'http://prod-static.spiegel.tv/frontend-076.swf', + 'ext': 'flv', + 'rtmp_live': True, + }) + elif determine_ext(endpoint) == 'm3u8': + m3u8_formats = self._extract_m3u8_formats( + endpoint.replace('[video]', play_path), + video_id, 'm4v', + preference=1, # Prefer hls since it allows to workaround georestriction + m3u8_id='hls', fatal=False) + if m3u8_formats is not False: + formats.extend(m3u8_formats) + else: + formats.append({ + 'url': endpoint, + }) thumbnails = [] for image in media_json['images']: @@ -65,17 +99,12 @@ class SpiegeltvIE(InfoExtractor): description = media_json['subtitle'] duration = float_or_none(media_json.get('duration_in_ms'), scale=1000) - format = '16x9' if is_wide else '4x3' - - url = server + 'mp4:' + uuid + '_spiegeltv_0500_' + format + '.m4v' return { 'id': video_id, 'title': title, - 'url': url, - 'ext': 'm4v', 'description': description, 'duration': duration, 'thumbnails': thumbnails, - 'rtmp_live': True, + 'formats': formats, } diff --git a/youtube_dl/extractor/sunporno.py b/youtube_dl/extractor/sunporno.py index 854d01b..e527aa9 100644 --- a/youtube_dl/extractor/sunporno.py +++ b/youtube_dl/extractor/sunporno.py @@ -44,7 +44,7 @@ class SunPornoIE(InfoExtractor): webpage, 'duration', fatal=False)) view_count = int_or_none(self._html_search_regex( - r'class="views">\s*(\d+)\s*<', + r'class="views">(?:<noscript>)?\s*(\d+)\s*<', webpage, 'view count', fatal=False)) comment_count = int_or_none(self._html_search_regex( r'(\d+)</b> Comments?', diff --git a/youtube_dl/extractor/tagesschau.py b/youtube_dl/extractor/tagesschau.py index bfe07b0..cf1b37a 100644 --- a/youtube_dl/extractor/tagesschau.py +++ b/youtube_dl/extractor/tagesschau.py @@ -11,13 +11,13 @@ class TagesschauIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?tagesschau\.de/multimedia/(?:sendung/ts|video/video)(?P<id>-?[0-9]+)\.html' _TESTS = [{ - 'url': 'http://www.tagesschau.de/multimedia/video/video1399128.html', - 'md5': 'bcdeac2194fb296d599ce7929dfa4009', + 'url': 'http://www.tagesschau.de/multimedia/video/video-102143.html', + 'md5': '917a228bc7df7850783bc47979673a09', 'info_dict': { - 'id': '1399128', + 'id': '102143', 'ext': 'mp4', - 'title': 'Harald Range, Generalbundesanwalt, zu den Ermittlungen', - 'description': 'md5:69da3c61275b426426d711bde96463ab', + 'title': 'Regierungsumbildung in Athen: Neue Minister in Griechenland vereidigt', + 'description': 'md5:171feccd9d9b3dd54d05d501568f6359', 'thumbnail': 're:^http:.*\.jpg$', }, }, { diff --git a/youtube_dl/extractor/teamcoco.py b/youtube_dl/extractor/teamcoco.py index b2a4b1f..d1b7264 100644 --- a/youtube_dl/extractor/teamcoco.py +++ b/youtube_dl/extractor/teamcoco.py @@ -51,6 +51,17 @@ class TeamcocoIE(InfoExtractor): 'params': { 'skip_download': True, # m3u8 downloads } + }, { + 'url': 'http://teamcoco.com/video/full-episode-mon-6-1-joel-mchale-jake-tapper-and-musical-guest-courtney-barnett?playlist=x;eyJ0eXBlIjoidGFnIiwiaWQiOjl9', + 'info_dict': { + 'id': '89341', + 'ext': 'mp4', + 'title': 'Full Episode - Mon. 6/1 - Joel McHale, Jake Tapper, And Musical Guest Courtney Barnett', + 'description': 'Guests: Joel McHale, Jake Tapper, And Musical Guest Courtney Barnett', + }, + 'params': { + 'skip_download': True, # m3u8 downloads + } } ] _VIDEO_ID_REGEXES = ( @@ -110,9 +121,23 @@ class TeamcocoIE(InfoExtractor): get_quality = qualities(['500k', '480p', '1000k', '720p', '1080p']) for filed in data['files']: if determine_ext(filed['url']) == 'm3u8': - formats.extend(self._extract_m3u8_formats( - filed['url'], video_id, ext='mp4')) + # compat_urllib_parse.urljoin does not work here + if filed['url'].startswith('/'): + m3u8_url = 'http://ht.cdn.turner.com/tbs/big/teamcoco' + filed['url'] + else: + m3u8_url = filed['url'] + m3u8_formats = self._extract_m3u8_formats( + m3u8_url, video_id, ext='mp4') + for m3u8_format in m3u8_formats: + if m3u8_format not in formats: + formats.append(m3u8_format) + elif determine_ext(filed['url']) == 'f4m': + # TODO Correct f4m extraction + continue else: + if filed['url'].startswith('/mp4:protected/'): + # TODO Correct extraction for these files + continue m_format = re.search(r'(\d+(k|p))\.mp4', filed['url']) if m_format is not None: format_id = m_format.group(1) diff --git a/youtube_dl/extractor/theplatform.py b/youtube_dl/extractor/theplatform.py index 92731ad..83d833e 100644 --- a/youtube_dl/extractor/theplatform.py +++ b/youtube_dl/extractor/theplatform.py @@ -26,7 +26,7 @@ _x = lambda p: xpath_with_ns(p, {'smil': 'http://www.w3.org/2005/SMIL21/Language class ThePlatformIE(InfoExtractor): _VALID_URL = r'''(?x) (?:https?://(?:link|player)\.theplatform\.com/[sp]/(?P<provider_id>[^/]+)/ - (?P<config>(?:[^/\?]+/(?:swf|config)|onsite)/select/)? + (?:(?P<media>(?:[^/]+/)+select/media/)|(?P<config>(?:[^/\?]+/(?:swf|config)|onsite)/select/))? |theplatform:)(?P<id>[^/\?&]+)''' _TESTS = [{ @@ -56,6 +56,17 @@ class ThePlatformIE(InfoExtractor): # rtmp download 'skip_download': True, } + }, { + 'url': 'https://player.theplatform.com/p/D6x-PC/pulse_preview/embed/select/media/yMBg9E8KFxZD', + 'info_dict': { + 'id': 'yMBg9E8KFxZD', + 'ext': 'mp4', + 'description': 'md5:644ad9188d655b742f942bf2e06b002d', + 'title': 'HIGHLIGHTS: USA bag first ever series Cup win', + } + }, { + 'url': 'http://player.theplatform.com/p/NnzsPC/widget/select/media/4Y0TlYUr_ZT7', + 'only_matching': True, }] @staticmethod @@ -85,6 +96,11 @@ class ThePlatformIE(InfoExtractor): if not provider_id: provider_id = 'dJ5BDC' + path = provider_id + if mobj.group('media'): + path += '/media' + path += '/' + video_id + if smuggled_data.get('force_smil_url', False): smil_url = url elif mobj.group('config'): @@ -94,8 +110,7 @@ class ThePlatformIE(InfoExtractor): config = self._download_json(config_url, video_id, 'Downloading config') smil_url = config['releaseUrl'] + '&format=SMIL&formats=MPEG4&manifest=f4m' else: - smil_url = ('http://link.theplatform.com/s/{0}/{1}/meta.smil?' - 'format=smil&mbr=true'.format(provider_id, video_id)) + smil_url = 'http://link.theplatform.com/s/%s/meta.smil?format=smil&mbr=true' % path sig = smuggled_data.get('sig') if sig: @@ -112,7 +127,7 @@ class ThePlatformIE(InfoExtractor): else: raise ExtractorError(error_msg, expected=True) - info_url = 'http://link.theplatform.com/s/{0}/{1}?format=preview'.format(provider_id, video_id) + info_url = 'http://link.theplatform.com/s/%s?format=preview' % path info_json = self._download_webpage(info_url, video_id) info = json.loads(info_json) diff --git a/youtube_dl/extractor/thesixtyone.py b/youtube_dl/extractor/thesixtyone.py index a77c6a2..5d09eb9 100644 --- a/youtube_dl/extractor/thesixtyone.py +++ b/youtube_dl/extractor/thesixtyone.py @@ -1,9 +1,6 @@ # coding: utf-8 from __future__ import unicode_literals -import json -import re - from .common import InfoExtractor from ..utils import unified_strdate @@ -17,7 +14,7 @@ class TheSixtyOneIE(InfoExtractor): song )/(?P<id>[A-Za-z0-9]+)/?$''' _SONG_URL_TEMPLATE = 'http://thesixtyone.com/s/{0:}' - _SONG_FILE_URL_TEMPLATE = 'http://{audio_server:}.thesixtyone.com/thesixtyone_production/audio/{0:}_stream' + _SONG_FILE_URL_TEMPLATE = 'http://{audio_server:}/thesixtyone_production/audio/{0:}_stream' _THUMBNAIL_URL_TEMPLATE = '{photo_base_url:}_desktop' _TESTS = [ { @@ -70,14 +67,19 @@ class TheSixtyOneIE(InfoExtractor): } def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - song_id = mobj.group('id') + song_id = self._match_id(url) webpage = self._download_webpage( self._SONG_URL_TEMPLATE.format(song_id), song_id) - song_data = json.loads(self._search_regex( - r'"%s":\s(\{.*?\})' % song_id, webpage, 'song_data')) + song_data = self._parse_json(self._search_regex( + r'"%s":\s(\{.*?\})' % song_id, webpage, 'song_data'), song_id) + + if self._search_regex(r'(t61\.s3_audio_load\s*=\s*1\.0;)', webpage, 's3_audio_load marker', default=None): + song_data['audio_server'] = 's3.amazonaws.com' + else: + song_data['audio_server'] = song_data['audio_server'] + '.thesixtyone.com' + keys = [self._DECODE_MAP.get(s, s) for s in song_data['key']] url = self._SONG_FILE_URL_TEMPLATE.format( "".join(reversed(keys)), **song_data) diff --git a/youtube_dl/extractor/thisamericanlife.py b/youtube_dl/extractor/thisamericanlife.py new file mode 100644 index 0000000..36493a5 --- /dev/null +++ b/youtube_dl/extractor/thisamericanlife.py @@ -0,0 +1,40 @@ +from __future__ import unicode_literals + +from .common import InfoExtractor + + +class ThisAmericanLifeIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?thisamericanlife\.org/(?:radio-archives/episode/|play_full\.php\?play=)(?P<id>\d+)' + _TESTS = [{ + 'url': 'http://www.thisamericanlife.org/radio-archives/episode/487/harper-high-school-part-one', + 'md5': '8f7d2da8926298fdfca2ee37764c11ce', + 'info_dict': { + 'id': '487', + 'ext': 'm4a', + 'title': '487: Harper High School, Part One', + 'description': 'md5:ee40bdf3fb96174a9027f76dbecea655', + 'thumbnail': 're:^https?://.*\.jpg$', + }, + }, { + 'url': 'http://www.thisamericanlife.org/play_full.php?play=487', + 'only_matching': True, + }] + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage( + 'http://www.thisamericanlife.org/radio-archives/episode/%s' % video_id, video_id) + + return { + 'id': video_id, + 'url': 'http://stream.thisamericanlife.org/{0}/stream/{0}_64k.m3u8'.format(video_id), + 'protocol': 'm3u8_native', + 'ext': 'm4a', + 'acodec': 'aac', + 'vcodec': 'none', + 'abr': 64, + 'title': self._html_search_meta(r'twitter:title', webpage, 'title', fatal=True), + 'description': self._html_search_meta(r'description', webpage, 'description'), + 'thumbnail': self._og_search_thumbnail(webpage), + } diff --git a/youtube_dl/extractor/tlc.py b/youtube_dl/extractor/tlc.py index 9f9e388..1326361 100644 --- a/youtube_dl/extractor/tlc.py +++ b/youtube_dl/extractor/tlc.py @@ -12,17 +12,22 @@ class TlcIE(DiscoveryIE): IE_NAME = 'tlc.com' _VALID_URL = r'http://www\.tlc\.com\/[a-zA-Z0-9\-]*/[a-zA-Z0-9\-]*/videos/(?P<id>[a-zA-Z0-9\-]*)(.htm)?' - _TEST = { + # DiscoveryIE has _TESTS + _TESTS = [{ 'url': 'http://www.tlc.com/tv-shows/cake-boss/videos/too-big-to-fly.htm', - 'md5': 'c4038f4a9b44d0b5d74caaa64ed2a01a', 'info_dict': { - 'id': '853232', + 'id': '104493', 'ext': 'mp4', - 'title': 'Cake Boss: Too Big to Fly', + 'title': 'Too Big to Fly', 'description': 'Buddy has taken on a high flying task.', 'duration': 119, + 'timestamp': 1393365060, + 'upload_date': '20140225', }, - } + 'params': { + 'skip_download': True, # requires ffmpef + }, + }] class TlcDeIE(InfoExtractor): diff --git a/youtube_dl/extractor/tnaflix.py b/youtube_dl/extractor/tnaflix.py index c282865..49516ab 100644 --- a/youtube_dl/extractor/tnaflix.py +++ b/youtube_dl/extractor/tnaflix.py @@ -3,39 +3,70 @@ from __future__ import unicode_literals import re from .common import InfoExtractor +from ..compat import compat_str from ..utils import ( - parse_duration, fix_xml_ampersands, + float_or_none, + int_or_none, + parse_duration, + str_to_int, + xpath_text, ) -class TNAFlixIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?tnaflix\.com/[^/]+/(?P<display_id>[^/]+)/video(?P<id>\d+)' - - _TITLE_REGEX = r'<title>(.+?) - TNAFlix Porn Videos</title>' - _DESCRIPTION_REGEX = r'<h3 itemprop="description">([^<]+)</h3>' - _CONFIG_REGEX = r'flashvars\.config\s*=\s*escape\("([^"]+)"' - - _TESTS = [ - { - 'url': 'http://www.tnaflix.com/porn-stars/Carmella-Decesare-striptease/video553878', - 'md5': 'ecf3498417d09216374fc5907f9c6ec0', - 'info_dict': { - 'id': '553878', - 'display_id': 'Carmella-Decesare-striptease', - 'ext': 'mp4', - 'title': 'Carmella Decesare - striptease', - 'description': '', - 'thumbnail': 're:https?://.*\.jpg$', - 'duration': 91, - 'age_limit': 18, - } - }, - { - 'url': 'https://www.tnaflix.com/amateur-porn/bunzHD-Ms.Donk/video358632', - 'only_matching': True, - } +class TNAFlixNetworkBaseIE(InfoExtractor): + # May be overridden in descendants if necessary + _CONFIG_REGEX = [ + r'flashvars\.config\s*=\s*escape\("([^"]+)"', + r'<input[^>]+name="config\d?" value="([^"]+)"', ] + _TITLE_REGEX = r'<input[^>]+name="title" value="([^"]+)"' + _DESCRIPTION_REGEX = r'<input[^>]+name="description" value="([^"]+)"' + _UPLOADER_REGEX = r'<input[^>]+name="username" value="([^"]+)"' + _VIEW_COUNT_REGEX = None + _COMMENT_COUNT_REGEX = None + _AVERAGE_RATING_REGEX = None + _CATEGORIES_REGEX = r'<li[^>]*>\s*<span[^>]+class="infoTitle"[^>]*>Categories:</span>\s*<span[^>]+class="listView"[^>]*>(.+?)</span>\s*</li>' + + def _extract_thumbnails(self, flix_xml): + + def get_child(elem, names): + for name in names: + child = elem.find(name) + if child is not None: + return child + + timeline = get_child(flix_xml, ['timeline', 'rolloverBarImage']) + if timeline is None: + return + + pattern_el = get_child(timeline, ['imagePattern', 'pattern']) + if pattern_el is None or not pattern_el.text: + return + + first_el = get_child(timeline, ['imageFirst', 'first']) + last_el = get_child(timeline, ['imageLast', 'last']) + if first_el is None or last_el is None: + return + + first_text = first_el.text + last_text = last_el.text + if not first_text.isdigit() or not last_text.isdigit(): + return + + first = int(first_text) + last = int(last_text) + if first > last: + return + + width = int_or_none(xpath_text(timeline, './imageWidth', 'thumbnail width')) + height = int_or_none(xpath_text(timeline, './imageHeight', 'thumbnail height')) + + return [{ + 'url': self._proto_relative_url(pattern_el.text.replace('#', compat_str(i)), 'http:'), + 'width': width, + 'height': height, + } for i in range(first, last + 1)] def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) @@ -44,47 +75,195 @@ class TNAFlixIE(InfoExtractor): webpage = self._download_webpage(url, display_id) - title = self._html_search_regex( - self._TITLE_REGEX, webpage, 'title') if self._TITLE_REGEX else self._og_search_title(webpage) - description = self._html_search_regex( - self._DESCRIPTION_REGEX, webpage, 'description', fatal=False, default='') - - age_limit = self._rta_search(webpage) - - duration = parse_duration(self._html_search_meta( - 'duration', webpage, 'duration', default=None)) - cfg_url = self._proto_relative_url(self._html_search_regex( self._CONFIG_REGEX, webpage, 'flashvars.config'), 'http:') cfg_xml = self._download_xml( - cfg_url, display_id, note='Downloading metadata', + cfg_url, display_id, 'Downloading metadata', transform_source=fix_xml_ampersands) - thumbnail = self._proto_relative_url( - cfg_xml.find('./startThumb').text, 'http:') - formats = [] + + def extract_video_url(vl): + return re.sub('speed=\d+', 'speed=', vl.text) + + video_link = cfg_xml.find('./videoLink') + if video_link is not None: + formats.append({ + 'url': extract_video_url(video_link), + 'ext': xpath_text(cfg_xml, './videoConfig/type', 'type', default='flv'), + }) + for item in cfg_xml.findall('./quality/item'): - video_url = re.sub('speed=\d+', 'speed=', item.find('videoLink').text) - format_id = item.find('res').text - fmt = { - 'url': self._proto_relative_url(video_url, 'http:'), + video_link = item.find('./videoLink') + if video_link is None: + continue + res = item.find('res') + format_id = None if res is None else res.text + height = int_or_none(self._search_regex( + r'^(\d+)[pP]', format_id, 'height', default=None)) + formats.append({ + 'url': self._proto_relative_url(extract_video_url(video_link), 'http:'), 'format_id': format_id, - } - m = re.search(r'^(\d+)', format_id) - if m: - fmt['height'] = int(m.group(1)) - formats.append(fmt) + 'height': height, + }) + self._sort_formats(formats) + thumbnail = self._proto_relative_url( + xpath_text(cfg_xml, './startThumb', 'thumbnail'), 'http:') + thumbnails = self._extract_thumbnails(cfg_xml) + + title = self._html_search_regex( + self._TITLE_REGEX, webpage, 'title') if self._TITLE_REGEX else self._og_search_title(webpage) + + age_limit = self._rta_search(webpage) + + duration = parse_duration(self._html_search_meta( + 'duration', webpage, 'duration', default=None)) + + def extract_field(pattern, name): + return self._html_search_regex(pattern, webpage, name, default=None) if pattern else None + + description = extract_field(self._DESCRIPTION_REGEX, 'description') + uploader = extract_field(self._UPLOADER_REGEX, 'uploader') + view_count = str_to_int(extract_field(self._VIEW_COUNT_REGEX, 'view count')) + comment_count = str_to_int(extract_field(self._COMMENT_COUNT_REGEX, 'comment count')) + average_rating = float_or_none(extract_field(self._AVERAGE_RATING_REGEX, 'average rating')) + + categories_str = extract_field(self._CATEGORIES_REGEX, 'categories') + categories = categories_str.split(', ') if categories_str is not None else [] + return { 'id': video_id, 'display_id': display_id, 'title': title, 'description': description, 'thumbnail': thumbnail, + 'thumbnails': thumbnails, 'duration': duration, 'age_limit': age_limit, + 'uploader': uploader, + 'view_count': view_count, + 'comment_count': comment_count, + 'average_rating': average_rating, + 'categories': categories, 'formats': formats, } + + +class TNAFlixIE(TNAFlixNetworkBaseIE): + _VALID_URL = r'https?://(?:www\.)?tnaflix\.com/[^/]+/(?P<display_id>[^/]+)/video(?P<id>\d+)' + + _TITLE_REGEX = r'<title>(.+?) - TNAFlix Porn Videos</title>' + _DESCRIPTION_REGEX = r'<h3 itemprop="description">([^<]+)</h3>' + _UPLOADER_REGEX = r'(?s)<span[^>]+class="infoTitle"[^>]*>Uploaded By:</span>(.+?)<div' + + _TESTS = [{ + # anonymous uploader, no categories + 'url': 'http://www.tnaflix.com/porn-stars/Carmella-Decesare-striptease/video553878', + 'md5': 'ecf3498417d09216374fc5907f9c6ec0', + 'info_dict': { + 'id': '553878', + 'display_id': 'Carmella-Decesare-striptease', + 'ext': 'mp4', + 'title': 'Carmella Decesare - striptease', + 'thumbnail': 're:https?://.*\.jpg$', + 'duration': 91, + 'age_limit': 18, + 'uploader': 'Anonymous', + 'categories': [], + } + }, { + # non-anonymous uploader, categories + 'url': 'https://www.tnaflix.com/teen-porn/Educational-xxx-video/video6538', + 'md5': '0f5d4d490dbfd117b8607054248a07c0', + 'info_dict': { + 'id': '6538', + 'display_id': 'Educational-xxx-video', + 'ext': 'mp4', + 'title': 'Educational xxx video', + 'description': 'md5:b4fab8f88a8621c8fabd361a173fe5b8', + 'thumbnail': 're:https?://.*\.jpg$', + 'duration': 164, + 'age_limit': 18, + 'uploader': 'bobwhite39', + 'categories': ['Amateur Porn', 'Squirting Videos', 'Teen Girls 18+'], + } + }, { + 'url': 'https://www.tnaflix.com/amateur-porn/bunzHD-Ms.Donk/video358632', + 'only_matching': True, + }] + + +class EMPFlixIE(TNAFlixNetworkBaseIE): + _VALID_URL = r'https?://(?:www\.)?empflix\.com/videos/(?P<display_id>.+?)-(?P<id>[0-9]+)\.html' + + _UPLOADER_REGEX = r'<span[^>]+class="infoTitle"[^>]*>Uploaded By:</span>(.+?)</li>' + + _TESTS = [{ + 'url': 'http://www.empflix.com/videos/Amateur-Finger-Fuck-33051.html', + 'md5': 'b1bc15b6412d33902d6e5952035fcabc', + 'info_dict': { + 'id': '33051', + 'display_id': 'Amateur-Finger-Fuck', + 'ext': 'mp4', + 'title': 'Amateur Finger Fuck', + 'description': 'Amateur solo finger fucking.', + 'thumbnail': 're:https?://.*\.jpg$', + 'duration': 83, + 'age_limit': 18, + 'uploader': 'cwbike', + 'categories': ['Amateur', 'Anal', 'Fisting', 'Home made', 'Solo'], + } + }, { + 'url': 'http://www.empflix.com/videos/[AROMA][ARMD-718]-Aoi-Yoshino-Sawa-25826.html', + 'only_matching': True, + }] + + +class MovieFapIE(TNAFlixNetworkBaseIE): + _VALID_URL = r'https?://(?:www\.)?moviefap\.com/videos/(?P<id>[0-9a-f]+)/(?P<display_id>[^/]+)\.html' + + _VIEW_COUNT_REGEX = r'<br>Views\s*<strong>([\d,.]+)</strong>' + _COMMENT_COUNT_REGEX = r'<span[^>]+id="comCount"[^>]*>([\d,.]+)</span>' + _AVERAGE_RATING_REGEX = r'Current Rating\s*<br>\s*<strong>([\d.]+)</strong>' + _CATEGORIES_REGEX = r'(?s)<div[^>]+id="vid_info"[^>]*>\s*<div[^>]*>.+?</div>(.*?)<br>' + + _TESTS = [{ + # normal, multi-format video + 'url': 'http://www.moviefap.com/videos/be9867c9416c19f54a4a/experienced-milf-amazing-handjob.html', + 'md5': '26624b4e2523051b550067d547615906', + 'info_dict': { + 'id': 'be9867c9416c19f54a4a', + 'display_id': 'experienced-milf-amazing-handjob', + 'ext': 'mp4', + 'title': 'Experienced MILF Amazing Handjob', + 'description': 'Experienced MILF giving an Amazing Handjob', + 'thumbnail': 're:https?://.*\.jpg$', + 'age_limit': 18, + 'uploader': 'darvinfred06', + 'view_count': int, + 'comment_count': int, + 'average_rating': float, + 'categories': ['Amateur', 'Masturbation', 'Mature', 'Flashing'], + } + }, { + # quirky single-format case where the extension is given as fid, but the video is really an flv + 'url': 'http://www.moviefap.com/videos/e5da0d3edce5404418f5/jeune-couple-russe.html', + 'md5': 'fa56683e291fc80635907168a743c9ad', + 'info_dict': { + 'id': 'e5da0d3edce5404418f5', + 'display_id': 'jeune-couple-russe', + 'ext': 'flv', + 'title': 'Jeune Couple Russe', + 'description': 'Amateur', + 'thumbnail': 're:https?://.*\.jpg$', + 'age_limit': 18, + 'uploader': 'whiskeyjar', + 'view_count': int, + 'comment_count': int, + 'average_rating': float, + 'categories': ['Amateur', 'Teen'], + } + }] diff --git a/youtube_dl/extractor/tube8.py b/youtube_dl/extractor/tube8.py index 6ca8840..c9cb693 100644 --- a/youtube_dl/extractor/tube8.py +++ b/youtube_dl/extractor/tube8.py @@ -47,7 +47,7 @@ class Tube8IE(InfoExtractor): webpage = self._download_webpage(req, display_id) flashvars = json.loads(self._html_search_regex( - r'flashvars\s*=\s*({.+?})', webpage, 'flashvars')) + r'flashvars\s*=\s*({.+?});\r?\n', webpage, 'flashvars')) video_url = flashvars['video_url'] if flashvars.get('encrypted') is True: diff --git a/youtube_dl/extractor/tumblr.py b/youtube_dl/extractor/tumblr.py index e621880..3d3b635 100644 --- a/youtube_dl/extractor/tumblr.py +++ b/youtube_dl/extractor/tumblr.py @@ -39,6 +39,17 @@ class TumblrIE(InfoExtractor): 'timestamp': 1430931613, }, 'add_ie': ['Vidme'], + }, { + 'url': 'http://camdamage.tumblr.com/post/98846056295/', + 'md5': 'a9e0c8371ea1ca306d6554e3fecf50b6', + 'info_dict': { + 'id': '105463834', + 'ext': 'mp4', + 'title': 'Cam Damage-HD 720p', + 'uploader': 'John Moyer', + 'uploader_id': 'user32021558', + }, + 'add_ie': ['Vimeo'], }] def _real_extract(self, url): @@ -47,18 +58,16 @@ class TumblrIE(InfoExtractor): blog = m_url.group('blog_name') url = 'http://%s.tumblr.com/post/%s/' % (blog, video_id) - webpage = self._download_webpage(url, video_id) - - vid_me_embed_url = self._search_regex( - r'src=[\'"](https?://vid\.me/[^\'"]+)[\'"]', - webpage, 'vid.me embed', default=None) - if vid_me_embed_url is not None: - return self.url_result(vid_me_embed_url, 'Vidme') + webpage, urlh = self._download_webpage_handle(url, video_id) iframe_url = self._search_regex( r'src=\'(https?://www\.tumblr\.com/video/[^\']+)\'', - webpage, 'iframe url') - iframe = self._download_webpage(iframe_url, video_id) + webpage, 'iframe url', default=None) + if iframe_url is None: + return self.url_result(urlh.geturl(), 'Generic') + + iframe = self._download_webpage(iframe_url, video_id, + 'Downloading iframe page') video_url = self._search_regex(r'<source src="([^"]+)"', iframe, 'video url') diff --git a/youtube_dl/extractor/turbo.py b/youtube_dl/extractor/turbo.py index 29703a8..7ae63a4 100644 --- a/youtube_dl/extractor/turbo.py +++ b/youtube_dl/extractor/turbo.py @@ -23,7 +23,7 @@ class TurboIE(InfoExtractor): 'ext': 'mp4', 'duration': 3715, 'title': 'Turbo du 07/09/2014 : Renault Twingo 3, Bentley Continental GT Speed, CES, Guide Achat Dacia... ', - 'description': 'Retrouvez dans cette rubrique toutes les vidéos de l\'Turbo du 07/09/2014 : Renault Twingo 3, Bentley Continental GT Speed, CES, Guide Achat Dacia... ', + 'description': 'Turbo du 07/09/2014 : Renault Twingo 3, Bentley Continental GT Speed, CES, Guide Achat Dacia...', 'thumbnail': 're:^https?://.*\.jpg$', } } @@ -42,7 +42,7 @@ class TurboIE(InfoExtractor): title = xpath_text(item, './title', 'title') duration = int_or_none(xpath_text(item, './durate', 'duration')) thumbnail = xpath_text(item, './visuel_clip', 'thumbnail') - description = self._og_search_description(webpage) + description = self._html_search_meta('description', webpage) formats = [] get_quality = qualities(['3g', 'sd', 'hq']) diff --git a/youtube_dl/extractor/tvc.py b/youtube_dl/extractor/tvc.py new file mode 100644 index 0000000..3a4f393 --- /dev/null +++ b/youtube_dl/extractor/tvc.py @@ -0,0 +1,109 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import ( + clean_html, + int_or_none, +) + + +class TVCIE(InfoExtractor): + _VALID_URL = r'http://(?:www\.)?tvc\.ru/video/iframe/id/(?P<id>\d+)' + _TEST = { + 'url': 'http://www.tvc.ru/video/iframe/id/74622/isPlay/false/id_stat/channel/?acc_video_id=/channel/brand/id/17/show/episodes/episode_id/39702', + 'md5': 'bbc5ff531d1e90e856f60fc4b3afd708', + 'info_dict': { + 'id': '74622', + 'ext': 'mp4', + 'title': 'СобÑÑиÑ. "СобÑÑиÑ". ÐÑÐ¸Ñ Ð¾Ñ 22.05.2015 14:30', + 'thumbnail': 're:^https?://.*\.jpg$', + 'duration': 1122, + }, + } + + @classmethod + def _extract_url(cls, webpage): + mobj = re.search( + r'<iframe[^>]+?src=(["\'])(?P<url>(?:http:)?//(?:www\.)?tvc\.ru/video/iframe/id/[^"]+)\1', webpage) + if mobj: + return mobj.group('url') + + def _real_extract(self, url): + video_id = self._match_id(url) + + video = self._download_json( + 'http://www.tvc.ru/video/json/id/%s' % video_id, video_id) + + formats = [] + for info in video.get('path', {}).get('quality', []): + video_url = info.get('url') + if not video_url: + continue + format_id = self._search_regex( + r'cdnvideo/([^/]+?)(?:-[^/]+?)?/', video_url, + 'format id', default=None) + formats.append({ + 'url': video_url, + 'format_id': format_id, + 'width': int_or_none(info.get('width')), + 'height': int_or_none(info.get('height')), + 'tbr': int_or_none(info.get('bitrate')), + }) + self._sort_formats(formats) + + return { + 'id': video_id, + 'title': video['title'], + 'thumbnail': video.get('picture'), + 'duration': int_or_none(video.get('duration')), + 'formats': formats, + } + + +class TVCArticleIE(InfoExtractor): + _VALID_URL = r'http://(?:www\.)?tvc\.ru/(?!video/iframe/id/)(?P<id>[^?#]+)' + _TESTS = [{ + 'url': 'http://www.tvc.ru/channel/brand/id/29/show/episodes/episode_id/39702/', + 'info_dict': { + 'id': '74622', + 'ext': 'mp4', + 'title': 'СобÑÑиÑ. "СобÑÑиÑ". ÐÑÐ¸Ñ Ð¾Ñ 22.05.2015 14:30', + 'description': 'md5:ad7aa7db22903f983e687b8a3e98c6dd', + 'thumbnail': 're:^https?://.*\.jpg$', + 'duration': 1122, + }, + }, { + 'url': 'http://www.tvc.ru/news/show/id/69944', + 'info_dict': { + 'id': '75399', + 'ext': 'mp4', + 'title': 'ÐкÑпеÑÑÑ: в ÑÑолиÑе вÑÑал вопÑÐ¾Ñ Ð¾ макÑималÑно безопаÑнÑÑ Ð¾ÑÑÐ°Ð½Ð¾Ð²ÐºÐ°Ñ ', + 'description': 'md5:f2098f71e21f309e89f69b525fd9846e', + 'thumbnail': 're:^https?://.*\.jpg$', + 'duration': 278, + }, + }, { + 'url': 'http://www.tvc.ru/channel/brand/id/47/show/episodes#', + 'info_dict': { + 'id': '2185', + 'ext': 'mp4', + 'title': 'ÐÑÑ Ð½Ðµ поздно. ÐÑÐ¸Ñ Ð¾Ñ 03.08.2013', + 'description': 'md5:51fae9f3f8cfe67abce014e428e5b027', + 'thumbnail': 're:^https?://.*\.jpg$', + 'duration': 3316, + }, + }] + + def _real_extract(self, url): + webpage = self._download_webpage(url, self._match_id(url)) + return { + '_type': 'url_transparent', + 'ie_key': 'TVC', + 'url': self._og_search_video_url(webpage), + 'title': clean_html(self._og_search_title(webpage)), + 'description': clean_html(self._og_search_description(webpage)), + 'thumbnail': self._og_search_thumbnail(webpage), + } diff --git a/youtube_dl/extractor/tvplay.py b/youtube_dl/extractor/tvplay.py index e83e31a..79863e7 100644 --- a/youtube_dl/extractor/tvplay.py +++ b/youtube_dl/extractor/tvplay.py @@ -26,6 +26,7 @@ class TVPlayIE(InfoExtractor): viasat4play\.no/programmer| tv6play\.no/programmer| tv3play\.dk/programmer| + play\.novatv\.bg/programi )/[^/]+/(?P<id>\d+) ''' _TESTS = [ @@ -173,6 +174,22 @@ class TVPlayIE(InfoExtractor): 'skip_download': True, }, }, + { + 'url': 'http://play.novatv.bg/programi/zdravei-bulgariya/624952?autostart=true', + 'info_dict': { + 'id': '624952', + 'ext': 'flv', + 'title': 'ÐдÑавей, ÐÑлгаÑÐ¸Ñ (12.06.2015 г.) ', + 'description': 'md5:99f3700451ac5bb71a260268b8daefd7', + 'duration': 8838, + 'timestamp': 1434100372, + 'upload_date': '20150612', + }, + 'params': { + # rtmp download + 'skip_download': True, + }, + }, ] def _real_extract(self, url): diff --git a/youtube_dl/extractor/twitch.py b/youtube_dl/extractor/twitch.py index 94bd634..73ce335 100644 --- a/youtube_dl/extractor/twitch.py +++ b/youtube_dl/extractor/twitch.py @@ -22,8 +22,8 @@ class TwitchBaseIE(InfoExtractor): _API_BASE = 'https://api.twitch.tv' _USHER_BASE = 'http://usher.twitch.tv' - _LOGIN_URL = 'https://secure.twitch.tv/user/login' - _LOGIN_POST_URL = 'https://secure-login.twitch.tv/login' + _LOGIN_URL = 'https://secure.twitch.tv/login' + _LOGIN_POST_URL = 'https://passport.twitch.tv/authorize' _NETRC_MACHINE = 'twitch' def _handle_error(self, response): @@ -59,20 +59,12 @@ class TwitchBaseIE(InfoExtractor): login_page = self._download_webpage( self._LOGIN_URL, None, 'Downloading login page') - authenticity_token = self._search_regex( - r'<input name="authenticity_token" type="hidden" value="([^"]+)"', - login_page, 'authenticity token') - - login_form = { - 'utf8': 'â'.encode('utf-8'), - 'authenticity_token': authenticity_token, - 'redirect_on_login': '', - 'embed_form': 'false', - 'mp_source_action': 'login-button', - 'follow': '', - 'login': username, - 'password': password, - } + login_form = self._hidden_inputs(login_page) + + login_form.update({ + 'login': username.encode('utf-8'), + 'password': password.encode('utf-8'), + }) request = compat_urllib_request.Request( self._LOGIN_POST_URL, compat_urllib_parse.urlencode(login_form).encode('utf-8')) @@ -80,11 +72,15 @@ class TwitchBaseIE(InfoExtractor): response = self._download_webpage( request, None, 'Logging in as %s' % username) - m = re.search( - r"id=([\"'])login_error_message\1[^>]*>(?P<msg>[^<]+)", response) - if m: + error_message = self._search_regex( + r'<div[^>]+class="subwindow_notice"[^>]*>([^<]+)</div>', + response, 'error message', default=None) + if error_message: raise ExtractorError( - 'Unable to login: %s' % m.group('msg').strip(), expected=True) + 'Unable to login. Twitch said: %s' % error_message, expected=True) + + if '>Reset your password<' in response: + self.report_warning('Twitch asks you to reset your password, go to https://secure.twitch.tv/reset/submit') def _prefer_source(self, formats): try: @@ -189,17 +185,17 @@ class TwitchVodIE(TwitchItemBaseIE): _ITEM_SHORTCUT = 'v' _TEST = { - 'url': 'http://www.twitch.tv/ksptv/v/3622000', + 'url': 'http://www.twitch.tv/riotgames/v/6528877', 'info_dict': { - 'id': 'v3622000', + 'id': 'v6528877', 'ext': 'mp4', - 'title': '''KSPTV: Squadcast: "Everyone's on vacation so here's Dahud" Edition!''', + 'title': 'LCK Summer Split - Week 6 Day 1', 'thumbnail': 're:^https?://.*\.jpg$', - 'duration': 6951, - 'timestamp': 1419028564, - 'upload_date': '20141219', - 'uploader': 'KSPTV', - 'uploader_id': 'ksptv', + 'duration': 17208, + 'timestamp': 1435131709, + 'upload_date': '20150624', + 'uploader': 'Riot Games', + 'uploader_id': 'riotgames', 'view_count': int, }, 'params': { @@ -215,7 +211,7 @@ class TwitchVodIE(TwitchItemBaseIE): '%s/api/vods/%s/access_token' % (self._API_BASE, item_id), item_id, 'Downloading %s access token' % self._ITEM_TYPE) formats = self._extract_m3u8_formats( - '%s/vod/%s?nauth=%s&nauthsig=%s' + '%s/vod/%s?nauth=%s&nauthsig=%s&allow_source=true' % (self._USHER_BASE, item_id, access_token['token'], access_token['sig']), item_id, 'mp4') self._prefer_source(formats) @@ -314,9 +310,9 @@ class TwitchBookmarksIE(TwitchPlaylistBaseIE): class TwitchStreamIE(TwitchBaseIE): IE_NAME = 'twitch:stream' - _VALID_URL = r'%s/(?P<id>[^/]+)/?(?:\#.*)?$' % TwitchBaseIE._VALID_URL_BASE + _VALID_URL = r'%s/(?P<id>[^/#?]+)/?(?:\#.*)?$' % TwitchBaseIE._VALID_URL_BASE - _TEST = { + _TESTS = [{ 'url': 'http://www.twitch.tv/shroomztv', 'info_dict': { 'id': '12772022048', @@ -335,7 +331,10 @@ class TwitchStreamIE(TwitchBaseIE): # m3u8 download 'skip_download': True, }, - } + }, { + 'url': 'http://www.twitch.tv/miracle_doto#profile-0', + 'only_matching': True, + }] def _real_extract(self, url): channel_id = self._match_id(url) @@ -350,6 +349,12 @@ class TwitchStreamIE(TwitchBaseIE): 'http://www.twitch.tv/%s/profile' % channel_id, 'TwitchProfile', channel_id) + # Channel name may be typed if different case than the original channel name + # (e.g. http://www.twitch.tv/TWITCHPLAYSPOKEMON) that will lead to constructing + # an invalid m3u8 URL. Working around by use of original channel name from stream + # JSON and fallback to lowercase if it's not available. + channel_id = stream.get('channel', {}).get('name') or channel_id.lower() + access_token = self._download_json( '%s/api/channels/%s/access_token' % (self._API_BASE, channel_id), channel_id, 'Downloading channel access token') diff --git a/youtube_dl/extractor/twitter.py b/youtube_dl/extractor/twitter.py new file mode 100644 index 0000000..1aaa063 --- /dev/null +++ b/youtube_dl/extractor/twitter.py @@ -0,0 +1,72 @@ +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..compat import compat_urllib_request +from ..utils import ( + float_or_none, + unescapeHTML, +) + + +class TwitterCardIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?twitter\.com/i/cards/tfw/v1/(?P<id>\d+)' + _TEST = { + 'url': 'https://twitter.com/i/cards/tfw/v1/560070183650213889', + 'md5': 'a74f50b310c83170319ba16de6955192', + 'info_dict': { + 'id': '560070183650213889', + 'ext': 'mp4', + 'title': 'TwitterCard', + 'thumbnail': 're:^https?://.*\.jpg$', + 'duration': 30.033, + }, + } + + def _real_extract(self, url): + video_id = self._match_id(url) + + # Different formats served for different User-Agents + USER_AGENTS = [ + 'Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/20.0 (Chrome)', # mp4 + 'Mozilla/5.0 (Windows NT 5.2; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0', # webm + ] + + config = None + formats = [] + for user_agent in USER_AGENTS: + request = compat_urllib_request.Request(url) + request.add_header('User-Agent', user_agent) + webpage = self._download_webpage(request, video_id) + + config = self._parse_json( + unescapeHTML(self._search_regex( + r'data-player-config="([^"]+)"', webpage, 'data player config')), + video_id) + + video_url = config['playlist'][0]['source'] + + f = { + 'url': video_url, + } + + m = re.search(r'/(?P<width>\d+)x(?P<height>\d+)/', video_url) + if m: + f.update({ + 'width': int(m.group('width')), + 'height': int(m.group('height')), + }) + formats.append(f) + self._sort_formats(formats) + + thumbnail = config.get('posterImageUrl') + duration = float_or_none(config.get('duration')) + + return { + 'id': video_id, + 'title': 'TwitterCard', + 'thumbnail': thumbnail, + 'duration': duration, + 'formats': formats, + } diff --git a/youtube_dl/extractor/udemy.py b/youtube_dl/extractor/udemy.py index 4667ed8..e2bab52 100644 --- a/youtube_dl/extractor/udemy.py +++ b/youtube_dl/extractor/udemy.py @@ -15,7 +15,8 @@ from ..utils import ( class UdemyIE(InfoExtractor): IE_NAME = 'udemy' _VALID_URL = r'https?://www\.udemy\.com/(?:[^#]+#/lecture/|lecture/view/?\?lectureId=)(?P<id>\d+)' - _LOGIN_URL = 'https://www.udemy.com/join/login-submit/' + _LOGIN_URL = 'https://www.udemy.com/join/login-popup/?displayType=ajax&showSkipButton=1' + _ORIGIN_URL = 'https://www.udemy.com' _NETRC_MACHINE = 'udemy' _TESTS = [{ @@ -74,29 +75,33 @@ class UdemyIE(InfoExtractor): expected=True) login_popup = self._download_webpage( - 'https://www.udemy.com/join/login-popup?displayType=ajax&showSkipButton=1', None, - 'Downloading login popup') + self._LOGIN_URL, None, 'Downloading login popup') if login_popup == '<div class="run-command close-popup redirect" data-url="https://www.udemy.com/"></div>': return - csrf = self._html_search_regex( - r'<input type="hidden" name="csrf" value="(.+?)"', - login_popup, 'csrf token') + login_form = self._form_hidden_inputs('login-form', login_popup) + + login_form.update({ + 'email': username.encode('utf-8'), + 'password': password.encode('utf-8'), + }) - login_form = { - 'email': username, - 'password': password, - 'csrf': csrf, - 'displayType': 'json', - 'isSubmitted': '1', - } request = compat_urllib_request.Request( self._LOGIN_URL, compat_urllib_parse.urlencode(login_form).encode('utf-8')) - response = self._download_json( + request.add_header('Referer', self._ORIGIN_URL) + request.add_header('Origin', self._ORIGIN_URL) + + response = self._download_webpage( request, None, 'Logging in as %s' % username) - if 'returnUrl' not in response: + if all(logout_pattern not in response + for logout_pattern in ['href="https://www.udemy.com/user/logout/', '>Logout<']): + error = self._html_search_regex( + r'(?s)<div[^>]+class="form-errors[^"]*">(.+?)</div>', + response, 'error message', default=None) + if error: + raise ExtractorError('Unable to login: %s' % error, expected=True) raise ExtractorError('Unable to log in') def _real_extract(self, url): diff --git a/youtube_dl/extractor/udn.py b/youtube_dl/extractor/udn.py index c08428a..2151f83 100644 --- a/youtube_dl/extractor/udn.py +++ b/youtube_dl/extractor/udn.py @@ -11,6 +11,7 @@ from ..compat import compat_urlparse class UDNEmbedIE(InfoExtractor): + IE_DESC = 'è¯åå½±é³' _VALID_URL = r'https?://video\.udn\.com/(?:embed|play)/news/(?P<id>\d+)' _TESTS = [{ 'url': 'http://video.udn.com/embed/news/300040', diff --git a/youtube_dl/extractor/vbox7.py b/youtube_dl/extractor/vbox7.py index dd02674..722eb52 100644 --- a/youtube_dl/extractor/vbox7.py +++ b/youtube_dl/extractor/vbox7.py @@ -5,6 +5,7 @@ from .common import InfoExtractor from ..compat import ( compat_urllib_parse, compat_urllib_request, + compat_urlparse, ) from ..utils import ( ExtractorError, @@ -26,11 +27,21 @@ class Vbox7IE(InfoExtractor): def _real_extract(self, url): video_id = self._match_id(url) - redirect_page, urlh = self._download_webpage_handle(url, video_id) - new_location = self._search_regex(r'window\.location = \'(.*)\';', - redirect_page, 'redirect location') - redirect_url = urlh.geturl() + new_location - webpage = self._download_webpage(redirect_url, video_id, + # need to get the page 3 times for the correct jsSecretToken cookie + # which is necessary for the correct title + def get_session_id(): + redirect_page = self._download_webpage(url, video_id) + session_id_url = self._search_regex( + r'var\s*url\s*=\s*\'([^\']+)\';', redirect_page, + 'session id url') + self._download_webpage( + compat_urlparse.urljoin(url, session_id_url), video_id, + 'Getting session id') + + get_session_id() + get_session_id() + + webpage = self._download_webpage(url, video_id, 'Downloading redirect page') title = self._html_search_regex(r'<title>(.*)</title>', diff --git a/youtube_dl/extractor/veehd.py b/youtube_dl/extractor/veehd.py index 346edf4..0d8d832 100644 --- a/youtube_dl/extractor/veehd.py +++ b/youtube_dl/extractor/veehd.py @@ -5,6 +5,7 @@ import json from .common import InfoExtractor from ..compat import ( + compat_urllib_parse_unquote, compat_urlparse, ) from ..utils import ( @@ -76,7 +77,7 @@ class VeeHDIE(InfoExtractor): if config_json: config = json.loads(config_json) - video_url = compat_urlparse.unquote(config['clip']['url']) + video_url = compat_urllib_parse_unquote(config['clip']['url']) if not video_url: video_url = self._html_search_regex( diff --git a/youtube_dl/extractor/vice.py b/youtube_dl/extractor/vice.py index 04e2b0b..01af7a9 100644 --- a/youtube_dl/extractor/vice.py +++ b/youtube_dl/extractor/vice.py @@ -1,5 +1,4 @@ from __future__ import unicode_literals -import re from .common import InfoExtractor from .ooyala import OoyalaIE @@ -7,25 +6,29 @@ from ..utils import ExtractorError class ViceIE(InfoExtractor): - _VALID_URL = r'http://www\.vice\.com/.*?/(?P<name>.+)' + _VALID_URL = r'https?://(?:.+?\.)?vice\.com/(?:[^/]+/)+(?P<id>.+)' - _TEST = { - 'url': 'http://www.vice.com/Fringes/cowboy-capitalists-part-1', - 'info_dict': { - 'id': '43cW1mYzpia9IlestBjVpd23Yu3afAfp', - 'ext': 'mp4', - 'title': 'VICE_COWBOYCAPITALISTS_PART01_v1_VICE_WM_1080p.mov', - }, - 'params': { - # Requires ffmpeg (m3u8 manifest) - 'skip_download': True, - }, - } + _TESTS = [ + { + 'url': 'http://www.vice.com/Fringes/cowboy-capitalists-part-1', + 'info_dict': { + 'id': '43cW1mYzpia9IlestBjVpd23Yu3afAfp', + 'ext': 'mp4', + 'title': 'VICE_COWBOYCAPITALISTS_PART01_v1_VICE_WM_1080p.mov', + }, + 'params': { + # Requires ffmpeg (m3u8 manifest) + 'skip_download': True, + }, + }, { + 'url': 'https://news.vice.com/video/experimenting-on-animals-inside-the-monkey-lab', + 'only_matching': True, + } + ] def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - name = mobj.group('name') - webpage = self._download_webpage(url, name) + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) try: embed_code = self._search_regex( r'embedCode=([^&\'"]+)', webpage, diff --git a/youtube_dl/extractor/videomega.py b/youtube_dl/extractor/videomega.py index eb309a7..78ff631 100644 --- a/youtube_dl/extractor/videomega.py +++ b/youtube_dl/extractor/videomega.py @@ -8,20 +8,23 @@ from ..compat import compat_urllib_request class VideoMegaIE(InfoExtractor): - _VALID_URL = r'''(?x)https?:// - (?:www\.)?videomega\.tv/ - (?:iframe\.php|cdn\.php)?\?ref=(?P<id>[A-Za-z0-9]+) - ''' - _TEST = { - 'url': 'http://videomega.tv/?ref=4GNA688SU99US886ANG4', - 'md5': 'bf5c2f95c4c917536e80936af7bc51e1', + _VALID_URL = r'(?:videomega:|https?://(?:www\.)?videomega\.tv/(?:(?:view|iframe|cdn)\.php)?\?ref=)(?P<id>[A-Za-z0-9]+)' + _TESTS = [{ + 'url': 'http://videomega.tv/cdn.php?ref=AOSQBJYKIDDIKYJBQSOA', + 'md5': 'cc1920a58add3f05c6a93285b84fb3aa', 'info_dict': { - 'id': '4GNA688SU99US886ANG4', + 'id': 'AOSQBJYKIDDIKYJBQSOA', 'ext': 'mp4', - 'title': 'BigBuckBunny_320x180', + 'title': '1254207', 'thumbnail': 're:^https?://.*\.jpg$', } - } + }, { + 'url': 'http://videomega.tv/cdn.php?ref=AOSQBJYKIDDIKYJBQSOA&width=1070&height=600', + 'only_matching': True, + }, { + 'url': 'http://videomega.tv/view.php?ref=090051111052065112106089103052052103089106112065052111051090', + 'only_matching': True, + }] def _real_extract(self, url): video_id = self._match_id(url) @@ -29,12 +32,13 @@ class VideoMegaIE(InfoExtractor): iframe_url = 'http://videomega.tv/cdn.php?ref=%s' % video_id req = compat_urllib_request.Request(iframe_url) req.add_header('Referer', url) + req.add_header('Cookie', 'noadvtday=0') webpage = self._download_webpage(req, video_id) title = self._html_search_regex( - r'<title>(.*?)</title>', webpage, 'title') + r'<title>(.+?)</title>', webpage, 'title') title = re.sub( - r'(?:^[Vv]ideo[Mm]ega\.tv\s-\s?|\s?-\svideomega\.tv$)', '', title) + r'(?:^[Vv]ideo[Mm]ega\.tv\s-\s*|\s*-\svideomega\.tv$)', '', title) thumbnail = self._search_regex( r'<video[^>]+?poster="([^"]+)"', webpage, 'thumbnail', fatal=False) video_url = self._search_regex( diff --git a/youtube_dl/extractor/viki.py b/youtube_dl/extractor/viki.py index 7f2fb1c..51cdc6b 100644 --- a/youtube_dl/extractor/viki.py +++ b/youtube_dl/extractor/viki.py @@ -1,5 +1,7 @@ +# coding: utf-8 from __future__ import unicode_literals +import json import time import hmac import hashlib @@ -11,6 +13,7 @@ from ..utils import ( parse_age_limit, parse_iso8601, ) +from ..compat import compat_urllib_request from .common import InfoExtractor @@ -23,27 +26,35 @@ class VikiBaseIE(InfoExtractor): _APP_VERSION = '2.2.5.1428709186' _APP_SECRET = '-$iJ}@p7!G@SyU/je1bEyWg}upLu-6V6-Lg9VD(]siH,r.,m-r|ulZ,U4LC/SeR)' - def _prepare_call(self, path, timestamp=None): + _NETRC_MACHINE = 'viki' + + _token = None + + def _prepare_call(self, path, timestamp=None, post_data=None): path += '?' if '?' not in path else '&' if not timestamp: timestamp = int(time.time()) query = self._API_QUERY_TEMPLATE % (path, self._APP, timestamp) + if self._token: + query += '&token=%s' % self._token sig = hmac.new( self._APP_SECRET.encode('ascii'), query.encode('ascii'), hashlib.sha1 ).hexdigest() - return self._API_URL_TEMPLATE % (query, sig) + url = self._API_URL_TEMPLATE % (query, sig) + return compat_urllib_request.Request( + url, json.dumps(post_data).encode('utf-8')) if post_data else url - def _call_api(self, path, video_id, note, timestamp=None): + def _call_api(self, path, video_id, note, timestamp=None, post_data=None): resp = self._download_json( - self._prepare_call(path, timestamp), video_id, note) + self._prepare_call(path, timestamp, post_data), video_id, note) error = resp.get('error') if error: if error == 'invalid timestamp': resp = self._download_json( - self._prepare_call(path, int(resp['current_timestamp'])), + self._prepare_call(path, int(resp['current_timestamp']), post_data), video_id, '%s (retry)' % note) error = resp.get('error') if error: @@ -56,6 +67,27 @@ class VikiBaseIE(InfoExtractor): '%s returned error: %s' % (self.IE_NAME, error), expected=True) + def _real_initialize(self): + self._login() + + def _login(self): + (username, password) = self._get_login_info() + if username is None: + return + + login_form = { + 'login_id': username, + 'password': password, + } + + login = self._call_api( + 'sessions.json', None, + 'Logging in as %s' % username, post_data=login_form) + + self._token = login.get('token') + if not self._token: + self.report_warning('Unable to get session token, login has probably failed') + class VikiIE(VikiBaseIE): IE_NAME = 'viki' diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py index f300c7c..10d6745 100644 --- a/youtube_dl/extractor/vimeo.py +++ b/youtube_dl/extractor/vimeo.py @@ -22,6 +22,7 @@ from ..utils import ( unified_strdate, unsmuggle_url, urlencode_postdata, + unescapeHTML, ) @@ -173,6 +174,21 @@ class VimeoIE(VimeoBaseInfoExtractor): }, ] + @staticmethod + def _extract_vimeo_url(url, webpage): + # Look for embedded (iframe) Vimeo player + mobj = re.search( + r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//player\.vimeo\.com/video/.+?)\1', webpage) + if mobj: + player_url = unescapeHTML(mobj.group('url')) + surl = smuggle_url(player_url, {'Referer': url}) + return surl + # Look for embedded (swf embed) Vimeo player + mobj = re.search( + r'<embed[^>]+?src="((?:https?:)?//(?:www\.)?vimeo\.com/moogaloop\.swf.+?)"', webpage) + if mobj: + return mobj.group(1) + def _verify_video_password(self, url, video_id, webpage): password = self._downloader.params.get('videopassword', None) if password is None: @@ -436,11 +452,7 @@ class VimeoChannelIE(InfoExtractor): password = self._downloader.params.get('videopassword', None) if password is None: raise ExtractorError('This album is protected by a password, use the --video-password option', expected=True) - fields = dict(re.findall(r'''(?x)<input\s+ - type="hidden"\s+ - name="([^"]+)"\s+ - value="([^"]*)" - ''', login_form)) + fields = self._hidden_inputs(login_form) token = self._search_regex(r'xsrft[\s=:"\']+([^"\']+)', webpage, 'login token') fields['token'] = token fields['password'] = password diff --git a/youtube_dl/extractor/vimple.py b/youtube_dl/extractor/vimple.py index aa3d6dd..92321d6 100644 --- a/youtube_dl/extractor/vimple.py +++ b/youtube_dl/extractor/vimple.py @@ -4,7 +4,29 @@ from .common import InfoExtractor from ..utils import int_or_none -class VimpleIE(InfoExtractor): +class SprutoBaseIE(InfoExtractor): + def _extract_spruto(self, spruto, video_id): + playlist = spruto['playlist'][0] + title = playlist['title'] + video_id = playlist.get('videoId') or video_id + thumbnail = playlist.get('posterUrl') or playlist.get('thumbnailUrl') + duration = int_or_none(playlist.get('duration')) + + formats = [{ + 'url': f['url'], + } for f in playlist['video']] + self._sort_formats(formats) + + return { + 'id': video_id, + 'title': title, + 'thumbnail': thumbnail, + 'duration': duration, + 'formats': formats, + } + + +class VimpleIE(SprutoBaseIE): IE_DESC = 'Vimple - one-click video hosting' _VALID_URL = r'https?://(?:player\.vimple\.ru/iframe|vimple\.ru)/(?P<id>[\da-f-]{32,36})' _TESTS = [ @@ -30,25 +52,9 @@ class VimpleIE(InfoExtractor): webpage = self._download_webpage( 'http://player.vimple.ru/iframe/%s' % video_id, video_id) - playlist = self._parse_json( + spruto = self._parse_json( self._search_regex( r'sprutoData\s*:\s*({.+?}),\r\n', webpage, 'spruto data'), - video_id)['playlist'][0] - - title = playlist['title'] - video_id = playlist.get('videoId') or video_id - thumbnail = playlist.get('posterUrl') or playlist.get('thumbnailUrl') - duration = int_or_none(playlist.get('duration')) - - formats = [{ - 'url': f['url'], - } for f in playlist['video']] - self._sort_formats(formats) + video_id) - return { - 'id': video_id, - 'title': title, - 'thumbnail': thumbnail, - 'duration': duration, - 'formats': formats, - } + return self._extract_spruto(spruto, video_id) diff --git a/youtube_dl/extractor/vk.py b/youtube_dl/extractor/vk.py index cc384ad..c30c5a8 100644 --- a/youtube_dl/extractor/vk.py +++ b/youtube_dl/extractor/vk.py @@ -13,14 +13,26 @@ from ..compat import ( from ..utils import ( ExtractorError, orderedSet, + str_to_int, unescapeHTML, unified_strdate, ) class VKIE(InfoExtractor): - IE_NAME = 'vk.com' - _VALID_URL = r'https?://(?:m\.)?vk\.com/(?:video_ext\.php\?.*?\boid=(?P<oid>-?\d+).*?\bid=(?P<id>\d+)|(?:.+?\?.*?z=)?video(?P<videoid>[^s].*?)(?:\?|%2F|$))' + IE_NAME = 'vk' + IE_DESC = 'VK' + _VALID_URL = r'''(?x) + https?:// + (?: + (?:m\.)?vk\.com/video_ext\.php\?.*?\boid=(?P<oid>-?\d+).*?\bid=(?P<id>\d+)| + (?: + (?:m\.)?vk\.com/(?:.+?\?.*?z=)?video| + (?:www\.)?biqle\.ru/watch/ + ) + (?P<videoid>[^s].*?)(?:\?(?:.*\blist=(?P<list_id>[\da-f]+))?|%2F|$) + ) + ''' _NETRC_MACHINE = 'vk' _TESTS = [ @@ -34,6 +46,7 @@ class VKIE(InfoExtractor): 'uploader': 're:(?:Noize MC|Alexander Ilyashenko).*', 'duration': 195, 'upload_date': '20120212', + 'view_count': int, }, }, { @@ -45,7 +58,8 @@ class VKIE(InfoExtractor): 'uploader': 'Tom Cruise', 'title': 'No name', 'duration': 9, - 'upload_date': '20130721' + 'upload_date': '20130721', + 'view_count': int, } }, { @@ -59,6 +73,7 @@ class VKIE(InfoExtractor): 'title': 'Lin Dan', 'duration': 101, 'upload_date': '20120730', + 'view_count': int, } }, { @@ -73,7 +88,8 @@ class VKIE(InfoExtractor): 'uploader': 'ТÑиллеÑÑ', 'title': '⺠ÐойÑовÑкий клÑб / Fight Club 1999 [HD 720]', 'duration': 8352, - 'upload_date': '20121218' + 'upload_date': '20121218', + 'view_count': int, }, 'skip': 'Requires vk account credentials', }, @@ -100,14 +116,54 @@ class VKIE(InfoExtractor): 'title': 'Ðнига ÐлаÑ', 'duration': 6771, 'upload_date': '20140626', + 'view_count': int, }, 'skip': 'Only works from Russia', }, + { + # video (removed?) only available with list id + 'url': 'https://vk.com/video30481095_171201961?list=8764ae2d21f14088d4', + 'md5': '091287af5402239a1051c37ec7b92913', + 'info_dict': { + 'id': '171201961', + 'ext': 'mp4', + 'title': 'ТÑменÑевÐÐ_09.07.2015', + 'uploader': 'Anton Ivanov', + 'duration': 109, + 'upload_date': '20150709', + 'view_count': int, + }, + }, + { + # youtube embed + 'url': 'https://vk.com/video276849682_170681728', + 'info_dict': { + 'id': 'V3K4mi0SYkc', + 'ext': 'mp4', + 'title': "DSWD Awards 'Children's Joy Foundation, Inc.' Certificate of Registration and License to Operate", + 'description': 'md5:bf9c26cfa4acdfb146362682edd3827a', + 'duration': 179, + 'upload_date': '20130116', + 'uploader': "Children's Joy Foundation", + 'uploader_id': 'thecjf', + 'view_count': int, + }, + }, { # removed video, just testing that we match the pattern 'url': 'http://vk.com/feed?z=video-43215063_166094326%2Fbb50cacd3177146d7a', 'only_matching': True, }, + { + # age restricted video, requires vk account credentials + 'url': 'https://vk.com/video205387401_164765225', + 'only_matching': True, + }, + { + # vk wrapper + 'url': 'http://www.biqle.ru/watch/847655_160197695', + 'only_matching': True, + } ] def _login(self): @@ -115,20 +171,25 @@ class VKIE(InfoExtractor): if username is None: return - login_form = { - 'act': 'login', - 'role': 'al_frame', - 'expire': '1', - 'email': username, - 'pass': password, - } + login_page = self._download_webpage( + 'https://vk.com', None, 'Downloading login page') + + login_form = self._hidden_inputs(login_page) + + login_form.update({ + 'email': username.encode('cp1251'), + 'pass': password.encode('cp1251'), + }) - request = compat_urllib_request.Request('https://login.vk.com/?act=login', - compat_urllib_parse.urlencode(login_form).encode('utf-8')) - login_page = self._download_webpage(request, None, note='Logging in as %s' % username) + request = compat_urllib_request.Request( + 'https://login.vk.com/?act=login', + compat_urllib_parse.urlencode(login_form).encode('utf-8')) + login_page = self._download_webpage( + request, None, note='Logging in as %s' % username) if re.search(r'onLoginFailed', login_page): - raise ExtractorError('Unable to login, incorrect username and/or password', expected=True) + raise ExtractorError( + 'Unable to login, incorrect username and/or password', expected=True) def _real_initialize(self): self._login() @@ -140,9 +201,26 @@ class VKIE(InfoExtractor): if not video_id: video_id = '%s_%s' % (mobj.group('oid'), mobj.group('id')) - info_url = 'http://vk.com/al_video.php?act=show&al=1&module=video&video=%s' % video_id + info_url = 'https://vk.com/al_video.php?act=show&al=1&module=video&video=%s' % video_id + + # Some videos (removed?) can only be downloaded with list id specified + list_id = mobj.group('list_id') + if list_id: + info_url += '&list=%s' % list_id + info_page = self._download_webpage(info_url, video_id) + error_message = self._html_search_regex( + r'(?s)<!><div[^>]+class="video_layer_message"[^>]*>(.+?)</div>', + info_page, 'error message', default=None) + if error_message: + raise ExtractorError(error_message, expected=True) + + if re.search(r'<!>/login\.php\?.*\bact=security_check', info_page): + raise ExtractorError( + 'You are trying to log in from an unusual location. You should confirm ownership at vk.com to log in with this IP.', + expected=True) + ERRORS = { r'>ÐидеозапиÑÑ .*? бÑла изÑÑÑа из пÑблиÑного доÑÑÑпа в ÑвÑзи Ñ Ð¾Ð±ÑаÑением пÑавообладаÑелÑ.<': 'Video %s has been removed from public access due to rightholder complaint.', @@ -156,16 +234,20 @@ class VKIE(InfoExtractor): r'<!>Ðидео вÑеменно недоÑÑÑпно': 'Video %s is temporarily unavailable.', + + r'<!>Access denied': + 'Access denied to video %s.', } for error_re, error_msg in ERRORS.items(): if re.search(error_re, info_page): raise ExtractorError(error_msg % video_id, expected=True) - m_yt = re.search(r'src="(http://www.youtube.com/.*?)"', info_page) - if m_yt is not None: - self.to_screen('Youtube video detected') - return self.url_result(m_yt.group(1), 'Youtube') + youtube_url = self._search_regex( + r'<iframe[^>]+src="((?:https?:)?//www.youtube.com/embed/[^"]+)"', + info_page, 'youtube iframe', default=None) + if youtube_url: + return self.url_result(youtube_url, 'Youtube') m_rutube = re.search( r'\ssrc="((?:https?:)?//rutube\.ru\\?/video\\?/embed(?:.*?))\\?"', info_page) @@ -175,25 +257,29 @@ class VKIE(InfoExtractor): m_rutube.group(1).replace('\\', '')) return self.url_result(rutube_url) - m_opts = re.search(r'(?s)var\s+opts\s*=\s*({.*?});', info_page) + m_opts = re.search(r'(?s)var\s+opts\s*=\s*({.+?});', info_page) if m_opts: - m_opts_url = re.search(r"url\s*:\s*'([^']+)", m_opts.group(1)) + m_opts_url = re.search(r"url\s*:\s*'((?!/\b)[^']+)", m_opts.group(1)) if m_opts_url: opts_url = m_opts_url.group(1) if opts_url.startswith('//'): opts_url = 'http:' + opts_url return self.url_result(opts_url) - data_json = self._search_regex(r'var vars = ({.*?});', info_page, 'vars') + data_json = self._search_regex(r'var\s+vars\s*=\s*({.+?});', info_page, 'vars') data = json.loads(data_json) # Extract upload date upload_date = None - mobj = re.search(r'id="mv_date_wrap".*?Added ([a-zA-Z]+ [0-9]+), ([0-9]+) at', info_page) + mobj = re.search(r'id="mv_date(?:_views)?_wrap"[^>]*>([a-zA-Z]+ [0-9]+), ([0-9]+) at', info_page) if mobj is not None: mobj.group(1) + ' ' + mobj.group(2) upload_date = unified_strdate(mobj.group(1) + ' ' + mobj.group(2)) + view_count = str_to_int(self._search_regex( + r'"mv_views_count_number"[^>]*>([\d,.]+) views<', + info_page, 'view count', fatal=False)) + formats = [{ 'format_id': k, 'url': v, @@ -210,29 +296,39 @@ class VKIE(InfoExtractor): 'uploader': data.get('md_author'), 'duration': data.get('duration'), 'upload_date': upload_date, + 'view_count': view_count, } class VKUserVideosIE(InfoExtractor): - IE_NAME = 'vk.com:user-videos' - IE_DESC = 'vk.com:All of a user\'s videos' - _VALID_URL = r'https?://vk\.com/videos(?P<id>[0-9]+)(?:m\?.*)?' + IE_NAME = 'vk:uservideos' + IE_DESC = "VK - User's Videos" + _VALID_URL = r'https?://vk\.com/videos(?P<id>-?[0-9]+)$' _TEMPLATE_URL = 'https://vk.com/videos' - _TEST = { + _TESTS = [{ 'url': 'http://vk.com/videos205387401', 'info_dict': { 'id': '205387401', + 'title': "Tom Cruise's Videos", }, 'playlist_mincount': 4, - } + }, { + 'url': 'http://vk.com/videos-77521', + 'only_matching': True, + }] def _real_extract(self, url): page_id = self._match_id(url) - page = self._download_webpage(url, page_id) - video_ids = orderedSet( - m.group(1) for m in re.finditer(r'href="/video([0-9_]+)"', page)) - url_entries = [ + + webpage = self._download_webpage(url, page_id) + + entries = [ self.url_result( 'http://vk.com/video' + video_id, 'VK', video_id=video_id) - for video_id in video_ids] - return self.playlist_result(url_entries, page_id) + for video_id in orderedSet(re.findall(r'href="/video(-?[0-9_]+)"', webpage))] + + title = unescapeHTML(self._search_regex( + r'<title>\s*([^<]+?)\s+\|\s+\d+\s+videos', + webpage, 'title', default=page_id)) + + return self.playlist_result(entries, page_id, title) diff --git a/youtube_dl/extractor/vodlocker.py b/youtube_dl/extractor/vodlocker.py index 1c0966a..ccf1928 100644 --- a/youtube_dl/extractor/vodlocker.py +++ b/youtube_dl/extractor/vodlocker.py @@ -1,8 +1,6 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -import re - from .common import InfoExtractor from ..compat import ( compat_urllib_parse, @@ -28,12 +26,7 @@ class VodlockerIE(InfoExtractor): video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) - fields = dict(re.findall(r'''(?x)<input\s+ - type="hidden"\s+ - name="([^"]+)"\s+ - (?:id="[^"]+"\s+)? - value="([^"]*)" - ''', webpage)) + fields = self._hidden_inputs(webpage) if fields['op'] == 'download1': self._sleep(3, video_id) # they do detect when requests happen too fast! diff --git a/youtube_dl/extractor/vube.py b/youtube_dl/extractor/vube.py index 405cb9d..149e364 100644 --- a/youtube_dl/extractor/vube.py +++ b/youtube_dl/extractor/vube.py @@ -36,6 +36,7 @@ class VubeIE(InfoExtractor): 'comment_count': int, 'categories': ['amazing', 'hd', 'best drummer ever', 'william wei', 'bucket drumming', 'street drummer', 'epic street drumming'], }, + 'skip': 'Not accessible from Travis CI server', }, { 'url': 'http://vube.com/Chiara+Grispo+Video+Channel/YL2qNPkqon', 'md5': 'db7aba89d4603dadd627e9d1973946fe', diff --git a/youtube_dl/extractor/webofstories.py b/youtube_dl/extractor/webofstories.py index 73077a3..2037d9b 100644 --- a/youtube_dl/extractor/webofstories.py +++ b/youtube_dl/extractor/webofstories.py @@ -1,6 +1,8 @@ # coding: utf-8 from __future__ import unicode_literals +import re + from .common import InfoExtractor from ..utils import int_or_none @@ -98,3 +100,42 @@ class WebOfStoriesIE(InfoExtractor): 'description': description, 'duration': duration, } + + +class WebOfStoriesPlaylistIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?webofstories\.com/playAll/(?P<id>[^/]+)' + _TEST = { + 'url': 'http://www.webofstories.com/playAll/donald.knuth', + 'info_dict': { + 'id': 'donald.knuth', + 'title': 'Donald Knuth (Scientist)', + }, + 'playlist_mincount': 97, + } + + def _real_extract(self, url): + playlist_id = self._match_id(url) + + webpage = self._download_webpage(url, playlist_id) + + entries = [ + self.url_result('http://www.webofstories.com/play/%s' % video_number, 'WebOfStories') + for video_number in set(re.findall('href="/playAll/%s\?sId=(\d+)"' % playlist_id, webpage)) + ] + + title = self._search_regex( + r'<div id="speakerName">\s*<span>([^<]+)</span>', + webpage, 'speaker', default=None) + if title: + field = self._search_regex( + r'<span id="primaryField">([^<]+)</span>', + webpage, 'field', default=None) + if field: + title += ' (%s)' % field + + if not title: + title = self._search_regex( + r'<title>Play\s+all\s+stories\s*-\s*([^<]+)\s*-\s*Web\s+of\s+Stories</title>', + webpage, 'title') + + return self.playlist_result(entries, playlist_id, title) diff --git a/youtube_dl/extractor/xbef.py b/youtube_dl/extractor/xbef.py index 80c48c3..4ff99e5 100644 --- a/youtube_dl/extractor/xbef.py +++ b/youtube_dl/extractor/xbef.py @@ -1,9 +1,7 @@ from __future__ import unicode_literals from .common import InfoExtractor -from ..compat import ( - compat_urllib_parse, -) +from ..compat import compat_urllib_parse_unquote class XBefIE(InfoExtractor): @@ -30,7 +28,7 @@ class XBefIE(InfoExtractor): config_url_enc = self._download_webpage( 'http://xbef.com/Main/GetVideoURLEncoded/%s' % video_id, video_id, note='Retrieving config URL') - config_url = compat_urllib_parse.unquote(config_url_enc) + config_url = compat_urllib_parse_unquote(config_url_enc) config = self._download_xml( config_url, video_id, note='Retrieving config') diff --git a/youtube_dl/extractor/xhamster.py b/youtube_dl/extractor/xhamster.py index 4527567..b4ad513 100644 --- a/youtube_dl/extractor/xhamster.py +++ b/youtube_dl/extractor/xhamster.py @@ -13,7 +13,6 @@ from ..utils import ( class XHamsterIE(InfoExtractor): - """Information Extractor for xHamster""" _VALID_URL = r'(?P<proto>https?)://(?:.+?\.)?xhamster\.com/movies/(?P<id>[0-9]+)/(?P<seo>.+?)\.html(?:\?.*)?' _TESTS = [ { @@ -133,3 +132,36 @@ class XHamsterIE(InfoExtractor): 'age_limit': age_limit, 'formats': formats, } + + +class XHamsterEmbedIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?xhamster\.com/xembed\.php\?video=(?P<id>\d+)' + _TEST = { + 'url': 'http://xhamster.com/xembed.php?video=3328539', + 'info_dict': { + 'id': '3328539', + 'ext': 'mp4', + 'title': 'Pen Masturbation', + 'upload_date': '20140728', + 'uploader_id': 'anonymous', + 'duration': 5, + 'age_limit': 18, + } + } + + @staticmethod + def _extract_urls(webpage): + return [url for _, url in re.findall( + r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:www\.)?xhamster\.com/xembed\.php\?video=\d+)\1', + webpage)] + + def _real_extract(self, url): + video_id = self._match_id(url) + + webpage = self._download_webpage(url, video_id) + + video_url = self._search_regex( + r'href="(https?://xhamster\.com/movies/%s/[^"]+\.html[^"]*)"' % video_id, + webpage, 'xhamster url') + + return self.url_result(video_url, 'XHamster') diff --git a/youtube_dl/extractor/xnxx.py b/youtube_dl/extractor/xnxx.py index 79ed6c7..5a41f8f 100644 --- a/youtube_dl/extractor/xnxx.py +++ b/youtube_dl/extractor/xnxx.py @@ -2,9 +2,7 @@ from __future__ import unicode_literals from .common import InfoExtractor -from ..compat import ( - compat_urllib_parse, -) +from ..compat import compat_urllib_parse_unquote class XNXXIE(InfoExtractor): @@ -26,7 +24,7 @@ class XNXXIE(InfoExtractor): video_url = self._search_regex(r'flv_url=(.*?)&', webpage, 'video URL') - video_url = compat_urllib_parse.unquote(video_url) + video_url = compat_urllib_parse_unquote(video_url) video_title = self._html_search_regex(r'<title>(.*?)\s+-\s+XNXX.COM', webpage, 'title') diff --git a/youtube_dl/extractor/xtube.py b/youtube_dl/extractor/xtube.py index 1644f53..779e4f4 100644 --- a/youtube_dl/extractor/xtube.py +++ b/youtube_dl/extractor/xtube.py @@ -5,7 +5,7 @@ import re from .common import InfoExtractor from ..compat import ( compat_urllib_request, - compat_urllib_parse, + compat_urllib_parse_unquote, ) from ..utils import ( parse_duration, @@ -59,7 +59,7 @@ class XTubeIE(InfoExtractor): for format_id, video_url in re.findall( r'flashvars\.quality_(.+?)\s*=\s*"([^"]+)"', webpage): fmt = { - 'url': compat_urllib_parse.unquote(video_url), + 'url': compat_urllib_parse_unquote(video_url), 'format_id': format_id, } m = re.search(r'^(?P<height>\d+)[pP]', format_id) @@ -68,7 +68,7 @@ class XTubeIE(InfoExtractor): formats.append(fmt) if not formats: - video_url = compat_urllib_parse.unquote(self._search_regex( + video_url = compat_urllib_parse_unquote(self._search_regex( r'flashvars\.video_url\s*=\s*"([^"]+)"', webpage, 'video URL')) formats.append({'url': video_url}) diff --git a/youtube_dl/extractor/xuite.py b/youtube_dl/extractor/xuite.py index 81d885f..5aac8ad 100644 --- a/youtube_dl/extractor/xuite.py +++ b/youtube_dl/extractor/xuite.py @@ -13,6 +13,7 @@ from ..utils import ( class XuiteIE(InfoExtractor): + IE_DESC = 'é¨æ窩Xuiteå½±é³' _REGEX_BASE64 = r'(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?' _VALID_URL = r'https?://vlog\.xuite\.net/(?:play|embed)/(?P<id>%s)' % _REGEX_BASE64 _TESTS = [{ diff --git a/youtube_dl/extractor/xvideos.py b/youtube_dl/extractor/xvideos.py index 2a45dc5..5dcf2fd 100644 --- a/youtube_dl/extractor/xvideos.py +++ b/youtube_dl/extractor/xvideos.py @@ -4,11 +4,13 @@ import re from .common import InfoExtractor from ..compat import ( - compat_urllib_parse, + compat_urllib_parse_unquote, + compat_urllib_request, ) from ..utils import ( clean_html, ExtractorError, + determine_ext, ) @@ -25,6 +27,8 @@ class XVideosIE(InfoExtractor): } } + _ANDROID_USER_AGENT = 'Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19' + def _real_extract(self, url): video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) @@ -33,16 +37,37 @@ class XVideosIE(InfoExtractor): if mobj: raise ExtractorError('%s said: %s' % (self.IE_NAME, clean_html(mobj.group(1))), expected=True) - video_url = compat_urllib_parse.unquote( + video_url = compat_urllib_parse_unquote( self._search_regex(r'flv_url=(.+?)&', webpage, 'video URL')) video_title = self._html_search_regex( r'<title>(.*?)\s+-\s+XVID', webpage, 'title') video_thumbnail = self._search_regex( r'url_bigthumb=(.+?)&', webpage, 'thumbnail', fatal=False) + formats = [{ + 'url': video_url, + }] + + android_req = compat_urllib_request.Request(url) + android_req.add_header('User-Agent', self._ANDROID_USER_AGENT) + android_webpage = self._download_webpage(android_req, video_id, fatal=False) + + if android_webpage is not None: + player_params_str = self._search_regex( + 'mobileReplacePlayerDivTwoQual\(([^)]+)\)', + android_webpage, 'player parameters', default='') + player_params = list(map(lambda s: s.strip(' \''), player_params_str.split(','))) + if player_params: + formats.extend([{ + 'url': param, + 'preference': -10, + } for param in player_params if determine_ext(param) == 'mp4']) + + self._sort_formats(formats) + return { 'id': video_id, - 'url': video_url, + 'formats': formats, 'title': video_title, 'ext': 'flv', 'thumbnail': video_thumbnail, diff --git a/youtube_dl/extractor/yam.py b/youtube_dl/extractor/yam.py index 9d851ba..001ee17 100644 --- a/youtube_dl/extractor/yam.py +++ b/youtube_dl/extractor/yam.py @@ -14,6 +14,7 @@ from ..utils import ( class YamIE(InfoExtractor): + IE_DESC = 'èè¯è¤yam天空é¨è½' _VALID_URL = r'http://mymedia.yam.com/m/(?P<id>\d+)' _TESTS = [{ diff --git a/youtube_dl/extractor/yinyuetai.py b/youtube_dl/extractor/yinyuetai.py new file mode 100644 index 0000000..834d860 --- /dev/null +++ b/youtube_dl/extractor/yinyuetai.py @@ -0,0 +1,56 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..utils import ExtractorError + + +class YinYueTaiIE(InfoExtractor): + IE_NAME = 'yinyuetai:video' + IE_DESC = 'é³æ¦Tai' + _VALID_URL = r'https?://v\.yinyuetai\.com/video(?:/h5)?/(?P<id>[0-9]+)' + _TESTS = [{ + 'url': 'http://v.yinyuetai.com/video/2322376', + 'md5': '6e3abe28d38e3a54b591f9f040595ce0', + 'info_dict': { + 'id': '2322376', + 'ext': 'mp4', + 'title': 'å°å¥³æ¶ä»£_PARTY_Music Video Teaser', + 'creator': 'å°å¥³æ¶ä»£', + 'duration': 25, + 'thumbnail': 're:^https?://.*\.jpg$', + }, + }, { + 'url': 'http://v.yinyuetai.com/video/h5/2322376', + 'only_matching': True, + }] + + def _real_extract(self, url): + video_id = self._match_id(url) + + info = self._download_json( + 'http://ext.yinyuetai.com/main/get-h-mv-info?json=true&videoId=%s' % video_id, video_id, + 'Downloading mv info')['videoInfo']['coreVideoInfo'] + + if info['error']: + raise ExtractorError(info['errorMsg'], expected=True) + + formats = [{ + 'url': format_info['videoUrl'], + 'format_id': format_info['qualityLevel'], + 'format': format_info.get('qualityLevelName'), + 'filesize': format_info.get('fileSize'), + # though URLs ends with .flv, the downloaded files are in fact mp4 + 'ext': 'mp4', + 'tbr': format_info.get('bitrate'), + } for format_info in info['videoUrlModels']] + self._sort_formats(formats) + + return { + 'id': video_id, + 'title': info['videoName'], + 'thumbnail': info.get('bigHeadImage'), + 'creator': info.get('artistNames'), + 'duration': info.get('duration'), + 'formats': formats, + } diff --git a/youtube_dl/extractor/ynet.py b/youtube_dl/extractor/ynet.py index 894678a..869f3e8 100644 --- a/youtube_dl/extractor/ynet.py +++ b/youtube_dl/extractor/ynet.py @@ -5,7 +5,7 @@ import re import json from .common import InfoExtractor -from ..compat import compat_urllib_parse +from ..compat import compat_urllib_parse_unquote_plus class YnetIE(InfoExtractor): @@ -34,7 +34,7 @@ class YnetIE(InfoExtractor): video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) - content = compat_urllib_parse.unquote_plus(self._og_search_video_url(webpage)) + content = compat_urllib_parse_unquote_plus(self._og_search_video_url(webpage)) config = json.loads(self._search_regex(r'config=({.+?})$', content, 'video config')) f4m_url = config['clip']['url'] title = self._og_search_title(webpage) diff --git a/youtube_dl/extractor/youku.py b/youtube_dl/extractor/youku.py index 97b98bb..78caeb8 100644 --- a/youtube_dl/extractor/youku.py +++ b/youtube_dl/extractor/youku.py @@ -1,123 +1,236 @@ # coding: utf-8 - from __future__ import unicode_literals -import math -import random -import re -import time +import base64 from .common import InfoExtractor -from ..utils import ( - ExtractorError, +from ..utils import ExtractorError + +from ..compat import ( + compat_urllib_parse, + compat_ord, + compat_urllib_request, ) class YoukuIE(InfoExtractor): + IE_NAME = 'youku' + IE_DESC = 'ä¼é ·' _VALID_URL = r'''(?x) (?: http://(?:v|player)\.youku\.com/(?:v_show/id_|player\.php/sid/)| youku:) (?P<id>[A-Za-z0-9]+)(?:\.html|/v\.swf|) ''' - _TEST = { - 'url': 'http://v.youku.com/v_show/id_XNDgyMDQ2NTQw.html', - 'md5': 'ffe3f2e435663dc2d1eea34faeff5b5b', - 'params': { - 'test': False + + _TESTS = [{ + 'url': 'http://v.youku.com/v_show/id_XMTc1ODE5Njcy.html', + 'md5': '5f3af4192eabacc4501508d54a8cabd7', + 'info_dict': { + 'id': 'XMTc1ODE5Njcy_part1', + 'title': 'â Smileï¹â¡ Git Fresh -Booty Musicèè¹.', + 'ext': 'flv' + } + }, { + 'url': 'http://player.youku.com/player.php/sid/XNDgyMDQ2NTQw/v.swf', + 'only_matching': True, + }, { + 'url': 'http://v.youku.com/v_show/id_XODgxNjg1Mzk2_ev_1.html', + 'info_dict': { + 'id': 'XODgxNjg1Mzk2', + 'title': 'æ¦åªå¨ä¼ å¥ 85', }, + 'playlist_count': 11, + }, { + 'url': 'http://v.youku.com/v_show/id_XMTI1OTczNDM5Mg==.html', 'info_dict': { - 'id': 'XNDgyMDQ2NTQw_part00', - 'ext': 'flv', - 'title': 'youtube-dl test video "\'/\\äâð' + 'id': 'XMTI1OTczNDM5Mg', + 'title': 'è±å骨 04', + }, + 'playlist_count': 13, + 'skip': 'Available in China only', + }] + + def construct_video_urls(self, data1, data2): + # get sid, token + def yk_t(s1, s2): + ls = list(range(256)) + t = 0 + for i in range(256): + t = (t + ls[i] + compat_ord(s1[i % len(s1)])) % 256 + ls[i], ls[t] = ls[t], ls[i] + s = bytearray() + x, y = 0, 0 + for i in range(len(s2)): + y = (y + 1) % 256 + x = (x + ls[y]) % 256 + ls[x], ls[y] = ls[y], ls[x] + s.append(compat_ord(s2[i]) ^ ls[(ls[x] + ls[y]) % 256]) + return bytes(s) + + sid, token = yk_t( + b'becaf9be', base64.b64decode(data2['ep'].encode('ascii')) + ).decode('ascii').split('_') + + # get oip + oip = data2['ip'] + + # get fileid + string_ls = list( + 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\:._-1234567890') + shuffled_string_ls = [] + seed = data1['seed'] + N = len(string_ls) + for ii in range(N): + seed = (seed * 0xd3 + 0x754f) % 0x10000 + idx = seed * len(string_ls) // 0x10000 + shuffled_string_ls.append(string_ls[idx]) + del string_ls[idx] + + fileid_dict = {} + for format in data1['streamtypes']: + streamfileid = [ + int(i) for i in data1['streamfileids'][format].strip('*').split('*')] + fileid = ''.join( + [shuffled_string_ls[i] for i in streamfileid]) + fileid_dict[format] = fileid[:8] + '%s' + fileid[10:] + + def get_fileid(format, n): + fileid = fileid_dict[format] % hex(int(n))[2:].upper().zfill(2) + return fileid + + # get ep + def generate_ep(format, n): + fileid = get_fileid(format, n) + ep_t = yk_t( + b'bf7e5f01', + ('%s_%s_%s' % (sid, fileid, token)).encode('ascii') + ) + ep = base64.b64encode(ep_t).decode('ascii') + return ep + + # generate video_urls + video_urls_dict = {} + for format in data1['streamtypes']: + video_urls = [] + for dt in data1['segs'][format]: + n = str(int(dt['no'])) + param = { + 'K': dt['k'], + 'hd': self.get_hd(format), + 'myp': 0, + 'ts': dt['seconds'], + 'ypp': 0, + 'ctype': 12, + 'ev': 1, + 'token': token, + 'oip': oip, + 'ep': generate_ep(format, n) + } + video_url = \ + 'http://k.youku.com/player/getFlvPath/' + \ + 'sid/' + sid + \ + '_' + str(int(n) + 1).zfill(2) + \ + '/st/' + self.parse_ext_l(format) + \ + '/fileid/' + get_fileid(format, n) + '?' + \ + compat_urllib_parse.urlencode(param) + video_urls.append(video_url) + video_urls_dict[format] = video_urls + + return video_urls_dict + + def get_hd(self, fm): + hd_id_dict = { + 'flv': '0', + 'mp4': '1', + 'hd2': '2', + 'hd3': '3', + '3gp': '0', + '3gphd': '1' } - } - - def _gen_sid(self): - nowTime = int(time.time() * 1000) - random1 = random.randint(1000, 1998) - random2 = random.randint(1000, 9999) - - return "%d%d%d" % (nowTime, random1, random2) - - def _get_file_ID_mix_string(self, seed): - mixed = [] - source = list("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\:._-1234567890") - seed = float(seed) - for i in range(len(source)): - seed = (seed * 211 + 30031) % 65536 - index = math.floor(seed / 65536 * len(source)) - mixed.append(source[int(index)]) - source.remove(source[int(index)]) - # return ''.join(mixed) - return mixed - - def _get_file_id(self, fileId, seed): - mixed = self._get_file_ID_mix_string(seed) - ids = fileId.split('*') - realId = [] - for ch in ids: - if ch: - realId.append(mixed[int(ch)]) - return ''.join(realId) + return hd_id_dict[fm] + + def parse_ext_l(self, fm): + ext_dict = { + 'flv': 'flv', + 'mp4': 'mp4', + 'hd2': 'flv', + 'hd3': 'flv', + '3gp': 'flv', + '3gphd': 'mp4' + } + return ext_dict[fm] + + def get_format_name(self, fm): + _dict = { + '3gp': 'h6', + '3gphd': 'h5', + 'flv': 'h4', + 'mp4': 'h3', + 'hd2': 'h2', + 'hd3': 'h1' + } + return _dict[fm] def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') - - info_url = 'http://v.youku.com/player/getPlayList/VideoIDS/' + video_id + video_id = self._match_id(url) - config = self._download_json(info_url, video_id) + def retrieve_data(req_url, note): + req = compat_urllib_request.Request(req_url) - error_code = config['data'][0].get('error_code') - if error_code: - # -8 means blocked outside China. - error = config['data'][0].get('error') # Chinese and English, separated by newline. - raise ExtractorError(error or 'Server reported error %i' % error_code, - expected=True) + cn_verification_proxy = self._downloader.params.get('cn_verification_proxy') + if cn_verification_proxy: + req.add_header('Ytdl-request-proxy', cn_verification_proxy) - video_title = config['data'][0]['title'] - seed = config['data'][0]['seed'] + raw_data = self._download_json(req, video_id, note=note) + return raw_data['data'][0] - format = self._downloader.params.get('format', None) - supported_format = list(config['data'][0]['streamfileids'].keys()) + # request basic data + data1 = retrieve_data( + 'http://v.youku.com/player/getPlayList/VideoIDS/%s' % video_id, + 'Downloading JSON metadata 1') + data2 = retrieve_data( + 'http://v.youku.com/player/getPlayList/VideoIDS/%s/Pf/4/ctype/12/ev/1' % video_id, + 'Downloading JSON metadata 2') - # TODO proper format selection - if format is None or format == 'best': - if 'hd2' in supported_format: - format = 'hd2' + error_code = data1.get('error_code') + if error_code: + error = data1.get('error') + if error is not None and 'å çæåå æ æ³è§çæ¤è§é¢' in error: + raise ExtractorError( + 'Youku said: Sorry, this video is available in China only', expected=True) else: - format = 'flv' - ext = 'flv' - elif format == 'worst': - format = 'mp4' - ext = 'mp4' - else: - format = 'flv' - ext = 'flv' - - fileid = config['data'][0]['streamfileids'][format] - keys = [s['k'] for s in config['data'][0]['segs'][format]] - # segs is usually a dictionary, but an empty *list* if an error occured. - - files_info = [] - sid = self._gen_sid() - fileid = self._get_file_id(fileid, seed) - - # column 8,9 of fileid represent the segment number - # fileid[7:9] should be changed - for index, key in enumerate(keys): - temp_fileid = '%s%02X%s' % (fileid[0:8], index, fileid[10:]) - download_url = 'http://k.youku.com/player/getFlvPath/sid/%s_%02X/st/flv/fileid/%s?k=%s' % (sid, index, temp_fileid, key) - - info = { - 'id': '%s_part%02d' % (video_id, index), - 'url': download_url, - 'uploader': None, - 'upload_date': None, - 'title': video_title, - 'ext': ext, - } - files_info.append(info) - - return files_info + msg = 'Youku server reported error %i' % error_code + if error is not None: + msg += ': ' + error + raise ExtractorError(msg) + + title = data1['title'] + + # generate video_urls_dict + video_urls_dict = self.construct_video_urls(data1, data2) + + # construct info + entries = [{ + 'id': '%s_part%d' % (video_id, i + 1), + 'title': title, + 'formats': [], + # some formats are not available for all parts, we have to detect + # which one has all + } for i in range(max(len(v) for v in data1['segs'].values()))] + for fm in data1['streamtypes']: + video_urls = video_urls_dict[fm] + for video_url, seg, entry in zip(video_urls, data1['segs'][fm], entries): + entry['formats'].append({ + 'url': video_url, + 'format_id': self.get_format_name(fm), + 'ext': self.parse_ext_l(fm), + 'filesize': int(seg['size']), + }) + + return { + '_type': 'multi_video', + 'id': video_id, + 'title': title, + 'entries': entries, + } diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index aacb999..3d8b31f 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -17,6 +17,8 @@ from ..compat import ( compat_chr, compat_parse_qs, compat_urllib_parse, + compat_urllib_parse_unquote, + compat_urllib_parse_unquote_plus, compat_urllib_request, compat_urlparse, compat_str, @@ -29,9 +31,11 @@ from ..utils import ( get_element_by_id, int_or_none, orderedSet, + str_to_int, unescapeHTML, unified_strdate, uppercase_escape, + ISO3166Utils, ) @@ -234,6 +238,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor): '44': {'ext': 'webm', 'width': 854, 'height': 480}, '45': {'ext': 'webm', 'width': 1280, 'height': 720}, '46': {'ext': 'webm', 'width': 1920, 'height': 1080}, + '59': {'ext': 'mp4', 'width': 854, 'height': 480}, + '78': {'ext': 'mp4', 'width': 854, 'height': 480}, # 3d videos @@ -516,6 +522,38 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'skip_download': 'requires avconv', } }, + # Extraction from multiple DASH manifests (https://github.com/rg3/youtube-dl/pull/6097) + { + 'url': 'https://www.youtube.com/watch?v=FIl7x6_3R5Y', + 'info_dict': { + 'id': 'FIl7x6_3R5Y', + 'ext': 'mp4', + 'title': 'md5:7b81415841e02ecd4313668cde88737a', + 'description': 'md5:116377fd2963b81ec4ce64b542173306', + 'upload_date': '20150625', + 'uploader_id': 'dorappi2000', + 'uploader': 'dorappi2000', + 'formats': 'mincount:33', + }, + }, + # DASH manifest with segment_list + { + 'url': 'https://www.youtube.com/embed/CsmdDsKjzN8', + 'md5': '8ce563a1d667b599d21064e982ab9e31', + 'info_dict': { + 'id': 'CsmdDsKjzN8', + 'ext': 'mp4', + 'upload_date': '20150501', # According to '<meta itemprop="datePublished"', but in other places it's 20150510 + 'uploader': 'Airtek', + 'description': 'Retransmisión en directo de la XVIII media maratón de Zaragoza.', + 'uploader_id': 'UCzTzUmjXxxacNnL8I3m4LnQ', + 'title': 'Retransmisión XVIII Media maratón Zaragoza 2015', + }, + 'params': { + 'youtube_include_dash_manifest': True, + 'format': '135', # bestvideo + } + }, ] def __init__(self, *args, **kwargs): @@ -780,16 +818,20 @@ class YoutubeIE(YoutubeBaseInfoExtractor): return self._download_webpage(url, video_id, note='Searching for annotations.', errnote='Unable to download video annotations.') def _parse_dash_manifest( - self, video_id, dash_manifest_url, player_url, age_gate): + self, video_id, dash_manifest_url, player_url, age_gate, fatal=True): def decrypt_sig(mobj): s = mobj.group(1) dec_s = self._decrypt_signature(s, video_id, player_url, age_gate) return '/signature/%s' % dec_s - dash_manifest_url = re.sub(r'/s/([\w\.]+)', decrypt_sig, dash_manifest_url) + dash_manifest_url = re.sub(r'/s/([a-fA-F0-9\.]+)', decrypt_sig, dash_manifest_url) dash_doc = self._download_xml( dash_manifest_url, video_id, note='Downloading DASH manifest', - errnote='Could not download DASH manifest') + errnote='Could not download DASH manifest', + fatal=fatal) + + if dash_doc is False: + return [] formats = [] for a in dash_doc.findall('.//{urn:mpeg:DASH:schema:MPD:2011}AdaptationSet'): @@ -802,6 +844,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): # TODO implement WebVTT downloading pass elif mime_type.startswith('audio/') or mime_type.startswith('video/'): + segment_list = r.find('{urn:mpeg:DASH:schema:MPD:2011}SegmentList') format_id = r.attrib['id'] video_url = url_el.text filesize = int_or_none(url_el.attrib.get('{http://youtube.com/yt/2012/10/10}contentLength')) @@ -815,6 +858,12 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'filesize': filesize, 'fps': int_or_none(r.attrib.get('frameRate')), } + if segment_list is not None: + f.update({ + 'initialization_url': segment_list.find('{urn:mpeg:DASH:schema:MPD:2011}Initialization').attrib['sourceURL'], + 'segment_urls': [segment.attrib.get('media') for segment in segment_list.findall('{urn:mpeg:DASH:schema:MPD:2011}SegmentURL')], + 'protocol': 'http_dash_segments', + }) try: existing_format = next( fo for fo in formats @@ -822,6 +871,12 @@ class YoutubeIE(YoutubeBaseInfoExtractor): except StopIteration: full_info = self._formats.get(format_id, {}).copy() full_info.update(f) + codecs = r.attrib.get('codecs') + if codecs: + if full_info.get('acodec') == 'none' and 'vcodec' not in full_info: + full_info['vcodec'] = codecs + elif full_info.get('vcodec') == 'none' and 'acodec' not in full_info: + full_info['acodec'] = codecs formats.append(full_info) else: existing_format.update(f) @@ -837,7 +892,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): # Extract original video URL from URL with redirection, like age verification, using next_url parameter mobj = re.search(self._NEXT_URL_RE, url) if mobj: - url = proto + '://www.youtube.com/' + compat_urllib_parse.unquote(mobj.group(1)).lstrip('/') + url = proto + '://www.youtube.com/' + compat_urllib_parse_unquote(mobj.group(1)).lstrip('/') video_id = self.extract_id(url) # Get video webpage @@ -851,8 +906,16 @@ class YoutubeIE(YoutubeBaseInfoExtractor): else: player_url = None + dash_mpds = [] + + def add_dash_mpd(video_info): + dash_mpd = video_info.get('dashmpd') + if dash_mpd and dash_mpd[0] not in dash_mpds: + dash_mpds.append(dash_mpd[0]) + # Get video info embed_webpage = None + is_live = None if re.search(r'player-age-gate-content">', video_webpage) is not None: age_gate = True # We simulate the access to the video from www.youtube.com/v/{video_id} @@ -871,24 +934,31 @@ class YoutubeIE(YoutubeBaseInfoExtractor): note='Refetching age-gated info webpage', errnote='unable to download video info webpage') video_info = compat_parse_qs(video_info_webpage) + add_dash_mpd(video_info) else: age_gate = False - try: - # Try looking directly into the video webpage - mobj = re.search(r';ytplayer\.config\s*=\s*({.*?});', video_webpage) - if not mobj: - raise ValueError('Could not find ytplayer.config') # caught below + video_info = None + # Try looking directly into the video webpage + mobj = re.search(r';ytplayer\.config\s*=\s*({.*?});', video_webpage) + if mobj: json_code = uppercase_escape(mobj.group(1)) ytplayer_config = json.loads(json_code) args = ytplayer_config['args'] - # Convert to the same format returned by compat_parse_qs - video_info = dict((k, [v]) for k, v in args.items()) - if not args.get('url_encoded_fmt_stream_map'): - raise ValueError('No stream_map present') # caught below - except ValueError: - # We fallback to the get_video_info pages (used by the embed page) + if args.get('url_encoded_fmt_stream_map'): + # Convert to the same format returned by compat_parse_qs + video_info = dict((k, [v]) for k, v in args.items()) + add_dash_mpd(video_info) + if args.get('livestream') == '1' or args.get('live_playback') == 1: + is_live = True + if not video_info or self._downloader.params.get('youtube_include_dash_manifest', True): + # We also try looking in get_video_info since it may contain different dashmpd + # URL that points to a DASH manifest with possibly different itag set (some itags + # are missing from DASH manifest pointed by webpage's dashmpd, some - from DASH + # manifest pointed by get_video_info's dashmpd). + # The general idea is to take a union of itags of both DASH manifests (for example + # video with such 'manifest behavior' see https://github.com/rg3/youtube-dl/issues/6093) self.report_video_info_webpage_download(video_id) - for el_type in ['&el=embedded', '&el=detailpage', '&el=vevo', '']: + for el_type in ['&el=info', '&el=embedded', '&el=detailpage', '&el=vevo', '']: video_info_url = ( '%s://www.youtube.com/get_video_info?&video_id=%s%s&ps=default&eurl=&gl=US&hl=en' % (proto, video_id, el_type)) @@ -896,11 +966,20 @@ class YoutubeIE(YoutubeBaseInfoExtractor): video_info_url, video_id, note=False, errnote='unable to download video info webpage') - video_info = compat_parse_qs(video_info_webpage) - if 'token' in video_info: + get_video_info = compat_parse_qs(video_info_webpage) + add_dash_mpd(get_video_info) + if not video_info: + video_info = get_video_info + if 'token' in get_video_info: break if 'token' not in video_info: if 'reason' in video_info: + if 'The uploader has not made this video available in your country.' in video_info['reason']: + regions_allowed = self._html_search_meta('regionsAllowed', video_webpage, default=None) + if regions_allowed is not None: + raise ExtractorError('YouTube said: This video is available in %s only' % ( + ', '.join(map(ISO3166Utils.short2full, regions_allowed.split(',')))), + expected=True) raise ExtractorError( 'YouTube said: %s' % video_info['reason'][0], expected=True, video_id=video_id) @@ -924,7 +1003,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): # uploader if 'author' not in video_info: raise ExtractorError('Unable to extract uploader name') - video_uploader = compat_urllib_parse.unquote_plus(video_info['author'][0]) + video_uploader = compat_urllib_parse_unquote_plus(video_info['author'][0]) # uploader_id video_uploader_id = None @@ -951,18 +1030,19 @@ class YoutubeIE(YoutubeBaseInfoExtractor): self._downloader.report_warning('unable to extract video thumbnail') video_thumbnail = None else: # don't panic if we can't find it - video_thumbnail = compat_urllib_parse.unquote_plus(video_info['thumbnail_url'][0]) + video_thumbnail = compat_urllib_parse_unquote_plus(video_info['thumbnail_url'][0]) # upload date - upload_date = None - mobj = re.search(r'(?s)id="eow-date.*?>(.*?)</span>', video_webpage) - if mobj is None: - mobj = re.search( - r'(?s)id="watch-uploader-info".*?>.*?(?:Published|Uploaded|Streamed live) on (.*?)</strong>', - video_webpage) - if mobj is not None: - upload_date = ' '.join(re.sub(r'[/,-]', r' ', mobj.group(1)).split()) - upload_date = unified_strdate(upload_date) + upload_date = self._html_search_meta( + 'datePublished', video_webpage, 'upload date', default=None) + if not upload_date: + upload_date = self._search_regex( + [r'(?s)id="eow-date.*?>(.*?)</span>', + r'id="watch-uploader-info".*?>.*?(?:Published|Uploaded|Streamed live|Started) on (.+?)</strong>'], + video_webpage, 'upload date', default=None) + if upload_date: + upload_date = ' '.join(re.sub(r'[/,-]', r' ', mobj.group(1)).split()) + upload_date = unified_strdate(upload_date) m_cat_container = self._search_regex( r'(?s)<h4[^>]*>\s*Category\s*</h4>\s*<ul[^>]*>(.*?)</ul>', @@ -996,12 +1076,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor): video_description = '' def _extract_count(count_name): - count = self._search_regex( - r'id="watch-%s"[^>]*>.*?([\d,]+)\s*</span>' % re.escape(count_name), - video_webpage, count_name, default=None) - if count is not None: - return int(count.replace(',', '')) - return None + return str_to_int(self._search_regex( + r'-%s-button[^>]+><span[^>]+class="yt-uix-button-content"[^>]*>([\d,]+)</span>' + % re.escape(count_name), + video_webpage, count_name, default=None)) + like_count = _extract_count('like') dislike_count = _extract_count('dislike') @@ -1013,7 +1092,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): self._downloader.report_warning('unable to extract video duration') video_duration = None else: - video_duration = int(compat_urllib_parse.unquote_plus(video_info['length_seconds'][0])) + video_duration = int(compat_urllib_parse_unquote_plus(video_info['length_seconds'][0])) # annotations video_annotations = None @@ -1116,24 +1195,32 @@ class YoutubeIE(YoutubeBaseInfoExtractor): # Look for the DASH manifest if self._downloader.params.get('youtube_include_dash_manifest', True): - dash_mpd = video_info.get('dashmpd') - if dash_mpd: - dash_manifest_url = dash_mpd[0] + dash_mpd_fatal = True + for dash_manifest_url in dash_mpds: + dash_formats = {} try: - dash_formats = self._parse_dash_manifest( - video_id, dash_manifest_url, player_url, age_gate) + for df in self._parse_dash_manifest( + video_id, dash_manifest_url, player_url, age_gate, dash_mpd_fatal): + # Do not overwrite DASH format found in some previous DASH manifest + if df['format_id'] not in dash_formats: + dash_formats[df['format_id']] = df + # Additional DASH manifests may end up in HTTP Error 403 therefore + # allow them to fail without bug report message if we already have + # some DASH manifest succeeded. This is temporary workaround to reduce + # burst of bug reports until we figure out the reason and whether it + # can be fixed at all. + dash_mpd_fatal = False except (ExtractorError, KeyError) as e: self.report_warning( 'Skipping DASH manifest: %r' % e, video_id) - else: + if dash_formats: # Remove the formats we found through non-DASH, they # contain less info and it can be wrong, because we use # fixed values (for example the resolution). See # https://github.com/rg3/youtube-dl/issues/5774 for an # example. - dash_keys = set(df['format_id'] for df in dash_formats) - formats = [f for f in formats if f['format_id'] not in dash_keys] - formats.extend(dash_formats) + formats = [f for f in formats if f['format_id'] not in dash_formats.keys()] + formats.extend(dash_formats.values()) # Check for malformed aspect ratio stretched_m = re.search( @@ -1167,6 +1254,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'dislike_count': dislike_count, 'average_rating': float_or_none(video_info.get('avg_rating', [None])[0]), 'formats': formats, + 'is_live': is_live, } @@ -1290,7 +1378,6 @@ class YoutubePlaylistIE(YoutubeBaseInfoExtractor): def _extract_playlist(self, playlist_id): url = self._TEMPLATE_URL % playlist_id page = self._download_webpage(url, playlist_id) - more_widget_html = content_html = page for match in re.findall(r'<div class="yt-alert-message">([^<]+)</div>', page): match = match.strip() @@ -1310,36 +1397,36 @@ class YoutubePlaylistIE(YoutubeBaseInfoExtractor): self.report_warning('Youtube gives an alert message: ' + match) # Extract the video ids from the playlist pages - ids = [] - - for page_num in itertools.count(1): - matches = re.finditer(self._VIDEO_RE, content_html) - # We remove the duplicates and the link with index 0 - # (it's not the first video of the playlist) - new_ids = orderedSet(m.group('id') for m in matches if m.group('index') != '0') - ids.extend(new_ids) - - mobj = re.search(r'data-uix-load-more-href="/?(?P<more>[^"]+)"', more_widget_html) - if not mobj: - break + def _entries(): + more_widget_html = content_html = page + for page_num in itertools.count(1): + matches = re.finditer(self._VIDEO_RE, content_html) + # We remove the duplicates and the link with index 0 + # (it's not the first video of the playlist) + new_ids = orderedSet(m.group('id') for m in matches if m.group('index') != '0') + for vid_id in new_ids: + yield self.url_result(vid_id, 'Youtube', video_id=vid_id) + + mobj = re.search(r'data-uix-load-more-href="/?(?P<more>[^"]+)"', more_widget_html) + if not mobj: + break - more = self._download_json( - 'https://youtube.com/%s' % mobj.group('more'), playlist_id, - 'Downloading page #%s' % page_num, - transform_source=uppercase_escape) - content_html = more['content_html'] - if not content_html.strip(): - # Some webpages show a "Load more" button but they don't - # have more videos - break - more_widget_html = more['load_more_widget_html'] + more = self._download_json( + 'https://youtube.com/%s' % mobj.group('more'), playlist_id, + 'Downloading page #%s' % page_num, + transform_source=uppercase_escape) + content_html = more['content_html'] + if not content_html.strip(): + # Some webpages show a "Load more" button but they don't + # have more videos + break + more_widget_html = more['load_more_widget_html'] playlist_title = self._html_search_regex( r'(?s)<h1 class="pl-header-title[^"]*">\s*(.*?)\s*</h1>', page, 'title') - url_results = self._ids_to_results(ids) - return self.playlist_result(url_results, playlist_id, playlist_title) + return self.playlist_result(_entries(), playlist_id, playlist_title) def _real_extract(self, url): # Extract playlist id @@ -1406,10 +1493,12 @@ class YoutubeChannelIE(InfoExtractor): channel_page = self._download_webpage( url + '?view=57', channel_id, 'Downloading channel page', fatal=False) - channel_playlist_id = self._search_regex( - [r'<meta itemprop="channelId" content="([^"]+)">', - r'data-channel-external-id="([^"]+)"'], - channel_page, 'channel id', default=None) + channel_playlist_id = self._html_search_meta( + 'channelId', channel_page, 'channel id', default=None) + if not channel_playlist_id: + channel_playlist_id = self._search_regex( + r'data-channel-external-id="([^"]+)"', + channel_page, 'channel id', default=None) if channel_playlist_id and channel_playlist_id.startswith('UC'): playlist_id = 'UU' + channel_playlist_id[2:] return self.url_result( @@ -1503,7 +1592,7 @@ class YoutubeSearchIE(SearchInfoExtractor, YoutubePlaylistIE): for pagenum in itertools.count(1): url_query = { - 'search_query': query, + 'search_query': query.encode('utf-8'), 'page': pagenum, 'spf': 'navigate', } @@ -1551,7 +1640,7 @@ class YoutubeSearchURLIE(InfoExtractor): def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) - query = compat_urllib_parse.unquote_plus(mobj.group('query')) + query = compat_urllib_parse_unquote_plus(mobj.group('query')) webpage = self._download_webpage(url, query) result_code = self._search_regex( diff --git a/youtube_dl/options.py b/youtube_dl/options.py index 5a2315b..9016e34 100644 --- a/youtube_dl/options.py +++ b/youtube_dl/options.py @@ -145,11 +145,15 @@ def parseOpts(overrideArguments=None): general.add_option( '--list-extractors', action='store_true', dest='list_extractors', default=False, - help='List all supported extractors and the URLs they would handle') + help='List all supported extractors') general.add_option( '--extractor-descriptions', action='store_true', dest='list_extractor_descriptions', default=False, help='Output descriptions of all supported extractors') + general.add_option( + '--force-generic-extractor', + action='store_true', dest='force_generic_extractor', default=False, + help='Force extraction to use the generic extractor') general.add_option( '--default-search', dest='default_search', metavar='PREFIX', @@ -215,7 +219,7 @@ def parseOpts(overrideArguments=None): selection.add_option( '--playlist-items', dest='playlist_items', metavar='ITEM_SPEC', default=None, - help='Playlist video items to download. Specify indices of the videos in the playlist seperated by commas like: "--playlist-items 1,2,5,8" if you want to download videos indexed 1, 2, 5, 8 in the playlist. You can specify range: "--playlist-items 1-3,7,10-13", it will download the videos at index 1, 2, 3, 7, 10, 11, 12 and 13.') + help='Playlist video items to download. Specify indices of the videos in the playlist separated by commas like: "--playlist-items 1,2,5,8" if you want to download videos indexed 1, 2, 5, 8 in the playlist. You can specify range: "--playlist-items 1-3,7,10-13", it will download the videos at index 1, 2, 3, 7, 10, 11, 12 and 13.') selection.add_option( '--match-title', dest='matchtitle', metavar='REGEX', @@ -342,12 +346,13 @@ def parseOpts(overrideArguments=None): video_format.add_option( '--youtube-skip-dash-manifest', action='store_false', dest='youtube_include_dash_manifest', - help='Do not download the DASH manifest on YouTube videos') + help='Do not download the DASH manifests and related data on YouTube videos') video_format.add_option( '--merge-output-format', action='store', dest='merge_output_format', metavar='FORMAT', default=None, help=( - 'If a merge is required (e.g. bestvideo+bestaudio), output to given container format. One of mkv, mp4, ogg, webm, flv.' + 'If a merge is required (e.g. bestvideo+bestaudio), ' + 'output to given container format. One of mkv, mp4, ogg, webm, flv. ' 'Ignored if no merge is required')) subtitles = optparse.OptionGroup(parser, 'Subtitle Options') @@ -686,7 +691,11 @@ def parseOpts(overrideArguments=None): postproc.add_option( '--recode-video', metavar='FORMAT', dest='recodevideo', default=None, - help='Encode the video to another format if necessary (currently supported: mp4|flv|ogg|webm|mkv)') + help='Encode the video to another format if necessary (currently supported: mp4|flv|ogg|webm|mkv|avi)') + postproc.add_option( + '--postprocessor-args', + dest='postprocessor_args', metavar='ARGS', + help='Give these arguments to the postprocessor') postproc.add_option( '-k', '--keep-video', action='store_true', dest='keepvideo', default=False, @@ -725,7 +734,7 @@ def parseOpts(overrideArguments=None): metavar='POLICY', dest='fixup', default='detect_or_warn', help='Automatically correct known faults of the file. ' 'One of never (do nothing), warn (only emit a warning), ' - 'detect_or_warn(the default; fix file if we can, warn otherwise)') + 'detect_or_warn (the default; fix file if we can, warn otherwise)') postproc.add_option( '--prefer-avconv', action='store_false', dest='prefer_ffmpeg', diff --git a/youtube_dl/postprocessor/common.py b/youtube_dl/postprocessor/common.py index 3b0e8dd..4191d04 100644 --- a/youtube_dl/postprocessor/common.py +++ b/youtube_dl/postprocessor/common.py @@ -23,6 +23,9 @@ class PostProcessor(object): PostProcessor objects follow a "mutual registration" process similar to InfoExtractor objects. + + Optionally PostProcessor can use a list of additional command-line arguments + with self._configuration_args. """ _downloader = None @@ -57,6 +60,13 @@ class PostProcessor(object): except Exception: self._downloader.report_warning(errnote) + def _configuration_args(self, default=[]): + pp_args = self._downloader.params.get('postprocessor_args') + if pp_args is None: + return default + assert isinstance(pp_args, list) + return pp_args + class AudioConversionError(PostProcessingError): pass diff --git a/youtube_dl/postprocessor/embedthumbnail.py b/youtube_dl/postprocessor/embedthumbnail.py index 774494e..e19dbf7 100644 --- a/youtube_dl/postprocessor/embedthumbnail.py +++ b/youtube_dl/postprocessor/embedthumbnail.py @@ -35,6 +35,11 @@ class EmbedThumbnailPP(FFmpegPostProcessor): thumbnail_filename = info['thumbnails'][-1]['filename'] + if not os.path.exists(encodeFilename(thumbnail_filename)): + self._downloader.report_warning( + 'Skipping embedding the thumbnail because the file is missing.') + return [], info + if info['ext'] == 'mp3': options = [ '-c', 'copy', '-map', '0', '-map', '1', diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index cc65b34..1f72390 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -21,6 +21,7 @@ from ..utils import ( shell_quote, subtitles_filename, dfxp2srt, + ISO639Utils, ) @@ -130,6 +131,8 @@ class FFmpegPostProcessor(PostProcessor): oldest_mtime = min( os.stat(encodeFilename(path)).st_mtime for path in input_paths) + opts += self._configuration_args() + files_cmd = [] for path in input_paths: files_cmd.extend([encodeArgument('-i'), encodeFilename(path, True)]) @@ -262,7 +265,7 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor): # If we download foo.mp3 and convert it to... foo.mp3, then don't delete foo.mp3, silly. if (new_path == path or (self._nopostoverwrites and os.path.exists(encodeFilename(new_path)))): - self._downloader.to_screen('[youtube] Post-process file %s exists, skipping' % new_path) + self._downloader.to_screen('[ffmpeg] Post-process file %s exists, skipping' % new_path) return [], information try: @@ -293,13 +296,16 @@ class FFmpegVideoConvertorPP(FFmpegPostProcessor): def run(self, information): path = information['filepath'] - prefix, sep, ext = path.rpartition('.') - outpath = prefix + sep + self._preferedformat if information['ext'] == self._preferedformat: self._downloader.to_screen('[ffmpeg] Not converting video file %s - already is in target format %s' % (path, self._preferedformat)) return [], information + options = [] + if self._preferedformat == 'avi': + options.extend(['-c:v', 'libxvid', '-vtag', 'XVID']) + prefix, sep, ext = path.rpartition('.') + outpath = prefix + sep + self._preferedformat self._downloader.to_screen('[' + 'ffmpeg' + '] Converting video from %s to %s, Destination: ' % (information['ext'], self._preferedformat) + outpath) - self.run_ffmpeg(path, outpath, []) + self.run_ffmpeg(path, outpath, options) information['filepath'] = outpath information['format'] = self._preferedformat information['ext'] = self._preferedformat @@ -307,199 +313,6 @@ class FFmpegVideoConvertorPP(FFmpegPostProcessor): class FFmpegEmbedSubtitlePP(FFmpegPostProcessor): - # See http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt - _lang_map = { - 'aa': 'aar', - 'ab': 'abk', - 'ae': 'ave', - 'af': 'afr', - 'ak': 'aka', - 'am': 'amh', - 'an': 'arg', - 'ar': 'ara', - 'as': 'asm', - 'av': 'ava', - 'ay': 'aym', - 'az': 'aze', - 'ba': 'bak', - 'be': 'bel', - 'bg': 'bul', - 'bh': 'bih', - 'bi': 'bis', - 'bm': 'bam', - 'bn': 'ben', - 'bo': 'bod', - 'br': 'bre', - 'bs': 'bos', - 'ca': 'cat', - 'ce': 'che', - 'ch': 'cha', - 'co': 'cos', - 'cr': 'cre', - 'cs': 'ces', - 'cu': 'chu', - 'cv': 'chv', - 'cy': 'cym', - 'da': 'dan', - 'de': 'deu', - 'dv': 'div', - 'dz': 'dzo', - 'ee': 'ewe', - 'el': 'ell', - 'en': 'eng', - 'eo': 'epo', - 'es': 'spa', - 'et': 'est', - 'eu': 'eus', - 'fa': 'fas', - 'ff': 'ful', - 'fi': 'fin', - 'fj': 'fij', - 'fo': 'fao', - 'fr': 'fra', - 'fy': 'fry', - 'ga': 'gle', - 'gd': 'gla', - 'gl': 'glg', - 'gn': 'grn', - 'gu': 'guj', - 'gv': 'glv', - 'ha': 'hau', - 'he': 'heb', - 'hi': 'hin', - 'ho': 'hmo', - 'hr': 'hrv', - 'ht': 'hat', - 'hu': 'hun', - 'hy': 'hye', - 'hz': 'her', - 'ia': 'ina', - 'id': 'ind', - 'ie': 'ile', - 'ig': 'ibo', - 'ii': 'iii', - 'ik': 'ipk', - 'io': 'ido', - 'is': 'isl', - 'it': 'ita', - 'iu': 'iku', - 'ja': 'jpn', - 'jv': 'jav', - 'ka': 'kat', - 'kg': 'kon', - 'ki': 'kik', - 'kj': 'kua', - 'kk': 'kaz', - 'kl': 'kal', - 'km': 'khm', - 'kn': 'kan', - 'ko': 'kor', - 'kr': 'kau', - 'ks': 'kas', - 'ku': 'kur', - 'kv': 'kom', - 'kw': 'cor', - 'ky': 'kir', - 'la': 'lat', - 'lb': 'ltz', - 'lg': 'lug', - 'li': 'lim', - 'ln': 'lin', - 'lo': 'lao', - 'lt': 'lit', - 'lu': 'lub', - 'lv': 'lav', - 'mg': 'mlg', - 'mh': 'mah', - 'mi': 'mri', - 'mk': 'mkd', - 'ml': 'mal', - 'mn': 'mon', - 'mr': 'mar', - 'ms': 'msa', - 'mt': 'mlt', - 'my': 'mya', - 'na': 'nau', - 'nb': 'nob', - 'nd': 'nde', - 'ne': 'nep', - 'ng': 'ndo', - 'nl': 'nld', - 'nn': 'nno', - 'no': 'nor', - 'nr': 'nbl', - 'nv': 'nav', - 'ny': 'nya', - 'oc': 'oci', - 'oj': 'oji', - 'om': 'orm', - 'or': 'ori', - 'os': 'oss', - 'pa': 'pan', - 'pi': 'pli', - 'pl': 'pol', - 'ps': 'pus', - 'pt': 'por', - 'qu': 'que', - 'rm': 'roh', - 'rn': 'run', - 'ro': 'ron', - 'ru': 'rus', - 'rw': 'kin', - 'sa': 'san', - 'sc': 'srd', - 'sd': 'snd', - 'se': 'sme', - 'sg': 'sag', - 'si': 'sin', - 'sk': 'slk', - 'sl': 'slv', - 'sm': 'smo', - 'sn': 'sna', - 'so': 'som', - 'sq': 'sqi', - 'sr': 'srp', - 'ss': 'ssw', - 'st': 'sot', - 'su': 'sun', - 'sv': 'swe', - 'sw': 'swa', - 'ta': 'tam', - 'te': 'tel', - 'tg': 'tgk', - 'th': 'tha', - 'ti': 'tir', - 'tk': 'tuk', - 'tl': 'tgl', - 'tn': 'tsn', - 'to': 'ton', - 'tr': 'tur', - 'ts': 'tso', - 'tt': 'tat', - 'tw': 'twi', - 'ty': 'tah', - 'ug': 'uig', - 'uk': 'ukr', - 'ur': 'urd', - 'uz': 'uzb', - 've': 'ven', - 'vi': 'vie', - 'vo': 'vol', - 'wa': 'wln', - 'wo': 'wol', - 'xh': 'xho', - 'yi': 'yid', - 'yo': 'yor', - 'za': 'zha', - 'zh': 'zho', - 'zu': 'zul', - } - - @classmethod - def _conver_lang_code(cls, code): - """Convert language code from ISO 639-1 to ISO 639-2/T""" - return cls._lang_map.get(code[:2]) - def run(self, information): if information['ext'] not in ['mp4', 'mkv']: self._downloader.to_screen('[ffmpeg] Subtitles can only be embedded in mp4 or mkv files') @@ -525,7 +338,7 @@ class FFmpegEmbedSubtitlePP(FFmpegPostProcessor): opts += ['-c:s', 'mov_text'] for (i, lang) in enumerate(sub_langs): opts.extend(['-map', '%d:0' % (i + 1)]) - lang_code = self._conver_lang_code(lang) + lang_code = ISO639Utils.short2long(lang) if lang_code is not None: opts.extend(['-metadata:s:s:%d' % i, 'language=%s' % lang_code]) diff --git a/youtube_dl/update.py b/youtube_dl/update.py index de3169e..fc7ac83 100644 --- a/youtube_dl/update.py +++ b/youtube_dl/update.py @@ -50,7 +50,7 @@ def rsa_verify(message, signature, key): def update_self(to_screen, verbose): """Update the program file with the latest version from the repository""" - UPDATE_URL = "http://rg3.github.io/youtube-dl/update/" + UPDATE_URL = "https://rg3.github.io/youtube-dl/update/" VERSION_URL = UPDATE_URL + 'LATEST_VERSION' JSON_URL = UPDATE_URL + 'versions.json' UPDATES_RSA_KEY = (0x9d60ee4d8f805312fdb15a62f87b95bd66177b91df176765d13514a0f1754bcd2057295c5b6f1d35daa6742c3ffc9a82d3e118861c207995a8031e151d863c9927e304576bc80692bc8e094896fcf11b66f3e29e04e3a71e9a11558558acea1840aec37fc396fb6b65dc81a1c4144e03bd1c011de62e3f1357b327d08426fe93, 65537) diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 52d198f..942f76d 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -62,6 +62,8 @@ std_headers = { } +NO_DEFAULT = object() + ENGLISH_MONTH_NAMES = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] @@ -171,13 +173,15 @@ def xpath_with_ns(path, ns_map): return '/'.join(replaced) -def xpath_text(node, xpath, name=None, fatal=False): +def xpath_text(node, xpath, name=None, fatal=False, default=NO_DEFAULT): if sys.version_info < (2, 7): # Crazy 2.6 xpath = xpath.encode('ascii') n = node.find(xpath) if n is None or n.text is None: - if fatal: + if default is not NO_DEFAULT: + return default + elif fatal: name = xpath if name is None else name raise ExtractorError('Could not find XML element %s' % name) else: @@ -1841,7 +1845,10 @@ def srt_subtitles_timecode(seconds): def dfxp2srt(dfxp_data): - _x = functools.partial(xpath_with_ns, ns_map={'ttml': 'http://www.w3.org/ns/ttml'}) + _x = functools.partial(xpath_with_ns, ns_map={ + 'ttml': 'http://www.w3.org/ns/ttml', + 'ttaf1': 'http://www.w3.org/2006/10/ttaf1', + }) def parse_node(node): str_or_empty = functools.partial(str_or_none, default='') @@ -1849,9 +1856,9 @@ def dfxp2srt(dfxp_data): out = str_or_empty(node.text) for child in node: - if child.tag in (_x('ttml:br'), 'br'): + if child.tag in (_x('ttml:br'), _x('ttaf1:br'), 'br'): out += '\n' + str_or_empty(child.tail) - elif child.tag in (_x('ttml:span'), 'span'): + elif child.tag in (_x('ttml:span'), _x('ttaf1:span'), 'span'): out += str_or_empty(parse_node(child)) else: out += str_or_empty(xml.etree.ElementTree.tostring(child)) @@ -1860,7 +1867,7 @@ def dfxp2srt(dfxp_data): dfxp = xml.etree.ElementTree.fromstring(dfxp_data.encode('utf-8')) out = [] - paras = dfxp.findall(_x('.//ttml:p')) or dfxp.findall('.//p') + paras = dfxp.findall(_x('.//ttml:p')) or dfxp.findall(_x('.//ttaf1:p')) or dfxp.findall('.//p') if not paras: raise ValueError('Invalid dfxp/TTML subtitle') @@ -1879,6 +1886,468 @@ def dfxp2srt(dfxp_data): return ''.join(out) +class ISO639Utils(object): + # See http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt + _lang_map = { + 'aa': 'aar', + 'ab': 'abk', + 'ae': 'ave', + 'af': 'afr', + 'ak': 'aka', + 'am': 'amh', + 'an': 'arg', + 'ar': 'ara', + 'as': 'asm', + 'av': 'ava', + 'ay': 'aym', + 'az': 'aze', + 'ba': 'bak', + 'be': 'bel', + 'bg': 'bul', + 'bh': 'bih', + 'bi': 'bis', + 'bm': 'bam', + 'bn': 'ben', + 'bo': 'bod', + 'br': 'bre', + 'bs': 'bos', + 'ca': 'cat', + 'ce': 'che', + 'ch': 'cha', + 'co': 'cos', + 'cr': 'cre', + 'cs': 'ces', + 'cu': 'chu', + 'cv': 'chv', + 'cy': 'cym', + 'da': 'dan', + 'de': 'deu', + 'dv': 'div', + 'dz': 'dzo', + 'ee': 'ewe', + 'el': 'ell', + 'en': 'eng', + 'eo': 'epo', + 'es': 'spa', + 'et': 'est', + 'eu': 'eus', + 'fa': 'fas', + 'ff': 'ful', + 'fi': 'fin', + 'fj': 'fij', + 'fo': 'fao', + 'fr': 'fra', + 'fy': 'fry', + 'ga': 'gle', + 'gd': 'gla', + 'gl': 'glg', + 'gn': 'grn', + 'gu': 'guj', + 'gv': 'glv', + 'ha': 'hau', + 'he': 'heb', + 'hi': 'hin', + 'ho': 'hmo', + 'hr': 'hrv', + 'ht': 'hat', + 'hu': 'hun', + 'hy': 'hye', + 'hz': 'her', + 'ia': 'ina', + 'id': 'ind', + 'ie': 'ile', + 'ig': 'ibo', + 'ii': 'iii', + 'ik': 'ipk', + 'io': 'ido', + 'is': 'isl', + 'it': 'ita', + 'iu': 'iku', + 'ja': 'jpn', + 'jv': 'jav', + 'ka': 'kat', + 'kg': 'kon', + 'ki': 'kik', + 'kj': 'kua', + 'kk': 'kaz', + 'kl': 'kal', + 'km': 'khm', + 'kn': 'kan', + 'ko': 'kor', + 'kr': 'kau', + 'ks': 'kas', + 'ku': 'kur', + 'kv': 'kom', + 'kw': 'cor', + 'ky': 'kir', + 'la': 'lat', + 'lb': 'ltz', + 'lg': 'lug', + 'li': 'lim', + 'ln': 'lin', + 'lo': 'lao', + 'lt': 'lit', + 'lu': 'lub', + 'lv': 'lav', + 'mg': 'mlg', + 'mh': 'mah', + 'mi': 'mri', + 'mk': 'mkd', + 'ml': 'mal', + 'mn': 'mon', + 'mr': 'mar', + 'ms': 'msa', + 'mt': 'mlt', + 'my': 'mya', + 'na': 'nau', + 'nb': 'nob', + 'nd': 'nde', + 'ne': 'nep', + 'ng': 'ndo', + 'nl': 'nld', + 'nn': 'nno', + 'no': 'nor', + 'nr': 'nbl', + 'nv': 'nav', + 'ny': 'nya', + 'oc': 'oci', + 'oj': 'oji', + 'om': 'orm', + 'or': 'ori', + 'os': 'oss', + 'pa': 'pan', + 'pi': 'pli', + 'pl': 'pol', + 'ps': 'pus', + 'pt': 'por', + 'qu': 'que', + 'rm': 'roh', + 'rn': 'run', + 'ro': 'ron', + 'ru': 'rus', + 'rw': 'kin', + 'sa': 'san', + 'sc': 'srd', + 'sd': 'snd', + 'se': 'sme', + 'sg': 'sag', + 'si': 'sin', + 'sk': 'slk', + 'sl': 'slv', + 'sm': 'smo', + 'sn': 'sna', + 'so': 'som', + 'sq': 'sqi', + 'sr': 'srp', + 'ss': 'ssw', + 'st': 'sot', + 'su': 'sun', + 'sv': 'swe', + 'sw': 'swa', + 'ta': 'tam', + 'te': 'tel', + 'tg': 'tgk', + 'th': 'tha', + 'ti': 'tir', + 'tk': 'tuk', + 'tl': 'tgl', + 'tn': 'tsn', + 'to': 'ton', + 'tr': 'tur', + 'ts': 'tso', + 'tt': 'tat', + 'tw': 'twi', + 'ty': 'tah', + 'ug': 'uig', + 'uk': 'ukr', + 'ur': 'urd', + 'uz': 'uzb', + 've': 'ven', + 'vi': 'vie', + 'vo': 'vol', + 'wa': 'wln', + 'wo': 'wol', + 'xh': 'xho', + 'yi': 'yid', + 'yo': 'yor', + 'za': 'zha', + 'zh': 'zho', + 'zu': 'zul', + } + + @classmethod + def short2long(cls, code): + """Convert language code from ISO 639-1 to ISO 639-2/T""" + return cls._lang_map.get(code[:2]) + + @classmethod + def long2short(cls, code): + """Convert language code from ISO 639-2/T to ISO 639-1""" + for short_name, long_name in cls._lang_map.items(): + if long_name == code: + return short_name + + +class ISO3166Utils(object): + # From http://data.okfn.org/data/core/country-list + _country_map = { + 'AF': 'Afghanistan', + 'AX': 'à land Islands', + 'AL': 'Albania', + 'DZ': 'Algeria', + 'AS': 'American Samoa', + 'AD': 'Andorra', + 'AO': 'Angola', + 'AI': 'Anguilla', + 'AQ': 'Antarctica', + 'AG': 'Antigua and Barbuda', + 'AR': 'Argentina', + 'AM': 'Armenia', + 'AW': 'Aruba', + 'AU': 'Australia', + 'AT': 'Austria', + 'AZ': 'Azerbaijan', + 'BS': 'Bahamas', + 'BH': 'Bahrain', + 'BD': 'Bangladesh', + 'BB': 'Barbados', + 'BY': 'Belarus', + 'BE': 'Belgium', + 'BZ': 'Belize', + 'BJ': 'Benin', + 'BM': 'Bermuda', + 'BT': 'Bhutan', + 'BO': 'Bolivia, Plurinational State of', + 'BQ': 'Bonaire, Sint Eustatius and Saba', + 'BA': 'Bosnia and Herzegovina', + 'BW': 'Botswana', + 'BV': 'Bouvet Island', + 'BR': 'Brazil', + 'IO': 'British Indian Ocean Territory', + 'BN': 'Brunei Darussalam', + 'BG': 'Bulgaria', + 'BF': 'Burkina Faso', + 'BI': 'Burundi', + 'KH': 'Cambodia', + 'CM': 'Cameroon', + 'CA': 'Canada', + 'CV': 'Cape Verde', + 'KY': 'Cayman Islands', + 'CF': 'Central African Republic', + 'TD': 'Chad', + 'CL': 'Chile', + 'CN': 'China', + 'CX': 'Christmas Island', + 'CC': 'Cocos (Keeling) Islands', + 'CO': 'Colombia', + 'KM': 'Comoros', + 'CG': 'Congo', + 'CD': 'Congo, the Democratic Republic of the', + 'CK': 'Cook Islands', + 'CR': 'Costa Rica', + 'CI': 'Côte d\'Ivoire', + 'HR': 'Croatia', + 'CU': 'Cuba', + 'CW': 'Curaçao', + 'CY': 'Cyprus', + 'CZ': 'Czech Republic', + 'DK': 'Denmark', + 'DJ': 'Djibouti', + 'DM': 'Dominica', + 'DO': 'Dominican Republic', + 'EC': 'Ecuador', + 'EG': 'Egypt', + 'SV': 'El Salvador', + 'GQ': 'Equatorial Guinea', + 'ER': 'Eritrea', + 'EE': 'Estonia', + 'ET': 'Ethiopia', + 'FK': 'Falkland Islands (Malvinas)', + 'FO': 'Faroe Islands', + 'FJ': 'Fiji', + 'FI': 'Finland', + 'FR': 'France', + 'GF': 'French Guiana', + 'PF': 'French Polynesia', + 'TF': 'French Southern Territories', + 'GA': 'Gabon', + 'GM': 'Gambia', + 'GE': 'Georgia', + 'DE': 'Germany', + 'GH': 'Ghana', + 'GI': 'Gibraltar', + 'GR': 'Greece', + 'GL': 'Greenland', + 'GD': 'Grenada', + 'GP': 'Guadeloupe', + 'GU': 'Guam', + 'GT': 'Guatemala', + 'GG': 'Guernsey', + 'GN': 'Guinea', + 'GW': 'Guinea-Bissau', + 'GY': 'Guyana', + 'HT': 'Haiti', + 'HM': 'Heard Island and McDonald Islands', + 'VA': 'Holy See (Vatican City State)', + 'HN': 'Honduras', + 'HK': 'Hong Kong', + 'HU': 'Hungary', + 'IS': 'Iceland', + 'IN': 'India', + 'ID': 'Indonesia', + 'IR': 'Iran, Islamic Republic of', + 'IQ': 'Iraq', + 'IE': 'Ireland', + 'IM': 'Isle of Man', + 'IL': 'Israel', + 'IT': 'Italy', + 'JM': 'Jamaica', + 'JP': 'Japan', + 'JE': 'Jersey', + 'JO': 'Jordan', + 'KZ': 'Kazakhstan', + 'KE': 'Kenya', + 'KI': 'Kiribati', + 'KP': 'Korea, Democratic People\'s Republic of', + 'KR': 'Korea, Republic of', + 'KW': 'Kuwait', + 'KG': 'Kyrgyzstan', + 'LA': 'Lao People\'s Democratic Republic', + 'LV': 'Latvia', + 'LB': 'Lebanon', + 'LS': 'Lesotho', + 'LR': 'Liberia', + 'LY': 'Libya', + 'LI': 'Liechtenstein', + 'LT': 'Lithuania', + 'LU': 'Luxembourg', + 'MO': 'Macao', + 'MK': 'Macedonia, the Former Yugoslav Republic of', + 'MG': 'Madagascar', + 'MW': 'Malawi', + 'MY': 'Malaysia', + 'MV': 'Maldives', + 'ML': 'Mali', + 'MT': 'Malta', + 'MH': 'Marshall Islands', + 'MQ': 'Martinique', + 'MR': 'Mauritania', + 'MU': 'Mauritius', + 'YT': 'Mayotte', + 'MX': 'Mexico', + 'FM': 'Micronesia, Federated States of', + 'MD': 'Moldova, Republic of', + 'MC': 'Monaco', + 'MN': 'Mongolia', + 'ME': 'Montenegro', + 'MS': 'Montserrat', + 'MA': 'Morocco', + 'MZ': 'Mozambique', + 'MM': 'Myanmar', + 'NA': 'Namibia', + 'NR': 'Nauru', + 'NP': 'Nepal', + 'NL': 'Netherlands', + 'NC': 'New Caledonia', + 'NZ': 'New Zealand', + 'NI': 'Nicaragua', + 'NE': 'Niger', + 'NG': 'Nigeria', + 'NU': 'Niue', + 'NF': 'Norfolk Island', + 'MP': 'Northern Mariana Islands', + 'NO': 'Norway', + 'OM': 'Oman', + 'PK': 'Pakistan', + 'PW': 'Palau', + 'PS': 'Palestine, State of', + 'PA': 'Panama', + 'PG': 'Papua New Guinea', + 'PY': 'Paraguay', + 'PE': 'Peru', + 'PH': 'Philippines', + 'PN': 'Pitcairn', + 'PL': 'Poland', + 'PT': 'Portugal', + 'PR': 'Puerto Rico', + 'QA': 'Qatar', + 'RE': 'Réunion', + 'RO': 'Romania', + 'RU': 'Russian Federation', + 'RW': 'Rwanda', + 'BL': 'Saint Barthélemy', + 'SH': 'Saint Helena, Ascension and Tristan da Cunha', + 'KN': 'Saint Kitts and Nevis', + 'LC': 'Saint Lucia', + 'MF': 'Saint Martin (French part)', + 'PM': 'Saint Pierre and Miquelon', + 'VC': 'Saint Vincent and the Grenadines', + 'WS': 'Samoa', + 'SM': 'San Marino', + 'ST': 'Sao Tome and Principe', + 'SA': 'Saudi Arabia', + 'SN': 'Senegal', + 'RS': 'Serbia', + 'SC': 'Seychelles', + 'SL': 'Sierra Leone', + 'SG': 'Singapore', + 'SX': 'Sint Maarten (Dutch part)', + 'SK': 'Slovakia', + 'SI': 'Slovenia', + 'SB': 'Solomon Islands', + 'SO': 'Somalia', + 'ZA': 'South Africa', + 'GS': 'South Georgia and the South Sandwich Islands', + 'SS': 'South Sudan', + 'ES': 'Spain', + 'LK': 'Sri Lanka', + 'SD': 'Sudan', + 'SR': 'Suriname', + 'SJ': 'Svalbard and Jan Mayen', + 'SZ': 'Swaziland', + 'SE': 'Sweden', + 'CH': 'Switzerland', + 'SY': 'Syrian Arab Republic', + 'TW': 'Taiwan, Province of China', + 'TJ': 'Tajikistan', + 'TZ': 'Tanzania, United Republic of', + 'TH': 'Thailand', + 'TL': 'Timor-Leste', + 'TG': 'Togo', + 'TK': 'Tokelau', + 'TO': 'Tonga', + 'TT': 'Trinidad and Tobago', + 'TN': 'Tunisia', + 'TR': 'Turkey', + 'TM': 'Turkmenistan', + 'TC': 'Turks and Caicos Islands', + 'TV': 'Tuvalu', + 'UG': 'Uganda', + 'UA': 'Ukraine', + 'AE': 'United Arab Emirates', + 'GB': 'United Kingdom', + 'US': 'United States', + 'UM': 'United States Minor Outlying Islands', + 'UY': 'Uruguay', + 'UZ': 'Uzbekistan', + 'VU': 'Vanuatu', + 'VE': 'Venezuela, Bolivarian Republic of', + 'VN': 'Viet Nam', + 'VG': 'Virgin Islands, British', + 'VI': 'Virgin Islands, U.S.', + 'WF': 'Wallis and Futuna', + 'EH': 'Western Sahara', + 'YE': 'Yemen', + 'ZM': 'Zambia', + 'ZW': 'Zimbabwe', + } + + @classmethod + def short2full(cls, code): + """Convert an ISO 3166-2 country code to the corresponding full name""" + return cls._country_map.get(code.upper()) + + class PerRequestProxyHandler(compat_urllib_request.ProxyHandler): def __init__(self, proxies=None): # Set default handlers diff --git a/youtube_dl/version.py b/youtube_dl/version.py index 9cf84ff..280afdd 100644 --- a/youtube_dl/version.py +++ b/youtube_dl/version.py @@ -1,3 +1,3 @@ from __future__ import unicode_literals -__version__ = '2015.06.04.1' +__version__ = '2015.07.21' -- 2.41.3