From f07606a0cea9ede0cf9630736cf3f20e811dd717 Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 17 Oct 2014 16:57:14 +0400 Subject: [PATCH] photoviewer updated, recent emojis filled with some by default --- Telegram/DeployMacWin.sh | 34 ++ Telegram/MetaLang.xcodeproj/project.pbxproj | 6 +- Telegram/MetaStyle.xcodeproj/project.pbxproj | 6 +- Telegram/Packer.xcodeproj/project.pbxproj | 6 +- Telegram/Resources/lang.txt | 7 +- Telegram/Resources/style.txt | 131 +++-- Telegram/SourceFiles/app.cpp | 2 +- Telegram/SourceFiles/art/sprite.png | Bin 33359 -> 54556 bytes Telegram/SourceFiles/art/sprite_200x.png | Bin 69319 -> 96086 bytes Telegram/SourceFiles/config.h | 2 + Telegram/SourceFiles/dropdown.cpp | 20 +- Telegram/SourceFiles/gui/animation.h | 14 + Telegram/SourceFiles/gui/contextmenu.cpp | 1 + Telegram/SourceFiles/gui/filedialog.cpp | 19 +- Telegram/SourceFiles/gui/filedialog.h | 1 + Telegram/SourceFiles/gui/flatbutton.cpp | 24 +- Telegram/SourceFiles/gui/flatbutton.h | 3 +- Telegram/SourceFiles/gui/flattextarea.cpp | 4 +- Telegram/SourceFiles/gui/flattextarea.h | 2 +- Telegram/SourceFiles/history.cpp | 21 +- Telegram/SourceFiles/history.h | 2 +- Telegram/SourceFiles/historywidget.cpp | 4 +- Telegram/SourceFiles/historywidget.h | 2 +- Telegram/SourceFiles/mediaview.cpp | 487 +++++++++++++------ Telegram/SourceFiles/mediaview.h | 21 +- Telegram/SourceFiles/overviewwidget.cpp | 2 +- Telegram/SourceFiles/pspecific_linux.cpp | 6 + Telegram/SourceFiles/pspecific_linux.h | 2 + Telegram/SourceFiles/pspecific_mac.cpp | 14 +- Telegram/SourceFiles/pspecific_mac.h | 2 + Telegram/SourceFiles/pspecific_mac_p.h | 8 +- Telegram/SourceFiles/pspecific_mac_p.mm | 19 +- Telegram/SourceFiles/pspecific_wnd.cpp | 6 + Telegram/SourceFiles/pspecific_wnd.h | 2 + Telegram/SourceFiles/settings.cpp | 72 ++- 35 files changed, 709 insertions(+), 243 deletions(-) create mode 100755 Telegram/DeployMacWin.sh diff --git a/Telegram/DeployMacWin.sh b/Telegram/DeployMacWin.sh new file mode 100755 index 0000000000..db7d01566c --- /dev/null +++ b/Telegram/DeployMacWin.sh @@ -0,0 +1,34 @@ +AppVersionStr=0.6.3 +AppVersion=6003 + +if [ ! -f "./../Mac/Release/deploy/$AppVersionStr/tmacupd$AppVersion" ]; then + echo "tmacupd$AppVersion not found!" + exit 1 +fi + +if [ ! -f "./../Mac/Release/deploy/$AppVersionStr/tsetup.$AppVersionStr.dmg" ]; then + echo "tsetup.$AppVersionStr.dmg not found!" + exit 1 +fi + +if [ ! -f "./../../tother/tsetup/tupdate$AppVersion" ]; then + echo "tupdate$AppVersion not found!" + exit 1 +fi + +if [ ! -f "./../../tother/tsetup/tportable.$AppVersionStr.zip" ]; then + echo "tportable.$AppVersionStr.zip not found!" + exit 1 +fi + +if [ ! -f "./../../tother/tsetup/tsetup.$AppVersionStr.exe" ]; then + echo "tsetup.$AppVersionStr.exe not found!" + exit 1 +fi + +scp ./../Mac/Release/deploy/$AppVersionStr/tmacupd$AppVersion tupdates:tdesktop/static/tmac/ +scp ./../Mac/Release/deploy/$AppVersionStr/tsetup.$AppVersionStr.dmg tupdates:tdesktop/static/tmac/ +scp ./../../tother/tsetup/tupdate$AppVersion tupdates:tdesktop/static/tsetup/ +scp ./../../tother/tsetup/tportable.$AppVersionStr.zip tupdates:tdesktop/static/tsetup/ +scp ./../../tother/tsetup/tsetup.$AppVersionStr.exe tupdates:tdesktop/static/tsetup/ + diff --git a/Telegram/MetaLang.xcodeproj/project.pbxproj b/Telegram/MetaLang.xcodeproj/project.pbxproj index 00e564fba5..641b1c3055 100644 --- a/Telegram/MetaLang.xcodeproj/project.pbxproj +++ b/Telegram/MetaLang.xcodeproj/project.pbxproj @@ -516,7 +516,7 @@ 6DB9C3763D02B1415CD9D565 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0510; + LastUpgradeCheck = 0610; }; buildConfigurationList = DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "MetaLang" */; compatibilityVersion = "Xcode 3.2"; @@ -594,11 +594,13 @@ CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Lang$(EFFECTIVE_PLATFORM_NAME)"; COPY_PHASE_STRIP = YES; DYLIB_COMPATIBILITY_VERSION = 1.0; DYLIB_CURRENT_VERSION = 1.0.0; + ENABLE_STRICT_OBJC_MSGSEND = YES; FRAMEWORK_SEARCH_PATHS = ""; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; @@ -679,12 +681,14 @@ CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Lang$(EFFECTIVE_PLATFORM_NAME)"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; DYLIB_COMPATIBILITY_VERSION = 1.0; DYLIB_CURRENT_VERSION = 1.0.0; + ENABLE_STRICT_OBJC_MSGSEND = YES; FRAMEWORK_SEARCH_PATHS = ""; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; diff --git a/Telegram/MetaStyle.xcodeproj/project.pbxproj b/Telegram/MetaStyle.xcodeproj/project.pbxproj index 3d23742f2d..fd80003ae5 100644 --- a/Telegram/MetaStyle.xcodeproj/project.pbxproj +++ b/Telegram/MetaStyle.xcodeproj/project.pbxproj @@ -516,7 +516,7 @@ 6DB9C3763D02B1415CD9D565 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0510; + LastUpgradeCheck = 0610; }; buildConfigurationList = DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "MetaStyle" */; compatibilityVersion = "Xcode 3.2"; @@ -594,11 +594,13 @@ CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Style$(EFFECTIVE_PLATFORM_NAME)"; COPY_PHASE_STRIP = YES; DYLIB_COMPATIBILITY_VERSION = 1.0; DYLIB_CURRENT_VERSION = 1.0.0; + ENABLE_STRICT_OBJC_MSGSEND = YES; FRAMEWORK_SEARCH_PATHS = ""; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; @@ -679,12 +681,14 @@ CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Style$(EFFECTIVE_PLATFORM_NAME)"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; DYLIB_COMPATIBILITY_VERSION = 1.0; DYLIB_CURRENT_VERSION = 1.0.0; + ENABLE_STRICT_OBJC_MSGSEND = YES; FRAMEWORK_SEARCH_PATHS = ""; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; diff --git a/Telegram/Packer.xcodeproj/project.pbxproj b/Telegram/Packer.xcodeproj/project.pbxproj index 5ed9f1cf4f..71328fea42 100644 --- a/Telegram/Packer.xcodeproj/project.pbxproj +++ b/Telegram/Packer.xcodeproj/project.pbxproj @@ -483,7 +483,7 @@ 6DB9C3763D02B1415CD9D565 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0510; + LastUpgradeCheck = 0610; }; buildConfigurationList = DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "Packer" */; compatibilityVersion = "Xcode 3.2"; @@ -546,10 +546,12 @@ CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = YES; DYLIB_COMPATIBILITY_VERSION = 1.0; DYLIB_CURRENT_VERSION = 1.0.0; + ENABLE_STRICT_OBJC_MSGSEND = YES; FRAMEWORK_SEARCH_PATHS = ""; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; @@ -634,11 +636,13 @@ CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; DYLIB_COMPATIBILITY_VERSION = 1.0; DYLIB_CURRENT_VERSION = 1.0.0; + ENABLE_STRICT_OBJC_MSGSEND = YES; FRAMEWORK_SEARCH_PATHS = ""; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; diff --git a/Telegram/Resources/lang.txt b/Telegram/Resources/lang.txt index e20f1dbca2..f1796dbb74 100644 --- a/Telegram/Resources/lang.txt +++ b/Telegram/Resources/lang.txt @@ -431,16 +431,17 @@ lng_search_no_results: "No messages found"; lng_search_one_result: "Found {count} message"; lng_search_n_results: "Found {count} messages"; -lng_mediaview_close: "Close"; -lng_mediaview_save: "Save as"; +lng_mediaview_save: "Download"; lng_mediaview_forward: "Forward"; lng_mediaview_delete: "Delete"; lng_mediaview_single_photo: "Single Photo"; lng_mediaview_group_photo: "Group Photo"; lng_mediaview_profile_photo: "Profile Photo"; -lng_mediaview_n_of_count: "{n} of {count}"; +lng_mediaview_n_of_count: "Photo {n} of {count}"; lng_mediaview_doc_image: "Document"; +lng_mediaview_saved: "Image was saved to your [c]Downloads[/c] folder"; + // Mac specific lng_mac_choose_app: "Choose Application"; diff --git a/Telegram/Resources/style.txt b/Telegram/Resources/style.txt index 33aec4a8c4..46aed16865 100644 --- a/Telegram/Resources/style.txt +++ b/Telegram/Resources/style.txt @@ -841,6 +841,10 @@ outTextStyle: textStyle(defaultTextStyle) { selectBG: msgOutSelectBG; selectOverlay: msgOutSelectOverlay; } +medviewSaveAsTextStyle: textStyle(defaultTextStyle) { + lnkColor: #91d9ff; + lnkDownColor: #91d9ff; +} dlgTextStyle: textStyle(defaultTextStyle) { lnkColor: dlgSystemColor; @@ -1463,46 +1467,109 @@ emojiPanDuration: 200; emojiPanHover: #f0f0f0; emojiPanRound: 2px; -medviewNavBarWidth: 120px; -medviewTopSkip: 66px; -medviewBottomSkip: 66px; -medviewMainWidth: 600px; -medviewControlsBgOpacity: 0.5; -medviewLightOpacity: 0.7; -medviewDarkOpacity: 0.8; +medviewNavBarWidth: 132px; medviewLightNav: 0.5; -medviewHeaderFont: font(semibold 18px); -medviewDateFont: font(fsize); -medviewNameTop: 3px; -medviewDateTop: 25px; -medviewHeaderColor: #ffffffc0; -medviewNameColor: medviewHeaderColor; -medviewNameOverColor: #fff; medviewDarkNav: 1; -medviewMinWidth: 600; -medviewLeft: sprite(0px, 340px, 22px, 40px); -medviewRight: sprite(22px, 340px, 22px, 40px); +medviewHeaderFont: font(semibold 18px); +medviewNameFont: font(16px); +medviewDateFont: font(14px); +medviewNameTop: 13px; +medviewDateTop: 39px; +medviewLeft: sprite(340px, 79px, 28px, 48px); +medviewRight: sprite(368px, 79px, 28px, 48px); medviewDeltaFromLastAction: 5px; medviewSwipeDistance: 80px; -medviewButton: flatButton(btnDefFlat) { - color: #ffffff80; - overColor: #fff; - downColor: #fff; +medviewSaveMsgCheck: sprite(341px, 174px, 22px, 18px); +medviewSaveMsgFont: font(16px); +medviewSaveMsgPadding: margins(55px, 19px, 29px, 20px); +medviewSaveMsgCheckPos: point(23px, 21px); +medviewSaveMsgRadius: 3px; +medviewSaveMsgShowing: 200; +medviewSaveMsgShown: 2000; +medviewSaveMsgHiding: 2500; +medviewSaveMsg: #000000b2; + +medviewOverview: iconedButton(btnDefIconed) { bgColor: #0000; - overBgColor: #00000055; - downBgColor: #00000055; - - width: 100px; - height: 46px; - - textTop: 13px; - overTextTop: 13px; - downTextTop: 14px; - + overBgColor: #00000040; font: font(16px); - overFont: font(16px); + + opacity: 0.77; + overOpacity: 1; + + icon: sprite(340px, 129px, 19px, 19px); + iconPos: point(16px, 14px); + downIcon: sprite(340px, 129px, 19px, 19px); + downIconPos: point(16px, 14px); + + width: -69px; + height: 47px; + + color: white; + + textPos: point(51px, 13px); + downTextPos: point(51px, 14px); } +medviewForward: iconedButton(medviewOverview) { + icon: sprite(357px, 58px, 22px, 17px); + iconPos: point(16px, 15px); + downIcon: sprite(357px, 58px, 22px, 17px); + downIconPos: point(16px, 15px); + + width: -69px; +} +medviewDelete: iconedButton(medviewForward) { + icon: sprite(340px, 58px, 15px, 19px); + iconPos: point(16px, 14px); + downIcon: sprite(340px, 58px, 15px, 19px); + downIconPos: point(16px, 14px); +} +medviewClose: iconedButton(medviewOverview) { + icon: sprite(340px, 0px, 56px, 56px); + iconPos: point(0px, 0px); + downIcon: sprite(340px, 0px, 56px, 56px); + downIconPos: point(0px, 0px); + + opacity: 0.6; + + width: 56px; + height: 56px; +} +medviewBottomBar: 87px; +medviewBG: #272727D9; +medviewBottomBG: #272727; +medviewNavOpacity: 0.6; +medviewCloseOpacity: 0.6; +medviewNavBGOpacity: 0.4; +medviewNavOverOpacity: 1; +medviewCloseOverOpacity: 1; +medviewNameColor: black; +medviewDateColor: #999; +medviewSaveAs: iconedButton(medviewOverview) { + bgColor: #38abe6; + overBgColor: #299fdc; + + opacity: 1; + + icon: sprite(361px, 129px, 12px, 19px); + iconPos: point(18px, 15px); + downIcon: sprite(361px, 129px, 12px, 19px); + downIconPos: point(18px, 15px); + + width: -62px; + height: 47px; + + textPos: point(44px, 13px); + downTextPos: point(44px, 14px); +} +medviewSaveAsDisabledOpacity: 0.8; +medviewPolaroid: margins(17px, 18px, 17px, 72px); +medviewPolaroidMin: size(480px, 360px); +medviewDocumentSprite: sprite(341px, 150px, 20px, 22px); +medviewDocumentSpritePos: point(16px, 13px); +medviewPhotoSprite: sprite(363px, 150px, 23px, 20px); +medviewPhotoSpritePos: point(14px, 14px); overviewPhotoSkip: 10px; overviewPhotoMinSize: 100px; diff --git a/Telegram/SourceFiles/app.cpp b/Telegram/SourceFiles/app.cpp index 3c36ed0695..02b1706b57 100644 --- a/Telegram/SourceFiles/app.cpp +++ b/Telegram/SourceFiles/app.cpp @@ -1864,7 +1864,7 @@ namespace App { bool isValidPhone(QString phone) { phone = phone.replace(QRegularExpression(qsl("[^\\d]")), QString()); - return phone.length() >= 8 || phone == qsl("777") || phone == qsl("333") || phone == qsl("111") || (phone.startsWith(qsl("42")) && (phone.length() == 2 || phone.length() == 5)); + return phone.length() >= 8 || phone == qsl("777") || phone == qsl("333") || phone == qsl("111") || (phone.startsWith(qsl("42")) && (phone.length() == 2 || phone.length() == 5 || phone == qsl("4242"))); } void quit() { diff --git a/Telegram/SourceFiles/art/sprite.png b/Telegram/SourceFiles/art/sprite.png index 56553e2dfdaf94b74d40e70c45102a493334e14e..0e6e08e6c0f4bab51f4aee96d7f35f10a692e84b 100644 GIT binary patch literal 54556 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 diff --git a/Telegram/SourceFiles/art/sprite_200x.png b/Telegram/SourceFiles/art/sprite_200x.png index de688414b637b14e3656e9ad2e5f2b8a70305834..68283dd95088c5034669de0cc56b9dd852f56f0f 100644 GIT binary patch literal 96086 zcmeFaby(C*7eBm6NJ^(gETF`)bfdtsfOL0BcbAALEg>bKq%^Dwf^>I-G}0v?t#tE# z*E=7c=k|C1uIv5dz23{cTw!Lu=X_^A=ggUN&dlg@MR`d)Y$|LJ2!tms1ycrrP$_^f zE+z(0(i>92cfU&(T#K^?{p((_})&Y1L z1QNRE;b3HJZR$e((A3=0PMCJ9s*aZ0(nOe6gIf+N=OAusVJY><$yDW$ysGgdYh!*B z+Iu3{LLLGD16xxUBWe#@8#`wK4`JFLdB!2LU!VcXxM)J14~6$()UypP!!%%E89L!3sRV>g;LfV&uVU=S=q- zlRx;tOr4FLEFD}d?d_(+K^DuH?V~0T5 z{((qN?&oB-w*QmT*+tp(uaW)F7doqYI+(I4n>yROIvJY+kJJ6HE;zeLxB)}@9io51 zNW#t3&gFlyGBN&>kAtg|%@3eWjM+?WOl<)YX8;BE|2Y;13wsxPXAAp(0PxS|e}vJ+ z((E6wK(_oNnW=~6Kae3?ek1##Q@@E?2vB4JaVJwF7kejFdwUy^-_%v{kKR*@i~mqh z>N|2q#+G)-A>9>XyG-<#>iose6lUaNDuPsPRwzF!2Zt&LrvN9P0F;Lrid68wG5PJu zOFZQ4O)Skk|Kh<8Wo748W#KUnvhuTYJ!IwKG3I>82Q}m8Hu-Ik z|4IH|tYP-Xu1Hn-owW(TnvY9@pO;sZn~Q@F&dx5uB?jZ+5aZ>8b8?D{!bIUbKd=MX z{*Cm%*_t|8x|y25o$PIY%yI`KCudXS;3=RaZiYp9nr8^B1x$r3Q^MmB%L3Ms+=8<_tGi@$XO z;0C-#%F-E_L7snmKXTki^QvO%_@A|ZG}u`FOTqjp9>Ayx7#SlCw}`V5AY37~ABOIa zy1zR08wK)3zdi6jWXf&)@Zm#V4sKRJi+NeOjEs0#A3o%QvhuR?aP#q*8uJ?)nf}55 zZ{+{{4tEPvyWgfea;gH;9V)=hEx^J1$5j2TCqJJ0XC}_}W-jhVPNt&fz>N5Jw&*v$ z|4I1IFEF++vNJa|5n=mdY=2Z-CJ|yo3eU#!|BJHwcc$mRM1OgRf9c16%I?3-?Ef!h z_nSojb2|QELjHUD3Yi!SnAtno8o7vA+8UXgvN_n93$guG`4^Z%f3D>M;`TQ7PQZF( zD#9tm_P?tCC)FRONfcOMkXFR`KXvYh6%jKs|Ib>a@P60OKkOO11RocSpPPf5LmY}+ zHuyxjCE&a~JTNX^E(tDPj{lQN|5)0PhLMAVo0pH12gc0-II76?M;y*A24k1tgo<*A z!8pbLFBnPiz&QDljM$Nk_@Ux3Q663~c5YryPA+j^ef;?(`>RL1yl|)}KhGbGM0udR z{M>MMaV{QiZXPK6zh@-Q&dtLvAk%wIz_U{>S@^C;!c{%w0 z#E6@RR~*jE4nV~(!7ujjG2(`c@x%DVCH|0_C{!E@hf0Wx13%!R9Kd4#FEQff<>BNL zvT9!6f)4L;?2v61<}P|6cr}d@z`(m>B#|Mo>5poR^oAkB@_w8({UXdjtb? zh=+#@$>@jp#dz6y;d~Mt;v8a7I5+P|9i#b0p!9G^?Azu>wA$j^(v;QBc}ms)?pbqSE47k|O^b9^qf z{(|cgAU`kug6rq_Tx$IV*CjxHUi<~u&+)m``U|d0fc(7p3$CBzbE)+gT$cd(dGQxq zKgZ`%>o2%20rKchKwf=(Z5+FY>{(|f0_*`oJ1=l4&eqQ_q*U#~})cOmqOMv{m_zSL|<8!I? z7hIPB`FZgdTtCO>QtL0cE&=lM;xD*=?TabZ>u5xLozeC1 ztdO((-E}j@4gZ6RPd9pPF7_BL6g^w|;)FiXDZML;HITCat1W z7&{ZXFLf}c$^77Le^boko~!xhFYP{(^3bwo30FGZLpAaO@$R+=UJHDa>gq_j!GDY2HJDyL$O{)WCvOSS?abhv%XcRxv2dvpBqKQTt!syL= zCdQkXLRpe!v^X>c#i?~beRvt%@n1R_2g4c?nX6IWY)M`PfhzO2mIL*3QBC_ksBrGe z$&Mb73w9o?C%>!-dLS~tI4{upImz%GV_8=!dUv|Ww2MLa$Pi@^|Ta`~SI+LF9Vgz*qb+xJXi!9?&$QXmxCarY! z^<|5;^7i>8cYzuV>5>wu$1A732pdU<>1+1|Q9v9RSY^*L+q5G0`%&&|@O~AT$XGdk z5|7w$v{((CBCfPc_anXa_pH@I1My4^L( z?e-eaYdPE=rQWWfoE%hpHt`bgJk$E!DR;ImsNOfI&7Qi$f-g;*{248ZdAjv@_JSuP z#4c{y#6PlG$fq<*AUVbfXNR2olf^b3dAcMxw#k(LOl2^UM{C+`xIJqNUw=EdZiR~3 z2Mr5DiP0Dqf6;TpB>Iae5jiU5vfnF$bcQI*yRjHoS}E#dZJu>nJby?Le6>%|+<@K1 zwIrMJt*v}p$W7wjDX}(=-N$>w8sY&222Q!Z3Lf=G5 z4&nf1p-YmpXt6gYRNR z!Z8i~AM#|l_ofKt8d+qAC+Q^qHgOsu2eJ^ z1*m(e+jlPNVFp;|PTO}QZ`NhqPX0HX|)E=L&Y&+a)iL-BY!+hpzzK4ChfH#V#Bv5TZ za;yigl6xO#vmpfx+Z7`W!|2=C=s7dxw@ZqIzQEz0&jprhJF#K@H$^o)IM z>l+h9Z;{wJm>M}D7!CuaL`G+#Ie8%vOB}7G6oG|x+loc6)Syql|_k%Ns87sNrX?};pdP#}FATpJ3 zEPPe9GpWJi}@Aktv+X>~9SiB?sjX>-X<7?(|) z41>vme}zQO*~#gAh}G)z2O}9h$S6onZ6_BkgWTr}ZR7-Xu;Bx^w=stlL<$nzCrXG5 zdUf=^#Jnx8%<1_IBe>!&Y4C06{pi^9$XGT&eI{ldDpL+O3X;i`8qmn~MneI9?Sypj zq+7&0D>Y+CbwJ24RrBmyY5Gz zV3Ckie2W-QfsKxorH<$X!M|}c}=vrTMU|&J>(E}$<`$hEwB+Qj_F<+eYD(t9y>CK`KF$I zzxSQi$0QKcc}Z3R^Lsk4!V*|o*`J`mW4fwJmNknASgJ8!=wde9BP6oBU1rr>?eH@6 z{&GaH-a`go$NlP_sdr>M%(}`L1N9rNWOx;cEldSH=Z0IS#BK7E&R;fB0#uo5Gc3nf zw5pB|w(hB7_V-R~Vbc`dyExsk)6n-^Bs-A22P%hXdhWq6gcMGN2|)&QM9*GOqY3z+ z5n`cPWo~bvp*`a1959DNS|HZWxn=qS{4_uU!HPh{QvOZS}xm zscd8&y(&c}tn9qgl(<8Jg2u%1@nD?X!QLaE<@c&owF?e>Zja6r*+*vEBMBb9S*}x4 zn}X9nAb^2Y25pqi-yPn(Lsos-p_hP2>5Z=T9_G{K zvlSc_)~IJj_H`mTPLf&&l>^-B=a{r{SV3c%R?#>L#f|Z#b*PI9`MU2&`vIp9nj`!KLgkK_O00A3JU2XWifK7T>5%ZJ{$fMV zJ~vu>d)<@Wc&SXCDH217KDS6J#fYK;@9fF&7PK{Y9m_XZYBf5vvvoVwJRaKFkDy;l1emH|{XxO7}ZjDf!6jJb>4RAy7L9X~Ty*7!kiEFN2?k9XPv~{fkvUpii zu(&N7clozniM=yV&f>l&TN<(1Ps#>EK&2?L3+&)Lqnwf{I|D5VXk`HHrxFQlA=L<6 z-MxKl1rUhD^MT%v^_e!DLxX*8!k4i2mZGkr^2T_FUQ$p=HsEqpEc#~8 zfqSVR(NYXLvDA>Sd-mA8@QQF8v!Vdi(C)S@ve3(GO|1D%xewgcz86+F_%<8=I?wu5 zxxo=nZ|_V3}0l+#I;WZUDJE>%o5FC+xR>^Ygtti{rkBOtIP(5Jtx3^Fre`vMWyq zSCYV8+v5nm94j%kVWFz2Cy(-XT0+U)ABO3XbcSg}kf>fvHs$cn>_-YtJ^dm0;Ccdt zRZQOu27!iGlD>o@!Tz3duygyk>oHJ4GLZZYhRs!-kH{A!!_{(%F!&)Ar5anJLjKe^ zFE~Ccs6Ad)*NT(mQa`T=$K+D~@|2d$pVxm-fPmd` zig?}$w1Z+%o8PC$9o=u*P0>=*(^o_=?i-LgN%p}dJocV%uuH?&-B$YzBI1R6es3U3 zg@aG?*Exol{c6bHUwAedd~4La9@|OjO9PgEv=z!$OW}!(HZVX3tJ9yV3`(|#H4OB+ zD7>N`L;=ALahNru(9!hO%4}BR=);173Bu@C?mG(?DtzSP6$GQo9Yio(>{hLv()|yu zTDAU>2?KMXEmX|mo5Ka8yo{*^f=TM2ix?BIbae44GQcPVOndyKuM#s`-DwdwGqZIi zOBcSV?#cY6qHpJbx0YqHQWYLQLAH%VuEH(&dX%ya!>NKA)r^ z52^1CK1>-%)zYqgd?aq3>^fo> zje`tNiKU3a)cU#_|IrN=GH2R%buni52rvqJ-08R9;cYCo*GTG<+h`hvhqIBnYZ!M?T zer9^$v!~TeZH?*K@t(?fsqMtk>CUG*i=*vDI%()CjaS2F5NXU2ci--7SU9)l12vW< z`$w#wz4=KokW2|09s)RN;NBE)d9~~fEVmy=^7RBalAL>=+rJY^cJAf>ZatcxJOTt| zET7E9gRa#epKp?aTA74>{eHfwQU0zwok?y;>p6cJ^f}wg`R3+zI&TA2HCMP{DK{bj zcms@U=lo>Lz-3rXN~i8KoIz3pQdE z7S8cn{Bw`D_hwbqEe%<0xn$`>M;gWCN|mZdgW<^{5zVJ;I;HOl2<9o9pvMoQO|aU8 z5D0CI*`Sb+kh~0d__%b*3t)_xXn{&&x6Hz(sO&sBU&}u3N#OSB>FpJ%E9F{TTx=ZvUrtRJcYrg-+$xfiL>YrTLMLQ|4eII*!9!>EwLX+K>p{_J!^ z$F3r)2VgAJV#6~kkc;fjjK0TQz-=D&FSP4u8EX@Q1)OcKMc$}{Vv^ zB=A1?sk)tX?|t8+u9S=ESE9d-3-+e`OSB9bt5#9wNNaWaojCJU@BJ-Kv+l3!TlPJ# z*fVxMeiAu3sQmH}5M^ki1f)?6s$E-6(`BVBVw|LtTSC2tO=er0~@cf>}= zqdk{l1Alvu&Vth5fWeh_-z5lO3mlH~&D?CYhx0lma-5&|$$c(PW*BR~w_acNs_Nkd z#Bf@*S-D2mTaml?D6QsjKGa?=iO*4vFHSlG3x444t`KBXIRXVe>Srcl)B9##Sy$ss zt%nVyrGhQqTV%b}^$;)`cDf%78zPTOOAH%) zX^@H@9#%*-v67ITry#sHD%a=a&_}- zqD+7&Oklc~R&C}TEad<%xhD5`M)>G?XlRC3CY8gf&|>qxyh{hARW9|xAsW99*1*52Fb!+`}+=%pvW0CqEv%Ks}jv=x(aG4bee?htnAYW z>>t^=xDxBpz+qx{1v((9!Yci61n(_eWL=@sq01f2>9xPUaWL(*r3=i5x2!$wQFM|% zXM3YQ(ZL0E=Z{?UoaS5vY>^MtHR(Y>_p$fz-7KO-@Wr^Yx=8yyqG|AZp4fkSiRaUi zaD7dJeK{ycu*0!4Jj{ri!n%`xE3;xqsP%}Zsn16h@39E|$!6pyS;yV4{pz5|l$0kp zAd0|#d=TIAYtS3Zadwbl*n5npXD0`ru0HKe79>|hzwld)dLDSL<1JWXJA)ct_bq%i z3QM86k+ZgO(JA@6r)^Z2!@@cJ0b{X6@)H!|YV!JlS1jM{9Rvd5CB&da@1D%#q|VtS$T zdO(`4>B-^T)tvxx{X-fM*T}qg18t_!u-(Ok=i7%oHSjXx^zZgx5rbyVd(-S`J8_zm z7df>)2v^@>E*VVr+S=j-gsl?Z!ntAy23FuGo(f$zS`+ALb2Ds}cKGRnMve7L$vf4g zVZiDds79X0&Tsq@M_})I17Fn$l)%88&OdFkFFc}l=4fXiz?eL6D%dqb7n7!Fs?E^M z_yJrl+$DaHd&MtQ#CtH_WiD(x?&dt;x8aoSpk zxL7Xq54x!#cT=T^6l~iMRMouBd&dSh+r%syI&~~9R|r5rY9XTP9*5_Sa1-kyEXjLeB}9D0+^vu|9A)?Nmw9;z3@3QqNIQ;(3IcMA zDHXu1&BMaNvJ{yn$7v0}&btiQSV2nZlbc0}_sw)0g&_VVPOL=S-rbMUkM40ZqgwwGzUK|d{@atz<{<8|k zx|ArgYbRn({d`V@;g5mDCZptw8%L9QDmhdvm^t#v0{l*2+LvkNAWRA?1bsWnH_M!3 zR!A#PiRR#@8h5!FDjx`+494iq%f^-H24{{BoX%AEn1jBh_FUwbtc7PII5)q#9;iI) zHL$a@I~f`pa-X!f4%598GH@M~B)`nYz0@=1YSj`#I*M8!Oi0I+UUfclvmuvNY;L2j z#5U)6OZAfipw)ML=g^1gC{iFwDeVD0>iqCxiBK}vnf4}XUv`fr!xbQ7_NWq4ad=X3 zpo&sPvR+I^<>QJs67Xc0^v&P?7<*6^(_MR#o6k6FqXlfwo6qo$<=!m3wbr4C7D^m3dZWQtOA$lzQTmt-%CKtA9m=Vr|4s%{ z-7@=lWXIavTxlng8WUf`K=|=Xg{aVbV?+Y_-h1Daz~qH@$@{wjms17e`|x_QB6jGnd&T0YCLC;=je4cc`y4y32eeD7vZOGbQ@ zp}c>;>Lq*Ye6`%#YdM5K%2*bKv1Ord?3&I&`f*7A@WuODh#zCk^3HLof=3X6uS7>a zm=|1V&Xc#A#9l?h`IxH8vTTBlTr4co)U)We6JZkk`=vCI>+flz-9OVrV$-h}iP14d0ThGO-ARUj=p^gT=)C za`H+hHsZUAPM?FN%Yfy|(}-6f<8;QW&-Nz{M(D|{ zN8TNk8q_`6+FcvnO6Im6d90&Td3bo332Y0VOk)u<6u)?RhVOxvvC*}b;M8iD^OlaV z5YLH5_?n?s@p=TdSAH2W=Wxln1RlLB*PBH<3er6Zb}OBW^gvtE7L%zx4yU>2Fx3dv zVyofKf|(plc()Vw{hE&=!xiTeu4vd)30O4ED}`60!Qt)|x&UfopW7vdTOXAKgUC+< z5z@WEx-3;Jq0Eo5mUU4St&xrh3#V!4%Xj7}o=fr)N><6Zi;4ENN88ad5Uq93dk(Yp z__gQ9)@{fv^@6zk$FUn1sTZfqo6XJ5@k_nQRg9Be)U$-R)(^K`7{JW$3-1?5c|QwX z&)?b%OBnmK>9wC4q^ib->tU=u%&SxtLXFu3ec|84(-wZ+Jzjeet4fDsDIiu?)%Kl6 zDCW?Jl)>SW#tEL@#fMtt(yD3N8b+B6`150TT{~Kk&X`&(4n8tANT-*HW69s}3Q5;Y z0h;SR0gk@2EEc?NnYSboy$+D@9A;~}IXo|*@0H!-TkUeI2s=ULq%whe{xcfI>jPZ2 zvDubybLU1sxI!@-a~@?|TVJV_lbiWGD>Ky?FkbGsz%a}}X#{K;agA`t@1LeptxO|b zl{RVxq3^H*r1LK?9sP0~v465vchQimlwq|&&u%r8%LaJr`m`xx9~eFA|X?4y+MRdkmwthe9$(SSM~_wYt25 zHQ$w3yja7yfw-1~Xkg;p?f&pa&eu1FhqP{SOmVi)NFD6Zdqs;BwTv9G)+Xn(!AGtA zqO+^6_Xvi$=|0M)r`EN;AM$bQ*0+eKFB;l=dTdh@5{^?&-miD@aLEZ`fPhW#@>?Ky z7=;pHk2w%@2TIPrJ=d9_z=`ityPG6$9)4kFYKjiNCx$uw*>nd;ljvxd*$ETYV@gM# z7helQAap=1Ol)jEXG@9pBG`>==VuciM|}$uQJueYPoH}oc-`AJCpK;kBg7$NIV|{c zi&-)GLnKamT$6pdM2v)N#H$}65HMp;W7%7+D|oDagi0zo@@H8z6Uj(a1h=Z4uPo~h zF|h6|^?11h>!)?&d)X^I?NzQHN6MU~HLah2C17_k>T|ux6MyZiK(9Re-1v(;z5+`j zf$UfEUdoGHHWFUme%WqXIF3KvU4<2Ec^)8$U-H)GjI?M@TlG|PZl{rS~e!9a!mSlR{_ zRF>0pipqS*v8`^~+l)o2Gq1BjZ+aS^1?x;Dl@i9yuiP8A8#)dC@OD#NU8)n#JE37j zpgU}Aso0>ryu3u?x$d`YzDnNSI0~7K#2w$>Rc;(r8@Ihc=}<71fSUCt68cy>DDWBS%arb_ zslrRj)MB-lu{LkF+^LzwiVJ_(Q6W9Iqv5B*z zWJ*pmmnXaZlJ@c7yb-VYA2B3%DIG0(#!j^@ZvyMmMZYDXvjz&E8lV>HcS+?~DJBO( zrsd}Q?hb!(#J4CxD?z)uPcG;@U-}#u#3SuntU9sG&RAjQ4%bON2{=>vMRx5HUk67WS4F&x=d$qzwoy=eSXpWY0j-`2RHpU zJ740$G;o^^<&<7(e7zH8i01nvLbX-ttSoq23Ru8UUYwI%j||YaDc6TYKCCG@FDE2u^tt zZ!Bgr^DSr=h@f{+sF|79Ojwd%Ok=}sjoE~J=Z?yN=n|<7n5~kxy>@BA(k{_yLO`NYXx2`@=T? zwzO5c&79va4<~S2*VcS%#JRVt8$qWI1#*whyw2&aoXJG}tfYZT{Du>0s}^L8ePz$l zr#M;5i}YwY=9#L{tsXVOXQgoY7W*7}a;`?MLElKt-KD5REZNn5Pm8N>%uQ_Dc}9v4 zE|Kb`U_z@)VxL}!5YN9I&@fVA(;Ja}?XjVG?v8}7sBb^P^plefG9Y#n^-1)6Yb4Ytz8VM{I}3(vOe4re2c@x7fW*Xuko9 z?V>l~v2NI~Y7Q4sdBCepON7>B!tovOc22nk1y4@L2VTa#uW^a7m@ADED~ z=Rk%_?yYseH(=Mqw5R?V>WnMjjquXryczPhx3<<3P^A;Za$qDWUn)`JvzyYa3$ey?9nZ*v>g5;?Y?SAouR7?}xIWI2P-PBwAPZY% zb{l1&7;b6Yv5$x7(JDhlfKgwBJrYEQ0+pzSi+}^udeFh?EUm#7_bF}{Plkf2d>%(tz zuYrZ*RYGK>;+jX!d!4fUt(m%u>Y}0|xF_H0jGUqN3yG_CnS(TlUK@*q7aT!2ZaFw| z-MAX1h4aIqIuqL3xyF9_uFOVBuw3%l-Y(nq}OJd^72x=8}At6zX{ zH3hE}IIsjHL*0NNIqFlgfGc8TW_7&8Iu-d~>-CkD_XfWGg*u~zy3xujBoUAEfMrTP zKICB{vFxCOkqW2&t$`b%lEqDvq1v<2JXlZ}7HVas*yI47ud|p3ZBAi@T@$s{FU+Lr zXurG^aYo--O&yJgMDr~tITr!v+3qinlL12CvwT)6xLKaj4GlX|qaq;>IQGaxV5_Ok zIq=Oo@F^-OJqroJ29zbEx;lx8#}NZay~}S*lx-bA;@9TxX96Bq5OHPx_3MC(qBJqH zv$GSS_h=>SLc7FD%_w(!ccW~EOcz2PPIS6NB8j5N{7QA#ABLQUr#Ys%xL9Q< z+g13qka>kGf-5IiH>`0JaYLtnfXT=v2&OyEfMTAL5M`5p!{VlF9*D_2(y82Ko!Lz+ z&I9)Hra6VAuPAKYbLQy*A>1nV?AyVLkx{H|0E@sDrSlvmvx>Sp#%x3(drBb}nvyu( zl#0Rc{q7B;V4n{KLP};}59lTa2uQ1paa#1fiQnItFt>gubOt247lADr52L-+VfRv- zF%BG%`a8|d4wfr}xtDd-RU#D{4b>MK^vbo(Ks8l?(i zF&--}0^Bh1XM9(&AL#K}4pNsB(fBr;l=;|NuX&fb3d3SUsMDhnDr1(aH(=oQfUd=a z%sZWlwMeN;UWwO#v@(DD$zj7#x;Sn0(BYBC5oW zgs~%pYE|1c*_r8YK0PrC*7Y2Je9uko&^#=s0<|YI>RpGSoFb-jr99 ztbCo}m5n8?t;Np4OiAe&8>BiM_S8*aepAY?Da+US+H=m-vMs`pnw)h4-=GVUlHs*F z0*xz&NmjI?{#TJEwnRFHK?N*r)xdAR5EpsgE6pM+z^Z1lzW5I$UX1FgB#>r zg@)^69bc2o;EBzhW6E4N9YzS=V-BT7p@~Ze5MNaw$ta)1g7A?@i26#vtGdxJ8%`6n z-Q3ggvLLA6ANb2E>4d|q8}EZ|D+SO8w=OS4+`ILO;-rAU7Zun`t~3W#6U@ugG$)6o z8v=VoC3fP2#qlDCvwnFv$WKyG&T^$W>2wrF*f=c`}?^F)Es8QsH1!nIt`DoRK5MNON6C?_a}r3v~J zEi~+70;4F=jm?z^>fmSWR6d0F^Psq>ZfZf|!+jk3 zjocf={biOnjseq_?G<1fZ-#bu_nvXAUV2E^O+Jqzv=&nN_GmN-2aCXGs&BF0bH0n@ z3)5y$YJAbATZd=3CC7G#1BevY?Sx zwg!${qO7yy8ixYv^Z4~Z9QBncO%1hSv^U1K;VxBEBC2tVpMYbA<@rD|3DA%x=IBA~ z-GCD@`NIWLj3mUhDjC10&zuKkDMmy{HA)o3KKggEV^v<`8}1WoCrc6?#Jj<#6qa#h z3Z)2=j%uLrL#(vR7QN9kOBXaaUwqDqk*Lyi{?HtD?c2GrB#h^M5Q=+p-`bhZrxf9) zN4I%wa=qk$J>+%nLExashv^6dpR?F6>BuXP2*plW|e>l-<_YI zXVHrL{qz^G1QLTO^yy^Yd=1!AcYIV|nzr`!m5Eqtw)(F9t%!#A?>@BOfMaG|dFmyH z6PV5+_=4+kt!moXp3>~|DFVy zazk0mbs~lx0*6sx2_`_|EtSi1;2a%?>~TB)?U~QvM}bHi_Kk`-rYNtSih;CJPymgU~6olLiYVw89Bg@vKuy;;jpF zLRPb=`2vOFDlSiZf&?1#O!(N3spPw0BZ;*BN zh9bAWE)(d$*Aw>+Q^|s%K33-jlWd67BZsm!x`dqOG)t!&F2djZIuA(3(w;q&@X+I+ zSQ8~p35HcDk}Q%R_#9k&iHl}krPk5WQSsu7Z?JNQ16APn#PmA_hcU>GG(#p&GL8K) zT-b%Isr%Ntv z`E;4wZr-imr$curcX=hZZCTNWhZ=@*Gl3!9w30NCFp2W*i`ciIWkR3shA@Z=77eW$ zu;Z)r(m+Tl$YIjX6|jvFmHD^nE2z`uI83x^-`Bz`%T^j$XMjW3$y}b_r$>@-0z%eh zahsktWu<>!@_oJXHP){2tcLU3_h2^=51 zalId9Dm8H1@11MY)7cyEIf)`4a*Gc7#gEeF%)Q9`fO*eTlTiRQSgOr{G8aPL@CBJo zQ`Ogh@(h8Hk%k~I*N_)fNwvHtF3K%GkHpq1(8W|3#B+I|4rO8{jW3mhC4$k3%==uD z$U<5z;9gHOFaxoxaJ(W&(}wcJ;?QJ=)jy56qB3Z`5&sBoPRty1BK-Q8v(?afl}~xq zAM8Oggf>EA>_ozHV=eQeZ!lVG#O*qx^V6f6w>ZyqIH)Gy=kZiH2qf3|abH_Nb`8xC zd{YiMg7B?nO+BSqtBRrw`)lP3>>wOcH*&Ce)0-tn4@)VWFJTrz6JBO-^op<&P(G`n z<}(q3G6?mPG+vbO>1)22!C%VgP7{qXb?ChSlNUAjmrB#l%MuMyFX_zJcQ`S=h^?Rw zy+gs(Rq@q9D`>=pl7?1}14u~%F%U0TbU%d?@>mBf(GZi&3-9iMmJK-wJrF$pGYMgOdudhlS)7~o_)@<nTvpagXRp+gTC!E1J-?;;fRZ30kA6^k8c_99VU+d_CgAHMCCYsiAo6GQ@DL z_)Qn4Qu6(R+?(%W`>qQx0CyUYC#Z4_zfy5{kWd90Q2^`cIs{La*TD^e)ij=E2va8- zr%wcd5N7pD1J{S!Mgz|9Ka*xh|}KR-z~@lIA! zh+L4$a2oWDdm!bgyL>|c>wBrtw=CE>R7($0?qgm{RB34-ZsAkg^e4CyqI;6YrO2WST;0h^H%k(2Yje*WS@ zdZ6$_ix253o_{Kkb9GOO;Cc(fy+7>oSy!O@iiL4(AM;>{wE#ngWHx$8^V~qA4wF3Z z0KZ@U^>()W`lwS5KGhoe!f);9xTvfH^Zi`(*DCF}v_ECq9+5&lc5%PCF~e0|qY%JJ zfWBf&6%ta?hB=46VU9rh-z8ga*zDXwrF3&?svkQC(KI&@X-QaKtS8i(lI-iu$s(nQ zh6}nTCmEo_(pcE9<9erJ7MJuI=~a1>jG-l8FjjkXZUOM0>#`0KN4_?>Hh$&N^qUoo zQqs@NE&uCD;8a5Tclu(~H_@VAHrQ;Jr3kPZ*vyD{o= z@S1f~eBZ3vda;ybZkbRzIOkv^{ouj4cu@E^8EAKi&2y4M2ZX>n0)zAFI3p9qI0L$d zyDa>~gc!Gpl@y_GZ7ec5o74csy}`!RR(Q(s)o>5aDiki>N}+8Irsi%yE9s;nPn*{0 z1trQf-Hk_Spaj9q^qbGulzK3oR-3p;)xm{o$~|s1T`V6^rw#uTk5uyAQwL-7l>>FQd<>JmBsld1~=x;NlI8OKHMJNo`doT;($nTE9c3>)Hr# zW04+oK1BbF-OUy_7}_~fU~n(3a9cxNeMBy9k-j?6Zo7!ZU;;SuzyTuuDn;aDb>bP* z-kj#Yb`7xEDm;wZ+Gr_4b$7}1hp!DDbBPu(I6|=kv2(8Fkln(W<2Gp!qNp$Q12yB|Kjmf^g6i_Q7Xjh_U1IozMA_&=v@StE3%PvG$1*nNC&XxTE#5kVFDtiFCkKG+cJ`i4 z>p+1)o%P3$9~t+*_Gd`Gu_xVI+yahqzvuKp=KT0>ys%D|Uv36+jkjEeq@j)1n}7~A z*)C_#rJ=}0kuj!C<~1$eYQJI0)=Q}>*LF_a@;P1yH&G@Cj0I)8{w2YVdYUCe{3Gm@ z9MKSz=_*CNJtH%doS#Iz(KqO8y&e;eDB#jeROt7GHhYSDPfjtSaeXnd_j*zFm6Vj$ zD1v}P5xS#54|_ml52AMsVmfxMfq4@*#E3D?TN3tY$Nb}%RZnWuTzNjQ5uQjYp>?Ng z+Xu*!`M3%s%K!;s5`kSXh0$}wnv@z}z6diVr01zjX!nb=6!aZznT^lh?=X+(-K50I zuZnvGyq77h2z_jGF=gO=ENNZT+c2sh*Fgvv^tJ;*R`-%7{GQUf;Q|7jz zjkA0z(R)OB6l3by4D97H4D>TLJnhvror`k}LM$Y?5Nm5LcCwQZ2G8OmvW>RBt03_V zLW~OTt*7P-RX%%(#yQR_2e>Oz8q50_&z*1FEnQH2jZ+j{JC@<1=gzaV#Rvw!0nT|F zhNYQy#q9yd$ear8XGDPOY@q^+zCf3K{l;u+b8EB33iNBNWCsB~Q0=wWM|;gaLPr2} ztD^VRu@{+s1Aqlfi}u_mobxr}@h6L8%$_A2vsg@e#!g+=9GEN_qWI8RG!D%JwF-Zw z@)^mG@X8RE#vpm(ZDoF6W7!&pTYIg_MBdjBd7FI4Q2)XrcM1TPCKaG$JDB#U`Np`uevz z&`-}9bx_TJBap66(F2wsl> zUVh!g-+BasP;UBIddSzF$btzoS;8P?cVICb|GxczDQF0gsg2)>AQt3OG;+Qs?C|+$ zuei3N)357JJ>=5gutfKSD6P?hjpEV^Q|<|+Rhzj^JAX+VHP)O~tax{frnR>e>0D{C z&9K-qJ1ZqMD6&#$?#<(wqRa@tqC8&r*Xwy*#q{Ap9sc4(iXpW?mV91al1M10HBxD* z05%^cH!U5$M@T8+>q;;SxYP@e3JhmW)1P3}iv8A5R3sMcm0Q0`t-ULIU8d{s@t?cs z$NLoA#`>1moD{J|a@=NA@(!ZsFe>4f+J;nd?mPx7s=~!?suvbQkvGowyWTY5-2D6Z z$W4VVDoJ?7>TcWImp}4;yxMWKkG{B=O((L@4RK(#GW&FNPt(e;=WI_=>k6pEg#kJ{ z+WEK%2F>JjUy?NVe96qRc?y{M`d7=VUGEXrgXy^d$UhJZVF8FEUihuzQx;(Nbfpfc z@>EAa8t`;noUL~@tt{VtYyWR=M{>QQv9YnsvAD$0Yg|oe^86{FgB1w|Au1<5)|BAE z1~PpfIz;`Sm%j8yE2^u=H^(l&m3eTsIep=>KHIW#@?iFGFbi|Wn5HZyScfD*x)CpI zi7?W9$w%t(N%o_V`C_StZc_ncZbGWa5DGipPi$!&qHc!@>lVVVUTEd=M?Eqzji;73 zZ&>SOrGE7)XrT8tzd#b?sRty-o`aQ!w-1PuPt?YBCtTEmFpm*BfRd#*J@Qf*ZQc=y z!XRVH=wCO~>d4M2;_}ndy9QhYbl}xF>h|8}9{ZX%?1fwLcBH2x-VbPhvWDena_Bc! z;|T>d(&sPCBZ{;4+h=LxSu5snN|jn!^vZc${XRxQEFcgpDw{{_?qFN9xOVNqe7 zYPo=F4TfLih>Wr--Tq5Mxg59DTIojlOO$4goHG=!^hkQz^Vj^hQ^MYZ31;vBXu>lN z%C-e=sqdIEd2;}6JTI(!2OBJRgg(9p8vj24kTYaYbQT}nswRm99N%x8{em0A*3~B3 z!?or~1$IwM=i{Hzz|Df+#a(7^5tvyG;6uX_DeL@~1K$t7qOR%;ZFmp+B&ZZ7C_;kU zC)ilO4%;)Rqh(#354Qu4Rq`eRPRP^-BQDe~7a=K9=MUxIg1VepJ-(ayC}gl$C$9FO zw#}AmDKlS99uv8e+}9&V{sDit6N|cIpN(UQFSuxu;Om@Af1(1P*!*Y0j@E@HexcJ9uo-#TbSr-WQtE$C(s@eq+@Se%^e%bH+D$bTEkoR2I zUIAL|-W5hB?@$PD3Q5r=N^haL`mTuIm%O~Zsmmt7#kwNuz%#t2nW4MmKaHJ$wX|c~ zz^%COkg%|v$ul~#5X#HU)ZMLf=WRdE{JL~VN3{2o?CxGp$vnhBTWXF z>1^zpo&eZ7E#4)uA%qf=rTk1ZeJv9q6LC;&n&3nQ=O8uw)Wtf)DK*Y&bN3;%HFx{$ zw^f9HO4*h+p`dE#?6?U#FE2?+$@SwrDeTlNasS9BE7>ux=!2BlmY2TQ*if0ZGJT<& z*2E;7cMm8n-=5Gr2ixrjHd`+oCPj2E8#^`m9itWTTv>x%Gmp@^wL=z&FTckNhwUN! zw-FfK=lM_u`N^iFB7!-bY8qrxE34h{H>)7-J*%AusDT_3Hs2#s!5@@)#2MRJrK>YJ z$(`y@&}kv^u?764O;6RO>TxYRoOsokThGkuQQw7{bv=_o1bD4o6J-WJS+K9LH+ATV+ZHFo2)K+s)^gM%~t#PR1} z*hj6x#ChZ)C4^CaN8M-s&Jz#IpzjRq!vpe=G?-Ln7psUk&i04Lii%Y%(@smDv*VZ1 zr}Y+dxJHLRhZPPlqWNZY=yl~1AcNH%u9rhi(qf2Qe`TEa~U zF$3dt?zua{I@ed~yx1I%&%9t?WUPJvErWCvF68n{U6+4yjc(V>8^D|Kzg8cd{qR0n5`IiM>&x*RQM$8jADm_hZNgH{5k951S2mx`Wj6^uRO7>x zmR;rb0wJQ)LSMG;gT=$WZh>0v)xX6o6CCkM-ah=K%v#ErXYJj*yX7bLO=n5#c+q$?wYlKop- zIB62`%HgkHzuG~syU}p9sjRV4XtPo4Pq)bJ`}P+77!i}#sBAMujXbQoSiF%l+-Qn3 z6V~B6r+J>$1GQYLBJ8x6bF*e2<9pu5Wli^J5`Nm9Pjx)xeC9B;f3{R_{A++ip;$&v zDw+sa{e4dR^2J1T&`=!61MeGt>JH0wizjRK6V#Ad-J|L z1Y7DmJ3+I4_3O=$RSCT-PO?M*joAAB0Qzoe zN!zP>%fV5%fS?01PEv(b0e%L$5zL25*f4tx?KqSzlJxDvUe{!Yms^QX&6fY3#j>!G zDaHL{?;u(w);y(K0=PpZ6ZLAjFk^0vm2A3k!z_ih$+YK?Z;xKYnCBbDV7DP(lO%YW zr^z(6^)J{57J`%egsoxik)p)h{)tqGyhPILUW%3g?FF47<|SAR8E zB-3T)*G#5O$1*7!+Uk2p?)G)IabySrM!=V}VkX-|L+SaXky<8KP3{BKMZ~Y$bPHZL z>KP9pE)OJ0G*}ye5P!oK92DtrZDnw``;u3*`r6hI!)Kn0xoXDjf%K^C_+%+~ix5!30R`c#pkub3GGuqx=^BNJ&B@)Rcenqv0 z+)0IYebCso_GupH9E>3=70H`wD7x21RkyCwT1*S?2sW3sd!zY|>lQd0NP z@`Ch3$S}?@TKOU6-UN}oZyos{?vOe9p{ENuc#-qDj&KfbBVjD|hSuEYY-sB)p{;L` z7>c3!0HMaGcu=y2>2mLY+Z$}v^f6X3KSj-K4S!ts#_#7==LS|nf^WMUCt*w$s(hFv zx8PvOf?rt8yrcyFIwTV7OadZ9`*X@kGAmnVJq-~Q@yZCr9PQq+SgWL`Lp$jjjE|42 zY(kW!oZ_CNX3avnN>-!=&-o?_Hoy;hApvhmCJBB~w~D4q0RnNJQ||#AQp!zAmMI_O zHS{ZX>sO{;Ih`yFxHug_p83;em$D?&W=Hy9sY*vm!Ya-Kqh|WfyX4jef9$2ix^6+1 zg+|iMc}{%f(ny{vA2#k2I-UqDu@cIeRd^uYRGt6v4!NN9)Hm<_qM1}%(TCV1_PqxW z{<|QR8b)IX$ZLu|{B|0aV0iiaQ)C{k#B*^>t09-Ua!cn#`l?io9S*$>=tm zS8_cxfSY@{&~lw9ypYr|r(mrrp({DVXIum*=~q-E#b*BmaAiLw(6 z{w8|0FACkJM-3#2u}SoAUjYju1fq*+O9J)%5Dky95YUImsK381vMbR=MasNxu`+0% zlE&@JWN##rwcRV%4&^UGhkQ|p{krPIONfPGMBZ4LAl%(7O?&4f6x(vt|Ci_M$LY^% z(#lK0#t?FgIJ2~GL6`U;O6Knizf#lwG;4eGK`@6HT9iQsks}qh!1Y?2Wg^&*soE*i z%H&ndG(U|dz5Ke1eW#y30Xu$%32M{2%txu+mG5_@rYkZ}2T*eorrw6@vA}xcAiEYL zusZOV@mtx$RJ7G-`p)V6iR=ig&%A^fnO0Klm6ypb&AqdwP6a~9SBJ#PrxGUP zC0$oke-D@Yu8IPmJ@KhWu#3JtW;`i;OH#-~^XzhHc)B*%pd#vPDq^Qv1z<2F?T;YS z5n6!^maSs(v)Re+-=_jG+nFcsgbD{1#6RNklZ}t;kGD40EtQlXa5{f9wj` zh|~(S4$n7+JmY~>Y4RgJ#8RDo*RQZ6#dYf!{Pn1))t4*DOwS>3qG!%+Sxr)!g6_c+ zwyFJLnazz}+bmMtyBm{+wC^5Lg_`$AyJfmjE5dy}*za7m=j??L<+i_hb{U}7|8>YF zKC{Df|Ls%EYA4mwsD*nhE&~}tJR*XEo?@E;WR_*Po0lG@uhqr_vA!znO#TC{(*@bj zI!}3;S}Yb!R=Gc>Wo6EgLjGtZ)A?>+kslRVMZsUO2Tz$JQ*kv>BQNz=j`FR)SqCT{ zm${)0lL;;Z${P0+v9LU_Mu<8}qr#WyN(xq|!*FJNavxXFlhODKEnJXyZX)VPOTS zw8!bm)Bh6NTj)d7{CgD1Q8AfADj_@0;{Q*SDY4@$>ih%16wiFj3qHhY~#$H zI3(-d#YMrssY%hcs2p!_AGeyq@75DB+V_S9rLWAAS9t<#eN;m8zYc_W`m0-XkD%g)7Ls+@SL(VENW8VS`3!k8K}zB^D|-=J1{rm|aT$y5CH;$3j9tHsh-L>=7wvS5BYC3ph@g`}-hyqy>9 ziBOPr!+2d*L5^u=2!O~XWFZUhv4CaF|RyFv$ ze8LPiK+;g!rVN)I$!!CW!EFtFw*6r=>7ZJq#rOI7^4X6H&LEMiwnVm!tB|MKQhyW_u zqsTDadj$fZzF`Cw789OL*Zzg&-TYln;4eLHz-P}E06dn5$F?|(0fhMFqVQVi=Qyx zGHgFLar5?gN&d#_kvY0080XO<`3(QSPa#&D})|r$gYc0$g#^5 zSD$R#3o=gCz*XoT+$E~G@+0+E)`oq0$l9btbCO!p;Jd8b_-B>*I|nIQ@u4n6&y$|* zH4S$B!ZA^4V zVL$e%Hw;~FGm#>%^}ZBj>Ln*9d0C@CpUDaVM zsY7_=48@O4;V~Q=yJ(uDT}-?o%`MEj&Dop@ILkzJjJFJ0;RAMeTmbDxd4DH9rGlH^ zod#Hl5+8ExIn&C@!J0R&OE=O{Skp?Tk@Ord^gH#RK9d=fwWx(d%5?Or;g6fwAjhzX z0oED+bU@Kv^MEKZmK|BCJYF;IzRBNJ@SH3xiVW0HxQqcV?|FbYv^Ih;e-%*tgxT9; znizv0>MStg!bv2ZA^l-z-=M)aSO?0mDV-La)z+&w?jJ%vR|bypcjfTL9e4L@z3>=- z(@?ZU=?R~FtXiFX$L2E7Yo?}-o%BiKNtXzxQuNmXnC0@6*xbRjb(w@Qf-DxBr2Vn8 zRa+%T1)V~_ae}OeJP)Df`#2_xcb`>Khk)R(jD@mgeRDJZ)YJdpzkl&QXl2)-Bv6jZ zYdyZ7$V3VJHH`rEYDe<-TksP|>$skU#so%Pn9?WDzZb>y>A!lG=H|)~9Q9kABmth> z|GA0V-Oi&d`!WW$e42NMOuHe$EM=JZ4py>**#u>)S&?y#)BGsk+H0QB7knM*wh?W@ z*8(?R%q7zX6o*x1UMf*P3~VI2nXY)?^lOrk!k{&Gr>#PgP#<8{>Mm(*X0o$?YtS!K zOw*obJ2_&L7`ZVkjSWt&SsVc1S>5+phLH11(D-n>r-X!-mY{b4wvkbC-6VSdp{j5# zupH^kbRYJ@#maFYAejQS4gFKEUtf0pq?epZ{iK1=8H#bnA{`S%9Lxo|hAwSt)`-ou z9P7fSe+1)og*-*`^!r_%sv%+-Dg!VQaAeAfW>WM*2!6skHYh?RbPvnF9S>3w^SG9Y zYKQ)7S??fYj6eJ2H)PiV(IbNud~Vf!9`m+k;q9?P%;Dd!)g#~Sr9ZqN`gzR<@zUu) zTfR!jtMPyDM0I5Mn;Tm(X0hpCJ-Xlx4Wd!pr%_st3=x9|Ek^$q?F%`d-Dd z1;6A7cjM)yS!2lwt+ZJ`xkscXPP0pimBg|<9l#dznmdY}pMBf2teJ}{OvxpnDxdhM zel4uKy8~%M-6=@ z>Z;drRjD7J(S>iE{R&6wdz$e;DLW;g!fSxWfuwySlz{iuXrA10pNyvzvjrBg+d}oP z|FIu&q921Vrg{YSNV>_4`CBKIT$iLEc5bpo?kxSb{qdny4o(s0**=o3kgt|P!@$!< z9U~aoc!yFf){h@P@ub=4ppU#+;-^+{#k~|}<_9FonK+RZzHmag5)-c=zH)$AmZ>{c zJ?abXUntux&GW{g$`=-ANNoppZ2=~y9Diwq(>@hFH z_J`uL4M}|Y#wPsi*Ww|v?q=2>EC`ES>}PbBf;pA6>aQcpi~Hj)o4V2Z$*~2l$$X;4 zDlCQu559{r?8EZnKx`p8dCqc(|ueybx7WubpwoQ1(O3`1B|sz zq#gngomGb=tE`zgWT1-xWo^AXqsddZnw6g82&mb%CHUc)n+qJ56ohF?USkK z-c+TOgCl(0x^=x)m=1;OBwnNvoNPu%>|)%tY}lQNS&&+q7l%y(je!>uK4FzcT9$S^ zh+%xXVEv1yhIthBks>j&*=p!(#Yp7b9rDnlBGJI~5-w2z5q}xZ{s@`U_pyQ~FSIf# z=y{ix#66s1T^*a)90*si4STtehxlDdJrpL!WNK1x{qJ<&9G<@g<& z>x?xM?*n|}6mx8M4E+2*joK?K3GdUxLCA7_F{I16_%U8K$=Rd;-1?#ZT7y4hy#;``2kqlZ-h{&>jJka{ug+Z$VrgAOE=nHWW?GuW51E zN|6e{(9%RRRbb}#NiLu@JHFWtZ3B(dDc7NXtSR}G#sJW$o{&qx&R_mz`tNWTUGO`4 zJ+!tfA)cT5MM9B9EE4YFDBfY}=*8I=;pC|5Goz1e% z9&YtDfpTn!$s?6*R>kPJ=2= zp5;sq&(8!D^WVIArUicIOFC+d*Tkc}_g|_DhG2KRt+q*dF>dn05@klc31`zk>~i+? zS$W%Wc4CH4;l$HEcZ_;8!tsrhcZlTA=L#Y$Rb)Z}61&sBGggA3b5O*n63iE?YHe!A zVvXm*GEx!uzr|!Ge0~&Ty5(n3`Q`7mesMn6$^(EhY^-(RuS0m*7D@mlZr^PKs_V3Sx zKNYgAZmyCytmiLQS{X6GhM0ZklZMh^ah?jwE;YtsoOudxZ4>`I0Ckd}QdDGY{On11 zmIs+X0Mu=uH-b3NUk63SYw`W8#BL|nX@ZSKC!cNs4^IjSTEW^nZ<^5pJ{jC;1L=Y) z;=qq-HPb!YCTJy-5;!fb90C@AX#VBM0>M%Q>Z&_3 zAeFa{gNJ9oIEBkd{^D=VX`b7<^S$waxuGLS0s3YZa`5^SxvVCm#OD0RCI!L2o0eCY z?J)eg*U;4UgZ@l&2!i$5V-lsu_&&}@N~$j#=`-R|r4xl$$T6b%UAoMW!lZ+wDf`^5 zUH6~p4~(w9OW#Y6iAX%vUT=J8E#~`@9RPEt!&aB;W#Q2NPO@~am?$?2o|geqI;atW z-}UKhdE6MqQnJXB&mT<}Ps-6dB??=%pba0!*zfq0tC}9VD;m~>s zv=Qdu2yY55LxFtIQW|Ym|0xdgyb>d_fW+7mi$6T|4YFiXL79PO(%K{bAqg8k*h*JB2HC#4>?$cv$sX87 zzbx7b4NLNuxAJZt#JT&L$8CA8M)}9L3L8Gi1QnR)+<~IE3tb3ZzNwcSdwF@;rgO8P zi8^>lx-xiz$3p7r?b-**%I;J^JE4b#Z{aWv!VxFQgZOp#Btr`9XitI8?i{EYx!;9Y zpl}5hsKxSJ>f>)23WSj1L^B^B^Rhu;u97rh-Onz{)nOXm0AqbDh%*#(C!o2M*mRFw zvKkx5wW>85kjq5`V6g8Uuzsz|s><^1h<~Wh-g5TW9NJhn_2;l_{zuj7w|Jz*2Vmvs zcQN)^g$<;Q8=IT=%0;2K4unU$F-`*7vSZ`plu5?KmBB`I&)i!qKKxwE%S9g2?d&~2 zex2+Aqk_1s?KkPx`@h=FFebgf{hlzW7qY2YrrSe7AdpIcbC>N;CXH1m;=Szs2AEu! zk@mu+;2ZniGK`4C#(T#~^07YnN8Ej~1rY%LGnq3<+t9mueS7f-N@!Gxv39)E1T#x% zX>8cj!JLxWeCm8WmJ$^0!n^pi$iD8X(+OtE1z8amc|PeUD?T@EtEV*%)2|lS0m6y^?_Tsg{hu%l; z?6Vqj*UUBMA(ciw8pM!?4$Z57ZR)dW-}z1`sKb*M)?ugtL4S2X6!6uI%h z?%AFS4LpwOt}YTU(V{%|ER11plLQ7yPD_tVQe`dk?RL~&-Fr#p$#1A#1l>F1-Y4vZ zKnjhxr#`|^2RMME-*&EV4F+oUl|f)`j4>IoMbQ%MmGmSjR-&U};Q-yN8e^XW#E%0V zfMGKZAxZw|jGdHUo@tqkPibAjXb5B`HyF^>n=!WY67g2AAD3l%PJgCtNCFJr10Xc4 zPlnmO6hu*p0nLiqLR1t`)0fI|H>Qx^j!!Y3>hvdRNQnM@*y{(Ze@mOWGS|zt{5y|b zr_M|pmWs9YqBVgFKl*CXsYT-FX|=SV%WO%Ka7!^x#9boVKXe`kGCc*AUy6v^6MzYe zLL;Dn$bQcd0PO6K#@H4SdqEJNv8zSG*83O3O!?P5h+|q$rTp4)QN@&olqI;ott) zw(6<`PzYUGz+S$i>B9TL2d}UvO+xK;t^9_zA|B_dUHM?u1)?bwLs?%m8;uw`o(t$=Zk=I0>hKn!o4b zntOI3k}04Ql4tFzgb8seX~r%oQFq}P(knF9R+Ax?o#^c(z(5i>e_zJ;HVisY?0TO@ zNjN}bq`UHn5o+?eoI{rQm$ZrR!R+rB#h?jR6#IX1l`xD}0O^&o-@Q#*fXz7`l7P{N ziYQiDjDe}wC%5uJ*xL>*&IbS1QMU|t(0}OEE{v8mFDmD{xSJLAL24db%1138)VsH+ zlISzbg+||A0GLg#uQ-Bt6=itMAc^uBc)KsYckLvr0=<`-@4K?MU}Rk4DyaRDCM^8M zEqC{=GTnN|!Cy_JZYWbu$qxH)5COA%GjOSN1eyL0KoqxLs&RL{h$fZQcB5qP<^km) z|C{#&_u_Fh`K}qpLopx<`#a5JBelE&Z@8B4q084(e$Y{lBeZ0f5aa@QtnJj|et+3b zrZps7z8ZdU-}#ST&HI?r9ScSo4`q^wN7b)aSPi)D8~wTih5TwMy?CzEsRpAC*RZwE z8r*0Q*x&mlu1&QZrY30iqBufbpo)#A%dVJM8et4z&&%5k+Mks&z2M7#!x!u41Cw-H zULJ)gbA=9%ozIgkVr9|+0*7FPX zZ-ujcT#Vb&KBFWCaKmtkI`qp*b}S&hNEned;$4O420)V*{~R6RYNWxJ$*u&<;f zi-P{BLvHRS7-Ks))_>UheW6oRM3;1E@#v1uo#{JX2XTAObpeNZ8SS5a6B?uo>9pdF z*V^}}yaEgt)xZLfnvgdz_)!FWOw<@cmNM%x;Bt6ct7eL~ug@Oy0cCaQBg&#G#~@h8 z{a!evk?dC}(M6&0m(5Gj_m6><5i(*3E05ya%nPlTuG`TU=f4ZvL7(v1oJkG^0W)+m zS$(_)b&Db;fK7M{&m4R8uJ*IRd*Q}nqrugV_Z9V!xWJ-=PbpbQqOpvZ#CcNhYCSudu`CH(YGl-a>SIRMC34<&9plhA(l z@w9&MLKw8^?JC7-f*Zj&UtZe}+>XoTX_u5VDWeOw;OB8ZWu7PL=<tb-ivrXxcBv`pu%>F znty+#BlEn9g#z43W_{czsKQ7CJ7<}}9Z8}i6zj!v<;B>_SjhcCi-`iA-fz4Uj`gA{ z_4cvwp(I&<_a(Y4b|xP5c7BE_DMpiS_R=Jf)lpl2bx7B>x4nEnzRq50w_aGs>9h0x zo0gnxyxI3WV;>*7RvC;0#4JXmeCTpP?@^0Kb=v!grM&we3rJ!%4AV`Y^A-PUBRDF8 z7qJdb*-z{pM^{nwEYqiX5Sz z68kj~vDIh*?rNR;G+3x$h~7TRK8iD>?nwSZ>zcV)F8zR|ydbGgW|21zN4xll$=A znt0Q3)H?WPEPn7rD#JK&R-N}EzqU*l|9~(ckShT!kPC|(x38DGFe)3kd`;jXqj%`4 z>(B#^kLYE9`&^(3)C(#pu%$w!1nv$-F49aFD3v}rM2_*5b!&v<6Go~`zq5Q*H^xf4 z@P?04Adr;~J8Uh_D+?RW3PHNk1`8>|OGs`8>ea?qklD-9s6_QeI5B}q?RMnhL}Jso z>j=uO=can0fHWelczgeiN2o94v14PJiP8_Gt4P{HrQAp&ktFUyu?52w`=yWi=(s;! zd(a5oO)qaY(9(WZy~KzW_xyizgU{#W9luf62eseWl+@aE7*13jF1Flsef>Oh_3qpJ zpS4+-Nf1g!ztF4uwcEuIfmS6x3j?@V&A-zMJsRnOyhCc{MqAq*mT%*NN8jh0>VY-$ z?UbYW8Sl$f>?^Ho#H~*|BsJdf7Gj>$T7WwF^5%$90b;Ao0vwGbdppM=1>K5=Lw8%7 zX^QAnZ%j!MqPBU1r2js5_mIw!&H8gYz>9E_T7TglR3SHvofD#l)Ou?*GMGofmt~qkUif|9 ziR!gjsw{i5;v0+HeO`~N$(75we-Em;c|QH$Z}*_i|GPi?B}s|b6A~tiLn;Etmy`GH z+=tP;B!KqHE&0;4UV){n1X*Bdv&FNtX6NFe^W?G#5TmqsM6Re)tmz0x#Al)pt@jrF zzZCrMOJ%KW`ZrH$erQ=2R4a0_(3!QYRvaBmaF)cN=U5!8v855t=d)|M{bB+@0R>?S5Gv%RN`KMv;wQmE`G=!L5`JbPHc1hC-LUGhzFy5aUu6`gt%9X zNwvOJqYVi^e$ghf938dvRXGHON(lzG*3+x*0ad}mj9FJ*)KsvOt?x;|#Wf@4kp26; zFc{TnTc?oNjI2t{33hn0GOM3!(fIuvHUq;gFi{={h)D`i08Um1h^!m1H6I-!|GlY$(tS9_T^+ zGrl{X{8~}#PH0iaFW!5w&w_(#LutH;?vFdV-Fb%LGZ{E2Ukyk7GmnuW5mH1{#K)k1 zOZrzz+p4Ra7Js)RLPD!L6rNmOuE##$eMIGq)zCXUC{7s+q16Eg2RY4KjsI=5FiZ_)x?IV-@kdv1s_air6ZPF2o!NIQnXb4T z#@Yp{@AqZq1yVBHVyUhRk$1v`SI;53ZT)>h6@JcBiBu$n;5@qzZn;>*9@QX^I0%hp zlX&w5rgXEKX%zZ1YQ!_6q(tb=Q6Cm#qS<$fFt(uq3*UAw{Dj0R{gM_fg#TD%=kZ5_jZ<`Dc>5{!N|GJI|e6K0wv?yNsO;=YJuUX1+cEtV1daN9AIW7i1Aea85RN7G{7VLGSoPfyXbBeDl;?bRixMtH#_z`R|y z2^d2cygm1hARbrZ%gg@N@@!@R{!#or{%E*z*uerH(_`eE&C(Z*6B#eB8kKFMy~xs* zB%L`0Byc=t{pw&A4D4O-^0-kAtJ_AjGTeX^_%y3IIZjra=*8z}h2$eB=QMxLnu z$d5&zO`J#7j#^P;XJ2s3^*zSLAfb0v*2a&{KMW?0ZIGr1rr>Si^uyCMWm7}$XNyVn zeN)9L`8IL22le9Y@5I7D#tJ!5n1WPrg)nmAu;TGjp2Cb(R4ha4!g0m7?H*ZyUzaW7 ze(KMk&p`|Y;_)buuymrmH-nv5k@Mt(m>1T;u+eCJg#R7tYH?H7Bdr9|eqg+h zy_tIa&4YzBQMLA873B$5nOQt1;hyKo z_VC-|{YZsH+Pl?e|kD;U(Ty+|78Vr^;)}8_6|i)B_+PAbtd3*oO}1T`2925q7>(DJT7)xY4Agqv);(*M*JH7IEs+t8~+# z?{yJFkLKhw!lq4o4+L8C)%c{jDPdG#Md`qMEs9!Z6;-M%%ucIE>Q$cp{WXDJ_$zT) zNBf!lByuAWn>BOY;xfsm1BT`c>kGxZ2a=jFo-Np$v<-T%P(Jjp<8Nrvmh1zm@LX&CVW)*a#g(XwmRZ!_4`Yv#38708|DiiFBrh4_aV6gq zLhAF~GF8HI@W8YRFFYLb5po{)vY#irLf3V-?%CwNvW^*UK{?G{=d35xN*fx#QQ4azS+@l2du zG#dob2(7#t9?$RS?VOguy+L7Tz%&nk^9qN5+pU`5VnM)i5PdVq9R)5f5OtMIsDULu z2Fo8^$IS7BOZNfI0w=JJLo^rPu?ckOtf3>IH)la^FMjifZZ-~Kpt$&7xb*8#V#{(v zmNKAT@tBYy)Yk2%^p#&j?xBD89s%BER7nk;a;C_?&^Dm~)%Y=!fWdjmlX{~YnLVig zrvv@qHH#_=Mrs*P=zD`gZ!Z%d;p~-LzWc;^JXLq*@MqrS zGdcbzzl4MH#@rV9N_L0#HwU>tu}(#~@m`NQJ&g9wK{DmxK&|bQkbEu&X}zOAul`H| z*hiv6mCqVSk$aEulW~Gs_|DdFx=vlt&9ymrG|!&SJsGyQ=2OIeRd<$v6Jr-JezW_) z#kf76iywLF#JH0^DU5)=C4XjGO)d27&mvTgU$<;_W4OtT7V^$sX%+4RmUV{eL&MF` zC{e;LPIQXP;!78;O7ju>71(_v#NxwmtQLi<1y%Dn zlCep?fTH}Z@e>~=2+8MfXUZT-EX$`L6u<`JjUxm0SVh374~0=?;q1rLiAW=t!;D={ zCp=g$yzq*F%XeLS_CAkcElGC84`ZA3iokQ=clguR7Z#9zlV(?Z=<3>33e3udG#(HU0v z(P0bE)YMtM<-fwOSFNrRP6X$DePX1{tPW}T#ay_2@cZOY5|uRALhj;O_fU*m@0mZg zQr7^auT!OMi1WV-;q>D4%8_fU`7bOw27I-kpK_eNDIC^2uROtl6rrzqN_d$gh-d<& zOeII!BV|?d($qFzg773yw!fl+@gDI(YQTmG)&+q-Aaes1_AN~w{L^~p{4&rC6yJf~ zGUs`b<@bi^pT`H)aNN(s2XC|#uft4CaJ%vPs$2Gm1r!zK}U7M5;3CQNRT4{UX@T0(>Zi}+nI!4AXb1vssDNPCqMw%=6##`xO zPpvh-;O838{naE$k4s@3_~^>k z#oqx97W3OT<<1A*^O5G9`huIeYKcB&o5R`JO=fMFmcTHXgg?WukmQstjSFAEl1!>$ zlxplYO%w0)=GR1$L>)g4ZY`@fhosTigDfhFxYu^E`6@j@u?w93V^iCwF9QaKq#wBT z-N-JOfJ2l|ZD`lMaOLMNSQvb^Sp!aYxfkc8r%yMtd%kfzUzfgh|Ji4i<&%vqczi_! z|1hK*dWHoOIKs3upA4!5L@@@EFi3ai?)R8wXs{jRdY%gB$5L0qvXjp7%^Du0^)u~W zP}A%Z=zfS1@!3aBPIP69jQ<3b1fB@t>conYoqgQ9bi&S4Wd?0_Yr~gQKXY}?HH>>U z0k2WpaZMr5Sm4CYrC-G~q6Pwdr*9J_O#+vm-__ORNq>lNHS7_q`7%6SqM4LI7dr@| z>(^{#L>It*tP;JJS6;I$dlOylpAK8V0NCz?l}dNR`=bL$D_?ZB@W9F*^*Ox#F@tZt6m ztO0zgg-iH6wVE%_m*m+!_jw|ZpxL|e=m_S5HB1Oh)F{ffu%Th*cAMg)h;m zLcBsHV0SyFX2n`Yywd-Bloj09Ny||e{>9iw|2mtR zb>Mu%&zf_OT$)6rNQ1jw(2v*W(x=*7`I9TS1Jhj{xxRlv{x$vSLJZg9P#D&M1ag@q zvU^wQR1?IAy{;63U=}L#w}r7}n~gz}!}BJepg6nUrwo0xpB&2hxhagJu5D_EE=l=Y z-pzqh~a{0gufbv_u!L&my~mcDriw(ib@QoU1v z;hCD<8QzhwHnb;H>Z$=_5(cq`_^?1`2}*k+aM49b;|We`{ucU^LY&h%WTpQ`J&9no zHaNqE3SxP2@>^5q7_@%PJbwR7PBfn2p*}_Q$Tu21li`CbtulIdzc9+FTETIQlBSc}3i`A+z0KT1$?vOqWBEJ0KMi z#-?KNg4-e?DwO~N>}ExAp#vTQ(dSX|{3=1Hzm4T4q5}Ia%&&#Q zR#kh2v5>KmD)KtFr%bmex2+aFbf~h8KhWn*!;^WQbpO3kxoC^?a2ywRkE+t1VTR_! z+5D&QlVT!c}`#pNj0ch*>W*N5py2C+?@`rW5?wY9)>f9ebry3TN zU(ReGq}8x{Ba0ymx57Fu3LcU))k6F&|Xf? z^WIuK!h8g!b{V})>E(RUhZXekY@saL+1U3Q^&;Ko)3JS&v356&bFWy%tbtH-z;Ht< zW0T{=`lzuNsNzj-a|49VhaHk=wAH8bN1fs?l{=b@xDlr|%{s)vMn#f7F{CEIyEEL|+yz#>-k7 zuow4=LjnMM8xaK)Bf7TPO(1a2yMLO)hvelN`@iobKiw+9_>2wAIvAz--T3&}eHs{vfAty@7_Ci?#yp~Gb8#5`n$o%mOv~|ojLA@-6uAmPSn6KY6hC$?Dp(r z8_H8!)9oNPsVFWx3*K5nEz??M4*{`j-NK?tO?bhW77SyI_#nWEN@pK_66^A*>TeZl`RVz6~s~ff^ zQKVqJqC>GoXKly${T*Q~RR-Wdn;*fw)|dVS&#-UGOf%3k_r}^RHaeWW()}4tnKsdF zbMpehO_>r$^(+m@qEX?yeV^EfDJ*s*rHUo*Nm>X%+3imx2fp|8jWn{Islm-ql}qQkSUGUQ`6p1T3iMmo{Y(BHnJ zQ+xz^jU_UHehxu>7~-a>sB={J6<_WiBlOi6O!V7kE+H*ArFXbo8Pli-qIiAeJN&C& zB?F%tMMiZYPXx%vXvBjCrdB7Iu1Q>_i6*(Fqj%x{pFI*KvPL!d4SFXAtYvjk-B zXLA0FxM(Z*^xrBs{6>@MDAColg)W`_st!NLkc*m9{%4KQ<2V>)@Wq*5o-YG8L5%0U zqVO{dng}}>tKq{}47mEv9wN1NxnCQJC~;AL_dWB8H+6&5B;~^k9idwrBQ{F(2THg= zdreB`sd9~ub|4?W2=rB{(`1^7y1h925E+7)0Vr5W$xne)lqd=S=MoYwpuit=J^y%c zd1z!!KyU#oXZz7~G*z}@ese#053ehlYnQ<8{SaA`YaNu=l1(`$+Yg^1$HiH;p_l26 zpTzVa*@fhD-FpZ&r(k2PY(9;ti$C8^G4xPouU>of2;3P8wts9r_&mDN$SCn9Bk0S# zemxj^XHxYhl_R_DLl0`gkGgp0LhG)LyAu)A#N?27WEzwTG3B~I|E}c($D|a8koLc zzW9QFYs_VeJEoIPHb(M(4;Ib=)WUpCR^w8!>V6VtxAx}pg~*KJhYw@&vtOm>&&nce ztJ$a&-m|lE`#p)k_5nZ@W6ygtOPE|I#_%b)a_GU!v-7`Zy6LPb&!xxO-;N>Hs*}pO zu&F+UQxZucVx-OQl$4)devG~Za5-F%T;mWHsP*q9y(N2~;OX}xdgL4OWcz2;z=q1J zdsgSvc$m#r@B4EsE9AC)W2>qjq6~yWf!3W-g`iw)3n>k>b6j{qk}kkv^8d<4LOX#E zvY!%ZlPJhd9lnOz62`R`SiT?I7v$y{Aa+rY$NL9p_U(Xx9HzJ6mr6Qtu^V)IEl<)! zR?*Kc)gyFRprMml5lLy*Y}?&9peRFfyYGiL`jW4LgfBm0Xp&$~2wY;!T|pt~GKu(y>QWpZH%1>R+n#4vDBI?8RyyOWW&Vr7D&yC? zq?n`$J0SgbAUEHbyc_fVeyK@tq`-sh6k2gU$Jxj>_tQ<@;s;LZGwK67#c!j$G-JvS zDZ!D_6V2u(;(nO!Vae_Xa+IvV)UC0X7N;hD%}lU=p}&>04?pyF@RdAG)v$f(nee&O zLa5OHgpgRQn3YaScP6Dh|^AJ|Ho^YU`-U5M8)>9^(qqZmLP@6?n+QVG%$NG6{#m$^JS@~f;ViA@Gu z>zFu7G1MSz~D$KUeE$N|&^^d)~q9p zmI_?#HWY1~`0=G+j<4hmZG`lPJ2C%eA)Ni8+>DYdb{NMoxF9j?p~k-Pv|`11vmhkL zKvl7y)Txs_U9<0J>BrV!gC_?SXsZO7#H~J(dlUGI_c%1V@{AxQVue3c|CWO$Odw9b z-VD19tE{7vLxCek^Y39|+&j*gG^Byi!^r!%LWKQilLL%nQSJ^UQEx$+?>P72WL1nb z%PzW0y0InYCT5{)%fsfR`fqjmYVvCQY1C%jG>9M|@(jTCDu2HVZ_9HI;Szp`o88vM z>uI5Fh84e#eHQ1X6mhQPK?}nmrBH384eyF`vk zS-`queTvI0Yy>Z+F}|cXe_lp%7Yv{j;+Ahcx)$x}ixjkh{yczaqRUZ(VgR;ny7klL zCAQ%8Wm>y(!N@6Rk(sMCs8hFB<(Gn&EWr!isQGVmly!^bQ(8FWdmKOu7eH41F|Fzu zJ+)1R9;I7cX?Bu`ylTYurTfXd&R5>pywV$$fK7=uWTVazq})le?+M~q zsQyhnCMieG=OEpXd|)G>t`Mulm2BJ+S$>XFJopAnl{$*E(zH(x3O1rVMquwZb?1avDT_yqLhq^wCcs0Mn@8LptdoyJ=gfgwI- zGjH<7c7JmRY=7c88dg!=qZ(OjmZGyclQEZ)vb(-9)qUtx{;_cMo812y+Iu)I9=yJ@PXW?g07gRe(ZxjTes^)RW?pbRE#*dD$n7(m@ox!aQ4N3V?`a%sw^}Ps7t#1isglpBe8q_JC|DAqcT8%r7TX5jH6wmbDx0C4 z+gf(b%{v{ZJ{~0J<=U~~R6AcXJif|w%=ddrt){T`!c7{FZ8O_28~@){VPVmxV4EPU z-pE)yKzlPkapbNa+`QdFX+Cz{>}ci42>LPjK^8H$HmJU{+`LehRG*@(Nq*}ITaJc_ zo(ENlAKcu&8%AKO3(UGMv?KvP0zi(DgIXFUqM>7zxN8*V?5sd>laG7=eUC%|vm{I# z7}u$0CibV{u}K&>&sc*`Q^)MB0jKQ67%d`YJA`r%32e`h?YyGy>Mym}vJXP{8$|Q; z^t`ZH7`Ma*D{Y*_8B1uO(t##{@)-v&Uv#J`763&R6a<_*eJhy2Te#mj;_UkvUhsrW7pL~p#0 zxkD~PT6hO1o|>53V!-F$MJ~WTmY|94tiB3B*nV*#?E9f$Nq(g7l14gn?}gt>6P*o# zhb~^X&Rf5$8C>z z{HJQiY(viiU%@X|%iR`4M0b(~zTw%qKFv5hxlPm9V3JIYw|FF+iT=NPoNgsdzHD78 zAi4}pEO!*7iSX)rlsGc|Q8^zkei%atq2p+oZ!Xk$*yFLsu$9vJi&?sbA9Rcv<_0>z zamVWs1UaESBVPBslG!fdOB4vfB9Hqb3@i|-AV8q<2znjJi9w01nnvhfo(_nqJnRQD{zBzA1u4>=U0*u)jCUgakRXg*XWX4CQf`Q z<1v6SS*Y4<6r9{l{wVw4)Q7^Ogp4`SqG)Y%WzyY8v`qkHe|46A`yAAbDS*)%XZzoI zr(l(y@kB-7_Ah`5b#;C>+kyEi5$pxji|^)^akk)J%Gi8jYs4M#B@0Pzj&hV-wO5*o z{ zQL+rxP_!H(CLB493%G=Ca&HddIvw0j2LzZ~Zn9@&e5oX?IkXk`fofn8c07b0D1n~p z*-CB0#6~#SU2l^5Tx)qoTZhM`mS`9$&-q?E3_YONNq>0jnqSV@-vZwXDx+w=eWgA~ zd-3(-vnz(9Ec6X91gD1`wE9Jn57dLTuH)BEp(j&B_)&_U>pyK9&&BVfExQAHWoY90 zjATioN-w>4T!T8uR3kJ2aB=4db_2Y)E|t@wJcsq5@C!TILt{Imhnt&5h|?8TPA%h* zM>EYis@B)Qh5+DI_uyGV=ny}j)N+|i!`r*$6MHV|$Ex&<`R-fmoY0W&FTF|3s@u|1 z&F8AGboIQzfVp8@sgDI(!PV_Jch>dwaNGx*6IjrNUC6k?oPZKrCTL7(Jt`o`T-q$| z)Fh$9dG#{td3qI<4qIOIz4q}fz08idzzCx`75@p2qj9^Fx;ntE& zvs_xd7Ie_O(HBC`O}EMvEQ%ifmMje@8gq%UE$6sdHvBZxfq^gFDogrOI4l6fSADu5 zi`MyiD?}Wm2GTXpW5>wk@oQ1o`sf-&xFn0dP9A0r+Wp`00+g45iO%m`1xsQHi^zxa zDx<=afuiFo`##UdlY3Jezn5q<2Kvo6+O2^E%75AMfAlnZLp-WYUH_SzGUip=dovw4 zLJ$O27){utK00?f84Po)>#R)u^+|g$;??I5fCt26`JQlz81P$;Q|NKDYAasj;xk|! z&vC<0`0Gd9FdekuFre=5a)di^m@`OPoBI0rm~whqFTRbvOt6gE@*k;+DVFN*zRyw$ zX5dG^C&hqCw|ZI>T9Ss#gsscieSsTBt+&dLEztBUNH|O!&E(ZqL(nUUZ5GDNso$%F z77&En8&K}_F#t7uYC|n);w0RAX8c_BnI%8;Ut*DRWMpO*S0@IV=?-FRl)lC#n2`J} zrTdpM)4B9WJ3Lyjw0I@(4%@;u6V8LSjQepJY4&_8ex>xwr)$c)qAmoH+kQI?`>tyq zvj^+_dSQvmp^Mr#_BUD1gT7hm1FHFA9jdvF4(*ejs(GJW*TkzF(wi4bJ<`N#4@Eqj zIg@$SvYKqvzCB`3{Zq*F6hsy|4@Y94$Eu+-$$|3M#?P(<(acQf3KK92)}*0+M8~5J z(0b+!D>TqGF0Z20iVNt}6&W0Dz$3VAK~iHOK6=zJ$UF$?;T$CW4E5YNxkY% z0n;lhNy*7XIir)jcrVq|w9U;^a&vPj%#|fcpC3i0N(@U(NG-XZ6Xe_SS{pjDQo*o} zS3VCy(K;FBynn-qK_v#b2!=37l1D8KXhVUXr(8cF{!$aP!FK+z(~v+Q)}AKYj|>9w zrrP#U8(D)VUzGY)Ga3ZeZQhOI6zgq$o&5Im(0B9dWRr@TI_^5CVS%7wA#rwAAE?qx zNt0yTKRe_98#Wvr&zMWFOH0$y*4%s`Gppc;9&T}5*_Ul*qhYQ8N?kJG#tbAIyLa5e z)Oc-rzVaqsOD!C1*ABF~!i4t2W#eAw5Zy){Py!~X~ z3z9@@q9WP6`RMj$*-dbF%X`ZC#Q&K;&;sudHsyqplG5>{8h`KRN%j2A>jz-X)L$Qk z4J3`;;8)VpEwsUHBqO! z%#DeMUE1RzL5m)3xHa5moflVFpbx*guAj=&B6%TBZI&o)c#wzHI)`LThoB{6F5oToY(|Zec5OH>n8Clx%-h$uq^^!wzluVpi2t-BA_6@lBjaOjEm3rIbak~z zS1=ND!1SRiqwG;`&+weqdhaOw>*=@kgN25#OX=ewK)14|L6=Veeo70={_tb&U`MdC z(Du)^eT>kH!l1!Nj?lxhz1yUt>^JytcJMLnOua35;uRylEdrmtNuao&G5+%45oGMgG3^~8a@H)PxI7{5uAGPf82`UOfPy- zg)}PAZ-^01r7K#4fe%_L#_BnQw8+V7#~NvhHBR^X;Iyt-I1{B0;LIW{q=m&(1nVw2 z5?c>IcSOah$zRP`8W+sGORlp?X|8b*+(PN06Jfty|KNejjcvgG5~jlxqKdyZ;eUo2 zv^JZP=Qgn^>m{wV3PWhbv0cAy+1+SH&m};MLKzI|%mCr~vG*Q%2ZtytE93CE6B%JI zJ^I^3&gs6tXY_uKZ+HASHevXSts!(>Mc9csx>@{bpzVk)6e@s^j>c@(l?%GP)qfvu z{Je*84e#l9B9K2_aXucCh|gZgd(8qo1X~!2_TuVy&6%Rs#Er5Fe9|AUrG#*u6mtqnT%BP4n;P3?s@BI6mp_{}L1Cg> zRo8^?(KIU_j?1EM6MMc}3l)F+CL|=kaS`~o-thOt1hWLtleqyDc5@S`Z;N+R6N!In z6z^hhZ~xq^BZE)|j-fR**!_!G3%kp`{Q6Hgz0(^~RmqStB*m<}?@#M)f3$&3kgt;T z9c|R9!1r0!#y4jE?L$=Zstc5s`TL|%Szib{-1pmdGE48sd!VHZviR$LQ|Ry8-m{8$ zl2!>{yF4kae9gnsb9~k1e|M@TeENi_dWq6&Psh}Q(6wqUepq_czh=`%^?kAamsbWO zWh_&`lY1P@*HZ^P>hL{`m$<0>_Kl2I%vlbQv0Ae(?gv7;+!WkAJZ~z8uoqniBRaGG z;4I>wEVA=4$(_fMWZYuf3{)9NDOLL#XuYj%&TSGLhJSSO{0oIh1tp25(u2*HNfX7Q zl(<0aUbtJDQPCB&(Xxtdfqz-_xHaK3lD(yn5|79{^%Re;=1r za!23O`xIiVuTz$VB!8T;mavwOqE|YwN`>bB(%&qQVtkonP^|yi-59Cg=>>i9>T!9N z!n5UIItE!~rKtye0P%|;Z&Zxp_sq-&&`Vqe`0(q>uO6F9%b_UbEAEOL3ZPn6_}uV* z>Jz~&=|rJ3qdylv?Yo$FHY)5~kCvKbw&|(QcCH9##||WKl(nvrGOqn;H6YgYl(}Zv z@ZY%o#Gqgsql#MyNF>@#j!A@fuZ;@Y`mjft-YVtO_KrlW~WsqdFgeTXRJ&?Xx$9%kHGrayeVy-@;(*ibXkBn%qX) zlTwbw1jG5A7cR@&X{jsJ9m3=OlHBALBMj9u{dugUp}Ina-a&@r0pDJHl@1=?cW%7l zua$uzY+qZarxG=0_KWr18!B}3rGxazOmy}2%gId?Tn%#6?HwKCF&_bs54?zY*}wn1 zkqncmwN=g8vc>H)f8d<7)TOv??$NI)r_$`uVPhTRT))!cCvU25;`*Sq-N+*svuOD- z{>i5U1BWjBg$_r+S)!E?@;h^9RepM$J4$S@gJ-V|67B7%GtUju0&zhu=96B@!%se2 ziLr=~y(Xs!yG4^{rP_@*6XdRR9jjs5+`#O`BKZZqq6nkM)nK*?6J#V3XH>SE_RLpo z!=^Koh5Kx}Rjtve-d^5x?KFA|Z%APQg7VyaZ5r&dsBxwzs26d=1v%o1D?3!xqEw znGDL6-rU5)+oVEDL;N?L9sq59-AmRTW3A}$6}3DoAuKWQ$ec-IIoTUU@)CQ^f4`ox zI5^&}H2Fb_YZL|vr7d4*Uh*!F5|T>a-f#VLV;sBDs#iRphE|aJ!VtpOxO|dQQtW^zM&huu5^c&>XB8eveG31GFDG=(i=ylaDrG=%%IlPpl%64{j0<32$C(>h^t?f*m|^aD zA25%5jSDW-KkTpU>{Pz42L^&2r6lxd#wFWEJR()yoz$sRdZy;n(df+nW?@IkR}oLw zj-@fTNCGU%De=XQzzgn-m+U~>q}cNE@>ZzW2lZ61x^)VlSba0Q@eOYWFFZq1FI@-j z`A7TLsKAYbew?HE^~ukAXU*vwZBC{sMeWnzldG*fWU<2~^92QaTOJKJ4{WjhrtlZp z=2&!X!&rD~DZrN-{$U}cMj?Z_-k_aQ^xR%6VYkZcCt5IZPo(xZ5<{MqegaM9d1;A zbl{MPG|kE@O}V8jSbARXVYVN;nAqhlIUjX^s z)$V}I@z8pg%WQ_Rpt2mi;*TI!Iu|f4)1x>rc*GV?l$=;pRmHWMeJIo!*t7{jZ77e+ zNbO!?S|Y(e7B>Pe90z}<6w3H&mudf$JgnKyWbjw$M76>q|)cC&VlA(h*#K`a1TAITis zTp$wYKATP*m+`qWnN+PbYmq%Z@IL-%!4uaPecp554nHh~>2j4E1zIoFPC-5F zF;|e*XAx;Xk(>5f3-fkMD%+C2tXG|o&01?u>fi_rFHSO67Z60P!eEs8sbk$+IzBfp-+E_ zFUfgvfx2EE8YY5T&!#PQqs}MBE67Y#0$)7WzP(K6FA9RMp^h;^UX7c|-#nZ| zD#l86)lQC!vGi>*{R^O}SY95>Oz9Ho{11p|?Rt$Li7(!?Xn31Yj zl=aCE>d^Jf&H4Yk>dn$RWNo?iu!hM}&en=|q<~qrY=|NXjdqK)1hbPSyuJF|<`1R33Y=TQ^v$vMkT3?Udd zPXiMlIV^wBbr%f5(^Vuxdl6&fC?a8yKI|6h0MM=g0v<n9o1-=V5C?kUji_2_FBeP^9 zMTj@CqVyB-p7e2V;VMb?_D?}WIjQvkd8xBzWBD+Vv?Iqx3K%+L8%G)FX_=2q=wyNo z)9~xPpqfJ}3PPo{ZyUC30S`wtte2FaBvbK-f!2=q(*i~%cU;?rjXGoyVUuilVZRqNjE7BR!dXt9sZmmc? z=#lL%#c746cDMXJ3XxHH1l7uOv=XyGASC8oQcNSMt?) zKrp*Bt4Z&%?q}hdQgoVM};+I zKi-M0N~gx!td4Rpg)tkG5)hWWe>YiTVF4~BC7(&`Gkxw%;mhxU7H$o^aQy3GV^e1B z!_8tu9YU7L<(aEX9&J*odLarwGD5vG9G3<3($eqGho0rX#GISpw)?QV)w<-a+}+2f zM9@!Lc`1y^5`ibFEk{9e#qY;&Qj%qq`yam^!V64$gFppOkHeC@67l8E$z!ER7B8fh z#jru0PK$yWNwCr~z=z(xg<1G%ZS9L>)?_&+XOHYCl~@tiuJJrz_&%tB!xWV3dz$XW z(+bpH{>t{CqqbI)jD$_NJ#}XuFfdgkVvYrYgR3({NWY|XPV0|RsQpZh4~51&7~^{{y`UjBc0%BfD{6^BHm9+CmmS3}AxNU9~<|JO{ z`drw+IlYLQ;?a~QU7I-`T6Bi}<_PixxnX=|ELJ%3pT+RU)9HAdvW&-9+wi@?Z79(q zDl%b*@aWzRSik8?v$CaK$>Al5W7tyR0KM7mjUKg4$D{<@nKU}#rJVuiaFuf|Wg)bm zFDZ`>v`_(UoolZj{@<&JP~w2wr^Xi?PnAcH)~W67^MqNb;?Zs>fj~KJBcWD5m`66+hW%e3y zIe)nUvFyISwDppYADL|3Q@KE@Z^{sVwxa7DF&SEA#{* zEDkWNrn>iyEl1Y!MrLE zOxT3U(nhZJxtol50WXsw<482a(LHrUMMVh8%B0LbdXj&xit4Hn${4?1p31f@1Rw3f zG$xzTK@2I%r>%|NN5iIC=B6$;Z50r>=N2*cyK7aowUs4(2+u0l07N$63cBmNnu!-( z-ua1%GcUC7_s)+QZ!_E^SBVoQ-wPa3166zcaz6YH&AtQrWyQ2+6zi@IPE@jO|pw!x+nq}am)Op#R;chUk3kJfAd?-NP77^zVHt{>}`kAPyA z^KD*sY^||l;eddt|927S)Fj-hQeUG$>t)2AGN)G^&h$y#76#IE~F&&3w_D9Mjg7deG99$<*IbG%Pib*CRDIx978X3JHOQ z2tpgoop-4_<`)r=-7FYA!q3`ge! zuYhBo4X+UD3(6QHy~#Tkb;fdh9?4*vfoV79+MA*N*pSfN(@Y zR&QR~y5-G|Qm5Rf&ad7|>+Y@BPXV-S=(^QX*ZJb&!hby+#}<=vg7$Ae%}Oj~Y>s+4 zb$H(gVLOX@LpJDUymnkBr3x$-o$pDTYi0vy0DL&ES`mNPX(rq6%C6ck?TWnp6fHH>+nD9J(p7x7;jcQB za<{Vpt$vtX>pd2VqNkOiam!$P$gyGuH8Bs`wS}SXZZgm41yNm9V!Pti+@bp>V|i6m z$75>fGNDWbmrFS7!!77>@*pf=?3`hB%#Cckf;}o4oxqmE)2dGnu{e|Vl40y8qOt@G zHhuqip97%t88lcX{^)PE3PVe-6qDxClB4;QYsNMwy6Ot$&N9vNJfk_y*5Ez*j@H zs@Eh;T~RHC!Pm6A>Y2Z^t4>iD{0v|=Cvn60GurLb_Ii(?CA;p6ee-?<(!6uOQ1h-)FY8kM`k3MHx(i{O3k+~cf6;t>_9ZkgYB%G2>K zfk_No(R95zwVys=8Xf9Fer$ObcXfpfTmUTwKr}SAFj`R&k^8Jf;acUOAb|Tlr(2;^ zRghX*pWpV3L0H!1L%oZ}DC4w2o@Fhz$KU0P@V>g$tGANSwfR@qzl$LIg-gPwM|4R> zW^XLj1Ac|CF&={vm8B?Br$JXxD=Ha)M;z0a;4F^{lu`$^^qhh4U`jVQsl!3I$B@pI zVEM<8gOr=>*XzQZ-kx(gHvRSYFTctQ1CHRxd_WLvwM#HEd^cRBx`#Q_BHGf4J6*Fa z0Py6m&}D|a@IKHX=2qkUj)HM%t7cVCITLT>ovV#v?%x0|Jcw533#j2=Pd{*G+?RHE zX=+;V_hhEZU<0mZ_wDDF=d$mTODj-wY+`<%Yp95ei%ZVRiuDMB0^eVFKfE<1sRAAv zyR2XJYSRfq&*#AEVI&Bgl8)h1HvI<%;A|rAs$>x>^=d9%S`}vuZXH2O6~gq^w;M<) zXvW&f_l0d3gM^>-k!~(=m&2U$U(f6Oxv1ICx$USahMngsnC&NVE|nwHY#6$FO*}p4hf=f}V=8f2oQdqZ>hyJGATl2f$U+*8c$cH^STR2Jscj-O{pwX*#Ll zbp!Heol-x3-}TsVKNDPrIM~Xl1CUx!-fOj7+2vpY&GG3K&oUEz{gDe zXzA%m26V406yznr-Lh6Mx)aHps?f6X^mI(&j+Q6&5+2?<*x5`;K0@snAW6QKh~u18 ze264{@QNoM9&%oc91Q)>Ye7+(hu%U^XJ?F0z5woay5@Ur=by+SC*V4e04S5@?Jj7{lr|!mk>8nb;#{@D)`gwrnjec-4&77Of8%Y~ z&OYu^wGstf)DNZ$>|)rTtx112H#f)m0QkiBX#Ac1biVus*A>Z~3!Yjn)|+1KMD@Vo zZVg6p>a)#SY2;97!0nQFP)u_98AFg*-QD^)BXV>6@1ED>V*gnJW8j%|pi8n~=G-}9 zQXwKQG>H4?wCrMr16im+2-9d`(0hqZbwZH5aFgwRf(2T`IaUUNqkoTWG?HTwAU?ei z%G_4|lRC*C>-h=Nt{Hm|*x$CHD>P?Z;;)Sqnm%iv_(mxM&t>b?`VLCcD zo3#R;h`DrA^&VNfL+EHRN-o_V$}tH*ci+%78KLT9E>TnePU^G3p4( zi0H|?3>M6U(=;cy+>N$?ug9&#fO3()ps1@+_%wibrd9@4^YUzS4V>q(752RDW<_Hy z$oik-jlSdS^0WjXm+i5H*as{7BaxScM@B(7W^G`+thmZd5WOo7k!c84#nM=5eIo-9 z)V0^mRVjgg?!#-DO9BGDjk!{6Rf>u@lzuf`7&PpDFwHEZngN%Vm3MPyL4>8HrKwO; zK1$63$>;=1{*vbAM?kmYS5-5q3T}C$*eQb;KpeKVmT$;W8z?jc+|_L93rn7}BPF53 zwB~{1OXqx`OSA{H;jpnX?UgEv+E><-u{q|S%agc z$*W%V*|)02W=nL7pk&uJ8G&Y9j6?|far9FN5B4!H$nOl#%7NntdwNs|07g|mHkWpC zCk-JOO?oYXIA17`@_R|9wTVT^!z&@W6z`Sf?>;R36wsJmrIWk0L@gMU?R=Z^b6Xi> zZ)~c2dM^+kfsk~BjxLb?8G^XnINzNT$OFjHK>018N%+QMlhfmZhQ>y6AnE0uQlG`R zpaX1pW~*)<)JKb}ZhNZ~ZB&LFRz5;_LwkNg5hGT${)0#$^jOz)Nd(j`UG-VFVjqam z*zJVU`qrYR#1BkR755+)&bz^-czmy_c>IffozaHa*+t>=$s+I}rL4LL?=S0-x#0Wo zN6o9B!tLK;1MGNHx;0@Gp5#&txUBq$}Jxn-z z=?UzvgYkB%VURzhPhz*e4AGs*K2QL}Ku~?{@qa>gF)5+7KGJvf{K#_zfUQT%KSnGT z-SrM$NV)`+@AGRF^?_L9r#jdwl)Gqq{77FOCEHN-gn%UdqurV+%M5o&5%$YW_d&6= zzdHW6X1BIR?i0GrxxI?m3(n20&j)~hM*Kq+u@v{NmtboSj?`Yu$1&Z=yzR?Yog&K# zr*r!!HG=@>Aq^?SC4C?Nv$0`s@95an42h=}aBTWqQ=_P%kz@@aKnKP4hRyS)Kj1mV zU)_Y;@U{w3pUxte%)8I{Wv{ek5l{tsAJEkt3cN9$9%J5d)drWn`nlMCilF==b5J{! z3Qab>26t}xmWDuuVb_KnXMAjE?=<^Bn^{aG!53SbD{9sAZrH~5*?+t>$T8^yRw6wIJ+h)Ka0`%wpz3VL)nYi1l z=q>l!z#s-dI_l-2aoXm%R((VVj`QKb?k8A$Cty#X_M`*^qKLNP;(7A?&GQFe2q>ys zpF9SPARx{IbZ))pT5N2*B_JkNd!&uq((>nzB{?N!X=8>|Ij7Jwp;>KxTa#3@flo`Y zvF&RfwL~fKO+PXCG97j5|DDYNv?H9-CUY`_x;a7mIZK{jcC>WY*H+tWl~*vZdv-Y; z_lI6>2+Ou4CXX9&u3e8XhWPvF4TU>rD(011hIu4}^)M|K!k-kgFoKR{L4QJgO+l-; z>po_tmF&WbUrN3beEGbb@UX^?jA4A8r9+(~oegf;EQ+Kyc_IU7yJa&7q1(z`PvTma z4+5jL3rriC5TI*h6rV&Z{--DW12P{2hsXkuU;@6h-=`yU2cD#*JiTvR8t3oUH>AZ;1Vnp2j14cO> zn%p8P*3RynQ@+{ja*w_3R21AWe5n)bi|$WTY-4Zb>jHX)xz1L1Kt?10QpqYmq&w;b zjzS<>4FIwLbAfbaX67fcg3tG@C6jWmS^v@gvA;XqjfTL2* z1})*53&Rmx>#Hi*oo(@8y}7wz34dW{$NA(DJ`hjWe)Hx*-5h>Ge*{1;QXNwSB<}La z=Bu*8g2#DK%H=AuzRvj(Gnc{Snv0+R%Grh4{o$L8(Gs%VEb3Fyef>jCwrhS;IP1U( zg8VxS1?6Le#SkCa&$pM`YP1Q4HWkawrVp;C&s z@Ixc>>!BFfowpcSyOs9PmI(z$*gC#1I!U&iHbDI#I!Pl^1TkVBJDJVckXe9wF!GLi zAKDcqW0Lr`U;u`h-GKldy-BAJB2tytMXeHO$Ie(7dUve?+VGZ~n4A={irLutXRN=f z^p}q1azdA3Y$tzN{n;e(`F^Wa_gX`F=T356$SM6&ZQ})UyGk~6qfJ-x26Q~V;pL)5 zFEjTDnLm_M*XH%&g#^gi(A10=6fXBWw5x9!15{_?c$mkF!&W#Ra-4*Kt#)s-o_!!j zZ(}mvB^1KNw6Q-lLRYN8bjOrajj)n=unxV=HMK=ka!qD{t(<8-3*BWWFdTi5vZC9? z&@$s@r^y!c0O!Pi=DjUu(+~ zvd`*CU{$(YB1^N=-TM{hS3R_K&BQW@O}peS@6zFC&~JuHgDVj5Rxl1I3RP5lzbyXn zkd~17_eDzrYZs-jx%7k6`~*l2WG?5ejug#C{uuWv>XlGY^t4dFv7#k`Lg+cLJk3Of>@azvKr@oVK@>@ zDG0oq&V*K^XpXd)=FzA#hU~8@?{UY&pXgHm6^;69ULJ8@6P@aqgHA zEzPtIv^!xBi5chNM+n#bogE;qI1-mok!)@+I&MHMbCo4cOXTbl{PA1$&Si8r$ICWn z#X1&tZ1fj)MW__@q*{8=ag8x*d>X2XvyK%-*0Fib7l!I{o1q}HAknrB{!>U?PxdHP znIRx5^F3Nc(apg8YD%z!AzwOWT?S+U3YP-;^jbbn0RmO4?~9E8O#)Gc)5oSk&pk(| z+?iXlsbhf?gW@yzT7Bis>eAe@nYnhb-SgVoG+ql2+~g%U>m6M;tYb`&sQmEYDi+g< zwCFUb@VUL}qW>L!Ptoa1p&lj{7NFwaL1EtY^&-VX3;&StxPBwCE=}WZ7neh+=9-$2 zK?Fl5hSla}atVKQb9Z19>#npA03!eCU7>ZHo6elk&n2k(l@yS7-cCnU z%r6vyKD((E67UqGB2YGr(aKT$umA+cT@P`{*Lkq68m08&4^a6N=c|Z5#4_x;f`SO6 z8LCJb=jd*#&PY*KUx6%VX+O`9+lDa3wYr8U^msH#yl>YtB}uBlbW;=db3N8&z>LFY z;1%oDG>(1j_kdH z{Am7^@#`L^mhU!;BcvI6bCq#&Z0NcQ_ z<01Li?mO8OBI|WsT1y~YZjSCw*yB}6PFS4zaW#ECM+aA9=rm$mVSt;7r37%ttx|Hg zSd|I&0x*l^_3))WH86r5!cSe(AZV!fb zs}Zrb26AT%^8kBNTab{FvU^`cQ;g7id%i(B))t)v&m8%`fmlg$tmTUC9;0p9wYcb@YO*6{}w|k&+E^rCyF-3+?gI1Q-3=j)&Fa&&_tV+3LI*2 zd^*n9WW6ba7A7lyOHn`sy0Xn*3t{Sofh^Yb-6saMp8OlbC)4YGgKDtg?~Z(wQpNCL zk#~nge0^-9)U$`c7AHi1-mkD$_N2SN4lP))7bZ)z{&1==2q%n@8C-IO8-_q@Jem3h zij0lrvI*y@Gk=GR^1P#UdC0dKZK^)kC%9`Ui1tp)S@vey?;8?+XC5WCoB++sSzP*q z20|rOB86>#gx(t=c(RoMcQrP4`|tT~1;+;Avf)^0sm=1l5KouCH*sQeP3$@gE-X$M zS~uQj90vku6T$gwG2*|2Fnjn(W%>KC)|o+dr#k;V39m9E!i0y!u-PxO&WEV^l$)QS zCgeqP=CL1l=c=tqkYo2{5-tu-qzBjy^Vkct_!I(1_owR72Fw3j6C3&8N8TnzwV}&H zYT_OKag;G~OzSY=6kY_I+jF%2)FN=VRpDAQaq*Uuvc(aKY!Ss?uVM4;6;l#l2S9t^I?rHQUa42FOlgk$T z8^4g|abq_F!S@b2RCBK&g3xRu8hYuU9dZ}FcIYa7GY=FTet*LsT^9meeQ2_56Hew>qQ&f9qe{@AtnFo1u87q%5g)#5(jhtch^jn zEGii4xx9fWo2xb7nlbf%m^_qfLvNP2FwUAW^>tkl?br--A_M0nq3L46rczK)SeRRs z_H}JLOgh<{NhYmYndz(Q`1(W)vF?dnx(&C0o>X*q=0u!%M5T2j1tStdZbkm-u3YgK z{NR-bANK!vB02)!De)ig@m0$V=h#TxnaaOvEV`PoqqNF%z&NJVPSHY}Pl;BQv%6O} zjcN4A)l$=c(s@^IQ0H3+%``RStZn4)(Eh|kLLRc+U`VG^YI!Xd7K-Ig(6f@znm?Qy zp(m%HfSLdFG)j(%PyH#84zB?8jP%-4~v@QTC z1%Jyflam>Szb*Y1Tt5?IG@jQhO*@&pRrogmBmcR=)A)T_Gkhw1_>iKu;a+I+8VvvL zW=jp#Tvq8Bq#a(n`aXM!DSP;-7c<5(LyFb1;KJMHMJdU^7&m}rw&Q@@nz9|{M$FGgGD!|$E(EPT}j;!8m1kMR_7o)BB7Fo%PjI8XvBRknUGh}6l?7cFx$x5=xURfcVWRqlN zXYUy*=^iSq__^5c&M)8`nTQb|`do?I@aVJ*-#+N_{PPxA)5Qod}f&2QQIX90A zK4$+%L#tTvKd;gj@RJNg6=7{?%+#};?Vkq+2l&dYbCnruYk$&x!dq6t$vHA+bHecP zg1lTKvv9m5s+QcXShieW;|HrwQ)$okp=xxK=vvibgk;lzh!fOf$NEZzjU%FK-!LRp z4^|J2gnvz~I}G>uM9`A>{tbM!%Ht9jsTZtf9Vn7XeR{VJTXrjUzdyfH-rC&IZqEKG zWu-{VyIfyAd%Oq-@uG5a+>-B%4j=QphcZV@LYB!uEEn@K#LU^V^N!F``pJ9YU$TQ4 zYoOzKnaN{R{^dvaz5NJkU;Ft2S)O*2zss=f>9c*3QkS}~GkP~ts|w!nJ3Lj9Q7>Bv z4Nlq|S=gZ1Ir`OYa^mv0M6>1lwbFjRwEt`kbIqyvAv)>bjs3D^j{3YO#-{Fl#2rbt zl3?b@#67n4xODN~Usiluxlp550|&+lAR##Ztl~1zvrju9VAxr?*3ll`j4)~fR28=KAq`jB?N=9>>P;_eKXLG8}f>FidP{R-0R z1qSRZm$$PmdX^7s)BkLeeAT;=RN+O|0VlG(diARP!v{29apO)i zH(^RwVM;hs10=B;m%*PKq?)z*g(|7>U%JSoB!*jl{n5^J%s)=-frbC2?7F@{N2tV< z|IeN*Kfjy-ke;BED!5HyU|`VEA&Nh5e`jW436#z2v%#=0PU7pJ#Aq$tl5fXd1VJMxNPTOC`Yw~9hLIaBZPNQQBfW5QaGVz z9UUFj3Lm6y;s5&WUt3?_wST6R`H-1Nx6X!`DDuQ|yF3YD=IcuV06}~YK#1I=I9SGf z+}wy#H`a%hIXRCf786m>M|a#ME>h5wM_ow-zvVGd8qj>Y>_3z6KyS}IKZBp6M!!l| zW%Bm+hVsSgqN1oso;P3K-PUZxgqyU_jg*oyW_k%;w5Yf^)h&r;8h2KM#Yz+=z-DA* z#H&Yn!u8nN+FBER9bX*#>(eKEuugz2zrVj9fd~!`#+MDsyL z4qwQ&uAoTvC?}8E37EOM@*g#Tt3kh9V98ckSeRQ#i0sEBI08Is z`Wps>|Gw#82UbxQADhK+c&%BEexU|4`Cl}SA%db97as>yv77Vv&DhkLnwXf#hBcLx zus&vDo(;rXzZ0H|Svnrs(a}*PyNHzJv$C?j$jWM??N2Q_1k!Yf+yHTp2LGP1G4`9XjM+9PLwmYX~It)pOPZDZ}Htz zG@+;FYV~Lo5h6gp9Ni2fcTnihmz1zGiKFi2-toOa?#pY1_(P3cf%h&WsGsfam|}B= zqkM$%Mo(o6TdJ#_RWs})@!^s`c<>+~Fc2j=E>2EZsima_AMNpQMpM4Vurvj(oZ=5! z`}$kBVW^Fbjn_^kuVGlh*IivX`72#?_m&noq^GTjD2MYRPdux+BFqX%EFC#0oC<>uz<75*|WNxyO9#>Vz`qHF8%(b0>P6pRd2 zK{}=n`)6I7uCh90QMl3oCM4q0j}@!6EyMxmq2N_oQbO2j$tiSebd^4LBCA{ZEa!*F=mYEY(&^A>+5+XCD`!o=SG!rz67TyC+(Is7A>lUarz83Hq!=1QqnGC zhhHA{U|`4^W8HVG60lZBC!tasFvW$tFB>v#_tG`{VYz;CG7HyIzDbv_I5q5_mxe-x za))rE;WE9Q*^O@zTKkNG=TQK`1|kh3BO~oCEK9nEjlI3+<2EW!TH9zaLAC||JFNd= z$+_{WWfWG?1qNB#ZUP9wsv<_N^5rEtCa4O~c zF-C?ykxAt?~HT80EA~oGj(HFKmX<3G(-mvf8u#h0Dk(#|3*yPOir> zpMnUNQhd^(N;oY_O_n@nfR8mlKi})?TBjca0K=P+8)A2Ce*gT=;zsB&+d$xD$4yF0 zX-jiTac17X>E1LtKaWep?`H$A=5%Ix;3;bD;1I?f`J&Gp%rCF1CO;VTlkJ_Ke*dnp z_Jc`^G4U}RbBGAIC20Rf^a`x&FbIQWbhyQ9I3N0@QcEG6_eN^g_`gVGwmKoKl+EMe zy%Jxsaje=l?835savJ}%>MOMicR25{!_FSwGp{K9+mE_SvafEfHp(%TF(H$zlBINv z5a~cyx`Wlv-~N3??RI?yskA8rk9kvRKt~hUX50Ljf) z0W8TWn0s(3J9va2@u;lQ@ZA!WR`$D3T_X5o^g5qz;?564gmTP#grp1cu%@ z`#OEGN+mbhg>iTb09!vvarr4ksB)Od*x~Hir zZ64Nc;5`%74juMUl)OIk{td0$smjk`F7T^;8EMy(p15~?JsFjlxp(`%X8%~kLleP! zcF8A)p7jfbgd#hi*hJdnC7+kzT{7&@`=2A+?^3|adiMyc%lZ7=@9dl0OyZl1eR9%# z=_)+3nRGjKJon~S`qDia{E#xcfLB>r)L7;0}_#G%Yfo>6l zDM3-e$K-!9eT=wLhOf`;qIwkD+9fgBa_zIamKKqMr7Hi|7j{Cc&W$U3KDp9{jRu@p zyx&%B-e?S)UwIL-z(V%AX2bC=B#N;=%I1oU!z_`eE26>~oNN)pys0<JM@Zw8#P25)j~er`!^^lWY#%0T!rCb&HuXB76TpqTkI!# z)-Jp1c%K)lUY)s>wgMj2!+m`bXc6E=%wsE&;SyxS>?~V{I}TeUo+fNyjF5v0I^fxu znT50I$118zs$|j}wjrP0Y>%6j5J6CVeMXUWEfkx(YDHN7>V`vT@rH>ckqlaJ2bo8K zCX1D%q@=k`6muk2;V8sdxdOt7+*gjpW9I#2FE@t0xk*Fx%VS;HU0ht$4GeIyMledp zS^H2AfA}(Ua>_n_ycF$=Q#qN&?c`m>VfK2@ij5RU@ksx9SQw9}X!>_&JUqO-vNCqM z?_~3M48rFb?u?#fm)-Q$@8QrX6iRk}F0!MTPe@Emj3r_YsTo;2Y7|R@3azvFVP6s- z`{>+v6Yg+`e0|tD_n32L%y|`bdP+)463Xm|_TK21>$tkQ(zACtZ-t`=OM)6{Xn=EO zY}!r$zO*nWX0M!NYg{Ydd)9#nwvK;)nsoLdPQv3eF^&Q5(J)`W{DXGy7TfbrkXdRm zhggJlqm@>AST##l`BRk@n94|qiF1mInDg8oLS->JI@-{Kb_E3o2M3NOC58H?cW5Za zl_C!{bt7xeUJ&w2na+0ESd6r~viCwnKK#<%J#6FS#~>`BqoaGm6~yf)xMyDAHMDw1 zx|ZAM_tLt)!?Oh|IhQX#>aX!i_K@dHdtP*$jxDSwG3x_9?TX=E;j*GRZNT+%L!>L0 z`Qu<^ue8uuva(Q~NFaLf?X_0&QOJ70AHc($m+Zt_3~DplXAaz?($AhrAZs3vPuJ1A zs<*;bjS1M&o46lw4jL4X+noD~D`d>ry{koyZj6?F^STD+BT<-N>SpJRT0hX# zL=C+k2)8&eFi_s{Muv&_!_ieD8K((^8I&y2wFj|OVp~03%Xyv`-Tg=#2)rj<&WovN!7O#Wdi2I6Is} zgIQEk5}Cx4ZVNRg@)xzWLn|sO8kD9Yb1}0qx2{oOLb((w+lBSV^&Z2Znv5=unKxC2pUi3 zMq>r9GE6(Gra;&Gjf*BqSsVxrs?gx=gD+;BZ3Mkv+z7 zx!H;xYARbOnuv0EV#}4-m#xLBN!21>`&$3i$hy*2gEg|k&h>e(Nfg1n9n|yesL}Qp z^&jat>!Mladqy3sdXK3CXqvGr>wg@mNi3k;GmrVC!Mol>>)j%Lb}&s9(Qqayo=X@1L33*|8tpO(phD zV6l>sxeBH{%}mDpu}xD(xsm+zF_||1_m207_Sn_3wigx_@Fek(?GIe*-UU$hy&U^o z3#R`&LN=Ab7l*Xc8&ri4FY4D5b0>AyRk<>!@D zC&?z>&dkpKVPnJE96NHza=@BXw#oTtAcH&U^If(+l%j# zgJ=u7`^nbNVyA)jxAG(V5+5JWKxXnLahVVY9Rdff+rahHaOSUYj_mLD(KN(Y58s2R zI$;^r8-iPp$S+K@J=%r+gW04AP^0fc5euC&b>sHJ{Cq4dG5L9^f+;%zg-(|fY{gX0 zLe;`x)j}y6`~X-?GrP}eFhO4g53Cd{mHPC@K$TV3%e?C~udWS>>Q>Iz;P9+=6Yg+7 zcS-4QEKoZf(0QvS9i@0Mt46hp_|$l*)~ZW~=KNYZ^~HdVo;e8?COT?|Jshn*5K-8= zY!ZWy8m$LXImk}D)qnhLZP`GkoLn_LG&S{#J`4~U4^^S-#V<8EQ|OqOm^Pc*Q(3KE z8C9xzceS|A(;319e7y|Xt2Fkx-n7Zd$<00=ckJFz;jQa zuia5LzQUY!9TMw0mDw@}0t2Gkqz6Agh1!zXBOx?;+Yp_gr1iRRr#0X6-~N!$>OGnO5CHTgTC>U$q+Z6mZx zbr^OU7&V7w4ka`5)2mKnd%qar7pIFP|J>Q%Pf>QTh1TPawb~skvv)t~bMv2GVzlbA zmW;beN~&{`$h_P3A_`d~Z240Ga`*bYT`xRa`b~dEw#Q_>Q=*KJrC`ZJ0FV=IfRF_N ztf;I^+TPy&Gv(?*fm2@I=WZeZ(V#T3oa^%xO1gnLSB3PSUOyqk+DG7q6g*?#tLr!C zb&CB%dsA#q0pd!UknA6xG%4u7I2`1teZJtdH(#Pse?r96CHg zCD$|B)5iaS{5Co%88$D(Z*G2mB0W=WqHcL-HzOk|9CXwq#ntH9umdV$C^q=k;-hjg z6Z=A-4Tz?{!3AYjFaql9X;BAZ*t+od@))(CVVj$q!$iB{WUQ&LPwwKV8=DTmy z9<*;|oSbHex|c-d5lfTda(7aGgw;SqL}X%ZjR_ULh~HLg4^P9h4NlFNwVp11 zvgS{~^{X=&GjJ6;@NE4vJl z>9RsWLI4RWh=#sJBV}P9`q&4|FoK}WoEL+R6vx!snmGYV#0LQo&uR-37&KL(Stu5jNNe^a?2$29^)oO{-||G4FAvFySn|)K|SmP)=H1zW>MciBUzt{TBm@G(l|A zAMi2JpZj$L$nfz@`6RJPT3mGjQ1s1gqpNTRK%1E8!LQQOlk5%(#%*px%AVXF)1PLZ zLqdz|z8?H~!^wK8wEC&1&lb6`XPwPbH5di^ERMbr&nOUfD;PiE$7seq-dtOFPvt#2{v>y^Z{vx>n}N^ ztB7O7cW4+7fr?`q&=Jcx(B}*!OD_A&dFG{Nk@jX}61GgH1_#>#Mo3WpI~;rbASKN6 zU8A;z=h;@u9NW|_a9k7)w{)Vx=mTx{-TiV(V%F>)K@ zNYF!2>L~mFTCMS4^?0T6}^ahx3TVX>6F(m+DCwePWqR~ z2@fYV`9#QMMhs64|NVV)w6uS5dmu*!QaUYboT_h)5^6tqK+~7EwZCuW!>FGN^)~&k z-irB&SBFJo1aBN2l4X;YPU6AVL4mjU&26QZKaR=FC!J%XqqAYs4M0_}Qn2D63kLR?-*d@1(BIP?je{=pjj_v6Gu5c?~tO;Xs)hx9s!s z@0l3pFP85_)?9^w%B#$4Ym+EHel=tXk1rDwrZ956x36z0Ea30mB(UftKBjN=HOI%T zKT@sh-UYdQ3~_Y0FGK2UnMBWXbb9@IethF|;nW+6K6&8;ouCjvK1 z&nS*!WV;`C_)E^cV98qF4>K6SrScYXp2WrGI#%ABYiO;0{XqeD-6Ep(g~WY4Sae8= z<99k0{$z(smESnuOC{(#CKoy=ZeeJs5%3?D;$7X@+4+F9Np46vJ3BkBXL!gGHYNf{ z3hg5lF(XRBER7T*9(&T-+T&%b>1_6wz-YkQ!-oRFg3_e9Coff5{}gn5OL3 zq_o96?;i->ApQQvw{>(>z4_->X?zd#=Xm1hG$o~_W2}YubK1ePUS-yU+jq>QmKic` zvx*V&?;bJ?>|re`$)PV@Q@u(e;oWd^)vF}BrN=ME>paY7fHn>_H=vT@jv4Pofdcd` z$h!py8-0W4aoR#O6t2<9E?^d$s&`n>;--(h>vgmeEs96`m$;U8^1U47{>WG;{PXhk zC98FE>b}6!(of%lMR4MKESsp+j1>J{7s1lt*fba4!5_Hh0=J+S{>gjLhreM{qv##K=yq@vYY%&PH(ZZ0$~;sK7QmUz&bg8`EHQ zvG?>Ac2$%9Ew2mL8se_lX*mp7Mo3sY4rKM$GVCpJdkzk`hqEN8ryE6}IE-)bu`1K6 zkxlRc+1r)Eu|7PUe;ZG6CFNm(EWQqz)|7g2hLdvKP}E2pcfi8@tM-L9ZbTCk{+Tc8 z4I|&BP!v%gzbnR`P6(aJLBlqQxt}h*^NvZBm0^jvGrp?#>H0RXLp-v{TGCJmPyMMpG(Z@ zlX_h!hEY;IyD-3s>j_3S1Gc?|_$*2zf)os<i=-oMHT~hln#4LhAE)O zJAK2Wsz4qkKsGOa#Ty3~_b6EEAN?!Rwm_}?y{+4z^#|)i+b{AT^b;BPoEmL@)b<=U zX$dEvc>H`)8FM=EU6YRBDc#{QL#`YNfd1d83N?xe#bX8hzO&TnQ=U!1P?Fw}D#FeP zB)d;A8Y#GWt@9hshwHSt+QjlA%fwixJ+H)vN_Zvy@K$dtI@3y=#rl|0Edx;D+?aq( zUZ9qtSSumR+H;dc?J4119-a<7ynl=9^)Nvlp;oIbdL#QE&Z)DC%>ER7nr{`}ezRu# zM#*eKrzTQHvu4-$H6>#Pm_90>oO%~t!K>51p33g;QPJ9JbktB#z_?dcS67$NB^$zUm z-y5=-{T6hCnMdhv=HB%Y611Co!A&6g6*hSloB^p9m-eT%>Sb?!a@4<+jBxEQwjV9B zeOz$inJdeV7XGQ&axGAr$xLqDbg*!f?q3JgKpX3b} zw-@M=_~a_6s^YF3J&^PhH#Vnh`9VZEWnHK5?5mqHD0O?QhPXPQ8I6o{pXQ=Y5LZK z%gNBGTfHqVHMe)qyncNQA{)^&^nXREsrklTYx7%cYnh$R$#Q=(8&8~Go4?=JRRcH| zDteufi3w<9y10RXfgh4gf0rY_1PElci4phUxg%)I%%0#XzklE#JiR10(>ti1B4Yc! zp~ZR63&X*BFxjq%8*ud1Yit0FoG-s|9BC^VS78;(91D8ekIG z$~wRTfaM)_ss7#f)_;Pc;;VY#Kc7JvUy4y z!@sRXcAc}?h>O#p;jPI)Nx`@Iaj&9&JOK!tRRxEU^(tzQuEHn+*OjVK>y;Dce=7oq(~>R)%X8th*s!e4X*S5d)as*?O(@PY zmxnB^NB4x>wN~!64-%loP)uo-b_p&RMBptLp?O7T9B10UTdMZ5VVwwbU{kEP!IbzI zsF(O2tC7s^^YioQWg_gW?)&pG;4P4M7NmbxV-O3 zBwiHaABtayO01%Fr9~zl_oxl4tg1EJx}cCpC5~to7Zu$DD%no|1Mbh2qSN_7f-Ak*Iy4Ak-#2b z5Vy}Mt0HM#k|ct-IMg)UppI+fFNa+t6_0*aHr!=c>OA`3jRL8`#p(O&#u5T|Xy2CV zM@h`S_AUg6)NZ`=HlP_+S$;QxpLU9SSgZxY6PRx#rJ`~j2VJUj@!Q%^8gi@yebID- z6P?7#zf=iUBU(9@uFICTE300S@-M*8aP}?L@{xX%uZSqh#h4Q6`Jd_0UYAlF){F10 z2|^ia#aiF?n)Z>@IvN>_CKQDo`uXeX%=Y(hQ&naSj!XAf8etCR&euAyaVpBcowlPb z4YYp3%FO&?mVEpFYi^qB=s(5N$*sAHw=HBjk7(pPc;mb5RM8<*vYMteO(^8Jc&~_# z9`nAdUk~pd?jkkb^~JS~FB_q3wGNL=L)Ya#yLQ;K0|{+Zq0C@jRa6Rt$oQ8s}mM&V5IIAzKZRZq*H9esMNAo3XhaCj)x^USiVOj5CW6$kA~gX<z4xv z7mwRAwh3i!H#lWX86ztn)#GkYR%YFie;gnQQQ}|eF68!YEaPU~mn+e4W7YBeo$b+5 z(C41CTvFcAZ+2)RSoP}L&5yScD%W9yr4^EslLLr2ppYtQ0x~bVRNkfIaO((E(8|Cf zW6`S+BIzpSRZTbDE`ZA@b`9+OLkQNT~dn}MP z3JeE$lkU+p2C*h90;-o&RTa-B^RJ7A-9-IP$GWQS{x#!!AG%RUIB^>mPtZr7e($6v z%4xW>TAU+)J?8%Nr}eQ}4#49ub8yJe;I~761oAB4mq5h~k=qe!mf?W8%!OC`C!F%Q1`zeV!0x**o#E=>tp(E?d zz5o3-U!795+7QJ~=(@1o_SWSst|BVYrk*GrMb{ z^nYV}k|8wFNL)WST2Itx==o?Lf**TvWRLk{)|@&{%oWlMoW*I|cQTs8Fv7QC&K_hM zFnSYJ#C<2gfHQ1nR~BH||C;~YohGki#^C5_;XOJkM0>|`(b-ATpZl5PIhz*cT~Su% zCeX4Y9zf0o5cDzhQAL$7O*1+s=J39TEH?&7yu%Z)c@gpgv)3@l2Kx}T{h!2Uj$w7V z34KwQm?SB=k)haX-CwNr{74cV1H)m5XUdwal&hx8_)oj_Wz4UPV5Y;0`$?U=K( zvl_7*9O}T?CY(~t?=SYo)42%4+*rJVpX8zUdA0|iEAMV)*!)OfdBh3_yy9(l%hOyUl`uOHO`0h$yA}JMB=CKfnlpK#%6jUGm z>uf*J&^}OzrS%zMnElrpo#DSTrq^o0Go1#&K?k15zcL@4EOqTW#^HJQ zAjj&@s7bjRUTs!<%tffS$V3)kjDwJNFS0b2Fk2jL4+_7C+&VvIT!yA2qpgow`_>$=UB6 zsr=9PpU2$&t@JH@dMe61fB(zBS_yvrV+8)o4?+=t-@#}kCNDrP@L&u3x8c>jC7;ji zehj@v!u$R`0Re~VUyO{vg0B~@A(W%$j*|a1hJK)vD?`gA4*6GDhyVL~2qu3~Fxvkh z0qOtV=6^pP{dRDCoaZ^CHdF2Xr~Y^Cb-g|;k`eWiFu>5XEnojhyMAF*NHgw>j4MqM!#vYEIXN$zxWCL>2 z*8*eGU>Pz8df2gt81&Bf1{mNUo?Z`ql4S*uIey4aOf6}@oXHT!oExHd>HnK#CY!`lou!nnB@{5fb=Xk2mHI@);#L{SAAWrc*Nh=c&euW z>0<@~aO&ODTU_KYmo}o=Xg}I3VHzOkn)id0ql)$;MwK2$3oxLdO6&%JrP0ZQK!=)} zqq#RxQpH(G4kRQdq5?AxtQu%gfItc(31{v;6%`f5X_~{WpJ~aq7`3TOI4y(d8wejA z<)ibe<6WRMLI86DC5wz^MPHwSvZ|^nh*}99lU}~eee))SB!*eiM<8toMxX0x?M|;c zcdRGB_=d=1HBtzjQIX`=2|D01Mr z1pEdWDuKB-g3SqR4kaZe)=Z6J{_9Czp^V{I$Y;;V%R>cz1gRLF;X^JyU0m>N!hBaI zFV(`a4ioO|q9RP2I&aAVK_MY5@Vp-$Izhbc*gr!>0N(iZ>sM&Vs$d|TkvuH|)TkS~ zyUC)3P}A<}LEB>eqmzzwd3hN`!pXJk5dPs$ky)E00f|JjYXhi}ut*ES=u+V24pil9 z)6*#c%W1df&jpPyj3Xcg-g#j4N`O3*1(K`DuKhOS;_3*J+At93$&6=q36X+)7_vam z#s)LeY`W_OHwXX{C|=gDGSKGMVhW_GnBN(!1SuO7S{z4HCfrEMMaeXuM4f1Kax(1C zpFh1WpmTvyz28C&5rFz8;HdzYJaa61i<(*vG(^ZQLfXu1IpN6&e8Pk@O7vh9+ljIz z_-)7zoweItr=rx9x7YaD-|sW%|7=J+6Lk^JXz)6=T&dD2m64L_O3;(lz(>>4)>d#w zsnajVI+hQA>EdJm^eJ4GeCHaP+04>XWGhMHWeapXj|?hnlW;U3@kZ8Z8p-VVM$;Um}Nq3&4I86BC0qD+we%K>GjI zQf~q1GNy4HKpO<|vA}yYo09{p&fvwr&Bf)=H!1V8Zz(^rNbV{Ds+NOPXTUzyi zD-JgpBe+#!9fzI=2G9fgulLT42osH4SU3{){auP! zq48uOzzq#4fv=Eo#o@00Xj7M4SLddhr5+=T8r*^8*DMw?K}8FHgWWVIUicpD2C&Ah zd@KV1>HaZJE1XfvC}e zSX>o2s-1gSR}jwQymssZl3qqXMFy;@mu>53VD$UqcW;!Cf`wFN#+9`-UZfEPhx;WS zL_Fm?~u?V(@74lzQU;xvM z%X2;Un@C>#>v4ffnl8^Ze3R(Azt8ucTr=8Ei~jLzhSlZZaE_5^b1gF=H6peW>RhOa zx$oX3JwAig4m}@6t^RKAHSSoCuZJU*${gR04h>~IO;o<6m+hxlFP@d37Wd$3=TzTI z9{1kc-0avKE2N79Bt8~`Nl2xT#~#JknHjn`Y8a8GcPs}6G~i4uiRU)qZUVN8Dnh6C z0Awt6wv)1_c)&fyOKavTN9>*0@RQqpt&P|fLY_|ma-QKOZSB1*2B171L=5{MHSKu`z*?g-Jny*fN^P)P=J4T1*>z_F2~C6PbkPhC}41#KUHu`PIeMutsboYw~A0 zOWT@VrOW()P>RXzjQo7Q`6pQ?T{rJ2YGp~k{UpRlSzeqKhUnULSCWl@7-!`-bV3kk zZY1>qL5DTUmUCdgei5Pi4fK6w`2FDBU4>@8+%!G9_#$~pW;Z3wPXu(fAo_-zb$^j6*MeXnq?4<*0eUC9wvUHqwXnc81#+9tmfU^ALbm!2M zephHV77SA}$JmUKw3!a6?V2fN(8)<(UWw@@#}P5baG{=g5~9Jm_^43U@?uzYscS)W zG7MN(e7Cu1A!pI%MtnT})%=T8n6C$|NrU??`K*2YidWt!sRzF)6kec_zYBwmq8EfH za4CdcF=5Lj99i>|mjUzugIA9y1lD-xSjN+1l;u6p=u-c^b9oS=Lo$Gr0cD3(ixhyu zkHHe7tK0j=EmvkLv!|zr2aE+^$9eO$2C_Er%7so9G=bUS&x8a*ZWsb@L#Z!kTG{*N zA(p3{9|E!&26FFqj5^nRn>z|3y@s}iiP zc*YAjH$0%Q$p#Uro?aiCd#=o<%wIo$Le#rkcse^Xb1g`O9wmOBs;+01jXBw(h|BPb}?13;)5KRI1T;HWhiOjI|&!zTj- zz8gl8{djyEz|uZ&Wr6Ys^iEMi9@-#=&DW6mgBP+^4B}(3X7mwV1%UV6I{_e%atjJ9 zC+37An2&csj+|FtFKF+hQ#uYUvwe?hp^GfC$mwoxM}XA?RAD37M$Z{%Q7-niXVQ%x zC6uP09-G6V1Pi4wYse7gi2o?0$4ivT0B~{D)o3citZn&U$X>>`R+kP`t zV9o6+R@^oK%`U?#C!GkFIUG$Q8IVWiK^03)4x5Q64$#%1G(m=KUD!?8KrrPeQ-b)1 zR%8d3F>(qSFN4`%&($@g4ak7gD*uK>l~{dktvs~Ar7&MeMbUO>9U2G;32LA$KoPpJ zwG~;r{^yTBXk7X4+^G`dq9egrYjyQFQJve|`ReD?e#bT-eyg@%vqQ2hOVdIijgQ9b~$~BT*`3 zrn6$d*z;(MV&5&-DLwoog;#Y5z0Rtosp%C#``H(RLlu>kVSVO`+szCN3{cbn>K?n} zY*#alym*ichkpzc5OfQQi^oFEt@IT}mq>lxZG?eXvUvp1g8?28Te}WP-UM7Ub|V8H z!ukGGS1@K!P%jupi^fnaC!)AUdpUNCMwG58ph=^s?tii3yr{vU6?nO7BJ~7!>$(lm zN-qy!R856pkDbspIHh!R#iGGt>Ao`s#q{<1nd=bxki{Jyo)nRcf`-S*2uuWl2Nd;C z6(LD@k3ECgv;I?YMM`xalcLoe;v7P!UqPg=4p1;xJJ>(q&O0~yPF%fx;ooMyK*On~ z1XaxK!Z8*sPDr^(wd%xTvLXXHIeGTj=BK$i${!l`FnRC2+xD8Dic{|D;F2SpT>y3z zAU>maUzBRGA{!#8xImyR^Ys{3a21SIdADwHuRQ$O^*Mh6;vcL@^Zj*G>iJzFf~a|% z5=QTZ2=x6=U-G0-KWnJN2aG*fooyHU)vkEM?{De-_?rgwx}U%7pV7hg{XELS#nl5Z z4%WvADEOmc-N$C6r+;{U{ni6xV+k|tw_Qu}4RNvpDcaZ3WLzOW)7U0VvAvmD3k@$e zOPJ=PGh9mE>`a(uqyOm{AmVugG#Nbr?A6uX`Ah~hHuM?&{mw~HQ6ZZSTiYmKCl5Eb zoYvM%k|1WKT`y?F^q!2YuC9X2+xqF#nA-K>;o;uTS+%Zrh>D%e?w<120=@p{=d_Wp zi5vlL#c=4(1aF0G`IY^zb^!x|FywL4BU#azH{erkahKq(=gutV&ipxwEU%9kFntQy z_(K5T1CucYYFW_m(GCo)flLloPl9^XT$9HLsUM^i08aqR*61A4t(oSbs{OSXLB3e5 zWP`E)7)|m88qrb~sE_N%qxi&BDeTkQU(mg1K;(x1BDXSjdJAoAd3m{$U^6JZJ$LIS z9RYHL1}G;t_sWkSKk(6RTPD;qM}qoK4q8rRA8-GOgfhhZ7=7A6U@8rqhshC?%|9}b zbu~fL993TwA^;GukpWqKSm5B}Ovs*`o<<_X0q0kB!B!}dBJE^a}c7R{)lfVep4lM$$QkLNSDw+dc%Qjn6G_!xalaz@E&EhWmDHV(Se zZ9~)XU8_G}go-)FuKLWmiIS^6Ob3&-Py1U9hGLHLmmBypWh^?&e7}?qHk%Z4lCH7% zo$fU(Nf2F{SL)3 za+o_nJXc^~H@~1DDrQW3u@)<7jBJ^48`Z-Kg9tJMkP_1D=4YCD4VdlLQ1Njusew;} ztM=>R{V!DH?Sp;-8iyZls115YL!{fft3We8O3*ielh!(du0EKCUKZ5N0D4tByRE3! zh6c}$enK&4LWeu}w2HHtc{9VNPew+6(A0jAFv|_k%Ak%RGe}xvJ^1u9sCSvVP58>T zIsQZ+&7b4C;*r%E0itYv!H>UXCEL|TVrcP|pM6jwk}+uY6n6Sek1puz~SIXxHDQ{E@AH8VGc)Zl4&_3u^6~SD0 zS~j^2?x34x?9j|WZv3>AcG@s7(fZU+(meArs(jhAc!=P~Tuz#M^C!Ze6ulN#=5G>* zOWTqiF3P8g?K-==yMJs^uS2Q;PYO>@kx-GM5y^Zg#0I3%lxGBLVa7f;B$iBM!LyrL ztOHv(7K(rNR3+)Y)K{-`wRVLl7SDZKdlMjIw|pX(&~0uJcCEj3oB>IojpxVxHWzQw zuo*`Bo`RoLeb^XSRj_`fgCbnkhlkF8L-$Q9DR(}lwGbS>M&iPKGZiesy(42D9EM0p zBEB8Q4LeK9X@yT^j@=mULOSJJvgufpTJJrOo(adexAS4!rA4(i*3+@bjdrb-j27); z#_3uGUgM}P#br~=(+|P-9;6?a$c+{LQ56LHHQ*-z4}6#tT!yL005&PS65)qx--P?s zsCJy`s*LZ&!?}$t%v~Cz?D!?C{R$;dT*gtvp>!jS^)@@1fP9*YML7@i3eZc|CM^txi5Mj$qI1IY!wIqc6)bHBa zpA=%8qj@|0;&)mYcma7PC!tl=rOlnhQgamygL@ERU-{Ycx7a(KHxezCV4>PxO^*|^ z6fT6F$ICfPfV9aCT1-0pjd`X`U8F5L)E>w5ralGTt18>rg!Z+9b2fR{r7Al*YlQ657z_X- ztFOdB5#Rq}8Cta;-|Q8(wyi#DGq6qW8xE_BdSL0$FyO)PXM@sy2;8An7d>c#>xY91N`Qca#r zyva2L8WL(Eo^lx1fOGe5@t=4Gqg1D90KW*4Uf>Bg3bf2&f2ZvTmu5OsVGCl~`SMKk z1Nw6kF=LJ{l06owCl!SGjf%d1GI>{+FnNi17vmiGzKK2Jt6%;F)z({!ftMj;SG8G* zL1T;2VuaLvf&PI3hZjw<{Uyhv1YD!f1fYO^ry3)R6mJ;n*+N|2#0Kkii#_Q3tSGC@ z|6H{ocTnKs)!+T%s~^@?m2H9b*A|^4uf=E<7Q!qu+JsvprYX>3;fL~0+xqZ4pQm|Z zIYfk;Sa+v%a@jELdheLB%Cs%(#Nv!Y>Bk!>A05lO0-e;Xf2Pag&gztR(WPB4V(;~} zYA7zof|3r-Zec}7N2k@qfVT}z*;|+;-4|&KwK`J#3Wg=n+fwR1QRhs_1M4qxB&w0o zeDjw>5TaxjrN+7`FnAUM#K9TXbvrddC|DG6V$nc;Ylbu1U;oWF9_Dc_V7z z^xS$+5T_H#zC4C-Ha~#h^2-UpD&Sz%!!#R4r5$V(}f@qnNvN9ZU z73*Cmpmm`}_wq6h>k0%GMnS0ID~`H%|G)slu8_C%?U~(1XsI<~f4o-*qL__Dj{7DH zlsj|A}5DdkmAV*l+l1vkJ$LM zIxRncBlb{7=g5>@(vU4X8;?aeYP8s)+72q zqrvsM7W6!FUdekc>Mhp&WH{)LYo=*0G48VsUIkA@_G9{Vu%2iWx1kJ@%YqCN8NreYQ@RhcXsIZvqhxWEzrW(i8m6{y$a)H}lk|u#^TK00RQ^ zabQCtLJGv87|MJ1PNy2pvIG_k4|tz8cMv%tU!c}zsyk*P$Ok_zF4+C6(f(g$UmaFe z+U~tc5fnj@kd#IQ1Ot(hRzyMrsR)lyq#BmX!SNg){Sh z*PJugIcNQ`iM95MXFYlU;x2`lLo}xvg6;uWAdoT$RS5wr+(WdvWmHtojb2sqEd?HY zQ!$eX)f)3bJg6VEFFc=4vP7EhqP0IL{}27Uj_J_6Jb#D{{8?bF4iTp_0I5J?gJIf%@6WLb z#yDu{>HXTSu7}=JQX&PsCvy2SiP8%Q+e7OHER%VuvbL5M*bko;Ht&`imygmG3j=Wy zh#+u(+7}Wf+g_a@_oJtCCqcbdZP)MPRJ2qyu+<5A-d6A+vPjoLNKPQf-Ch;s1IQ+YRWb{EDFF&^q0TwH!P@J2}CB$kKlMey5N#h2W{ zX1vuZw6nBnotRAiipJDo^5-OTot1({tMpY^B7w(0RtlPbX1+E4x*4NN3Ya7TiH1E8 zpg!mp$eKm~tD&&?%*WfRB@=w+@VC6qq6P-xoEihwW$1qx>`-%RScgJIG@+F?$P z#wVU-QZk<;V;6HW6={Xo~U&bGsz5Wad=z@qv5hl#_oGbtll zo`Pomolf8WlAZWu{zrFW5Pj9!xP3ES?vjY7HJR=BTpvVqcAuW50B%5rpv&WoG28VIEBe zTZ~|7rqQdZ?q7o}lS*C>PoLbTW2*0O|3mw}2@7wvAj*NEuSs(KC3Uxi#k;FHYsL=o zig5)UPX*XmSyxBQ3J?Il@8jvn&be?>!Q;`3M8F8_6(B_vaxHMuzrmC8OKoHc47Zw4 znH@Xj4$+f6BcHu^edIm>*~j|zMT!Z*tHDjrQWFT4QLCkIj1Y36y()SMUksR>x~`iK zKiVR!LRe~b%tamB&)kM40*Z|==(Z8>st-9TS?`U}ble6YOpD<>c27Z^y%A|2c!Yt3 z7=~IPsf1UjPF2SNNOvnK)PX;M+|(KLoq%M9&oM=sqP6FI8s!}XS3?XW!as=NlU6@{ zKBSTmw3%^%Z2r#C$8!1IUUT~y$yi$Bsw4vO57&cExNpkw9NOrev>!CY6c0dO2x=Zl z>=O(njheu2mSgP?uDJ*ejcSevb0H)+coNXCW(eUHRn^}EGS!h=-&v=3Ko!|dxTKUE ztBcB1ZC}k1W>GimXegIIjf0Xr*7EGc@;}U|dAIcKTQ+kAgsm#J$DPB$*h!a7=~&5w z$gp9}B9$!a^pknHc3YR*41#>B;+XXJ?_Y)_nZ%VC1Ku3?I=vQ=CehJ*IxcYUZ3WV} z%x*D8u~7!FcPZ&BB+)^)PD!~v?N<;w>2k#U6>Ab`P-|+=_pAorehrQ(uCAtrq`3h? z++18OFi$ya?+t5d5EKD9`E>PIC=ms>G}?t>t?uFW_4(90Ssz4c2=flfN$_0evZ)Yl&}`RFkw>t4XOmC# z4}Jl3$eLf>mcGhyHw)$i*pmJC_wyZUIj0I?!17ehZ2=vVc*DzMdKQR=#;+{weIh(? z2u3U@A!wJtw$^H% zLwFk`3+euG?HkaX?%41Ew^&(M+xIu^i*akGrLbLRt300vNQxVg$!BiNPUS5Sp-={q zV*BWp!VOVMbbE^a zES+#n(Hb#w?S_~!lPCol*=z8jS(y6@smf-JmB_4TT2J4QJZ7_(&;(cG?2Lt2qde}i zwK4Yc|sW>r!t1~(*j*g5xUS5y7 zRL$lQsiSgF@@Swg!b#(-T5iPDnR59#rMkXHVT)R4gJ3MRw6vUEgXTD&kq81gSP%Fk zFmvdlmN<~A$n(B!R%2|FY#GxsX6NjknX!H)C7f2|;M-QHlD!DAZ69oMJ(8P!7LeW! z(kd{WYzI!Fmo_(A9sH0404YC#f@M44}MmmF_ccOaz)nfbu8x&O1yblH>m9$8x!3*r=hWw18=0Su4yGYG*>BLX=V6U zeQxFXS$4&@DZ36U;`N-%g}nhwAeveSZO0uOVW5i+GeBa^qO`$S1v?p?c)?h+A4I?m zC=zF9N>h7VIJ)$XqzuEtMMBogcQ&55r10{Ir&9Ar0&1LwL+bH3D42+W8?1_m3_zGb zR`U4d8!=pA3UdUIiKD!?yzbaXb~tMKWvLo!n)P+pIcN1##cjoRyT&(S$fbDm9)_^Gim4~6FeQSJT zA|`b*l)Ie;f`WpWL>1)Z-YZ31TQxr4tOll5R2H;!bkeY70h~*nSK~8qPCtJ9v|0kx z^+AD*k{YmJkvYrAMULcft8#c0zb;VC7H#}Qz2P5A;2vjn!Hds% z-8y$}YVCya=gL9B^Ns)ow;O&R;|U#qZdv7+unHDHA4|9P4idk}k4a>S^ZlmF!)rgrWauMP6RWl0Xm*v7e!c3y=&sStJ@-FnW|9?mb%< zeYTx(Tt`8)Ir>i;Ig90b){rhjdT2uxMZjQNKnqsT{76{QaPw zXB|NPd1)hmhIPjkI6}&bs;cCslF)0%^61Sg>VqbP9HFG~Mdc4J0E(^78>IxO$}w-k z`g;s9lbdIIm^)LFCCj3 zn^ZwNc~Ve#prcAk#C6x^#}^SXTWf@>x;msmX9cFRjITD-xk1++Y+yk^>;CxDK{C$p z3MI&-FO-y)0u%>aNuc_u3uu_2p;DTosjkhgVwG>1RAgPG06g+khW3Z-{xEkJQ<5ZA zOX=~fhU~@(`paHoxgKrw%?|RXXXdmT?(=;d?+y3@Q0-8it01i2VEGtIFG`%y9aHF@ z0&>|PATff$2Z*A$&wlM<8Ln2$^^hj6z)5vw#}?yV5(<70ax3dcxjIF4LJTlS!Kng* z89>^CFs417^xFz?8kST08h9Vw1D=hP+>MA7i+c#`JRoh!#++d7P<>hWq>~)###O1&!k6UMZ?{!-}aUA$cN z?8)O3>kp)O?swwRnA{50PrnUDD4Ch~fJ4DD5^N}e5hZ6X`$h!9J)kpE0 z9^M3STOa=>&e~TeAyo$~Z~TD92#>+prPMW4SuL4T>E73Alaavq_B-si8G0*bwv)T@tlq@xUbQXK5;Ef#%)~jf;)X^ zUteGQotG_-KX$PC26$(M;`FhY0b9FE35i*7a%zxDc0z38;ln~kle<)}RzaI6QD||A z#L-os&j90IJK|xCTP;dCfg7a8;F-y+V$x+~+uC6Y4TILquPJ;>I)3z0 zDNq+uL-*WuC=*Ea4I>BU`~;p7j)cD5X;25@3v}u1^5sS9>O@8-qxZwya-0&CNp6r1)?H4IQ zr~*|DFhc9Y{a?Y+>o6+-rhq3bHiykyVT#u$f@$redG$P1iLkgStSp=3-tg9f)*q)) z?{54@6o}2A)h|#`Z7Ngn=^?OYgndl#A%X|oZ?Ul(^dd*o`l>xkKLd6KXW}&44PjYO zQ1eq(wd4Eto;Bc2!71Cc3507&{i!g}HsOdNUrpz3^otM-pz`PibrrGevod&*1D zi-+KvXUQiuQcvu(26IzT6W|)jS%U*Sf*A|R+huTTQvFt>kj?#;1KtfZ6^st#valCEi=e zQq9@juyy5)&AUHXNGu3)s7vnCItfId)Zg9R-9&UFxGNHV#7~|Kk3hetUG<#fr{h?a z9RxtkqmCKrCLDX8=~N7V^oVD7s7?Fk_yiFi*%*J_*( z^r8cHX4mt&c9!g@>)gzrO6seXlDk)2-;@W*-6+#0WLH>SEJi;DvrL1z8j#WSBnmK{ ze0sy;Ydij3>yyVcXcDgb2*2694#*{C#%U~Xfg5gQpHFF=kJh3yOIiDRm0mqMyeQqq zVoFujy2eHXV79Bt&V$wC(cw0kHWrU!7BP-<^bRLh<0dvA=|6t@Ye=-N+n+zbJ7t}F zf>;4HaZ|*5a5poCT=$9M6bL$R=e_LCNe16QVtSENeg>EH3_D}E)N5aCCT?e}9p`pF z1rw_`M`I13;Y?LzpMQWZCY3t8T1I1qi>P_nLtR2>^jzPc%?(jeX>!{bVW<1GLY%l{ z4Om>A#NtnUL=IPjS>wKIRR|hY9$^yEiaWm2Z;;a|sjE{uEl;-u?FKDsXl>m>yB!MJ(^*mMZEMPK9+W}Sw1mt%G z!hC;QIB3rPIDP4P@clWQ&*zP}v1-Z`1GpC+7&}HQ31e)}laYa$@Lf9NcQYv|Jl{{r zOw^*U!3ZW}Pd=kBLHAppm!;}@t9PzBfZJFWQ~gFdX!{v|nh;NMz#bqXK*B?4$iKCE zIdhf}sp}mbP3Zdt-6RByGTUt`BtPmCm5J&B2nY~%Pr?9+VpKtD83G#(a}0(?GT;J#Sgw?h|n1bI6%We%n@2|r{h@ngoa{I=Z?KK2UvHM5psK$%X;`gk-|uu4&QvSTbv^JPohS0IxH;JfTEN6{ zhN?W>9WO?*@=PHhsiZ2kBMQU3^CNh<7?4i^c?kSkz%UYg%Ak_8N3lUf2%NCsDll>x zOS;4iYxv!R~%cdwfV4nK7(&c|A==mS? zKL6Q$yy}DN{Z=Ramy`d?Zlqw4?f*D&y)=IsP83Gx>Q4N6O zs9uzpgwik@fq4^B zA|>M3r@&!J$q2rOkIE)5d(Y?ZZ_@IZ_`kjNze>Qw{&$5WRMy!DC!#$2`!%GsK%6gg z|3X}Fq{OkBm$bKNW#=jZL%gW@BjjR#mp?hZd^pq?&3BS;ZQc*BrM~%4=w{=1@YhV8 zPI`A5_7JGGg<+xI`f$BF1uw6Jj8?>DhZIFmhC4OBYAX{;^9OsNA8LOVau$ab$NX8? zEE|3Ic%o5`nk3#jg>LSglNH+;vAVmqs54`>Xkm$W*O6MlpP6d+SPKA+AmzH4rpFCtbZX|`~ zwCb-1kM~2s*aBB9Ti5^ZKa;V1T`ub0`~SaS{4VcWfl}MhW!S6w_^(EjeTN_|wzYv4ySInc0Eoi#~t=4On*X zZ87puv9ZPC$G5;$KxsgVE089h>d))}yl)dxkG3a#8XPT13Ig47P; z9BM_%&#)4hFKSS8^dEN7L&&ahkMM=`o)vo6mA&ISJkZVy80&FBN;Cw1 zRvecOD?s3o+f9bSNWC7D~s11w&&V%y_r#I39 zNP7Fuk$K%5b)%~n+13iKW`!Ga74{U!&0^Kh1R#`XnH z15%LUwXCB>!vF?Wg?=O>SO6Gq_uxrgt)!Y6IukOj)};|CxM)!%pDS{A+0vFkCjgW1zAD3LJ}CM1aN ze|ldqOj*l^mLCge+wpp*vd-g}$szhK(fG?oyIJ?jq>MMt9PzG;24{XWdj8>Tp}g6s z8I_XiH{YULH=?gS$R!A+f1{uAY0quD&8qT-KZEG9Q^#KPODoY`*Zh=~*q<&h(83Dp ztUtPX4max2QA=2QRKh=VZY+OIJ0nWX8jOP3okvww)ipjoaY_`5uyvqWz@ds#k4T&N zTozl@Xz~5Am1hGV``J#Ww?o$B3`nf;Y@$vFW+}MXWC1|Xaz_#3bKgA)vzMlg&XwhA z|EcXHGjl?Mz$ZJCA_tEq&$~W1iMoP4ITI%Oh1#+v^#Fed!MyM7(w;%Uv>#Eh<4+lqYC1ov;k3usm1>2O<#Kb=~Oy_Y>w;Kq! z47x-!(bMNC3ThBUq%govdqLlveakm%1hbS%Gs$3tcbhCip?VO$WqP((a)^@y-Fw(7%%CkaCo4+^=#t^Kp|{~( z{PA)}XX>;;mjRH5Rr1|RVTK)9w^FVkFJGo^mSWd)+I91ltwp=$-s0@6VbIFn65@Pe zbBG4Y#4FzULfdDyzLjOw)z0>;kxs(`u|;1(-#0h5+{#UAs@~|B&>bvX!~}%;=PFJ!EfOTrPdg7*PY=jk8nTyfpY=@Ny5WP z8=;Njdp>n>aY?eZudaft zc%dXK9rX1lMU9=ooBg?l8FgN%WlDyAR3V{PcRTy^+6>o~^+&-%P^t4TxZpE+!&-uP zb7P}KhB5qf>#G&=s9>oG-HtgM1!@D`#KgqK5J^TqmkIiabZzdzC^QBW6BYG!DN)Nf zSi>;5cf%$ejTr?9g?nM3IpeHyi&7$uxD&Aws>zcEv z-xONG;1wKbs6Mh9yUCwA@bP?Lbj&$v)aTEi!OSD)U9c`OitH4w=8c50q|Uh!=7Vuc zTZbtFI}Vp*+x!WEa-BY{x|Qt+n#QLVPfGV&a<64E%2Q&IgtdX57I1GVO6WO1oVrY1 z8}WiAr@nsTyhzMPLq2BjE9=2oF(WLR_O?MnO>qH%-IQ+(`EpuYrF+Qm;K@-0v2Ta2 z|D>46Sa>^6Dvf%es(L9&KDVkW{t60i2{l#39R6T8CgW1TssSefG`E4TU*FwfJ|0i- zJyx^X6Y}7l%63&IU%_S|58{ZHHEr<3^Tzsp>Rlf@O^tf(;0x%zd=-4yKB%}z3*fXSNyq(YAHJ0!>;g2kY1k(lu5$1GusY$xo7k^;#m+@CZu zmf@!ZGHF%H=`9YgHPAQ8A}@z6n4wGN+FPJt3=9mA{&|Y0(?lh#mCA!rYGV^UAVDJ~cOw!tl~h#oc6tSAs(6Q0FQe ztzFVlyB>B0`*l%~^7rSOaD#sp5lcWibZigrdeaMv0qLw@e%?rm5$OsPub{kTq=wD& zJ zRQF=JA6~n_atejQ!@0e)6STtUjk=rF?~OuLEZ%%VfP#$>A3i)Lr${*92g#)7b%Jh9 z7Hnh>y!(HALS=#N_b0(cc@?6`uct`iYwK--@J3M30#F`Q`zhxr$Z$M9O(SQlJAGB6 z%-ZLgYF@kz(943a<8~?T2OeJ-4+p++d)3OH422?ye(WOchsMLASY7cs-V2Wd8?Jl+ zueKE6%BT++4S!z){)8+2{khs*L5z>mW(;|loB5TFnwp6W_2FULP0SrE(_3v-X}nduE@R`OM6T(f}#oVo_i{dGZ8TNl{ko$&+WrPoALQV4@?R zda~JcMPYGvm0{ulP6-5K5iD4j@D4Rx7N1yF5-ZrmJR@&y_GmXPe6@Z%}vJI&R)?E zVy*25(y{b&v=p%dNJ`L&`2djwoUNf2bUw~bE*?N1alk)xfym!~A9Dfd{uu&w6bJl^ zDSb5!IvH1pHJtz_ABQD34-cK7ASVyMfS@1`I~^}K4=)!t@)G3W;Rgx`0(ph#{{06) zt_HEP0cy$0|9dUuojAY_3Uvc=ad~@tb9(b}xWNCB)thYVYbo_m`r@TUSr0H~`7%zqa7)_CI7@JpL^vq`I%_u zb#?lW6gBKzp{^cwu5NTP+Jbbi_3T}&T)jP5{u!^P22^tKfLgd%S}Vzl1CSIr?d`3A z!u)a~LPApf{Jg^QJUnvz(z1fQ(n7-We0(xevQqMb|CuZ6YU$~0?E?MJT&w?`EAU_E z{yhrLZpf8ots(Ya)>iTmS7*9^whXlY@4WE-S9<@RYxUoG;rp+1xsc3o{Z;J$rRe`W zLY|(#KmX_0B5(fZ;9I*OPdfy8tQ{3JH=aDj7FCj!((#$!&%!X*0XJWD7$K}Cv7fhn z0I+F=xLbHiU4H%v$jhxE)%U&mQts@z=;=+EbfkENyW=`ch7UVg#7>~9EA zrI6PdYN!G7F+AA|0l+mH(r0o8S4nk39e+pRbEC zLq2?*bIMle;gy_RVC)hN*c|!f!5#4rpzqproO|U z-j`;-lw?n8?3{C)ZjZ+#Zk=#-FA?a15dr)G{Nx{(EnVnn05e7=Rc*(FFLZkFQMQh# zEC|284cmx8GruXJN*ebA%YprCTgOSsEz@%Qp5=EuOfp8)Z$;-(y#*JVKK&Ac<8KX~ z8%nsOpyo)%uu0K*`<=NpbE$`WL}lU*FU49Ud+TMTVZB3NPZY79MJ01%Cg;u6ncCTP z9fI_uypkNzbAuFo80BuD--2#AIiL5(orQ>wdO3$SpF(^zffO+v7YgXZI8i7a&W5iS z*|4-^_(pWp6C5V^Q<~@JOqqQ_A7{OUQwk-&1kQV*lJz&?3XVC27_(MK*C}bHDSuKd zQ-QNl*VNfRemrgb{cRE>C*WdE7!WZAw^lViGWBgw5PR2dGfEM}eClcC`w??L+-GYp z`RMV0?Z&RL@gZCy@H_|KX?Mu)SlLW$BS|_ZzaSh`-q+isxIXu~ruAG$?VKz6q&eAL zOsIox0iOB&6ZpJ-xOvO_mU-Bno`{9E@-=N@qTbJg;daL=qwCcx5_M0{f9-8obv3+Q z$UigqW#2KoH&1uX8W}|82Q0ELNiY;mE!qGk?@(`7QCylJPot1Z>%{O|`Gbs!tp`x| z=#%?5Jh7DOtr)KMv^UYiTl^s7V{y=T{r+k;37w4hEWrhe!?EeS)+_O9KE!<680$7d6E{Exl&2$gOF zF4LWUnnz_ZiJ%NYoCwFw-@_8V%$euEliNWkbowKqwm(}I`Y}U%Df+wl zQ-~o%rm`{wy5TSV656t?NpWhGhuPS`VZI%e)fV5rwJ6Z`!U;v}WO?BWi3}yt7HQO_ zr8E!)YV@hR5qDz{Y6sIMv&ZrP!`xW?+41SZ!|9~kj~Kn1Ggc&j(Xi>2C|yd;%-h9| z0@hp&CA4@ubV?;Tk(tKKyj=8exk8N>iesuR#KJBVO~v>ZiY4<8>R4S-y*L;iCy>*v z^>g&%PL03Ol8FAy)?Rtpv@goU1VAj5e$$F;O&I&;YXOqFfwPQOxaM*T?#>NXq z5+&Wg3v?hCxUt3(x@&vPW+LkmHHf23<%LaZyt?i>xf5>2**3c?ZT@jC4fN{mjT(X(##X7XMxz__aJ^+MtM&3k%vI^befNO96LJNCdZi>y6ls`F z(o|1^_QBWR>f;M4!@U+q2W^gL3S&n?X=+EB$I>FWHFWNoQN%rzXtmY{#l6XU3T+*> zfK6qmS8omN8yC2C6+y$p!`OomP`!kKcj52`g^Fw`x(B!KPIRU`gc6fTO$m3JiDZM{ zeO;$zqW`U0+I_P1dTzFNwbwi3TJ*`j zl+&b$vNP4w)%~%=bd{(sv17qaX3D_)F=lWww7t>q++m*7(?mw5+fo|=nkhKjEvs5O zp0mwaRLu^g*%AB#dq$5i={92+FKU{wNZv9SYMCnnRw1{jyVDs zk_N4Af-$GmXhdf4p7)>A51*Bnm(%K27<$%k1po_Ky19?cK>$qnRVs~3yDNi0$@+BR z2&OVfR3G^cVn-x>%+=yKm}(izUzZLrTe!-h;kF~dB?FPMLb!vV*QY^R#_E!d*Qr5t zXpPc+nNc`(i#s>xduA7{MZc96lD)i67=Nd$OEe~x`$yR_6^Dn1&&e7iPNBthuibZ+ zO@DyiW*@&nkt4ID7KzopAwZ3aDaa-fI3KXrv(4JY5()wf!mO`qa^pCvA_v)pWjX*a(TGJ?)N_V?n~Pzwv8)3rG%|d&C@QoMn0_- zjMsrb&k*S_j|P+i+gxsxGpQo{{(hoy!i=SKeef&f) z^di7&5w0$I4<&Ps*bR*F`qIo|Xn!utBu=QHj>`Kh(yo9$4F;kOVR!~hXHiyPtH1Gz zJRvyzs7=^(!SjxMI7C;b_xKJ92>xPsH$?82FlARzHGG|X*3mj=W}r-Z;Lk%pS`$Ws z^BMsRA->uP6UWAnyKy@*Nuyj{a}&Ps%jUx&hFGO5?)GMH$<}#U#32?w_na=^2{( zrq=dKct3cHmk?i+bJ@u~%N)j&X^UivCTpn|1!f{MV=OHym2ziVsEQP0aO=}mbDt|Sf;)DkMiP3@}m$jf7e(v*GO%`>vJy3E-pxW)*VTQM=Bt8Z@e&2zJ z%WL29(oK7R9YFc3fF+m4s$-&Qi)zK%4#h%@<$?A3qwlx17Z{p8xwS~UFM*63IS>-? z(iTP5;p#@8Dv0hnbcUq2e4vsJqS#+@(PG*Gp@ z6kG^j~T*{ zpLwIW3mtQ8lhwLcvh5W$qtYVT$ba+q9U&;>0VV=Ml*`UeM>Y%TFlCMr=~Q3Xx!?;3 zJrz>DI8mRg@saR;X8yO8R~tnqClDZCk|0IM)J`S~W|!Yl>0?~(RL1z_aC|5T%;2MS;Sd&6|*7{^TB?L?zl z{5=VB!ze^;Zg{um%XL&L^OtmyuMvZrLG|b!Ghrf}K-wiqU(=~q z`No{H`hZ+fAZ*Ij$jFH6I4(O~wdf_0g$)TZus#rzcj@bfY11lY9U}d|TqF5Z)*o3` zYabQ3@g-+7w3pt*5NWw$`sz6>R5oQciZl!9mse2Tfe)&Ql;LYPO=WkqbMH<&XSo%C z1imS4t}~_JGG zKeLrBsJFnoF?h&)P+iht7SZtidEIM{z&@ z9y%=6&Xo@5y;KSR4F1=4cE-$k*?lo_9{T$wb$2$&v3u~siUZMeqgW* zv4<`#LuM{sW{1azUZ5?#F8(bYj6xsp;Dl95#6kxN2vD6;V{zh0^5DOV-icX|f5SUQWa; z)%42?0-W7WcjYWBjWWZKiUfA&6~dR_GW`g87W%FuQF8wobTy;&rQ{m2`PyhHxRd4qw zJA(5MqLYf{)&5FIdl(c-(j(%NmH@)$8BQn5HsQGoy>Dc^X;*}=t9Duq>tp>zTZ(xL zg2jy3IiLFfbY-z-Nnsle(mgdN1HHicI7yFMgllR zh6!s_&*{7XE}lF$W*Qm>9n|0q$(zvo=b~|0-K##bnn@p`6qVst^>a=g-S7ycv}B1E zV*|XtVcceu;sWpjLO;ajDS~=g)R+7gR@8}k?#py5ST}?Z(ZFC8-)x~BuVppQgu#?sFx+xB=H)$^6EXv>>h{{!rP zcbrWoxKl`JOyWQ;ny3n{yoCe}DFggVYXbgG-s=%3o+rv`s;CgnITaK)bq^ z?jg&E>3uT_B3qyaXPG5K_)BgBI6 z>V9dBB;;gp;Lg+lp5(zBd6@r#b_S`+#pAmZc$hyM*@PQC4LSp9F=#6^BT!`9dgM8S z!L|eCw8jDu-Eb_CCiL5TXN}Ndg&9#vr3bY0?Tp8rot>ZPBuYigVHaeLiI@k~_#vzE z>3GI&QN4L?``F#fi~c+hcYjrGWj^wYr%169fq?dJR6727T=4zW>-0dRpVIw1tmlP6 zWocOzrSH|!Bm=7{b&N{ zOK46`PkBPpLyR>gn3$`+ETk5YRouDVMI)Mu(_jt+5s>Z_U%BA(Le6Ed>c|mR@NUo zK=Z)B?k#;|c~T>XQoL7C$EXWg_r6a^ttMyiKV||9H?7u1egv z^eHlV-uMU_V}aN2K7~@jrgDO(1g4EC zEJk7?4#Cpzs9=A3dU}+yD;eRycJM9DD_mWT+lzy;GS&x{4ecHkbTgg4FE|Ib@E>!{ z>ziNYz|)LoNB1t)z0+6-(~YD|HkDuf=3Ziq_4I=tA|`w<%`OH-SIZHNQ2!jgx4Omt z?QJE(k{lk`!^fmz9Iu+c3J*+Ha;ON!e~2#mt}}n6C)mmzx6xZDHn#cUL_`U`wRE{J z6EB4}FrjSZ;c;4cHet>!b`UsBFtRo9ydp}%u;Rz{KyHqt_cyjngu_KnY64SC|u|{@I4dQCYwIZ=O{qz-mser$42!ldi z{6^+Mwj8owK9ZMaYWZaQU)3)^k}MnnFehJ)-K}{yiPxN%;uwGyx~xODZFdAUK-zks zF-{^L^YvSQn`-oK%BxekvzNhn;Cn4)o%6?y?TJQ%zfmzG9QHu89$1=UD_D>Qi$;tIh z-q#0WA-i1C6uUkd4}HsLdcEqL`(#qM&z3Pu5z5QNB1lU*Zy8S`4(v$SqYD8BUibu_ ztUKl$se*z6zR}M*2n{Wm-Sr%W>-=nl?l5zeSl%(yN$5~u75~8Q{jPH0WW}75sO(lZs-Da@WQh%z@Xx2c@FKgIO(y^L6JKpb6 zP>R~xTKkCCD5!IXb@T&rg`y@*s%hL=oF#@u_oD|O`p-)$xgtyUvhkdCiFhVrRrVj^ zIoqqmu_x=-HvBWszPq+xsZn%uC(_r8|IJcZB~4{?ux1E5AFSs(B%L!LCKSDm(au}Z zS}K_^Zv4dV>HH#|rtzI5k6sTp2g$M?MHf$(jhy2rOImfoL+KPR??NV6-}v=>$Z{&v zllu16DoH!eG8G~=lHSnZ6gU9i(y~EiL{R@d{rv_S2sd;opQl01ih$0OR=H92oWvwi zAv9rmFq5ochyK+2hc+g8;X=vy>F@!$%`K=>J!C(s^ST}Hg~++AVgP;N1E3(g*QL=B zTV5kyCQnwwH@l7Dw-k!={`5Lb`=E93kG1TtI!gbzEyQi2cn92j=LGGa7q8z$V=U;g z;|TEb{=(T}EeLK~@W` zNETtNAR@-p%&&u8>7eEZY=1`$i3JZ6T;AomckV!o#Ky#9C5;%WagsOmL$6qUy_9$l zQaV5ReYhc4cMUXa^}kGHCUho};)HCP&z_%cUiMD4@m!3?fL>18UcoVQSI_6>fb9lTpORcyeHQNpG0@QH}ejTF&Q^ebbr z-FtE3MEg`7gXH5*BofpZAUNUH)&WJOac=kqk`j(yH^a4E=llaURF@;yxn|W2r$4PP zp2XKY2e6gn*JUqFE|LIfqz-Ox!lhFzY*wqVmGnQa`B2=OC9~hs2e+~Qj62SX4Vsq% z$w5K3V6YL2oaR09{#yfuR?R*-xyX5z;S@2;!AzN6YCA1`G0QM{4eGw<^3D}v3l*Dg z-9E;CeR@h4jzlo?+3A>jIEw=%jr-TK329-1=28mP`t8MgMRivx7u3*Hw(z4=&sDkfj z%q7jRDUg-A*PzE3tkrxL>4;ktWy`KcuQwHfH{6_L*E3@nvYt-7g2m)YN0dJy@Fn$$ zL!%xUpFPf^WX5S(xfi!yaHXu_C65c%PFdoA>TT46N-}+!lk?{teToZ%=G96lemD^! zPm`PtTQd1b@_<`;vyDv7p&ZA$4lV54`JnaZjqRN&i^V4`@p~h3F{Jj8U6>A_qAqKS z?jI>nIGo-xiGpY954u$(ee+fJkRmW)!GO(cTzHi6`Csn)i&1pX(LF~L9JV;H7GeoU zr5U24%Wr1nsyAaIoQa&us-?1Ip5_mrsKk<-F_)IE-+1j+g!VBFYx)KZtEh;?9YChg zw!RCTA1>a43~?fJGx_ki2NS8+Eeupt zhK;;`x%WSR)7-9lICqXOxXHs7k-MXMXgJmH z0Tj2z_>H~w{r($9%;1SlS^=zUdf`_e@@fwKtGfo?T^%?Nn)MB8QLm9~KHE5A4=%A3&imVwK_TN?KEIr)UNvxF+hq&q ztg+_{WNuZB9YEZWuEmMh;nD-EG`&jrFr$@VO|lQiftSAlj&+7Ds=5s)IFV^5p)-9} zlOXYCW-#0qlek%U6n(COFDTQjIlk+87M`a#+@MCuFJcfk%|@BSwIQ;av-$%%0KePv zR}epouq&);YP#0CvEwEaTYHTmaQCE%$00ACgM$NqvOhC3^PuFr3h%gSIVPW7#NtYR*=^S{=Miq|IS7Mz%;5mE z^ZQdUOk&`0!tTM*hsG*~%C}-{Kor|)?tP;-Df95F+w-uFMe|0{epa|KIowAv8X4~1 z=CdF$C&7`K-!D_N0a?ki?XD6&e{!$GDP67x*9Q|7T3%+iK4Jr=GsO1bW63sFR^?ej zuBJ?zRz4clP7>OuuSEuru<5^7#|H|+AAPBu%ymdaeeQdmYpg3FZtilWsU!p6Jq=*zT z#UAtYngXH}cVwjA9qO%n984L)#f&`HVueh}Gp0%?CbLBHXH5$wR9SKWreeiVqT%X9 z6wk~&>bw^Q1~;SaxWjBky5_{#1@~e*l+#)z{U;ZjB8Msr7S~;%El2bH_nc_PVLqj^F)* z*SRa7ztx61odgfe;wPab4P*ngcmzFlv}yfYOi+u^j~!_#IVs#Q@8y6-1wX$V8Z8j} z;eAlbz|N6O!UAPvL4)_ut80(N=@RXHi4cVvtkQ^nU9psyf#u^H(9Y>5S*BIO?iC+>D9Ai~<>sCLLX_<#_lC9kQ zR{h%Q3WPS^{TwvJ@;D*OHtq^6c0s~;QLOTBD~F?1>I@N%C*OCFb%K&NXY9r8eDc@C zI%YiQVtCX*{#R({Yw?mr2O!&~4JaFI3ijD0RB<<7R?E!I)skzjFG2r#X~(CIcgsR# zI5;VO3}DoHM`l>WklMN}l+wmlD;Wm@(e2!I3trp_agj%_JhTiJ3YtJ6HCudHl#`P` z$darzHc1jEDDq9d(%vr~+fB@$nG_Fog0{}`MK|}9SXGp<1lf15(z3E;hMWp_?2DC? zlM|k_mdGW8j=(k+_}&i7q6yL|c7Nxx^p(JfQT(mK(q`%1%wSh1vH%n#p;$dvY3V+x z3H)g${Kssy}icDM?2yQm` zy`XK(kHS5T{Mrf!v!ho!DI4tM2GE3Cq3RX7$n3!MeeNpCLC#o%{l&5zCr7eP&OBR@ z^Yn)L4}xoisH-Jz|9EbuV*KQc0j?_tcBZJ82A_Y}d)L=<9N4c~?7qkO+Nuu38RU^p zsjkS^;xE)`DJG!xOyH+t2x0x>B)v|pbjtrihruG~@>MH{8`64_-yXA2dO5E<;(#IU z3=($^tI#dG*tVzKw^#W{N3EERXwAm-7H=zT84dxihgi&_3}<{PX6TxE{;Tbeb;U~w z^`)pE+x)0 zdj9c)Z_!jilDx7>j~K@@6iF`L?z+>ORfMeaR8PY$6lhbTBB5Y!sT`~J%<%J!pqujB zB*t)XmAsT3!Tkyp*a*kYQaJ1LboW?mEpR8^pRw&lMeKRKUTVun>hMmKoOzZMuiTJH0`sP2Vx-ezruA9je&6dW~w| zNiFBncK(A}C52r?`6N%sWC&SC>>{@cI{w|;Jt&7P1J{q*7?HG0UCt4@IeA1EG-o=@ zF1WQ%Tdi<*1M=}%lC8)M_c@(?ip8F;G<^H?=b>lm&k{IbN}qPCl^cch*VZ*?Kt2d+}6s%C-^Dnfpzd+bnQHXIyo{yzGgDhQvpcL z8HKm^Ol=38&h$jZSg6 z7pEj7BtZ-vj?U(Ra++2(cbud zB5j0?t6s;iC4MaaT?s7-(p*h~M<7y2XcV_*uf@-Us~5IoQ&tWtu1`FOlJ24=g@pcy z|IX_9HwnmIfSHFsfX1`zFQy0K;ozZ&rIdKMTAQ^pFtw?jV?Fx17MHK1j70k}JF1#E z-C`h#S&1bUlcW52i5rwnCZa-KLwQE^M6T?dLz;rX@azqKik-OhTr4VY9y~4*6Bh7H zgJ8Z_Dk^Dqm`d{}^W6k?VXj%s0N#1OvPsjc?|6BIFd)BJ{~PTx;y4{4Y0H>IMRM#q zgj2K9`#`jvf=*r&3JQmyHr#X*)`F<#ygfL@CEw}(g6^Ci-)wk$qEUL#BQCL$&YArz%d2&pwz7JOFt`LeH zr~+6+B)o|%#sJzg&3EuRpLKk3q?;>xp@_PWI%^)^=fgtEO;>Y%5%`?La5@S2MT&qw zssIA~;?D%rBmLFQ6|QF8hGG@2)GGCIQL$4_O+(0aDN|zzw7?Kg#*^1A)8x6Q>ulEA zH#aSiFCV+>CfVS+Ow)Lexg~mkpujuK!V-~b#NP-PYl#q(SasoAVzFv7vGR4=oi6!V zNfpIuQPUwip3)>z&*wMGMT%TqS zL{83lRj#kK?Ac?maIOLs@2|Qwzm#ByY-@lhDJTMYJT_H<);j_l8yoZk%azP~s&rfP zG*B{DKvnD+&8OBSsj{tr>+;|a_*`Xqr zmz_*D_<|cvNjH~n3iTd~_t(y@Vfwb+6KMGlnb_|i_UX>o;u2`-<05uBiIqD$VyQ&5 zW^cdPYj0WB5W^;D6h4xD-n;)7G1Gl`&Phvo+7ruaUrxwMRR-ZoWRTfqd>!Nmjtqc39c_Ka|h~^Wl{%cK%GdeVo z7y47;J+A&&LfIf>ohgc`4SAL*c<`D;TLjON zZK9YZ>$$`7G4Q7vX@tttd?~wBZ3@Q12VgEYir=O|9qYYa!HHFjY}o+uLmG;V>rVm( zp1-Yg{(0Gczbd%|GY*X8G(pJv+#pj)2;DDg#eWN@IoHeoT&QhOtt?V*kU3gjHB8wo ze-uq#K3LNi-Ny+k@lLhitjS&6915EgC)UnL>!Y_BXpZnGb*}ps*IlnMyZ=O!;Qdz6 zeu3;pQiJ$GRu0}AX{hc!ZAG1+FxZxmMynKiK;LZP<(<`!uLQpd^j zHIN{_>3MVXvXd%T-~NrJvi*z@wPH^6uN8JeCX%hrjR3w}^`heEEYyn2^aaP`++&xM zPtT1GIECG6q%ur(=(HUEd}@n2jFDO~f1}A%Kz`+gY`AD9ufXVd)}N6zuU{I4uZ^ia zBv+ia+hc|X#~gR?HoQM%OL9@dZ8BWS$pmJ7pO|onP-aXPGmcOomV#&Gas(^tb-ZZQ zavsRkjZh($Fio~F_U3E#vd4eTwTDqFzbVtf9xC{yEi1BQnC)3fpT$J!!Qdle*Jvez zzTVt(0BK*X=RDSRRt&ZmI8a7pL4~i2GQRIYntPu!S8x)1W!Q#x)%<$ThJMyJg$cKV zE2B+b-fPg894Ba_N@-|}k?6!JwP9D=&TA@#GXV-~R6-`-(T`BinmFp+{2&QfN&l_N zeVWNs_?--=m==@6L3zEdr1xn{WExGSOJ3VTWai1%bn%p8NiRcJLiU_F57zu%F{$8u zXvcSSTu@;}wB&OF5p7AaSh^CXlGg}ifmlJ~sn(WsdBb^^tC!-qlZQ00tV^wz{L7zG ziNAr=YIE?XajvN+HL7LT3w=VdDrwWUt91=UI8=;t*x}qI;}K zDTa`Wp0~7^{*k%L3177{v$b`|(9uYgSdhsUIRXY!)J1f#^&E|oNK@^uJEEa-&P#8h zF8?p65T~Q=dr>H54hzIZuW|SHvd`*L&7}Qz?qAEc53yqp1sAM~#n$MwMj8W*v~Ws>H&^UYm8?RN zb&`R$}|WHw@UPiN`%} zWKntf_&ygEp^w2|m*k6&X@Uq*C$e&DI+-rQesUD@&nqHmNTLQ~zYBGZZdrGa`5V&B z{z@SMDQ&&Qf^NS~!7M>lD5YFgjY(|XL~3C=3~yZWh^J=k|RSdKue(R8cEc zi<;n~noUd4U97}htOLTpqbe4ktO0|;VYWjrQm5m7DE!s#VMscUcR*ars(GG4$wdd! zdSwYj?Mu;Ooyo`LCP7DcKj zKfOH{b>=lzku0G$YoV7CI{k6(135r-I}tY#!&>T*J(S5QJxMv*jC`7s-$7Y!RYwLp zv%Ee;`ixg&dYb-a9kS=4nV)$v7q^qPDxh%YRuGc!)>r6|hugVQqPPW7R`3#rZWHhe z2v}_XZDN4I;qbDkD{-mpxYahGNNP$7=iC>I?t}Fbj_jSrAHtw zh1z@8cdlfOnc3CA6{|LIOg4la`yBzwuc>XGSe?o2n@=`8yC{D!NOjQ5L1??wrAA*9 zw|eqeotTDL;Hp=96-Qvxu5?losRR#ldAhE~5HWFta*{Ak*KO4}Z`0Npar zG&)SSpLprM@XPu$7(!FYOk=SGmp#%?{Oj3UzrM{6*-UuZ*9Nb2j2G}}n!iwf+_gbR z$%@F1B+Ob>!bjPO;9Zdj5Hqk18%nh8+)Rjag9P>qh>J?<5DYZmw^+X^QkrHWj=X%( zD3O?3fA80#dJ)^pM}%ZC7qUxV!kA`>IVmt=b9#?>b?2xY3c}2sMo~qnoTAn1A`g2HD zP4$f;EVzoQ(#B@i zu-~#CTp!&_5YE&nB{HF@nrVcTa&wj~;jvPqoH6^NZ(9(~&!;ibWs(XcuXdL3Aszl< zB0*ly#DKk5GvUok8$0U!7g^_TejAX+3C*t-&&aKdT>Bj*(jxe>mvgeS@d9oyW?Z0t z7yINITB2}mVA6{rmLYpvNHjc}ZsMCAzbUCAiF_=@%qkG6@1a*Gv#Uxu#>4=v8Fj0g zsj~^go|+ooj-54MiTyJ)#$x&8L{DGys07Bmv+><`hEpaBR-tYEl(~bOlRZhe)i)XP z%C#JS5z<5hV)u)G>zjA}IsWJ@DN0?dh0|Afj}w!V(q%#OX5PpUe!Z@#iM)#FHR9>t z-g7BHJcClK6sk0^+-AAaHD|f0IO>Uf&qAagKYBGjb&>06xWUlyj z+n$Huvr$m_bHQx85Pq0*716ARsCIm2!%q{#qdR&;Mm^^1v9KSL(#~xB<4ErofWq$h`nKQyJKW1GgcX+b2H#s*zK$Yw`#k;Shx=yd;b*Wt|%T8 z+Ifa%tK`91&kDDiS_`hXvVNoMLOR_{cC~3oe0NNXvAXNs*jY}}vYM0ZIsYPq6gEXF z(HH6l$+lPCOJCLSB>tIIb73kREDMfFDjlbvedfC(Z=wJSVmHRgtX3K?9X~cnJniW! zc4#x5{0-A7JMWi>4GRlWYK(xmJC2O)VIlkJrvQB%b%=<A#O=!BC?dD07mXAJgXy#LJIy06I81threc&CFmLYpW}}49 zt@K+F*tOOIiBHPCie!&Ae$4j0}WEeZZ`tU31Rq*)CQHb((Fbc+ZxQ;qG z@}#`8t|^0192@`?S?QvGv&XG5Wv&T|J(hRS+|eMtZgq0z<>d|L3egEcb?#eJ(M>yZHnSO&`Dw%2Nv~Ie0blpmxD3u{Pb#^%9Xq3)%F11AptB?Vv z>!*)(vht2Ckq<1a1B3euwRA#DJGu6`_DTh<`FxTvkBfkZ2T+fjslELUSx^wI#5>{p z1%m@I^6tATi5M^x(piOj~u8<=<$7xg{&qJhgszkM>9rsl0~b#1c>03@5sXYYPMh( zsvGg*>_uVLAWK$rodSp=Ewmq+)H{( zRtL7t3t3lORB-?}zno~yT=F{~vq@m1(`)zZ4(aY!pY2rvAwaLQDxc8@{n_c*%mJD# z7jM1GhiS&GxzMX4s@WIj%9VR%w||%+ePG?_=6)=tP~|CbY#mwl3pvs+wrZIgxQRtp zVs5&R*ZR95LKNhT3+=H^El7JVb*08Mf%$;-Tf~+>+UN9%5AkcZZj)l zU*DPIeca7{$^@H1e@qEwC%T8QO3M}RuA(15sOWqbXOaz6Bgh(*nNM-4@tLKuXhM&Zj(*a#-iRWt64(# z#ADpdntJOPJgM2L`U(>sZOre~i5Z`%RZOR)`O(_5qbgI&F5PbaEXAy_u<%ih;qWnx z6(R9kB*ba0aeXJ~CQ-7=lViPwW^`~+gxl|Io0;wnmrk;rIycyifGhweuWEPl6B<@O*O0@%pf9VE#%WdSVe7 zS}v=>TCW}oNT^s*`WPgn8tZ`gPm!I`ST%P!l(V03^X%Q0^J3mH3XsC4c6%;;F-Qs2j$O@MqihW(cvGiOSB5mTrylPG$XDHJakzr~pE0#{;JR=;J|%T6 z3uzPJ7~fCGtsE@!49SB~9FA*lF)4)YBT@Z;%GA1!nudsV-AP`j*Zf1$R-(uIK%|Sv zLeRW>Ks7BQKve>h23%BubuinOW8@g>`9uosCygWsrCLK2$*51&qtCq)k7mL{0JCeS z_Z2cd8Y;BMcr18x^et1qx;G(lxedaG_=Sa^5-;^O?Vr7&|12NcKt_VbPUKwc5D}DR z7hDye`ILC9YuuRrF3<_zxf#qUJu_Q3`q!)&r8GH@XfwJ~IyE#(I=h7oU@I9}>4U|w zG+v<~g&VE1TUQo{UL9S)l%CnV81gzS?+ZKSsphxAS(*Y0h4$uJ&_}}?Mc^7-;Sa zTFj}+<4u_gUW;!bv!YRwW3W?<=3Yq-dp@^2gSOX9T}a}7q9D)-o`R7uP3?n(0;o~# zNFbk=>lLjHb0@F~>GW_LDeC%$E*fdU&-@vDQeDbF*(;WNq^vF{eHk`cO&K?604k~WPzr~Un6sk-#Z@pq^rWIUSRM8nYgM$Y-N*qBstIZ80u5ga05coeVU3FZP z&-16dL!=Rq4h89w4&kT+q+6un=q?cf>5^`aqq`fWyF*I4yX*Jx`TqXB*X=$#v%9mi z@0ocoi{+5-#m=~VC1=00A|CxrEE$L%fVj{B*S-FiEgZsN2Xiw5D%rupc~*;NDk;Y5 zM;C4z;m?@tQg(6713RQyev6jmC&Ed850&3;l0OgwxB(I)EL-YDg%wECTV0sd45m_T zdThAQqVoh34(cCF2I6q1v?))9ms$AT7chj^seUqd_9o?2`BaU=H}6rAPsUW7R#ts1R*l2%&{L(+?Oupfi5TBirc1e*HM8x ztb7q72&n224`8(c9mq)u%dJ&S2umk;m&{S z7%oy}?VckAth=ndW$#<*_8iRrMrjp`ya)Z|a>Sd2g(`+8j$M$F=^A1co|Vzc6_Lg} zuYdBGt;4Umk|Rx&`cU`Kdn|ntur&!rxh(74&((N^NtKi=# zM`~*8MckDY)4t|>&!rI$v3J{lhw3svblqee+wBGA;?OiDfmfCvnV>)TjHOj@SMG;! zJhOWaa;p_89U7#+%QWX{%%e7au*3(86_1Zj)}_i?m7XjGOpcBHn=<3XFZ+Nn*wxP< z1m+#XQL{Ota*#F%Ue5$7eWYa6tjWlt?%I@BBn6~zPDC}ug{`l+Q09cxMG-^8HSook z)Mqio4wKPcVe2ZW>xq*_2svPdR2$Hodm+lmeg^VV^>BxkBzTt(LmG8wMRf_mLXRbn zTv#yUn{ScHd7{c!muITB=4@!$q(IKY=k5EoNI3gn6Rg?Sh@lkc+oPic{r$-!RR{Fn zjb);H6-QUhw3lV5W)xy;R`2%9SHc=MGiOEhM4q24lU9E%&!*BgW>BqmKdz2Hds+==wTo!uvL(gsAxjdu z&rKTz$uwjBMA+t2C~B~Xz|dSNe3ss30?h{z+(?se9}VVHP}?-J^D!VUs|W($yt=UpY~)* zTcNyO2}QX0dAkBCvlytUd3jV>)L?V;L{}tvCDDhI?l!*x z6JI-Q3DiHaeIatk*My^=mxs!Olm2+E(Aj%;Hn)=VRF+7<>tph<{lze(w(@sI zEDy&|cb#3Z)YqJ#GD$EN4QvP1t})|_t0{wgiZ4TdwRs)Z&PMK(AWr=x&xycKof{KxM@3!QBq1>M+QIke%_wdw=&$w4-APT=>$< zQb!(8=cq_dkCKx96p|X-{d#h$uX=1F+ITr}Qe~cA+!OR_!(}j7a+u(+Y9-+IOmK7$Qnc zj%Y*aq16_nTR_Fll^3Ks;n<$CYRP){-wH{BcN2C~=^UDs={|yVjGC{W+(LKTvNT;N zFP_kj>RPfiOZ=V>Vz1R?VOvW!Mv*?7*`_(-;CaUhg4xy=L<`<-?q|2xNBWhRIDB(I z3VTEY<^Qw*7{Gn)sdC(hK$cHJEXU1o&}->vqM#oe2=)RA<{r{akiEAsYs==TD{_PH z9(cKhayfm>o7VsjNS*^Nbh`m>9%V^W5$W>8G+*N<2CI7O*cjC{S9e#BI{TPvu8K}G zwE_~4lG)lSsZdK}BN<4Lw8G3B@BOCV-`9hI%-o1<^V%wv)hKqi4nj7;xFaAUqwU-47VWt_ULSWK1C!{F=!jO*rh77dx6fm4vEnd z77C2ja<$0avCZLfZ;)PGb@y>7pMYRhP*xO}fa*D|eW0 z(*4y8m2DvMqE%;fB8p`)`~cEC18Z1xOe%I=!Izs!F`TZR^@x*)1jOvrKX95*qT0v& zd-Ei-xsON*$`gA&kfB$rb5OZLDNh+_sk)bO0YG*EWCPZuEKe3^UQLaTj@s*0n*52I z)puL^ly2k8u6^`XXocJ7eLa5bAdDeQ*e{f9Z70s_Un6-dW;)6yVzX`%)RB&<;Kj9P zoN39XfN-4zvC;{#X|oW-h><)SKZQk2-E>X1S+rO|h~Sbg$TFd&Jguqt$>M&5O4@KT zIsZq?9Wj`;ImE9;?;U?L5kXnn2$~wm!dU~fB;{RZrS=q#SW5U_yi~9Ho=zhXl;>&8 z^+VVO<{}X^oR4mCA6gbSpSj~%BRMr8a#>*{%U)q=X+#@H28wbYG5hv6kb?hjPRHS< zSVy%XWlltFCtk3@Q_bUUqPk{bZSi~CYcg)|XEmQ^=@7L_3X&9ohQ>Jrv{(~};EFD& zANh$w;PTZR&S)pa^~ZPWsdpG0v1D_HSD|@&t>e-H`gkLr`qBN-f)^g1=l2|<#mH>W zKvjpPqD!DcZlPy7yC^Rvaji^pK#C@9;nClGk?Y6HsGR-Dz2~=Hd#lv4CD9q_@Hz8H zRt=U}bjT+ZW*cUKa#C(b?U9`&=3cAdIJ$qW53pEYzX=SMc~u7VsQm6X`DPdK1G|BP zO`YqxRclAtr0&w`2rrosm zrR}qO`hxq ze0gVK?r+5FCW2q&I*9oF=LcYe1^7|f1y;G$cTJ>EM;rfChIGs~}z$(Tg zU{=IECuV(w(8Bj@n7W{Pf45wd>Bme|K@p}y^L8U$>;szEq~uie7V&RCT!R=>|6!r@ z4GadNBnQZfF5y1kADilI#PKrk3`i&SDDHkJ#s(!k?8KIPuDlg`j^2ap(ef$d`l@60 zmH_rFc3>Ax953-+%9RRB2IONAlOu8)gcmPwK=Rn_j-(cDIa#ozJRsjJ>`D(4j7X!3 z>gAo6^E2IC7O|hGE40$JbyDC!2?#kZqO2&c)3CmWrBAg;jeY!9Hp0{bbMN zp?sI#)Wl0oO--Bb^eSp1u?hy9dy0aGuJ=f};|&0h$G8#T1d_|m+lKz4i?KaiYUVQ{ zOe$>nlg&fjp5F&CXCaaJlmb7aC1mtxSx}BdfZfXK)o1>(RsSSjaOb!tEmT0e15Y4g zbLT2;98KU>KxNZxRV?Y~J9LHuE~(_}KMDmFdg)*#Dd(4?7WN23pr&m1yTFN8k5{J` z$c|BD$ykOcaGc<}&_K7**kUF(Df>CJkMpVRA+^~sgERdQ9Hq_Lk+Tt$OIbB#HTm0y zKbg+Fyu7dC&Kd&axhtzLbN-yHb?X8-paihPaocg*9%+?qlSp+x zUF?V3RMV5`7>2^RB{)v|l0d=y(t-3c!gE+sjlq*}o`pr=*UFCKl?;EO0XM7ZOKq7p z_62e|h&IZePI^UoCpto=)Tz33CGSEC^````1-b|z6+#UJIzKxrbiXLuY=PK^nNCnR#0*eS+#QRL= z=;oRzw@&J|xpHER>JAtFePY`(mVS(u`dTt@My{KrykpwexcF}CEBcKFD4}PH@$PSl zo6U~Z0tFdBvoS^+A5@&DWzB>lswQ0AGYnT-BiRO>1g#kSv+`ok&R;cpG$zFt%QjUR zeAor9GWtqN!?_zx?VMAi6QeIfMLJ|0|C^i=@`>dwG4x};#vT~S(t>G8JQs#lEbYQw zJ!!mlHR&*Vwp4Km=KdjEjD4isYn@No{&gchGWTxtNpMcj7BNm$F~u~GM;`Vo#eq*< z?C{Gs3*VGn7acEWGtH0khjJk5j^#VK*lO?FvrjFX@jw36MQ+q^2ONGh?ci-upma{+RvTLzpA$eO?7}eq9 zzH$V;!=>`18+81`ta~?w^m;87jmb7H#r9ptUUx*r(U|MaAAgDl+)Q8HTUx4yJt8^GW)3KZ}QMaEyMZn$vZk3ZQ8cD~#W zota=ksJLb1TxN1k{40cy%qCBQ(_7x==Zd-GHLq}spQKYZk^6@FQ7o)ky_?FZL|3#> zrFU~QHw|rFx=2H?c6Tj}#$>4F0x^?Hre-yHRx%5B?GwN^f~@ZY(L2+q~pU)z}2o)UBVT${Rjt^e`}J z+fWk@nE}`rE{ZoJ?HMV-P9TuCGqIrRg%-~+@eQtK+jzT)p5Ug1+FIFPp<5LOH^+xD#*6{!bQmu zm1hTYscCncRpuIroxE=cwnj8DtETV{dmO+MiLMG7wPf&rNzG*`9Mha0Ejpq2B1B+s zrror3cb_>+zv!zf-+KLQ1w<&rCfT9npxm_Yh^4}E1?ZD%q=M`)8Z^Jl*h!hBK^_=g z@&)mH!zofdtYnAv(bxjly zD*#vQp@K7}|5g+t`1FFtkp1if(sGv=A!IcNv}gom-b3w`CXv;(7e%SVi8aUCk;9#m z{=W%4ot$@ym*mCLnG>d(XEVNM5~pM>zv(U@L#29nUFBlMIfO(Ro0xcIRskWCGYis2 z6^}j%9TZNOjxunT)7UUH@dDE)7RG`n&8#!hejuKOu)>O?>R(dDYGjpLi}y1R0%`PvqGm~`U#=2u_BMWDOlK6rSaLPle3BgUDQYjc{4a8}SkJut{D^CU z0Xj-0W5759#5kBOD|G(^mSjPQWw|67O>P5m?i=_-Qx5c(8JHP+_jfY{i6nz3Dm3HY zR9D|G$m2R8h^t*tbiDHs8P(9xKavIcK;NZ{|90|V+6M^INax%cS5J0*+QDyUafFHF zY5;<{;h<~1cO*^-=p@86mJHC39}rwka{ld7{cTqlxHJI7rY8XZ;+|gE_}WN7gkEeA z!!!r0+3M43c4Pp+aKT{B@k!Ub3jq)BK3(DM(ag+XU^T!P3Xv8#D*kM>sHx`32-C~u zWyRbE$rh;>s1pU!h;w&k<^jYOG0TVQur#2)<91-T8OV2wMF>=Y`MO`=B;|ongu=_P7SjI;9hlxSEs-Gvg6;n~cT= zGyen81Tm3xS=9nXdk59M+{TeR9Cbv77hUc#=dTUl( z?>_Nfb+o_&P?vv#JFhm*ihBh*eithZCy4WAX)94QOt}PY~MtbwS;zzTH77P^J{H zx#!kGvlyg!RMuF@KVg@gIwe{-os7M)Xoj_fR?g@<-Bf-me#eK0gdY6j_iuYViGMfl z@uDrN8OUU_4oz#z>)ri?kA$pYap7gTZiE+Mh%k87(;d>V={y{>Co((UPxaCoK(RfL z5|rYRs69`*T9vN0Drr9Pv$G%+vH3V}6i1Z<0|EXNy+OC;>G@^IAR$gyr3Qij$pqlP z3Z)+`r)<6sy#Ifqphmd{w4#s#0m6M;jiXk*7`^b5cLlE&<{DxzUJo$8kRZ|Xp^Io5 z9Bb8!bi6;nru1`B zo$KUPHBsqV_Nyt51s&_@qQcC%u+mSeDoEXJa%SjAa(xm6Rmb~gT-PIf#~mH%#$5M` zUv9<3dcP$%r+FQv|J`oePP^W@MU(#gD@@&CJV&!U+OZ0)e2E+D`4lq4afPlE(C=Bp zqT!b>h>C7|a~u*GPW(FjbP-|j7eM6zYVD}CyuTOn3_hysicp@E!tzX0 zLMzgeznxqQT~qkO&~uvWn1V=@{k&cf8Aj0U>_JXIRNzDIsV&7*_ z$HKtQ!V$M_-YpRM20Isb^|GW)qN3BfIwbu`3I6UwwIZ!CGVe`97QG`TvB9)sLejCq>tJPpiqu$Mh zh{VpjiTFhn190ZOCoku=Z-4)0eJ-z_gPQ7WKFK^vX~D7bCGIGjYy=#fII<{>1q^c4 zGN0Sk6|eoZ=h{h|I9R5w{aEqod#y_$Hd@gn{iCH}q)zrzr2(gIXaBAH)DMyO#G`xC zr}z^zp{p?`|kUvBz-m{X9YBHpIrS{&)4ol8LAB zVqJUL-M3pBSz08X4r=!=oS0gQDT2~HH`#>|crhOej`wGGBagif>$d@WWvb$=L0p=` zZt>Sfl|i@f^ht!&zmgNiv`A-q_xR{(>}RVq=qn`;U!inVrSTqJGS-(aZdVJECfxt$ z*dW({)2p~uF!Y1I8t2vr>Wvze3M$wuM3MiaKX*-SjXZK8=)y{^CNrpjr+T7HEs8#Hc(yA)n<@gVL7c~;SdSu z5bZcfG|Q23YZ@6RGUAvf%jNweXO1@PjXL(!qb`dXaq>?|TU8;`Ae%27Y5j zVv@g;$R!Debl-lsvR(gG@@XubVNKYcf7~T7OK5@hN5o;@Ck%gGwx@A!?yjzl<2mad zH%ai|eQne6!OeYTVR8%p=)+nC(~s^KpX>H~(5$}3)I*da6{$q2a?b;l0tmm|O(w7#&iXxt z92va=<3P#a;B1_hMxQDSvQ=!(>e9%bnaHoi?{j=|wj`w#wMtajAJ&>~70WUZ1dy+y zPrV1`hVrbpOT1YMa}QoVUqJ^I9)0eaz0dcNPz%cZdn^)Lq!rnin1@&kPf-tM(CX_h zOL1FiO8#Jph(rtrCm|2=I~(!|dIS9uYsG{(BBjzbYS8Fw1(q7pBaLHLrR*Ty;PRad z++AsNeX5$4?{u~K?=uq1LG7ts=Vv4+OD0(6Syih)k;ZFl4+8rBT$i@%FmKCb@%rD> zLba;DH6WiKYxCg*0&kOaVpDUltQb*1Uq7@@q;-9MC7JA?gOCYZ(T?l+_uVk)LbW5; zuj0a!w0yO9Shvy6uHwV3qzXJ-N1(Oe*}dVr$m`6){A{+_$Ajzk-^u7-&76*XOuQ9; zdg8<$A=H^AF0c&mK^bzS6(*jnF7^PQLDDH8c?hw`tJMl$*` z+z(Ad=r2v?X$s*HB1&GFnp!yhWL6`9`vd2Il`4F(~aG3MS2xJTSWEDb4jQ? zYJ;>&$h+eokdmof;2#h(*5l5$l=ZzCgzU5qx3oM1)l@DEP(&70?%!K?)21TAL%anJ?qcZVz~H zU;@pFTNPi4(({ONy8H=hKIao&c@-Zhc)l{-lPP#A@lnI=eVNs<yeZ^WNw6^YXA;s@R(^7!Ay26t5t1G-m+w)qxftX`9_ z#xeh?m_p`mYxg|PuAkw%w-$&&oemMc7?WJHo+&|Z1JhZz{WQaEC5hz5LP(yUWMp)t zuyFc_DXrjl5^+lvqi)h1H+FX!^RdL4K(>`s%D>? z7wPUn8}EB`yhO=h>)u|Vi zqNswjgx{;a7$b&{6(13y-+TWIbAyI4#jz=8%JdgC3=G;nFwswcPfG;zvYA_xys0wH z%Fho@7xSYcUZb6q&8tW)u(iI6Dc0~M%K-)C;JX-KHNfd#yUMXQHw*5u`V1Coy`_x7y7KQJMl&zEs?w%ks0 z!&XuBKd2uT!k$Qjx;M>>l0noYq;&5$l_+~CG3Qu?kK&}6E%+{F zCEz#o9GK(&ku98_1WM}X#`iz}ZAsYw^8Oxn_@*!#+-FHM06VpuqS3LcB}-TjOe5ob zFR4FMb8~by;c{(5C_P@f<>VE3ciTzGVV^o6WBz;kpKhUH2Cb+$M~D{#8vX`E)a7d6 zQk@3q>^TA42h)WJ0%_o{sHvkcAgUn4rvrW=J)Prf$cFuA-QHiz?C>RpwkGyIO{04j zJW93)VChowY;4EgU@nAA@yFADliTAo1Yi`jw_j;ihlrIUzhz0NJu0icfksc_#i|nu zir>UFFWzj|Ngk-E-Vz@lJJ4OjDs6IZy!76SO4q%!f5PfE{G#|1PJ$pC#r!Mu7rZKhXYj0}D5qR2e(62u1O zNsg!QtG|pIY@N%yzsT0dyg>x95~nVItZnvDWe!xR1|>7Gm40ypV}A6h0PaL zF3BUzF+TFz%tbdluFHtDBIFO{+CRC(vj}6*UBNf}pfN?S)+)=y5)aNxk+*Vny)wv@ zW9i?m$ZL&O@3UkYgoPH|^<;+Td_EfCZQ}7c*n0K|D81Xix0#JGnf*JZg2M7CYXByZ z&2Mw(<}b%0<}CNuCgll#MH7xgGN@py#CyPE@?J1~UBU0PO!!`m1R``5eitrAxwtwm z^gY>bhbzsFHS#N-YFJ9_FNKxaU1vsC7M3qDeV(5{vRI#lJ5G()5#>RPi;F&<-RCuF zJ->fr?Om^;`aKRoFSjiPd>)~*UbRoJ9^HM)Bw%wR@9k8!3STA9l^sqRJZ^p}#{4@U z$@%+aMCdqvK2}|K@Q(0B+AvE+_}6j>$wy%6^}4&!=dr_DeZ7`;fMmtu7cDG@=_sj< zGik8b;>(w#iy2>8Gy21tcy(30E7VULV3znNT4(^$cEGm0HKd48sy#eS;m!Lg>zWm_ zoWjf2^e~-;`eumW>$zBUKZa|ss5}V}d_};|{@w`1GkF3(0V{H(N5o8VCV95*?(UbW zPa5dRQ_QM>>$6MTPxNy!e)pMN$lYF@M0QAjlBI4Dv&qW zJ@tFk@vqJ9JxS^fiKlgYenJGMboR=D$-295onyyT3MV2jYL+}m{@rM%*eJj^O9KVS zH){^eTqiGVTo;GZqJbS^*mkj>-b!X1$%J9i!U^pnT_8E+9xEg9f)q_#J!-;To~dfR zAr*te8K5gCi>vom0`3sMH>RqdVN7AYtqafbpPLJdYlmvwmru)zSf51Gyn z;;}l~+UNo<(Z}qst>e`R>0v7=hc~}zJ87T{uB~UOU2O|hyMb9={kr#Awv(b?4Lg~j zK=kco@CYOP*cXCymX5H>A5X3EGxAqVQqp#9qB~kq<{)##9w#en>b{0Rf}EAS#=0Ka zYht$8l-O8_N4MeSVi?R(PVK!;W+kUGxYACkecp>taS$S>79cSs<&G&zN(P;)-Ld3gpA9i^izK@+LY8 zX=0{+{6OOcn46(*i6Nc=P7#y`QPd>->@Z;DU;aH!>;;yNKC>vVEDH6Wi1&W6clYb?zDg8)+MZ5!1I9V?MrRgSEkn=u#Csi{Tzl3(j%wg_K!ijL!H~ZU z%#)FkkpL}4PdQ;zW-~+I$aM@d=e9v7d$>i^*K81)uW@P>o|g8%D81&Rwf$GI@e6$% zf6uuwP3yDn)%Jna%*3*`Ya6U}M@oLUQcHA5j10piFPgPyi`^@0AkJq8IG)tyilo%? zKZ4Sez|4THgSE#3Phow2^K(F0$I;6ru_Wbj{f6N4C$|=@r zo)M5spf+AT#blafvP2NGTrOR~XWKz0;O&&nbG^oj?(N7zLisYk+XUxCEJ1+)9W+r& z<{RT^3jbLdiJ!}Mxbk1W{aB+ip}kQNzxh4-C|lelx{WDgdF%k-2$&L(ul)&_nm5oV zUy4Sz(tbQMwl_qhYbEjm{f(yI&40_v_7pJu#^U}P&Jn6*=+|CQS$i)0=$n&Qz!ra} zrdD$yThIP0PKaUs?&en^h5dnKKDcmOnX>k*_40c3xmVW9;O?QLf6u7oleG5%QFj#Q zYxB{dEZ~E%j5t6-um8@#I|03Kf+m5eN9pk0|8`9$?M70om>AhD#lPtgAFm4bw8iT$ zwPM@qizK)Vr@sx(*MRc*y57`)W;s#Rm;N?=-K(XWj5`A>rj&dOj&IC#?FuJanG+Y3a7mBgJ5s8GRBOHE8C>o}O!KcPy;0y`poI`9OD%Lm{?^ z_u~?BJbZ4k87be+%Pi_TWE9`Iig0FKM)tfu_v6Q0$n)8ME|6rFp zf$k7ozYk0sQ}FV`AZ72GpOw=A&ioAWhx_|MX-#in=&CGNF4~AJNRYkEjjivY#t(%m zuiazP@N)0=pS`!=hs}6Enx{y(-@b7rXe}d4y3`M=NYvyzn)j^udOYLP%lg;|Dof=N zeVhqaFCSL;^m(=TD@+7yqTPG?+WxEOR;jWZ^5mt3JB8X%y6a$JD>5>05%dKa8?O-p zetm{X^we8;PAD(E2GL!8B5}GWEgo(NeS$%Ui+nzbf7%_Zb9WxO1yfoxl=^1tF(Xmk zTE*GrZ0D!_#D3f2D{w|>(Ms!Sbx?C;2F&I(ynWv);Q?CDnGq-CI(OMth^y7`rDyIw ziYSv6vrZI-0gCDFVQ0;z7{>#PZ8dIZ?ECCwhqPHngE2N`QCiY;V!*1Lt_c~!mr7TE zDO>s1;XZ;M!vK)Rm}|37h2O27eQ0=uEak)K?0rPInuQ8D!QfKKmJugiu>O$qdBM@> zDz9YYcOlbdL)x2U1&?2}Z{K`raBltm+NJJd<$Vl(asdZ=AV3PFzeGGSnkwYUa^dL; zqqcGKn!Q~XEiGuut}QEVt=}%@-gJp!3HII`#w;VvO!qWxP#`@V-44&05WCyzGCbhd zYhn3ycfFU)W^?p6lkN6+0kEhTO*t7p?AR_JT$xvwb*n ztLI38EE*-fdHdeAi*IXkur;(v4$Pcccp)-aw?BhkNwCX=nnZ^uvSdk zFq9r&&9s9vaN@vkJy6P_Suftc<@D{`|{m zLPtw@a*3s9FfDeTP z3Q&qCkaoO9dI$P5#-N~JDx$I*jC+r(t3}F7EUch>p=*sB*DCQk!owUae8IJ9s zy43F+g0WAa8KEX&S^$?>ZOdB-2aL3joDNv;3lo)_g}pNCh_BJ)^1Lp2NpFFLH_M=Q z(YGuFIDfwvn_hoH!AVXPhPpgAvlKWBco#8e;%OxUObi?~mzUGzixC8oeqgQMx#V5Ls} z5XLm-$yk4wpg5j%N;j2ZZ-+=or_VR~Y4^1$6zxhiIWWIG7z@wmPu zByrfFfzR?X0<4@g3ANUtxo^g>!r(y)K~)2P9W;tC7OQ%-4WX$>A;l4>1b|T*IcyTe z?n&1`s9czg*Jlu+%}ribDuhqUT5k5;O?;w{ZcJ1{y%$zwf6;)w>ED?ExHfL9x9>>L ze05YlYc^xou0B7wxvdpvN2mGGaM7Bm{iiX~CaiMNt>ue+HTlEl2BlSmxFel7nn@>N ztFE+q(fQ`^JKh|Iha~k)9$mxRch6tt#PnI*|5KcbikR7vvY}P%6z-eCGQ!St=E7js zY|#kme4b38N!(0iSy+gn`}43$IVwA2xJ6^5@qa4B60sYAfz`ZJ(#vu+nFv)eXKuTj zGyU>*_q)5JGRK#4Ej|9#4)0@&xnvuVv>0$Udrn=RzO;lBck!EaG+`_16r6Tp7YWYi zq0VM_2r*DH>@{3oeA*c2PGB#L!2C+95&FNsOD>=BIPUmarHZwj-)e@6ToYL@7$#ikN-FBh!uGQAC^!Vt| z`aD0)?k;EbI<=0v2VC>2k6$#vSMOA`2zUYeBMq1RW>X_XsK2cf`RR7b$6AfRl=0i% zsk*`3^O5N3cju{x8~kpQ*@u(wAum3ShttXw?oEX9RjJ?cd3l)QTODX)wTstU4^(&8 zt@TOb+E)sgayTUVzrlT&4*uIKi>GRZ1?hqss`s}`%5Aq5<_gfbe1IPM;k;m_*7XYP zX}yvz(yBDtdjH2XT78lJ8*BLu#|yL#heQG6TY_%!7kpIW?+IA9AjipI^W%$;)W(xK z4KD|^U35&^w=Yc0z-sHTu<5-Hj;TfDxdlBupHoC_M}tP6_l++EYNImL|A_zBo3LeN z==(zCZTEwGT+w{dU)hirugG-YL$`9Ds_tb7k$gUBx^U}rV&urAc>=cF`6e7BvYD1V zgkl;24vuE*N35)bivH?qXq9a}dkXI#^~GX)DPmm!Fs7HTkGJiML>!(LIXC;z+*sS;b1)UT`1YOT(X{n`#PDwAQe*gfwxXZfg~ zGR5pYd*?4*UlI9LdG}*Qq3^YIRnh7>Mv9}~pKA)gPH$hk{gg~R_8S+FVO8ZFDQzLg z*xbx+48wMm8|8gO$BvU$zVdw zuUKe0c7I#O--|yTsyg8(^a$sfs8y-9}way6^6ap|7odBXs#;BZ9=Q);mQ3_VZ%;lsFM=?^?UU zC~qriZ4twma!alw2wJsr!pS!L$$KB0s{rgGB!U<02Z;wghanAG)i!;IW~F2rBB?Y> zA7;Tq?sl^`_jT%NQ5V<7=~LUH5Ua3i;zY`K2|e49H*x)RFE#@XA#v*F1Z^tNTBYf& zTWX~ckI!Kw$Ni{nh$x-o#h=RQdS?nZx5)eNTao7(OoMen(8zUQ2>Cx{UrhSP)rq&J zR#Sod7hmuG#`0@?{xvXe&irik$ty%Tb}C7ekEo$JqF~0Z9x9gq`#A&@&$FiBgcGy- zzu*`Ar(YSeNYmIKbkcPL$?(g5IDNSdYnnkYq?pZC--IqD4RX{se+19)`9%~Dc>s8C z4-np^`ESq!25(+kHhC?DXZ6U!CeyWjd)K%PNO;Lw+g%J}7IU|RylU;D{)su~w7_X4 zTbo%J=6(mxFE}*0uC5z7V8qTBR)4L4$%q(=8SJLGLN(0Owc0-@bADSJ4;{a_bZNbo z7JpyHHTy&TzrzA9Ak@HUtq^&3_h6=`>C&Gjsn`ziXBNjdCqsUFiTqod&MiF;X)3kd z8l|;uO@o>jU%zMbD9as;Buk9nIW)D}clEmv z$p-i7XNV_FSUy^8&&oOmH%9&pe)Do#(VV;%v7^m_+Cg^Af)|I^998#z{+aA85U4sh znfm>~o|=$xUHBh&Wy~6ftQT{7VsZ870L+sXD*PAA93ZR6hAZw8_kGJ%$t|kj&(h)F z7Kgp*NVcSu*QuL_rV3%Db^o#V4y_3F>;7J;qZ>I( zzQki{bK5E&t9_LV20pM=d+;msUVeeQnfd;IyblG*vm#f@-h9r382{r~%X z`__daV!8hhv4v-q{1PjRawo-^5#LZ zgp2C*mwybG1aj+Oj}GcyTGI_fQ~CH-8ZDer%*-5Lrs%H!{;EHUP(DjfeB<$&&jsA{ zDX@4FeZkLG%o{-~0Tu7^>p$Q+famVa>`n!YPY8!(Hu|#%Bz20B$NK9;U~!MR&+IJ3 z%0%_(m)CJKk9}D6zKF-O5?|wjR$X@Oq0}c`=qs&+`;#;Sl>Zd(P^%UcCcYflAwrHRg-5L>~&%oZFR?&+Uw_2~>MCSnDZ^CzK9YGMDB6B^HgAYi`_ z?d%+WX!G|Qo1QlJhIjJB*74Ul!Ri!L8PNJr>q?aEu~OY<=GnUIb|H>T^NktCY7Vs? zsVYi5|8k5QPCd|*w^rHPx95QMLu` zS(ay{5f#&>El6wTK$hM8wLB7WAjU_uiQGeT-6&fNmqTn#F-GHjE#qnCI8c+loDT1mqPi!eM;Fp0Xd1!;XhBK6grQ@rU*_P3_o>gAG3 z{HQ#~_6xoTcvfB2Kfa@?OdbPEg68+mwACDHh#08~X!v(u1s40KeYoSX+1cK@bM}Ny2ti0lUq#sZGaME&qH-$iR**%iS zrS4tn5k&0tccFXYt0X`VksqFLTB0i_`q^T*Twyv(~>FMcH=AWLPs`z*!poH|# zzkmN!wC&D-;;WKYX!qKtrMAxY_x{7H6y6)o#{ASS^i2O#|aLLo7oggWq zch2z!Jj{9AQfFTA#TNsN0m{55s9i-S!Q;eTz?2t%EIL3F()5^6R2a@7LNU&tb?oM{ zbd;QHQLUyaGRUi_h)x%9>QPk4uc@siHLOvDK)6zQZONpjrLA=KKTGGHo6>%z)JbZ? z?Qr_=;X?&b!7kKFRVukZas6iM$Mzz&U&C~RyRZjko$D)en8vvZVdQxEq$RI+)$u#4 zuJax912rdoIi6GXsf*SiYBFRO8i86@NvI1GK*#Wqmp5I-u3J|@$Or-+FP^d60cg^A zaOmMjoC>ZEvPv*f@SelM#I^ad%GV00@}$q+ZPqF=s$zn?udPyXYieBn30@!s(qOit zSy|YV+$V{DVE+?OE1@ml%_%Lndw!0>{Ps-(M|18@7r5DULgpXF8Qc;OZWpK}QV&DR zhe8d*qGNx@#>Yl0B;_-J0%dp+dj(c>gqZdb_NQiNaR>g7s;>@c>i@z<1rY>M1eI1A zq$H(5K%_@^DBVam0;1AgV>DwM-7!i;>1NarP|49XV$^&2{@(YG_uuVux%+(1=bUrT z^PJ}(LsbEY9rt$enuLd*>|i!DS@Ed`Lv)l|!es`o#8JBh7h=ng8?N{tqhYJoU4cDe|8GenvV0Ghev4whn?Y-$UQ(*aUZg7zxHxsd@8SjBr?lhY z+FXX$hOyv1dRsBaaB~oXqunG)y=P|4vvt$&4x)Kc&@IYrg>;S2qMr!Pk>d^l=Sjf; z1u9R!02JHg&6jn~BpJ7#3npwH&BrK88YE>W(w<$i2&~2osAlC-Fo@gatyE-*zK@Xw z4cW*RXkylAjL66|R3PEtI`vLW{|M;5S>Rqu-%)**`551E&Hke7>`x7M|Kf(9s_L$N zZJk{IW^HN9%^hj+6{NSZFQH!0@It#HX*Uyf4x$bn^~!dfL+v-1eVx>bJT&(hmumDN zuD}ZqFFzFiWbCJF#NtBGQh&rm_q?NudgLoZL~?oCH8!)q4X&_hhpUqexwe>=LVZ5@ zgP&LcOUIquHN~HNBwC*aH~;t%gj$Z-zvB{M_d7vlZU^Q0&*2~eV#K-uOT-C2jJm6! zIdLfi((bUIdm&Lk^=ULYqGE^M%a@Duhr)QWCCo73`dUid*AoLFlH`Q`uoZYg%Twa( zvsgV|*b<)(feq8J)_g6NSL;{OFn{f}ECiIP1qfS)`yIgtiRY++b%k1;SF$W{6h5%) zN$M)Vxi)yrTpAEfMy-t*q_Mtic}Pj`hw-sr)U%*-2utthP=Y}rM#N=ANt2ZwS7`Pe zL5~z6Mkd}|GB7N{=16<>l@UqD=zL`(d7B;7bl5BG zxVz}%xR8?a6E5$VD|r@w9UNLZ^bzjr2O{R|LvUoaE2+DBfz+X+GVoUjrfqfS5`_|u z7Iz2b;@vWca(*vo>`|jgJ)%%R^A_Ii+zV0~!TY-*NR4hQWmLDdZ;r=lPP;E|-99bM z;iARFpnYyG4A-b8t_K9VnZF239d-79?|fIA=Vt`cZIZkv4G|N;zYbeRE}+HL+wl5M z&HZZ4sJSOhas4_cDcGnzuz4RQIL$Hs?iL;wKo_}FZ}BmFEwhVhPmx5e4y|*F zTW#wBDm86Wi0c)yLk5qx>d;>Kwj6n^ct?+R?toh{TaM(YMvbO8OxhI3wlXM?U zY?K)*lzSeD)pfGK1;6(Jrq>W-Pa$=g64%QB4?zIx!`ek*FY`N_g9-g+-O!kTWt3=jZ|inZ)I>^zfvhpO@98z5*o!a8im1 zk_EP{Ro+EKf5{X3_U=;SJ~1x*4M<5{n(GwBRidPZ9e)RB8q-DeqQk~PsUkTZ%64*U z>h@{u_U0gmlJvK4=prk?RnsD=1u!jH1$@d+qhZr^b%jrUGuawMO=dd67njev8@h6S zKPB4T`B6*1E4KINaQCX-95&%w7z{7%s&x%%A1L|F3ppkY*z9@xh3zk=2MFYaeAzy7 zivxbM`sj$u(cxDZ z{D30$G7BkT(5@lykyItJQJnOHd=o#ter6#VA2ROKQ=KR)7t!O0Ovo^u&>;XYvQ~}D zpO0IgP?*PUBnGP2^hPKTfOd2q*U_nZ_}_}M+F59uQ&mS8E^4Wl6O{=eimW->Qizf? z229{}BrD27vU8n+FuczTl4|+Wg_-7I5HfAimf`x^Zgbb|AnIP7#oyk)wXGeUw#yEt zK3-o+w>&&q%5G|j!Tr4;Lt}z zjv<(ak~YQ3P3!Bq6bzvU_C{|xs}A3e{QTvqsjege4bNa_Nzq{kb`NcoR#2vOCdkc1 zITLzN^o8*Zc3e|%__T&ThDHp$5}Qq@`xjjmi%;28kKA#r{+p$8EBQ-J3iH*^OiY8yL@1r%^uWEcV;AD3ZMN<{F@eP8Gu24>| ze`*c2_NLh8H~v!mrhZE8ImJhL^=$=x?(}*};2ZYp4$n-Y$E!x znjBA0P-R0b@oo=N}qx}XCd?UnG4(vY$aFl?}!RMqYCl7&R;S*p?olz%0s z0a&=>9Fr`;7uZ1eTLID7*w}hbSOfl48f3gC&E3H{0LYVn_ElZH8F(H2Ez0luie0y8 zU@lHaVdi(kN_%JOZ3jc!og&3rlar{!PJ-*R*N6MH*{a=wP2<0r#Iz)r*A~s3yhca5 z%L&!fb6tNg?MP{ne_#zbd}asM(}-E+ttgvA`b}38JLZ-n9s7hRfP^TZD{1K!TO}Pu z(3?NRC7h~2Q(xmU*hk=_o;qFRPqCUdkOD#n+{XcpO8Qp@5hIWEvI_WA?G|zNEOH_E zuw%OG--O9RgSCUufV1%qO-6`*Oo%xSH+Us!^=%Wg!BuN);4Ft-A^9Swdbh*yCCrew;J~tpxY^(F$Dj;Y%C96B>$i@(M@ulHt~U; zfk3ui&PPtp@;kAEiF{c#(E>AUTqL~fMz zYBA^mT!cl+TKF5E(%Ft4Qo1fH{>+IvsF$57$B^mj{53h_lG|;rZ;`JUIwlreayDFl z0u$zQ$&9AAR?#+6)#O1ZZ$xqAQS11{US9LP_q@=RyGWPN`jH!8Sk%Y_>*_P$6R_Y} zDI9Q-f%U%mRM`H;Kb=DOI?-wDkQYgE}ZSbdlltp5#VplbGBNh`@OX9wqh z=;EG2IHM&<7dllv_=4-Q!eGv)%DtqyqxjAMgM$hm}Tk9kUdxJI_l6* zNJ{#F+88*g&&i?JGcxl3b!O1&Tm8xvA!$ctG<6U-Dr`TO?h^GS=*##~hh$KYR})&| z4z{-FTYmkBH?5Rz?d2#&e}4ArC*;UD#%yN z!fz}dtky9Do?N>KAx518I}_ch{LDWG@f1S%v3cWlMFHG4!3B13q0Bl8L&txZm@OcW zvRC4^{r^9_y&0n}}yPFh>70lbX`LbUQ)5*X;32}x2lI*z4zXT_boCC=1hVFB-0-|sI_(L&EpcQxex z{*|VRtdZsm@>z}db{VB|j&AV7NbJAo!8(#s!aIZ|eKU*d8XMEM7dx(_T)6Rre7Lf9 zw`J!FoXv2BJn6>SBup87AwJF?3qd3688H!_?grUeK_FhqKO|~KZj0r9E&n&mWVq;R z*=@a=k&OJZvf9jqP}~3Pj|~;mZZ&Xlad{f3Z%39f4dC^Bdl3I&f`7=C zjmzLl7m$dslZ9G4GBE?l~jTY^f`Xzde9rNV0PZ6tC{%MW$1RzD&b-is}^0(pFy!n z?9kWiHDE>*ka&q_Q~6%@G+K5Hb(IMhS*S7nh?hei@^Ib#>ww*% zJH*taVC1fkYx}9LX0x$?8Wi?ZBV^a-r0pP^MZhFVXCY_;LKIyb-#n7(wULEZzxdaD zl0ySug@nyChH3`5eAx%qvZ+Ev@OOouNg|LA}Qup{1ns zYa-G5(;ag+B_!;5JI9NA6>#j7mS91@j3_DjkR{@3vo@UV;VTY!KDkZhe1QM?CY9;h z#F#fqm8O3>qrrS{z0ByQ;@Pr0)ymP3c7`<<4rd;qm6lN`S!2t!|9U{4FL_(xOKVrckEB9U2CVdgFCvoF58VeGgH}UsJ>WbDwexxLwtE78b zQT^#o4# zu1d7IaLU|)%!j@|^Ae!|eh*xc*Rog!kBDq23Fu|@xnPY}(8HsDCxTv_E8u=b8eSvH9Uv$;k85R(osU{asu z4`{S2Z3SxPb0eYw{}Tp5e(VzYwp^eP9dp?*f8&zEAZB@guBRp=+yy#{E6tZ;w{J?H zSEq;KdcS(!&Qdhq=@}6YTpQERx!B#Y9Pv6iZl-%x)LJaSY88@RL)^p!`x?!;&=xYE z#XFaz4gR|^n;W>$D zEbcSJ|KWh>cW9DwGY#}osl1P4#R>Q<7c;9JGj9pkz{sebOyx0OpeQYt6CT-|X@v%; zX7F{+WJlmq9-us3v7vJ1!rlbWqyn1^+jT7Dd5Lizv~2hLr1yf5!Igb}0EE*dE$!JO zcOr2%wd)*7zYp_~nmbuIu8fm%KOr6Hv4L_^mEqR6FwW@K(!G_?aciZsxf1c+6RQqw z0ohoPEQt3*liN=@^Br&aM9}wpC7x;EgKp&|_!WHbU1^d72MpB;)WoPM2!4m#^uA&t zglV3l*i!GR7$)neh^7*A_i>O$-EI%X7kFVSmSyd$$uNO#@YkC&auvRp_>4NeUu#J# zW+GjSLH7^cJ3fq%-+`57a)_m6;XVu9XFFW`7z%n+z#7EIchkR(KoGs)fVWX+cW2FM zXeeb|t%3veuD9ZM(X>`pt-PrEBZ$V1~;Uecn6G3cu8S1BBj*D31FGLi2n8^zL6L`Kq<(H1E@T(7xDqHhwwM9&{c0BdL+21T#sPGIjh< zU-~z8=8i_kWeJlzF8%9n>)f2CS?Zfmsn<^veLPb|kxnvL+0^2+0(MSl^u~leU6OXx z_c!X2(Sr393Yr|I6p?Tycjd7Aq6B!pcS1Kg$bK#DOxX#x&u9dy>I~xuUCx&@b_@jP z$GiZ-G*YkQw6jO#`XGX#qhqPmmc1{evbeH~Y0dbd=VZOwS2Ns5di+8)ZbebVMbZtu zASU>H1KYE6_Undz?bp%{jHAj)8jZ&7Z0}Y$x*6Eq!Teztm1db0iDYBhskAQ_IxZbh z?&muekX$sfg|H~2*HXZj_QcwM4A~3hJ~#l*>G$I3sKu7PA}>%l7a1aF+4fLY15XwE z;p5?HBwU}=>qhT{_}Aq0{dj|E5^t%aHs6jOSDJ4>Ez#AF?L(hjbhP^(u4nc?QJfCi zZ{sDS2_B8+Zt?dYM!o9lDPs8<6B8f%j1u}l!_$i9hWH%oZ2Bt#I!U;Awl%7$SO8^Z zPo;>RI_dtz?#S*-U#Lvli&OA-LlHvr$W_=(yRN+Ux>Rl}pK02A(+p6#6uJAW?2tZy z7T+G0G3g)kuOf;%HECZ~xY=ZXdaOhJ%xk(;d?wA(yb3%e zmNlT>|I9T8`9{5skTeE)wwg7&Gv5+BrezFD$D?j0xv`6^@h>$=kRu2!&<7RK|0+G( zb?aHo<(Iyd5_?Pjj?2}hmo5^TM(2yb{9o)ZOq5vqz?-D=&f(jZ<_Z%UKKbvqeJWZU zSiCg$ye`?74-y!dS&08No6-os#_o|&;4r(iU8rb>uMI z-4$kYjalMP*PxShGPE`wXy-mBZZvqS7<4tv{LP5AmBCE%FQ3y_>W2Mk)*)(q8;? z)@wO5@Vj75uGx3#=Z~OI0iNxhH;$H(62ZMyATgU*y=lrv!(*3W4;!$wC!3z8F&vjRcfSIhekXrTtNPLw zSaDO$`^Crua57L=(%W*79uGC(x7F&d7w8`Br3VX&2y-&hE#h6vIPFSo_xt~kO{b!7 zYp$dkBW8uKJICvJ>NsnMy13yvOl+Qu48G^y&bG#KXTwJHL~>?5%8E`$Bl*926upJ( z9?;lm^wK7$f-`eyr5U+j_-k3ozXtDJkYqyYcNXf}AN>c(zk7W!QZE!8e4tut*7K&| zaqHW;#YgPcLJImoXqX2YT9XX{VhOaZrKOy<*mRohx(lHo>RfV)1*#JAc3*y zG7L^Mxod9hF~Xrg9q}J^$KhyRk}Xq9l9wW`zHP2WK*%roUOi`ynY~g>><~%LK1&#T zRQ_pO;W~%pb0jjjH=gSbKrZ-w(@OZ1b0W9F2P^z9=6vpPk`yyRs-wO1-zi*^J3t`7 z7msa|WRv^%+E^^ht>N;1x!&|+haOe3&vT2W`u|Z>@SNN(w(Cj5*ztortD8#lAK1=~ z;Ojp0-~R&Jr2J78xl zaH%@G0=~Jvv4iL|q!0AR)yXnQQUcl{?JW)8_e$yiGmNIlvdYtY*sS~AmZi=ZiC6)N zQvjlqUA)$TjZv(*`YtRnKKSppNy~uD%$QwWM5nJ4rH~rT?F(UU1-)|u?1CJ5?CRUv zOJn>$I+x*two3y)zF|J>FMXK$pRET{bf#^xlGw7*aV53$+c&=(Z;$WSn$ZJ7V;2+v zeu0g|12{i=6Q+M@7)D!23THo0+g+$za3u5j-)gE|u7#}In2d~Bh*#Y3d~Yt@_>%U; zLV_m~zWe(ye$wo6SmuU4`B~yD#N7Ci(?lNq4bN9VylIPrixkN&tY%xXTPfb#imG#c z6E^@bcJTOmf95bLJ{j!b47K$4;-ei2FsGnctoO7@2dI8OXR%Uk;P$ww;f0#+w78n2 zLo7=`d}>;%t}y=m=Z9}Pj+c3OW6*#W2ymwu2{VdIiE(~i6Rm^zj&t&8k#!V8XD?a_Jt-}TcdVGX5zE%QtSj> zRtvPxJpFHpn(mR}GD1d>+Nz!L_rEOpt#k!$u=ye?|ES$(wT+|70q5jA6X$wiluhsG ztMC>+;kN4B2XBD2)xydu$`7}i!Nud3Z2bfO_1m~pzObZj?>Nn?^d|i8bQC4wx|tLX z^(vy12hLCy;tfMBak@@`l=+~%41ITyy7c0}rZs5HjV(;* zPmeEX&dnBXzXpQk*<|LyjlI*GoZjgT$UUCvB#lo!{b26j_CGTwkv|5sPrArIJRLZq zjYmJrn0vBn)6-MJG?DZn`SAxP?H`m;@9MSaOZ7PZVGc8Tzp1(&2T|h7PA_=9SabAH z)PQ!ndIEMDODEYzH{XWNIoK#h9w56L3T-)!-5MZYYmB%2RvzUFZU4vm#S>p%sApwT zF3$-C?~z#Yf0d7?lM)<5+p_l62VQ&nIY+3&oM=ni8aCT==4SQb0D&H8 zz5|xVEot^;P6k|uQ?Za$hW*9FW`Ixxf%q|iEo=^4g7GOatiVNhG+T>%zVEA8_6ffi zGxy8qBTAifD*^J*f48XW%F(Aki*lDK0J`IudaZDA!b6>aU{&J-8&QbMzv-+GmBCSi zc>R&?1&|yLHawX(!&=r0lZQ_uaJ|6~f4fm{C(^k}>4_Pfi_FungjZX}zV*PcJ));~ zIi6s+m*NiC_TD4g#-nP4VSv>~s{2@eDi{3c>+74F;DJfGW+s&iRv!B5%~1cRLdIvV%QZgh01+5*+!h*}h7I#x24hq{%m|v^_f$t1 ze|>2xCZVhDpI6{Gf}d?1l{QyURu+RjJ~k6e1E%Wn2V4R1sUgPYaEb=4aMPV}X zu*VK3t;fB=TC^RHY+Ol_3fM^%9JwN#XR6){yB4tC62xv6{TOR_XThUiFzj1MC*}#) zq?gNwG^o=njBWLC$PSFw%+Ag_@nv^0zoW2@i;fn!QfHhQA9u&pc81|-laCT1=u)PV z0I?GyA|fs^G4z@>l<+afG5zPF@QZu?pwNKZK-;#f(PBnp;E>A`Xikq+JA*IDrvaYM z&xdzKCD%3F9agP#&>&;uIm+?$oSdDcqA}7GFt?J8T^6d$9yzP0t4k&Aqx;}C6w;8# z8f1$b7ze6g*fUx#Rdc6!w+KU-L7nMuSVCo8yN=|G{%gL;vp| zk7R#l*xs0gMcWuHfUnR=;tGR7CrSq>X`;fQrq_D}JNJFScfGf<7Yh zB5E509I5R9pJ^_&9q3*(^Pdd|e@2+YD55}O<3G1uM6){|uXy4|MV)=1^U1qHGLNI? zI}>H?0PF!kd^VqMDX~YXPlsVtWWxL2#?jiRNJbSI(^M${@5cXKlF|OIjvHOvSRDfv zPZIi(3Xp>;G#fCP$7t|sHe)gtkQXxV=U5TNT8gIrYseeVBSm}~`{v{-I1APi&CGkW zMUi>G!QDtoA;ALlGY)?^C2Nv0RG{yfb9jTooS>TgA5u|CpB>1n{!P{AacMW;nyV70 zf+x^cAA&GRS&gFSgixKz0~E`;3dHX^HEsP{z;VnU$c)e3UdBav_b!)F*5A4y0Jo=L z{Nr|Rylh^|Y`GL1#W0N8P3rCKb#we&D+wpcVE#^#$h2PwhqeWY8L4YO=5d}_h=uga z&J`7V46p|34{$`>CDSxlvo~T*QgXP>z)sCcN9RgZF84^8GhK(8gFhoBWf@dkSqMVS z&>0p2wd1rgyT*>ZFN74@6xka|;8n~;GcjpOL2wD`v$~h^T=9AdVz&fVO{=>4%}H#| zmJ;ue)ESMi9iS5Dz2Q-j#l3V!fx7ohhs2@(#EYSKv8sV5A!=KXK_}^+c8G)nC+s3B zj?o#-ARXMQo%9iRgi*O>t>%x+-2YT|wC_;_p|CHI$i|=lsU&!}e@H3Z(asP}z^yV@ zJ1DfFEUNZT{s+_c+WI}6xL20l&q83AVl<&eS24^^X^%8)&sB{!zix7-bWIBWTil7* zk`aY+fZy?`Jp%b8x=bHPv}mah?0#*mKE9M=(7}`Nh|g|wzodXdXhKWy!ma$kt8r6p z5j43EGQPFX1%Wtf*kYB@G-ZD|*u@n3_S8U&(#HI&cB0VmIJ}cbQ#P^^b$pD-KIs!0-)tN zcmCUWGQ9;N$0rk5S|Q=;+kfPIyU`;$={xtB0h6oAOB&4xMQGgBSKr3vf9{D>-4#f*xcJcYH}DC#oxQ?gU&_BfszQzDOYZwIZuEey^~!`Q?1* zUB=A2cV?r!0mCJius<4^l6i_#Jt;_j6VIgZN}?juN0(i8KJKeT;6Wa)?$ zZ-e5rT}dbkoW~mwS9a!g8a~L6M#uN-2ZK~DbGGY^Qc_Y(s6mR;Wr%owJc|S%`JLCU zvv*yH^0LHF4V0*yF02&Udxk3Ft;?Cq?ZCL2cDhOM5OGFAbVgf+9A=+r&DKG##!}tK zzu95deT_vzjP#Hi#)XG;9I(hx#%flgVp+MP+2Sa?Tz#}Ywb;w zvO^hvHuPJNxgNE7!X#LW)+VzAIK~>($f$H&G;Hb;ilZ6#>l>Ysch~&|l=#P0ZvBy7 zcJ*C8irKAn(TV68TFx+wrM|V}{_5=N)hcWv4W|Qwj<4-}GB;*QBc%Szo2nM2H%2+Dtc&VGnv?BQaWsTxyqF~m~&o*WS!ST#*C=8R2!=V6T zxpBvFmLb(@XzDvth>G0uPQ5}8=k~M;qD57^-2X9}Fn0AsJ_vm9SD7JaYcg6#9eA%h zW%#;av^dz!eg0u#3!&e)63FR*-{c)`AvQJd;d?FaSQ@@PYJv<JP}lmmK0?9V$EOi>_Mz)%VqjC{P5b>;QiZJ3&xo_02DkWs={GM1cWRZHj zmm)H?{tBAI4r_U>rH+sX75F&%=|V@VLBm@9W3R@KN+_^GbiCWi#S2AO3B&Sxc8i_N z{ApA~szD;#SORZK2Y;9cQ@KY}5%MLxLS8O=yOtR5nUzwIV~__hD@@q*IBEZYZ}uJP zUey;>l+Okl-LcSNA7oj@P^uE9tk&Z>A%I1A`uwbU`7XjEuQfMROPxcoB~jo^T1gqv za_dqsG7%$5t+oTt8&}oJ0UP$2=M{gPI4fSSLujyPCwr_7`>EmtD3|hxDv5yOvR5@qK}r~piElpsBm4(eQ8tOo zquvPGqvW&!AjmaCwEh-J6*0q65~@j}2_~cGb!7-Z%qoq7=s%MNIunRF{d40ok(>#6 zcjuE=fB6@Rr9Lp=#|ji*HRXIyG3~75#ffA~Ye+s+VuE{`ZIiaTLq|CAzK6^JB)lhG z@!L1*fp3fd^tib!a}kD;LE}rDT%>e>R3HIN&}}UXy^3euFVs{ZNMPwM+!bGkPT;q zajx^ahf5eKXR|TDxkeKY8#H?N^Mp`?g)B-j1atWN}Wf!1y;#?0(FP{?3kY86Pk9NCNrv zb7U8f>z1)J`V>Q^o=4K!xdf0u$2>2;K?gr)m>snc8FhnWG_B&(4t2spLcYk4)sWSQ zCo>v+5S^pk9(fEvuXr*_(?0DNy}?t{wO=QqGm3dAexmkrE6mMnHaAZiwtNq($3ZFD zjrggIuEjQL$g^|zx;jBlrJ?kOqz!Q`^{CfkFXOfBmRsuI6$z}=-BoD2TcS^{p?&yK zMJ3wsb4;)ZXa*K=JGL^Dws%EjWd`OCs9E1ee_*077TmIMTs`6f?YSYAPU3+<@^$s*1h+Qo>J zf`O8Q#-lgn{Ey>e61*54SLU~+B8@Mseb7|S@8`xQ~WQUlky*f@Kze>_rf zw5E8eu_4|*1QgG0*6FPZ$)mM|1mUkM~k@*lFf<*A`>t-fExhhe&wM_{Hrf?By zKv>)0k(pl4cxCD25?-+jw9cqp7Y7fHE71b2(K52K*P&ry+J1h1ENz+kwg}4ig-85U zNpyq-8T@|(Rcw1OH?Q6W!V>IoW+7%$R;ogF^1g&xwb{52)RQhh#_Hb1r6qrUEh#zA zURMXWO*;;kBiAG~^5W2+Ba`mR)#>#8D1gJjg%NPPV^y|2pckwcF#3nf751t?j8tCM z3l`6t{S=b|eK$&mm+(PV<=24T@=Lh0>eDu^g* z^xax9FE_W4aDIS4u}%^f=Fy1kcjHNSY4 zWaFRPe$o;69$8s=DjX8$O8fPfC0P=V4u>0At%r!?&}8i&!&xHd*;Ws0uK3otggD+sjLfeDdO8>@EG^fGPP!qNGCB?Qz14VI!g z)KUNFb6(jFLmo*V{SveBDq13X-ZFn)&5Od_zi)edeo(xOyR6$3+z@Gh5aP3&sc#;H zEfU=~d8){~0kIEJL;Lw=bLu~zP_<`!jujz67Ti6U{ zyeD)cSa(A?(gM?%b;N)orIE9emX#a65nXIM=Af(*sel$itP);+^50!^)0>ZYqBj$!DPK@A=g^oJ&P`aDK%H zv9K5~Rp^g`H%2v!PPNw3z~D1Wg?jQd&ik)#z3bF@+yQyG2^yLG-R!Zw>8O?QSSOnp zAAuf8TsI(`_Eys;)gzGb`J=MhVLs;`VxZLBq+tv3tRu^BW(q0^4 zPfRhG-4+uR+HHr$<{#|y;c>>nr;P_}8&DlQ)QOnd4$s5NPq4g#oFDQwX>8PZHP+G- zbUHI5)y=th-NgaY$LFac9;Iw+Ys>0`Lw)5`r9GW%CqBnV=QQU?S3wu))7k;cptCVe zDi9Ig7TdX!3_(JKUU`3qPv3b-z=21phw8#-h{>XFuC%S^lTqOyk&DZA$83>+%7(f+ zQ%T&B{+#dahky*~|NUEnw7_MJ5@lj#w&k^z)U~IpI>*OnoVDdKsr@o%IR80hKtPsS z$Tao`ja8mpY}U7)x6lZ7Mw#r(mK%w$fSKW^YqHCRbqR=v4ngu>QeqLfttdyJjm zs=aM5tKsSq;^R7?(i1%X1LJ=i=#qWbg<3K)1sV8u*(&$DtEyL4!vE<}bM*7}lj6^` zo0-3l+y9#FRVG&G*L-Djvg?n;ZRcLL=VY0-1!Y@D6ki)T>Z^FkTCzzN;NLWPKj*k5 z^i>W(G4Oa_+yD!oKHc=veomhL{d;ST4{sJxQ{&$I`r!Ukp3$68E?s?nks`@}HrjbR zSwl(J0>YcBa!yju3m~euG&s+7%f1UGr4c4M%ZxBfYRSF%51&YY^df6wx<$1Ti&fQb zylfGjj9~5QcdRX|G#gu7bOmQ+-7&YmINc{sD=sPN7r5CGJiKpRi38a-=d<3mhbAq} zGiaK9ZMwGj z4>wCo)O3~Hmka^|TKvwp8@K5v zJ>#@0MqGnGDy24iyv@wi%5klHVV;m~$vZncza}C%wSvO(98Pp`+XR5B=DiQT%ubKm zOLf@0kNa!$nzuUvW2}TGCME=yPpB=$Lar{pBLXfVSy_&|w&v!!lC1RzL?5kmaG*hz zq{nK^d?_;c5?6;U#=*mht#~)`ZWk&xiNOc|X^`4J2@$MaYNT})y58%yo>*fD{8pmk zK9t+uI5n6JvMb1Lsvy$IimwN|?lg%lpC~kU2d?fYdH0gi%oNOwOu#g2=lnkoy- zM#Ohp1^6CuQWKZL)U)|r+ptrkd@clNA;+l<91i#BM8Isg{W0hkuoAa9ZwaaH1)N!B zon`6slAX;nEEe(^I{X{@VA^)M%HU)2%2U*Oese>>d|}GMA4k}Q>9{x`5rDQnw?FxK-Rge$>ztJ^ zcGTJ&!<~7jjq#|gq>JUA;#4n|)uqxN!eAGtO(Bi;$3eSA{qN>m{RH+7?~qAY zd_`GhN%+;6y7%WR-}?H1?!V_N3Rkb~a7Rk+9j*yafx$I@^LIy~>f*gQ%~A*Uew5g2 z;6MyUmWq76+`f!19Yor*gyx0>R`v1N3z28rgq+O#+>u@kI+-u7^E`bv1&sWfu~f=V zEo9WxymqVC)+P8Zd3*%06}>?$H>*)JLv})TY%xr4ZlR~aP34{Klhrb`meXMu>|Zo_ z(TvrVyZr+=!p>5zra%{6`RXCBiJ%%?mwxtmhR#=YthATKGN0e+-rw&hoYzHW!xr4! z+^f)ZGk!L82p@0zX@Mm3a|qCUbB^Q`f>r{cOIJnVE5w8B4Qcn~d$#}&^gNY9&|F&J zb;}jmlm@Zr*m^S)cj!K%-1Ktw*JJ1Rjb{+b53URSl_iC^TFdgT3T>?fODSXl=icD} z481jb^_Sf)N8E>J?+{(@D7OO(LkLLKx3mPz#9aK@EMYCN3&iv#vwbyH>>_-^Yesu& zIC)2KF89VyCNNg!w7(yLr(;sjire{*irBLke8k;XY-XJ4nmBWLN=nLO77F09iI{6QPk(9fro(uOoUC5-orgDAvevT9k_G!kZ`A(#%4yW> z)BUylkj>cB+QORGBd9b|o`dGKH>WJR^PLm(g;ax*p`56Z#H%M86de?ll%!Of=+RM` z8}G@qxxKv|kNvlDsWKf*=YjpqlVLz{?7u|p5gz=20ik^V%T+nodV@Wu&ObQ?`er%*bEo9+tM!%R_No`C@^*K- zjM8WjgOG2=cU07#b>0(o&If@Z6;SbIFHfVk!a}B!QL4ZVX{{iXL4~olKvS=bqvOl} z_KVV`$>yIv#Y)C+$X+SmyoirmD?E*(%~sEFX0zSrxar08{A-xRme-Fy0_90nI zTmS(KcnkY>ju_XDe!|UfZEby=1m#qu#2|0F%qv@fna|p$rgX`SM!4XP!`=|Yv#+V{1cjz$J6tc8z=FtxnOxpd&bncFoOGA z1Mk9iMRX!dL@z)0b zZ33i3`5;CBU&rg+dBM7ZT7%wDhKywy@`yE5Iur z+n>MG+iM*iw^TRXw z*xKC7!JI)sfW|H^zfl@I^~)3}41&R16UW3k;M7WIM~wFT&Q8lNz4!IbxK?6!Jvm_b zpV;h$o1&T(Imve^2Vg1qw>Pf3)oX*NMzvJLRw}?SWSmEvug=%Z&)8f-|)!1Xx?n; zaIwV0kRjsoPByqF{sGCc=Wsa>pZ3ci8WP~wA3x;zXup4ja!?mLj{K}R2_l^o_h0T! z{C)z+z8AN)LT=nk%}dDLH;U@&KMM}b_El5}2V{e=P?Z-dqLn>&7Vb6Y0#gMd9b?vul#;i|C^`jImu9LhLvstc z&Hp{f zqxweZj0AK#4;*>TsY!Ak-yhn>GP&wYLWbRoHWVZSj<>2d?Pxc;V`+x!>?aBqM*I#} zGqIb~gq#FTCmz7;%FtZhUTI3$$xXQXG$0&juyq>~3=7(h z?FWA-YLOK)6~@%6)}=dOO^2(sF6|+<-HeCsXD9{+C*gBy!ms3k2ggKX5ls-+1YEYx#nDpNr6y4?srVKY6@iH@Tn9Le8y13T4{=T7{m_9Ve0R5V)Sg+5_GRF zK*?!I@qoM9E~M(!v(d26qH(ZK3S7MclPqV{muKTDN8XDe8m);$7C35XQ z(TnM|*lXj-9|}#AXUGH165_Tj*6kbtv!mF5#j-~8!oD?fs^QFtP*?_-rH{q%<6N%c z(Nc#XJD-}G8bQwR>gwuf$-L={sKPZfDbm$1%@!k%e@{zKq!b&p?g)sQ3Af~5BqlDY z9>akUEE^U1fmNU7nW9IXm&+t#8~-+C=7|XQxJy*ElOVLVQHlk->lEs95 zoQH>*NEa&`a_M<^GFz^_(RWMT2X8Eq<{xnM0G+=ImX&x*x(#mfyEy zIzB}OvkU%Js7hLb_8Vv=MAB!r*mlNC5Fepf(lBa}I2|U6GsXeEnhd$ZbFhG8McR|- z;xx?PKeo_6cEN^he?AK|N*+24VS-KCDA^AW?5YYB@|;oS3eAhO%^{%+(8=D5y%`^f zu1k2d75MblMXzTKo_Z?6@DMmd_tOv^Ho{iA%&~QEk~^z?QyQf_ikntSYHjUph1+P~ zSiLg&;$`{5UWhQ0!j!mHvuoNnG-RzFFaE+$cimRljn+(_5=Ji)Aw;-?yp<9IOk0DE zy`I5i9p;3CNuR>T+G3C0IIP-uX4$0EmSaLul2A%FpY^wCv?|1KQBcT= z2cZ6$!{#^QYHlv{|3!l~MZoG-iIc49K%)~-eU!J*o3QlrN^BZ5UctDQOXnq@P{blx zmC@p4Ylcn1uyuDxIgQ5l?VUO9wzId|z6>8-oh*4$g@>`YArLXRII%d8cd@B3B)NcCmEYP*s9$x=}sXDVauuO z1W9u6KcmpFInzRezH_E7+k`k6?AnGSZ=dClo1?oBD(>DS2@N02Gr`t@_14#s2pz5M zh!tr+8V5Tt6r1$*goURS0DH~6;vvUvp&iWC%D%AOx7WwMa^swLRTn*Lc<;OCT`Q>O z%R$XaY!J8KM@Q35LGnj)XKLr>tYmO>ztsVGNPY=tQttegc)=1~Sy{=kI*j(Ha2PEu zFC7HU9N3o~0B1l!3LBfFoAGkI&YH+~^@gbZwR3Vb1I)VX3-r5UF(&J!aY%;B)7BxI zagv!4v1Ufvujcw0o0x|{4;?~0oAeulb%r}odK_?)R1pY-9O=5ie3BwP2%kT*K+$D# z6%qM>PA;-N_U&rMqo>${L0#wZO~+5euS>_J#OuaRY(nNO0caX8323xOo$4G;R(EP^ z2yH>Eun4@9)yJx?8D&NJZ?$xAAb3NSSBn}JnMK8-=R-;-Xi-{4d8Dx((d__c{*h57 z5nQ+5{%jNu1OaNiH{&Yv9JhN_1cpaXRw9KQ=F=kMj=rhAFttFF%;w^sS$>}z=;tM{ zQ6!l#h>PISpPp#$&(>dcuzZQoJ#pV|r7J83Sme&-o=>20QXCz6Q_c5^qLZriqKcsFHa$v@`@{#oq+PSK zUIh~CgJm&+OewuJZH)i@cbaoajTld9OrTNmVxE)AKl^}xuoo=AQ!2so&-F2qv-R_< z^F0N2Op04G9J)gFC5*O@;87MkZ8MjERfm0q^>^D_Ti=R*ck&?BQ#*@&tfzl{&;h#> z#lJ}dyB+xW@8=0{0PykTQWR{#Yp=tMc(Z%O@eg)*l?#~m$pAd`n3^tMx{Xy8KV#h1bFmo0bm`v49QsXB!W~5 z#pT1^@7&?bDkfd&rR29wx-?EF<;R-mRZKMUOQ8Tf*?HqXWdr==OB4Bdm{I}LGPgx- z(j%6Cdl7|3$_dhSi$;2jtTU&u+nqx3>WuU@IkaO7kCZ0hbuv*X`0sU)HpNj(Z=C8{ zxdT0UAmxpT;hB%*wIi?D#L+GQ1YIDF=NL}V_WU#Sck5g9G#)O=_-;NKl{HTg>U`rC zu-lx+Z(Q1O3(U;xlkB0gwi5x+se1PW4*=Yz+q%pPI38+~U$w+d?fPGxO*R#8~<3 z%+%C|qwBKvtNU#cJnlZVUfWg*yH6d4#}f%q@MbO#1m6(r0Jv30iQS+oc-?SfHWu4g zYh4%r(+Hqq_tj#5y+8ZJx(gI{AX2Ldl*|JJ=y(3Kw_YX8?RMkk5 zzDZm^*)SJBxz&9OFlyI-p-Vad0YGew5Ih!Cso0>PqYxp`qdHS`sCC;+K(;Q3u%H)SR61$)ws^ zY1iprG<|ryb%I~9#VXM!Z$Y^<%VjdHajE9*fTX?`ae16|JfTm@y9bnkGS*`CAA zyge-|d$Zjw7I#x!gkQDhS`3oGwU5i!1e2Y;%BE9;HmUaPL54HTtEt-^Q(DwOs~Q0< zvI2}h1T}&cI;;D_kU-auB(VG~hLdjybGY`TK9x$Qc+~kHikhx(XO}JEwxIb3PAJIY ze01Yu!~!g30?+@v{L-F@u5LudYU!w_xlr;6)*9aI{oK0CCX=ldbaX$99H52}o>-~) z=oPs884N7<9PV#>fiv^+I+=I&x)b{@e|X?JRWW$)#XYoepJ%~LODHu`FZ83gQBj7k zwaoJJ@~0fR6dm%n<{rwl3h44qc@-4i{z(l5)rb?tNy|@nqmPtktWVv#Dc+Q%z%7z? zYaTDs|Cf^>HTTzYa{e^#uzyHozBu!~kIj}Mhs*7d|%gW3_yAkpj847(9tsJFNc-5CJ<3js$0q4@!l-) zFAriD^C-s-Op15p@v(z=5N>?~rB(N4TseVz#3b7tdip(>80r%^NTq`8^Yfh)ktbLwL}% zgr02+x6MuMH7S6V7Ic@ixPo6i}B%gk@2>g!@^;-67T0 zQdOmx2JUlNt(kp;iXp7mwGblk`6=_^)(f8@9>Q-v_&<{k2x>OJDeio$ zAhXn4UiT{Z_24t_h0kg-(Z$c?uthZmF}s?d%Tmsumm}@2v-c*7RD2=EKc~HhasK1j z1#p$wpO&|hO&!)nCdZJ&)n2tie|BZe!P27W_Mia0`n#i@5t_OB{ckPlelx-CbMTgtvwq0p3DsO)rN!3+1qq;D zAT`po#5N)Ue!IuQW$SP2&n|lDy+5C~;oq4w(eELY9@f2aF>(w}R;{QB9zran%Z~6< zoI%9j^7W_tgh+1Tp2Tnss3}N=u!0AGQ7mSd_H{|S^4p6uk<|u!5JFFDG6kwPQB5_;)Tr%TI_N=Lu5 zovhhqsx{uWNj=3cOa|@Xwmd(VUi&w9uJ_j!O+tij3`FvdM9_f4qD9PU?v@&p!m9UOE|OdHyq%R2C1Sj!mr)&1@CZn=W% z4NBYCa(HU*=y&P0#~Uo-^mpG&vI?#V`;NgA$NC{*M!^nH!O1yo)-q+7R2Pi^H1u6d zk^+OMhDnfbhi$`SNc|?NXX1X0fim~IiHV7Ns)&}9XUy|IlEpI=C`Me}T|&2YZ6xmM zo7GLm+boGjIqgKhd!BSN3_x(I9%d^u!ahLz+K2D4ODY`@y&pNt`RZ%>eNJ1cw1$kf za;}xE^tdV$1+r5uV#F}J79FJ_v;00xPf%t4TI<__VJ1dVMgGy*wa39$9k!2t_1$1u zjs`yB?Yf@^P890FTAX8xPi2GkpyA3!Z+SDuNDG@TPO@#ISoQXbQEXob;iIY#Ta_Dc zlH`ajazj15Vqkdw=zWa7j%D81Ir57?I(8VfS|-cmqu}huqk*9ji=z$Bd0Zin7~$s` zq?t*)9n#A%!fT^+D>}(_M1#-IccGhuB#b5PvYcnj6LXtwiy)FB+gQ)^4dXxHJw6D%<_Pf`rs!x{2>A9i)ZlURR+Bb7=N4dYIj)JIL zNUZV`(!AULC^ODPz5)G!;&>(`drsB@wZC$pthJlDv|nw}Lg#aRMU(w`L&OzWK51nb zySjc7(!W@hWgl^)p-Z9t3Gk@GWn0jJUUabr9r|YX@8`jN0;ff`-s{2=vA^y~M?)*+ zyW3wl6R&MTG-Swbs-yT%?=(lr-JhhN$Uf~p4+D8L&FaEJLCrxy7M4DA`~LR)sz#g+ zO8ph(wLfo(IihHz(9L4_8H$p5kag@yZ1MM-^ntpG->k2ud3t|cuN=SY!|&eg<}(gA z*+*>mMD%N!9RI0*&(XN3w3E_K6Lny^?poOGYa74+{ho?vk)O3Tg%Z+dATEDGv#|uucWK(OOI>mR z-Sda|W@SjwN3VDU+dT7P$EIc&el#QN`n)Vbm|tdr)EQltLPC1J$lwwPtY$6n7N=*I zW*tOUcC9t}WNPf@8nxKU+)BRP=ba!uyl>w2OwH;zWR}U) zjz*R@Ln5#K@;ETw&Gpq(3Vw24=$GW&5VVkgqDk0oa)denc1iP_oOhoD@^CK99&-4t?AjF$b7oR+Zexgzrm_T<27) zIEf%H0A3M??7@cDs6$y#qT;t2<{5#Sc~dU#Z@Ov4^moqS4K&)RKecO4wmc(+b@;PL z@$cMldM+v>DQZx=b|Z8k4ju6g{@3pSjh&NQ{yF@;EtPeag!FEaCcz{EhE-145{_qc+!Y_LPM3=*&&k7g&D&HgFT<%CZjSelklUtIT zCuJfEl)osra5oI>ps+4<71VCvb?T~NwkUdDmqR!FNj$L{WT3IuJ-0`;AG|JszA?=F zl2I|&w`{x8x6YT~OSIo42PY8!W=hv}fnzTg%WbvxOLhTvb` zh&~&#%{hX-ai~md~~eLX}F) zNnR?3kIw^y!KN!s_J!$Q%Z63{Bwm*>dc@d5O@A;dmY!c|&PXwT*rghg{07fAm^r z_o)C4eTqqoZ7Wj3q&t_|Y+U%g^T4(#(P6Drn(l%rXKXC`iwpOA@l-U^a&2w8&lxUC z+pC(5ed*NmI8`TUZy}YZ5-}kB9~~V`=R!>_UsM;MrO@sJ4%uy{RYRw}SXc(hb!2<7 z4@H&X6IL^)`aoDQ?*spx{*itsX;O#8c40q5M{~uDYG>{vRoY~BBhd-BoeRWdBr$P> z!$N!Y;mmGaZp&!L3EJo|K1F3KTq2Ed@4P8I4(roLs7CP_ThVL0ZhOk*k13lRx2tp< zuY6H+y!5Jn+wfl2ZN9nhZRY*v0ek%V)Y~0ddSTCwub^y6oegKdU*u7`tcmrfOcheV zE!rr*%9W2m^~9m1>)U4AqgI(?RG|`Yd!DSeal!J4@fc^8vBU)W1W3RVURHrPB8(b4 z{HxhsV3a|3ru~@E%(VTtcG)ToF<#R5Y;^(}AnS1pQCr5zAcBay2@suJP9t2#4c~7b zKP!*O+X{JmseeF2p()xq9)ns?E`WI2#6&;*0AGb#{uFyRgAD6RY}Vt64=El)=Owk# zMS9Ziw7AASxo2^P%Ue@$=V@jx-$QOas)f^TlZNfO>29U0165(H0%$UOW9|d8&1o;oR3Q0C)cPEGpZl9@Wws2NA7lh zd8->F%(mrM1H8<>Zkyd|h2{GFS)%mUCn*Z+#+}sZ&O3)v&VT%Uwesuc6vke++G7(V*)14xzwd8-p%SlveFw9*&E|s<5W&)9^ z2Zgt(ZClXP`cO2*^!!(9CITaxQ^*7c=>!qBLg)&yRq}px6iK{5lRCSL9hF6e9hVUw6s<)Ye{Eg3{rYqyChS=4< z@k9h|e~ODs@%&0;(z1}Bn?~-w)2{lXZ9Cf4zO|`Fw4h&Qil}D#aZ|Vh@#&5vnQvNq zW1tklUMVn+T9b^NpYWO3W+SE2GJH$)pnVKD82ZT%>!k4#>?t~mh^ad@)K zV>ianZ@!XDJ}`WhS$u2oXw;&;1r#%@V0#pg+^>gJoz}gLPeTWdGz1CMUfY7iqVxT^ zyhAW!DGL|;)yd0Fv9cLOHYp8@A1~gx!ryo5V%jQE%hMCL$K(Y%x zr@wG2REIRcg$Hk3`K6IS+oAIM^q`>{leZ>RVSL%>db5^}PI#g3>)o-BaltgVTzuTi zZsr%mcRdX(_gy<^;gdegM!%hnB>B6fDy<8sS4OMyVlz9Dq^-J1);FfLey=lp$6vgW z-u81h!)j=7KI3o!RiZeKGugD&DBV}as|JrAW(3uGbR@~h{Ov_Sgi@}P*G3wCBTvIZ zdpKE9-_RUZE;nDy_vM@(d`fl6*k@o-gz(ZT(2CHPsK_1>K&$V*MAj2WG)vSv=QP<% z2$tupSuMMFvETG$TY#*aF&@Cy0BOo<^h@c7T^$C;Mugh~PY7zgWcnLm zV`|9FT>~dzu`NvvYU)#*S58~@XSfQqpEI{)(OAnMg1<}PsJ~1_quVVFenaIJBeG6u zZHnZ^8~Pu~;Lw>GiVgsblkv?dgIZNBz2d&%-OsaLRa@nrq2J2MAp9Hhm(sYGb z>$9ya-x2F+GDpf(i3^m)^S{JrG@qIY4W|YDTEvsSWPAJ4L0{YKR=B%%9FXQLaygbW zZ4G`-)_M=K*1Gj|WYZjv#L##3*LAlVk^k=ZC7{AyfN-~6QO{i!XmONR{h0OQ8?H=K=At>D_y>O zkz)0FOvX=x_^1P;*ve4PM)ZS+A+U)D*WK9BYeN!!c&Me^$k)v~laq_f^32zwC8P-n z8ifNg!MmcT@q)ihIQe@~$`r-$KOqO-e@wOnR{r{gvaXMTsVD|d{h56R*Z09vizH5T zd+H_JP7dKPU7m7|TK$c;y+W}XL;Tu3QC9HiWy+DcYxemSl?zEl9VBK>Bu2lT)LbO{ zfl`+j6+NbeudgKG-%2y? zz4bNpi{ekIzTV&8e{bhtH}@v9Vz<7=>9=WFKVuBNK&WF+z*Yn6w&L!<2(vHyMF&!8 z>@Utfw0%n8rlLG*F@Y&175ZwOe<$hLS|0&8IN3^1ABkHbe&z`0-kPP0J4nuXK2wOn z@GZa@{?Z$B#UpnnFfj0PSG1?YA)3sZZsVh(-1^7!Hk`bs+7n(~Q{($5{43$_+{KHZ zgMIpMj0kBjetR16FPV3kusnzJ7{%dg>&-E*)MSe7tGNVNSY1+0d;C0)g||N-$olHz z5BW@}8fDxfMo|&5Ejh~?xvI$M-asv&!xg2bV=ZV`k&riIlmomPM*;X!o@a__&nGtT z-=+sUAh3G-Ol*k>U#@qi4}j{$tTP`6*!pH!&_Y5O8tuYRL$x2Kc4P8^(=oSZ1K41c zn3jd`kUO3ilq)Ne3cS-^b+BCW^9g}bKLSPvs#84Qqxg0!bPZkNa}Wz5sXoqgQhIPP z6C`wESxCLM_eR#F>(Jbt!BrDB#f%RS2d3C=o+##-1TzVWUX zHzzd_T6eshkpaHSod5lC0?PVsUNKFPQkZFoFTBmNlh7)Hy}`mlIjP7Ua^WXwb-y9t zeDS=X+$mQ%8`EFTEZjLuqG&plJmqJmhlqiPku3E9=xC(Q=?PUFdT(oMD_4t74_7|} zp~@6#Zm9_o^IuSl7Z=xUL@18cV_zd z=VI{*GVY_?;^vxPn?_E7Qf)w*lfA=)_DJI%lNYNitgC~4D0R8HE>-y$_iCA6zlK|_ z0O)Sw9}dvowRjZ!-@(2_Y@C3Kp4Y~!eOpFWxKj#sf0}T6kD-_`p;bLeIw6wOzfxz> z5^`~v-ik!|MeBiE+5EQw1`R78Y44qdFtXAhwF!mNX=v62`Ge(2JaUpW(a6)J|17rz z!XzE{Bo@>h9f}sj)u+NdeFiQVMzp;i!OCGqJh?}=zui&%SUiu`L2a2^a`^G8JbX2` zzuKNj{woeAiZf^`o{9+UzR?Ccq z*>e#IuC;;OJ`eQ0Q;q;-StW~F$LSF*%4N2V$tN|y+w{B0M>PxeaVX0ByY0B8`WedB z4ElK6E?Shj&%hHU-vw1GANSpO4Ad^z1>EP2BELuMDtr{z>AE`i((dnUYm^#)5&ylp zyqH%+Thqn#D;}8Jsco`%_*fp<^xmyH_zl=B3eRt!Yzeq%!N#@yZp@8T9S?|Z)?}5+ z(647sUukPQ<1!YI__UdTSDpSnN{w##&iE@X-q@i!zdEu{jo>d8_UHYHi<7)4w%Wc+d@ja=VvGyT%@Y-BMwP;K!|#GBpbR=9w`xKb zQU^0Yg8hW)^0oToCE(b5%kC&ESo{`tRBP10i{!5p?xRfg5M7cP_6n)~*_?LH!MbYG zni@euF;ud)z>ji+`3!tTqM*w@1m~As@2oNfbR zCM~iYXF8_rN%2Y?a^NZITuE{2MA**UTu$dyPF-$dY-HqBl4w0_8K&{mdXn+fT?M#| z+X(sB7Y6we>^lrUq~xla&w%!~lo9O5Q$2|(vIKQ`lmw!t{dsMVU8Of^b&`2*Hu}pe zFROt)Ijp@)A)2e*-r+ek|AY-Ku$jBAyV^jr)V7Ct#aA;%i@WznmT>)l6NZ&)P}_TC`-{-zT$m&9v{BX%b_zM)SR2ssJV8Ufo` zWGy4YX3G8paVWxmPkaa?TIsDjm~WO;Isr4SDf*fSJ77#Jv|AE<{Yg#4b{@xL6kDD$ z5w9xhZO&UZ52CM8rw6eY79G22lkWsGozIlbrjIS2FI0PLF<3#jJ@Xznm&}CePzuN7 zE(>7zMC%H&8gkGAB8%KuKv3uwQCrZtacvQa@C|_BzIDemx!*CSMI96~Ah&Df@wIG#4j%HVRrh(gQ!*L(SvhYl)Vh#-3!2bj3N< z+Ke%f`wI~#%%uBr0V5jojX58$FHXm2_%7#`Q4aPM{Nyt(jRqvlAqHuhtaHjWXvoDZ z9Uq8Eej+0@B~?pP(_BUip#@|WhTeU;`KbGkvY?Ve_Gu1X-hABw#INW1#^=_}>g?%E z*IarP|2P3U`Bxs6EFciYb{QPgKcD}T5l4JA^-FGB(nDQXhlf_XGATDV*FCJ)b%I8j zj<6&Fzp#^{R^!u&z)PeBjkK?pO(sUpAGULjc1+eFpZZ+d`^P1}?i1bBz8OP3uOEHU zwK>Lb>~)hpRB(d>7TTn5W-IJh`l85Ch_9AD+USBM;7rIP%N)lclB&&>NtnZwUeAM{ z*i@bcA46Gbd@yKjoN{s5O#=juGU$SVwQ$L}Li43~cSP8;rpW?qH$hd9!b1;0v0C%1=qze_V;(KRT-M z%8;9K>4CRvA48LhNC(BQ$wb6Qs?U+$`$sL=Q7d70vX=sJP7{Lls$aSpFh4Qh6)T_H zFP3s1S0hsT=*q$EdJgNy!#kkZmU{@9{&tk}QaA4=phhTM(5B5{5km*r9@^?v>L?mK zR_4%^@Bf~go89%s%lQ4`BKrl@KPH|s^6yh|_WiZipSv1{wTKuO7!zx% z%`HuFu!$pH8@Stp-cOM9014VXJGII$8BrR8HS>u+E2EHNH3!Mz+LD>TiU|pEyh2Lh zU77tt8$i0+-&?AuPY-senQQfkO|7k=tnw+c#K@&ZO6#|BeVVIgg}6OHu;Xn;C@3sZ zA!|sG))J#ro!BJd*2hJ9q$;x>tBOgoejS%bBYZ5m^=~=}u zEzIha;~N;i^okbq^?)$Hb*qv59vY2pVUF(C(W$!<*PIU7nfimK!rhse+n8#6yRLhr zToaGZ1l)aJap(N!ihx^U{?)Ex7@i32ed#AtC_H$$)b=;nc%bxt#Kn%iV>E(2SBx}0 z5!sNoL=J2g#K2w_SsSZ|rmWq8C9E6RtSm0W&#F|D>kpJ|xNLO)vHD*+v$X3l}MI9Af7SzZY zR7$ANpn9vnTZpU7_v8ZUKhNUIm^P(*LBM$rTx;a|^y9O>#^gCw(Kyo>rzM{Ay~Jqg zhfW35&(Bk4{m1afyvYfvyO`WYyH=QY@#4kPcsG|p=C6pS%)hz}iCS)ub4q7-RbND4 zKqfJcKp+7P6cq{^rOIErY zVpRgWI_#Tc)79#_s1W-4BWJS_9(uL26k!(S^h>%^Q>Z%Og)us(Z`Iy-H{y5BR%as8 zwZeDfLVJ0`Sg}m$c}^zkTA9J#n_Ccw(A3ceifOi2E$FmF@gsv?8PD#H#y-v~^KNe| zdkN+RKg?|b53Sx5s^|uJm|$W1uo6v%FwhE{K7;ZX&*OWSQ2-*06ug4^A|x{=Cf;f#m{<>8ZqhG0sA-OKYj* z`Ua-Wd|s9dO*f%P(k7ks-1zwWdfoO0+t;B_%7cj1=kd8DE>}EqZ9mAW z{mTx$WS{R+?HwGi2X$nWsdsC3rh0q=VI}htu5+g+%HyXe!tbjUjbfXXdJ`G!x|o5oW*~9= zo=sSEl*YwX3BK0dnAVvsTorEo?RTBlR9z@a_i8lHYE5Q|o%4)9qW#U+?p4oJF4Ei> zpq8&OTdMfBa5q!)g<2y*_&%6K<9n!=3FD?qMr}Jrif>AwjR}>ZdQsUeu=dW#s~7y# zT=aiAhdvE{TCTI(L%SxZMg-CdTSnnMBW%B0;H1Q>WVSjOp3JfgE0voPj!-FiVXxCw z9l6}c1)S&X77gaRbIO)Uz%1kg`~ys&L(E15ANt@>kYFXF=m?j5_J2<;^PIe-hKmH zi4a^avD#;MO;$VvUIdFEtoL8i%vDK-q+_0kEr{a{77N|*KR$-o9PBQ6a^GD76@vXz zXEZG$mS}IrPlu*lwr&b^bRDfcLbiT{-!ry&C~{wW)O~JEoOJ0TVMk&LPxB~SKVN+WX*=3^ zO_k7VJNhN@3_APT3eAO*cX~b^wk>(=br6F&TLs-c+KX$Y5nq{#U(WLLMFi4>?IbtL zjt_D_%IPDqOr{zILNc131nq^Q8nReo)C)67ee9k`i}G3y4!I_@%BzOVBd#x34N*o2 zRq#vE)r}XkpUqN!)#{@%Sa3=#03TcQ#x*a4GjmlO>g(9LqD8;ft*NAYPCb2KbBpWV z++V`m#08KVvm)oDuouZCxM*Y^OATGwL%w#{gXGx4)isJc7cyU7{-6|}5<1N<@l+Of zOQakGw=TE*wR#f)WlG}GZ*FGeDqIASO-BcE?e1jlP)zY^9bi(A3HdyX7AYk}pLbX5 z98&k-d9Va4ATbuq-MkxAI!kA@B>c>cBP2pcrNfW)+BxKL>HI-~f9x~0n>Cp|A|GBN zeD@ya3(0nR9*{}9D3N5$n|Pmd0abF(iZ(7Y16Fh2{BBI$(3tr|#n21t{*#1Cnfr5P zV03L9mNUW~=GubUNYY0yx1aVoy<`tU$4ul`Zw21G%LLPU~J^OvhHJZw%JSFl9>w%;be7bA+L@ zxYSNKwuTG#uA%#5=Pz;%m(u<^4%H7Ax?G--(Nul7)y_4nq4ss8!WG_IMp9A9?hq@b z&v{4ekK&JUB2O2;c=bd0sz?lq6esC}3#Gr9IB~qO^-YD3-=N^urM*ednTy-oGRND> ze7or!8ujwRF!JAjaukc)AD8$}=+zX@*W!#Fmw3*8)W~8cWau<9D=1ls>uPKdnzH5G zEi!+ZQc;8aTUZ(UbwM>!Tfo-YEC0!vPdcmffGJ8PlPzV&t-gNZz5Kq735t1*^wVR_ zenLBxU5wAqWqJO5dO6<|kYcpObdFl6<8Zaj^(m*5s(t0$IQThR@*<}+or=73be=M# zjolN~&oTH`L^=^uhTVgS%k*XH2UpXhuZ3UB1}NPJ$2uz`bcM%&d4#{rLF<0lE7TRj z|62*t+mX!`ct8Z)W%>I`4inW9_gL&@wvr!h81Trk*G{m_5Ei7k5hn>0LhjW;LRotrcY7Iu!MPu^qtZ z2P7s~#11-yy6z&b&jadT+=(`prU_%5`0O8HTaE2M!nQ)A*?)v>u4OfuzbjY$qFwt> z*boJi_bNNAq(+J3u@MZ8GD#q#@uE(}Ee7XVx_aXUQL~)vRQP?-&xcrDF$6I54 z7nP|?zP+ZK>F7p?$*=Qnt@c6|2oJ4no|yw$pV2fBt(%f~445 z)Qz9|tbyWjxL)g35-ZpyMKqv<9}t0+ zS)bt+PMUt!ZbN*$#OK;|3l z9!~aIVHjt0-&U&5QGN|EmRxi7-U;+r6RZE?MT*JyHVG>XWjCOq4vJqC>3L?M&dg`@ zqf~eLgz0RVVmNcY1HJryh6Ap5&xx}CE9Q-Brp-fDTps^dA7jY972ejx!}#Jq23mr5 zRV#ex!}(+e;Ye4t;9+sp*qatw%)0P}&Pu;k)hgdFfU*%a6hWE!gVSR=?wNcp;0Bwv z89pZTX4G%#g6=9*&VA z*^H$pRQWYJPh+-0i2kK!P;DD0tz-DZPTJBzatxzzCpZ}2n`RWKBh=pCh-z4CrIn05 z=eF_ZvCm;fX)ar>b2xVT=6jZq$oIZ$)C-b6?0 zofvoO6h*{MAnRJI5N*iL4{|y`qAaLEyW4x$B|B+ROKQ5B{nvB|wsy}ku5ExjvPm4$ zKGQccGVpS6l{^!p^T)~*PROgh}r*@ zK={W_|0kyXkDdO%5Z6zHL;u5U|Np;xLVW*U=E`4jPaHI1pxB_Sn{@Ka_`d}t6hf)^ z^7kZYW3c5f$zfP+0QpF8|3n41mMLw`%qE!+)pOsT1GSZ-K3xHl1pnAx=h*P@?WU~b%L51+G#EhI`}zCI zO)To~7*r&eaFi2)g zy7ckkwh(~;;0AG=4jV-n4eyx?UDSBDfWAUjZ2&$UL=$Fbq?6XA=RJTZuCL*2T&`0c z7E}vp@j3tn>?v)}HY^&PM;n*g$5{IA7c!|1emo%M{`5{l)J$S)r7HmeO+^@-_~)L@ z&G)frXBI|n#nos$DhcWRj!D+6@F>A9P5i1I!esoT6&Px>r7R8*)y{L2q^JLt)LV#W zUM2i@?5Ew8TvwXATtcV$drX-P88vIJs4Kdj)EwBZ8K_(Kea#xQyI3j==I5amC1$W; z(fT49j9dTFYvZq{j?RIu2t|C!-XifKy-y!}>1ZT*I9HwhNF7nGL5YAWv zzbn!i5-W#cdgLnf+8B%oOosh=R2mnUWs0w7mHF^Vxl_Uq(nA(sY4t4zFq?Y*f(+En z?2<~>OkTvUmA21sua>aQ*VP>#k&;4)3ZUsaIkO~*y}+@m|KOksbbqgGzH^SkzlF-S z^plR9tv4{l`wRnuN2Rr8a%Pq5N3}q2NXqd)q~S?d$e|(~Zg+JR6Sql5G0Ou;X{$5% zn1MlrR3NBt@F4WEdgDi!`YtMriCDY#wq@VxM3(Z-*-xK7pUHBUI=_Pn_sj$={P(92 z#R1@6Bb2s<)b43nIXOAE@$8_b$CkdHI9bC^M&vY=o;SnP#FsF-~4{+&$;VU{#t;pg|k7k;t% zK|;0Lh_J9o>@I(GyK0hV*QwS5k4fLb=e2K!a}2S~sxglOs3^^M&ft64)M?P@t}M25 ztw-RYe^Lw?tJF$6Lgz}Pq+0uW#%++59#}&Iv92)*ClJHn=94YE0p%0dE>LH01qxN@ zH2w*AY!CAM6B zGc@942}+F19Q>656*csCa6plJ+-Ll|g3d(TDsgDj!nF|n?fuj#kn9qcAq{t} zu<26#KJbSOfS(ZpX1CX>fz&Q})gI}z|E9KX&NEk`==D zr}E$(#;8d_a))GlIml*2=m}BNvlYwpP@Kzh^BeHZnwyPAQW; z^azP{nv_<%ChXwgzsm!|6Vb|Ni|79j*V)E8YehZMh}pUT2v)rX^C3i=Y3@7~#CT(^BEbaMla- z*7o+rK000T5{>l~VZ;8<#0geP!N1mbcP*z&Wx3r5ZZUk+W>#oe=)&5X=xCV}91XkG zD6B4pf7Njs=BeTQ`Ea1DmZ|!%eetxYAEdXGrrZUmU3Ow^|qDp?jPZjOHADcBq7$+sNz&(%9qlgWF`JW9>gj9(qo zMioZfH+-pLerls98nn?AkFIFapeJZhW$*rGKTdi5o-|Kduk*`CBsjGcjyo-vek;BC zW>Pk@0EQ_mfN}eOJq?q?h&7-M1dj5l1Degewpuw|$Ll1$w*IagkV@`+^lPLWZzfAR z=!}NAO{OgfN?DMN{eEI4s>D??j?4%9=4?kr=sr`k(Ss)k+e%z!=6$+z{yX5ZwsVbW zsg0jhqd6ofyXPMlmrPJ9+_%>^LBn@R2MYW(pZujrg-xeDP80pI*T<%#_)?QW$$S!9 zZr3r8WFfn~-;>XEEv+>E&y)4CfhUW(h~l4gJ^r)3U%R){r$LWSByWcL9cBhD?GlN3 z1w_Jnj#!{?=j2We5>>Ydsmvpl0;0n8MQO#Dw)rH#T0AW})VRee*c;}h{JV(wTN`ca z<7pX|IHFc|3F`!?Pq+v*%0_;4l<0F0{s09`5@nM9Nr6d zgs+2tE>2J{Pma_ARDZ%kf08er#_%KAxKgT$=-rJ@V1C zD!a<6{Nu-u{XSb9>JLn^6@@(3i8hbxQu*Xj_&;l=_zb>~QM-mw{U-QV_wr1Zi9FkH zFmOzMzDzA*d7veAJR~oBbfNTdy+hR6ou=cjX>8&@TFRUzCs>#0Z-_a*>GWP3aQ4y$pT`Z0=A^KJ@?*t2T#jVd^R$@EylKLpmU^9ii$r6Hq}Mx=e8Jl|tU zFfzM?58m4o0Uj~m-@T;!NDZt^(}}fVWZJBtlZ~ZZvZh0uUPR?>6c5s>hZ;;CWivfm zcRgO!(pA=@>rKi=$xqD&*QIzx90hXl?nLjx<-!gF`dB8iSVR2r?vR9X5JhN?GR43(8D*_ zmrb-Ml0mw&{yWt8o@?4QZ0aWU%8$2@JPW>^5Tf6=KXv=t1H_|8I8r|MvKj8<{I6Wi zXAcQktr6iJ%}E0I36Fk@hf5A)q9e+-nDTnlVZ2U>;VVSzSCj3_rGR~#$C-7 zn`y_0Ut`nM)qQnR(}J6uTl^YDHIpV*BHhYW{NiOjCaKkp6A3nl9i3zGMzNx3`{ryk zlTc*zC_J~IPSFaDas%0YtIg@A4m|arasSw04uo)kj=6C511_<+tK$~;b@9#*rObgY z)IHw@fe@jl^53Ph6%BwjaE0A0{(z2rglosmn0xw1KJ3@dWbvS-Fl5lga-?5TKef)o z!(Fl*I}n-=j>{@5e=!*>E-j6Gf9jSb6(&ladx~+R)+-zyS2dq260jct>R zu(%#P_+w7-d(D5TDeRf}nd;mJb-%~3f1p;xU)RBD4|sWn0nMNaou5B%PH_!-s$Yd8 z!kO0dhDwC@d6fvtYyGGC&ja!H$39STPLuD3;bWDE3B)K1)|?icF}-Py)~2wymu&SY zz1Nl2bMObo2>W7coL6`0GH5?u3`$pE7=K37WW}6Af6)0EXMn+5gi@bew*8by!oM4Z z*T5F1307~oz~xSXBe#+>x&A$I&sI7QoL3|p&Idv&%vYEXQi;E z$hPVm-n0Hc<%{!EQx|QAp+p10-~fg4Q}ri#a^~;;9|HtteErect() : rect(); - int32 rows = (size / emojiPerRow) + ((size % emojiPerRow) ? 1 : 0); + int32 rows = (size / EmojiPadPerRow) + ((size % EmojiPadPerRow) ? 1 : 0); int32 fromrow = qMax(qFloor(r.top() / st::emojiPanSize.height()), 0), torow = qMin(qCeil(r.bottom() / st::emojiPanSize.height()) + 1, rows); for (int32 i = fromrow; i < torow; ++i) { - for (int32 j = 0; j < emojiPerRow; ++j) { - int32 index = i * emojiPerRow + j; + for (int32 j = 0; j < EmojiPadPerRow; ++j) { + int32 index = i * EmojiPadPerRow + j; if (index >= size) break; float64 hover = _hovers[index]; @@ -395,7 +393,7 @@ void EmojiPanInner::mouseReleaseEvent(QMouseEvent *e) { } } if (i == e) { - while (recent.size() >= emojiPerRow * emojiRowsPerPage) recent.pop_back(); + while (recent.size() >= EmojiPadPerRow * EmojiPadRowsPerPage) recent.pop_back(); recent.push_back(qMakePair(emoji, 1)); for (i = recent.end() - 1; i != recent.begin(); --i) { if ((i - 1)->second > i->second) { @@ -428,8 +426,8 @@ void EmojiPanInner::leaveEvent(QEvent *e) { void EmojiPanInner::updateSelected() { int32 selIndex = -1; QPoint p(mapFromGlobal(_lastMousePos)); - if (p.x() >= 0 && p.y() >= 0 && p.x() < emojiPerRow * st::emojiPanSize.width()) { - selIndex = qFloor(p.y() / st::emojiPanSize.height()) * emojiPerRow + qFloor(p.x() / st::emojiPanSize.width()); + if (p.x() >= 0 && p.y() >= 0 && p.x() < EmojiPadPerRow * st::emojiPanSize.width()) { + selIndex = qFloor(p.y() / st::emojiPanSize.height()) * EmojiPadPerRow + qFloor(p.x() / st::emojiPanSize.width()); if (selIndex >= _emojis.size()) { selIndex = -1; } @@ -479,7 +477,7 @@ void EmojiPanInner::showEmojiPack(DBIEmojiTab packIndex) { _emojiAnimations.clear(); _selected = _pressedSel = -1; int32 size = _emojis.size(); - int32 h = qMax(((size / emojiPerRow) + ((size % emojiPerRow) ? 1 : 0)) * st::emojiPanSize.height(), emojiRowsPerPage * st::emojiPanSize.height() - int(st::emojiPanSub)); + int32 h = qMax(((size / EmojiPadPerRow) + ((size % EmojiPadPerRow) ? 1 : 0)) * st::emojiPanSize.height(), EmojiPadRowsPerPage * st::emojiPanSize.height() - int(st::emojiPanSub)); resize(width(), h); _lastMousePos = QCursor::pos(); updateSelected(); @@ -501,7 +499,7 @@ _scroll(this, st::emojiScroll), _inner() { _inner.showEmojiPack(cEmojiTab()); - _scroll.setGeometry(st::dropdownPadding.left() + st::emojiPanPadding.left(), st::dropdownPadding.top() + _recent.height() + st::emojiPanPadding.top(), st::emojiPanPadding.left() + _inner.width() + st::emojiPanPadding.right(), emojiRowsPerPage * st::emojiPanSize.height() - st::emojiPanSub); + _scroll.setGeometry(st::dropdownPadding.left() + st::emojiPanPadding.left(), st::dropdownPadding.top() + _recent.height() + st::emojiPanPadding.top(), st::emojiPanPadding.left() + _inner.width() + st::emojiPanPadding.right(), EmojiPadRowsPerPage * st::emojiPanSize.height() - st::emojiPanSub); _scroll.setWidget(&_inner); _width = st::dropdownPadding.left() + st::emojiPanPadding.left() + _scroll.width() + st::emojiPanPadding.right() + st::dropdownPadding.right(); diff --git a/Telegram/SourceFiles/gui/animation.h b/Telegram/SourceFiles/gui/animation.h index d8bc532f86..a752afec3d 100644 --- a/Telegram/SourceFiles/gui/animation.h +++ b/Telegram/SourceFiles/gui/animation.h @@ -58,6 +58,9 @@ namespace anim { const float64 ¤t() const { return _cur; } + float64 to() const { + return _from + _delta; + } fvalue &update(const float64 &dt, transition func) { _cur = _from + (*func)(_delta, dt); return *this; @@ -93,6 +96,9 @@ namespace anim { int32 current() const { return _cur; } + int32 to() const { + return _from + _delta; + } ivalue &update(const float64 &dt, transition func) { _cur = qRound(_from + (*func)(_delta, dt)); return *this; @@ -145,6 +151,14 @@ namespace anim { const QColor ¤t() const { return _cur; } + QColor to() const { + QColor result; + result.setRedF(_from_r + _delta_r); + result.setGreenF(_from_g + _delta_g); + result.setBlueF(_from_b + _delta_b); + result.setAlphaF(_from_a + _delta_a); + return result; + } cvalue &update(const float64 &dt, transition func) { _cur.setRedF(_from_r + (*func)(_delta_r, dt)); _cur.setGreenF(_from_g + (*func)(_delta_g, dt)); diff --git a/Telegram/SourceFiles/gui/contextmenu.cpp b/Telegram/SourceFiles/gui/contextmenu.cpp index 0a6bafe2c4..a45ec060d3 100644 --- a/Telegram/SourceFiles/gui/contextmenu.cpp +++ b/Telegram/SourceFiles/gui/contextmenu.cpp @@ -209,6 +209,7 @@ void ContextMenu::showStart() { animStep(0); psUpdateOverlayed(this); show(); + psShowOverAll(this); windowHandle()->requestActivate(); activateWindow(); setFocus(); diff --git a/Telegram/SourceFiles/gui/filedialog.cpp b/Telegram/SourceFiles/gui/filedialog.cpp index 5cb5b4343e..8d84bf194d 100644 --- a/Telegram/SourceFiles/gui/filedialog.cpp +++ b/Telegram/SourceFiles/gui/filedialog.cpp @@ -189,7 +189,7 @@ QString filedialogDefaultName(const QString &prefix, const QString &extension, c QChar zero('0'); QString name; - QString base = prefix + QString("_%1-%2-%3_%4-%5-%6").arg(tm.tm_year + 1900).arg(tm.tm_mon + 1, 2, 10, zero).arg(tm.tm_mday, 2, 10, zero).arg(tm.tm_hour, 2, 10, zero).arg(tm.tm_min, 2, 10, zero).arg(tm.tm_sec, 2, 10, zero); + QString base = prefix + qsl("_%1-%2-%3_%4-%5-%6").arg(tm.tm_year + 1900).arg(tm.tm_mon + 1, 2, 10, zero).arg(tm.tm_mday, 2, 10, zero).arg(tm.tm_hour, 2, 10, zero).arg(tm.tm_min, 2, 10, zero).arg(tm.tm_sec, 2, 10, zero); if (skipExistance) { name = base + extension; } else { @@ -197,8 +197,23 @@ QString filedialogDefaultName(const QString &prefix, const QString &extension, c QString nameBase = dir.absolutePath() + '/' + base; name = nameBase + extension; for (int i = 0; QFileInfo(name).exists(); ++i) { - name = nameBase + QString(" (%1)").arg(i + 2) + extension; + name = nameBase + qsl(" (%1)").arg(i + 2) + extension; } } return name; } + +QString filedialogNextFilename(const QString &name, const QString &cur, const QString &path) { + QDir dir(path.isEmpty() ? cDialogLastPath() : path); + int32 extIndex = name.lastIndexOf('.'); + QString prefix = name, extension; + if (extIndex >= 0) { + extension = name.mid(extIndex); + prefix = name.mid(0, extIndex); + } + QString nameBase = dir.absolutePath() + '/' + prefix, result = nameBase + extension; + for (int i = 0; result.toLower() != cur.toLower() && QFileInfo(result).exists(); ++i) { + result = nameBase + qsl(" (%1)").arg(i + 2) + extension; + } + return result; +} diff --git a/Telegram/SourceFiles/gui/filedialog.h b/Telegram/SourceFiles/gui/filedialog.h index 9b03fd075e..76e32756b6 100644 --- a/Telegram/SourceFiles/gui/filedialog.h +++ b/Telegram/SourceFiles/gui/filedialog.h @@ -24,3 +24,4 @@ bool filedialogGetSaveFile(QString &file, const QString &caption, const QString bool filedialogGetDir(QString &dir, const QString &caption); QString filedialogDefaultName(const QString &prefix, const QString &extension, const QString &path = QString(), bool skipExistance = false); +QString filedialogNextFilename(const QString &name, const QString &cur, const QString &path = QString()); diff --git a/Telegram/SourceFiles/gui/flatbutton.cpp b/Telegram/SourceFiles/gui/flatbutton.cpp index 902b5a0153..d412645d42 100644 --- a/Telegram/SourceFiles/gui/flatbutton.cpp +++ b/Telegram/SourceFiles/gui/flatbutton.cpp @@ -133,15 +133,15 @@ LinkButton::~LinkButton() { } IconedButton::IconedButton(QWidget *parent, const style::iconedButton &st, const QString &text) : Button(parent), - _text(text), _st(st), a_opacity(_st.opacity), a_bg(_st.bgColor->c), _opacity(1) { + _text(text), _st(st), _width(_st.width), a_opacity(_st.opacity), a_bg(_st.bgColor->c), _opacity(1) { - if (_st.width < 0) { - _st.width = _st.font->m.width(text) - _st.width; - } else if (!_st.width) { - _st.width = _st.font->m.width(text) + _st.height - _st.font->height; + if (_width < 0) { + _width = _st.font->m.width(text) - _width; + } else if (!_width) { + _width = _st.font->m.width(text) + _st.height - _st.font->height; } connect(this, SIGNAL(stateChanged(int, ButtonStateChangeSource)), this, SLOT(onStateChange(int, ButtonStateChangeSource))); - resize(_st.width, _st.height); + resize(_width, _st.height); setCursor(_st.cursor); } @@ -151,8 +151,16 @@ void IconedButton::setOpacity(float64 opacity) { } void IconedButton::setText(const QString &text) { - _text = text; - update(); + if (_text != text) { + _text = text; + if (_st.width < 0) { + _width = _st.font->m.width(text) - _st.width; + } else if (!_st.width) { + _width = _st.font->m.width(text) + _st.height - _st.font->height; + } + resize(_width, _st.height); + update(); + } } bool IconedButton::animStep(float64 ms) { diff --git a/Telegram/SourceFiles/gui/flatbutton.h b/Telegram/SourceFiles/gui/flatbutton.h index cced05903b..84607ed97d 100644 --- a/Telegram/SourceFiles/gui/flatbutton.h +++ b/Telegram/SourceFiles/gui/flatbutton.h @@ -106,9 +106,10 @@ public slots: private: QString _text; - int32 _textWidth; style::iconedButton _st; + int32 _width; + anim::fvalue a_opacity; anim::cvalue a_bg; diff --git a/Telegram/SourceFiles/gui/flattextarea.cpp b/Telegram/SourceFiles/gui/flattextarea.cpp index b88f9c8831..7f06c3bb5b 100644 --- a/Telegram/SourceFiles/gui/flattextarea.cpp +++ b/Telegram/SourceFiles/gui/flattextarea.cpp @@ -439,11 +439,11 @@ QMimeData *FlatTextarea::createMimeDataFromSelection() const { void FlatTextarea::keyPressEvent(QKeyEvent *e) { bool shift = e->modifiers().testFlag(Qt::ShiftModifier); - bool ctrl = e->modifiers().testFlag(Qt::ControlModifier) || e->modifiers().testFlag(Qt::MetaModifier), ctrlGood = (ctrl && cCtrlEnter()) || (!ctrl && !shift && !cCtrlEnter()); + bool ctrl = e->modifiers().testFlag(Qt::ControlModifier) || e->modifiers().testFlag(Qt::MetaModifier), ctrlGood = (ctrl && cCtrlEnter()) || (!ctrl && !shift && !cCtrlEnter()) || (ctrl && shift); bool enter = (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return); if (enter && ctrlGood) { - emit submitted(); + emit submitted(ctrl && shift); } else if (e->key() == Qt::Key_Escape) { emit cancelled(); } else if (e->key() == Qt::Key_Tab || (ctrl && e->key() == Qt::Key_Backtab)) { diff --git a/Telegram/SourceFiles/gui/flattextarea.h b/Telegram/SourceFiles/gui/flattextarea.h index 88198444bf..fe967148e4 100644 --- a/Telegram/SourceFiles/gui/flattextarea.h +++ b/Telegram/SourceFiles/gui/flattextarea.h @@ -60,7 +60,7 @@ public slots: signals: void changed(); - void submitted(); + void submitted(bool ctrlShiftEnter); void cancelled(); void tabbed(); diff --git a/Telegram/SourceFiles/history.cpp b/Telegram/SourceFiles/history.cpp index e9c28e4006..ffb8510355 100644 --- a/Telegram/SourceFiles/history.cpp +++ b/Telegram/SourceFiles/history.cpp @@ -453,8 +453,6 @@ void VideoSaveLink::doSave(bool forceSavingAs) const { VideoData *data = video(); if (!data->user && !data->date) return; - bool openingWith = !data->already().isEmpty(); - QString already = data->already(true); if (!already.isEmpty() && !forceSavingAs) { psOpenFile(already, true); @@ -463,8 +461,9 @@ void VideoSaveLink::doSave(bool forceSavingAs) const { QString name = already.isEmpty() ? QString(".mov") : already; QString filename = saveFileName(lang(lng_save_video), qsl("MOV Video (*.mov);;All files (*.*)"), qsl("video"), name, forceSavingAs, alreadyDir); if (!filename.isEmpty()) { - if (forceSavingAs) data->cancel(); - if (!already.isEmpty()) { + if (forceSavingAs) { + data->cancel(); + } else if (!already.isEmpty()) { data->openOnSave = -1; data->openOnSaveMsgId = App::hoveredLinkItem() ? App::hoveredLinkItem()->id : 0; } @@ -529,8 +528,6 @@ void AudioSaveLink::doSave(bool forceSavingAs) const { AudioData *data = audio(); if (!data->user && !data->date) return; - bool openingWith = !data->already().isEmpty(); - QString already = data->already(true); if (!already.isEmpty() && !forceSavingAs) { psOpenFile(already, true); @@ -539,8 +536,9 @@ void AudioSaveLink::doSave(bool forceSavingAs) const { QString name = already.isEmpty() ? QString(".ogg") : already; QString filename = saveFileName(lang(lng_save_audio), qsl("OGG Opus Audio (*.ogg);;All files (*.*)"), qsl("audio"), name, forceSavingAs, alreadyDir); if (!filename.isEmpty()) { - if (forceSavingAs) data->cancel(); - if (!already.isEmpty()) { + if (forceSavingAs) { + data->cancel(); + } else if (!already.isEmpty()) { data->openOnSave = -1; data->openOnSaveMsgId = App::hoveredLinkItem() ? App::hoveredLinkItem()->id : 0; } @@ -620,8 +618,6 @@ void DocumentSaveLink::doSave(bool forceSavingAs) const { DocumentData *data = document(); if (!data->user && !data->date) return; - bool openingWith = !data->already().isEmpty(); - QString already = data->already(true); if (!already.isEmpty() && !forceSavingAs) { psOpenFile(already, true); @@ -643,8 +639,9 @@ void DocumentSaveLink::doSave(bool forceSavingAs) const { QString filename = saveFileName(lang(lng_save_document), filter, qsl("doc"), name, forceSavingAs, alreadyDir); if (!filename.isEmpty()) { - if (forceSavingAs) data->cancel(); - if (!already.isEmpty()) { + if (forceSavingAs) { + data->cancel(); + } else if (!already.isEmpty()) { data->openOnSave = -1; data->openOnSaveMsgId = App::hoveredLinkItem() ? App::hoveredLinkItem()->id : 0; } diff --git a/Telegram/SourceFiles/history.h b/Telegram/SourceFiles/history.h index 4fd405028c..4485e38b51 100644 --- a/Telegram/SourceFiles/history.h +++ b/Telegram/SourceFiles/history.h @@ -37,7 +37,7 @@ static const uint32 FullItemSel = 0xFFFFFFFF; typedef QMap SelectedItemSet; -extern TextParseOptions _textNameOptions; +extern TextParseOptions _textNameOptions, _textDlgOptions; struct NotifySettings { NotifySettings() : mute(0), sound("default"), previews(true), events(1) { diff --git a/Telegram/SourceFiles/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp index c8e317844c..b687279581 100644 --- a/Telegram/SourceFiles/historywidget.cpp +++ b/Telegram/SourceFiles/historywidget.cpp @@ -1546,7 +1546,7 @@ HistoryWidget::HistoryWidget(QWidget *parent) : QWidget(parent) connect(&_send, SIGNAL(clicked()), this, SLOT(onSend())); connect(&_attachDocument, SIGNAL(clicked()), this, SLOT(onDocumentSelect())); connect(&_attachPhoto, SIGNAL(clicked()), this, SLOT(onPhotoSelect())); - connect(&_field, SIGNAL(submitted()), this, SLOT(onSend())); + connect(&_field, SIGNAL(submitted(bool)), this, SLOT(onSend(bool))); connect(&_field, SIGNAL(cancelled()), this, SIGNAL(cancelled())); connect(&_field, SIGNAL(tabbed()), this, SLOT(onFieldTabbed())); connect(&_field, SIGNAL(resized()), this, SLOT(onFieldResize())); @@ -2189,7 +2189,7 @@ void HistoryWidget::onHistoryToEnd() { } } -void HistoryWidget::onSend() { +void HistoryWidget::onSend(bool ctrlShiftEnter) { if (!hist) return; QString text = prepareMessage(_field.getText()); diff --git a/Telegram/SourceFiles/historywidget.h b/Telegram/SourceFiles/historywidget.h index 323be59b48..a5335354a9 100644 --- a/Telegram/SourceFiles/historywidget.h +++ b/Telegram/SourceFiles/historywidget.h @@ -354,7 +354,7 @@ public slots: void onListScroll(); void onHistoryToEnd(); - void onSend(); + void onSend(bool ctrlShiftEnter = false); void onPhotoSelect(); void onDocumentSelect(); diff --git a/Telegram/SourceFiles/mediaview.cpp b/Telegram/SourceFiles/mediaview.cpp index aa62c1a573..d87f01cd23 100644 --- a/Telegram/SourceFiles/mediaview.cpp +++ b/Telegram/SourceFiles/mediaview.cpp @@ -24,15 +24,44 @@ Copyright (c) 2014 John Preston, https://tdesktop.com #include "application.h" #include "gui/filedialog.h" +namespace { + class SaveMsgLink : public ITextLink { + public: + + SaveMsgLink(MediaView *view) : _view(view) { + } + + void onClick(Qt::MouseButton button) const { + if (button == Qt::LeftButton) { + _view->showSaveMsgFile(); + } + } + + private: + + MediaView *_view; + }; +} + MediaView::MediaView() : TWidget(App::wnd()), -_photo(0), _doc(0), _leftNavVisible(false), _rightNavVisible(false), _animStarted(getms()), _maxWidth(0), _maxHeight(0), _width(0), -_x(0), _y(0), _w(0), _h(0), _xStart(0), _yStart(0), _zoom(0), _pressed(false), _dragging(0), _full(-1), -_history(0), _peer(0), _user(0), _from(0), _index(-1), _msgid(0), _loadRequest(0), _over(OverNone), _down(OverNone), _lastAction(-st::medviewDeltaFromLastAction, -st::medviewDeltaFromLastAction), -_close(this, lang(lng_mediaview_close), st::medviewButton), -_save(this, lang(lng_mediaview_save), st::medviewButton), -_forward(this, lang(lng_mediaview_forward), st::medviewButton), -_delete(this, lang(lng_mediaview_delete), st::medviewButton), -_menu(0), _receiveMouse(true), _touchPress(false), _touchMove(false), _touchRightButton(false) { +_photo(0), _doc(0), _availBottom(0), _leftNavVisible(false), _rightNavVisible(false), _animStarted(getms()), +_maxWidth(0), _maxHeight(0), _width(0), _x(0), _y(0), _w(0), _h(0), _xStart(0), _yStart(0), +_zoom(0), _pressed(false), _dragging(0), _full(-1), _history(0), _peer(0), _user(0), _from(0), _index(-1), _msgid(0), +_loadRequest(0), _over(OverNone), _down(OverNone), _lastAction(-st::medviewDeltaFromLastAction, -st::medviewDeltaFromLastAction), +_close(this, st::medviewClose), +_save(this, st::medviewSaveAs, lang(lng_mediaview_save)), +_forward(this, st::medviewForward, lang(lng_mediaview_forward)), +_delete(this, st::medviewDelete, lang(lng_mediaview_delete)), +_overview(this, st::medviewOverview, lang(lng_mediaview_single_photo)), +_menu(0), _receiveMouse(true), _touchPress(false), _touchMove(false), _touchRightButton(false), +_saveMsgStarted(0), _saveMsgOpacity(0) +{ + TextCustomTagsMap custom; + custom.insert(QChar('c'), qMakePair(textcmdStartLink(1), textcmdStopLink())); + _saveMsgText.setRichText(st::medviewSaveMsgFont, lang(lng_mediaview_saved), _textDlgOptions, custom); + _saveMsg = QRect(0, 0, _saveMsgText.maxWidth() + st::medviewSaveMsgPadding.left() + st::medviewSaveMsgPadding.right(), st::medviewSaveMsgFont->height + st::medviewSaveMsgPadding.top() + st::medviewSaveMsgPadding.bottom()); + _saveMsgText.setLink(1, TextLinkPtr(new SaveMsgLink(this))); + setWindowFlags(Qt::FramelessWindowHint | Qt::BypassWindowManagerHint | Qt::Tool | Qt::NoDropShadowWindowHint); moveToScreen(); setAttribute(Qt::WA_NoSystemBackground, true); @@ -41,9 +70,13 @@ _menu(0), _receiveMouse(true), _touchPress(false), _touchMove(false), _touchRigh hide(); connect(&_close, SIGNAL(clicked()), this, SLOT(onClose())); - connect(&_save, SIGNAL(clicked()), this, SLOT(onSave())); + connect(&_save, SIGNAL(clicked()), this, SLOT(onDownload())); connect(&_forward, SIGNAL(clicked()), this, SLOT(onForward())); connect(&_delete, SIGNAL(clicked()), this, SLOT(onDelete())); + connect(&_overview, SIGNAL(clicked()), this, SLOT(onOverview())); + + _saveMsgUpdater.setSingleShot(true); + connect(&_saveMsgUpdater, SIGNAL(timeout()), this, SLOT(updateImage())); connect(App::wnd()->windowHandle(), SIGNAL(activeChanged()), this, SLOT(onCheckActive())); @@ -54,28 +87,26 @@ _menu(0), _receiveMouse(true), _touchPress(false), _touchMove(false), _touchRigh void MediaView::moveToScreen() { QPoint wndCenter(App::wnd()->x() + App::wnd()->width() / 2, App::wnd()->y() + App::wnd()->height() / 2); - QRect geom = QDesktopWidget().screenGeometry(wndCenter); - _avail = QDesktopWidget().availableGeometry(wndCenter); - if (geom != geometry()) { - setGeometry(geom); + _avail = QDesktopWidget().screenGeometry(wndCenter); + if (_avail != geometry()) { + setGeometry(_avail); } - if (!geom.contains(_avail)) { - _avail = geom; - } - _avail.moveTo(_avail.x() - geom.x(), _avail.y() - geom.y()); - _maxWidth = _avail.width() - 2 * st::medviewNavBarWidth; - _maxHeight = _avail.height() - st::medviewTopSkip - st::medviewBottomSkip; - _leftNav = QRect(0, 0, st::medviewNavBarWidth, height()); - _rightNav = QRect(width() - st::medviewNavBarWidth, 0, st::medviewNavBarWidth, height()); + _avail.moveTo(0, 0); + _availBottom = _avail.height() - st::medviewBottomBar; + _maxWidth = _avail.width() - 2 * st::medviewNavBarWidth - st::medviewPolaroid.left() - st::medviewPolaroid.right(); + _maxHeight = _avail.height() - st::medviewBottomBar - st::medviewPolaroid.top() - st::medviewPolaroid.bottom(); + _leftNav = QRect(0, 0, st::medviewNavBarWidth, _availBottom); + _rightNav = QRect(width() - st::medviewNavBarWidth, 0, st::medviewNavBarWidth + (cRetina() ? 1 : 0), _availBottom); - int32 w = st::medviewMainWidth + (st::medviewTopSkip - _save.height()), l = _avail.x() + (_avail.width() - w) / 2; - _topActions = QRect(l, _avail.y(), w, st::medviewTopSkip); - _bottomActions = QRect(l, _avail.y() + _avail.height() - st::medviewBottomSkip, w, st::medviewBottomSkip); + _bottomBar = QRect(0, _availBottom, width(), height() - _availBottom); - _close.move(_avail.x() + (_avail.width() + st::medviewMainWidth) / 2 - _close.width(), _avail.y() + (st::medviewTopSkip - _close.height()) / 2); - _save.move(_avail.x() + (_avail.width() - st::medviewMainWidth) / 2, _avail.y() + (st::medviewTopSkip - _save.height()) / 2); - _delete.move(_avail.x() + (_avail.width() + st::medviewMainWidth) / 2 - _delete.width(), _avail.y() + _avail.height() - (st::medviewTopSkip + _delete.height()) / 2); - _forward.move(_avail.x() + (_avail.width() - st::medviewMainWidth) / 2, _avail.y() + _avail.height() - (st::medviewTopSkip + _forward.height()) / 2); + _close.move(width() - ((_close.width() + st::medviewNavBarWidth) / 2), (st::medviewNavBarWidth - _close.width()) / 2); + _save.move(width() - _save.width() - ((st::medviewBottomBar - _save.height()) / 2), _availBottom + ((st::medviewBottomBar - _save.height()) / 2)); + _forward.move(_save.x() - _forward.width() - ((st::medviewBottomBar - _forward.height()) / 2), _availBottom + ((st::medviewBottomBar - _forward.height()) / 2)); + _delete.move(_forward.isHidden() ? _save.x() : _forward.x() - _delete.width() - ((st::medviewBottomBar - _delete.height()) / 2), _availBottom + ((st::medviewBottomBar - _delete.height()) / 2)); + _overview.move(((st::medviewBottomBar - _overview.height()) / 2), _availBottom + ((st::medviewBottomBar - _overview.height()) / 2)); + + _saveMsg.moveTo((width() - _saveMsg.width()) / 2, (_availBottom - st::medviewPolaroid.bottom() - _saveMsg.height() + st::medviewPolaroid.top()) / 2); } void MediaView::mediaOverviewUpdated(PeerData *peer) { @@ -123,14 +154,17 @@ void MediaView::updateControls() { HistoryItem *item = App::histItemById(_msgid); if (dynamic_cast(item)) { _forward.show(); + _delete.move(_forward.x() - _delete.width() - ((st::medviewBottomBar - _delete.height()) / 2), _availBottom + ((st::medviewBottomBar - _delete.height()) / 2)); } else { _forward.hide(); + _delete.move(_save.x() - _delete.width() - ((st::medviewBottomBar - _delete.height()) / 2), _availBottom + ((st::medviewBottomBar - _delete.height()) / 2)); } _delete.show(); } else { _forward.hide(); if (_photo && ((App::self() && App::self()->photoId == _photo->id) || (_photo->chat && _photo->chat->photoId == _photo->id))) { _delete.show(); + _delete.move(_save.x() - _delete.width() - ((st::medviewBottomBar - _delete.height()) / 2), _availBottom + ((st::medviewBottomBar - _delete.height()) / 2)); } else { _delete.hide(); } @@ -143,18 +177,14 @@ void MediaView::updateControls() { } else { _dateText = lang(lng_status_lastseen_date_time).replace(qsl("{date}"), d.date().toString(qsl("dd.MM.yy"))).replace(qsl("{time}"), d.time().toString(qsl("hh:mm"))); } - int32 nameWidth = _from->nameText.maxWidth(), maxWidth = _delete.x() - _forward.x() - _forward.width(), dateWidth = st::medviewDateFont->m.width(_dateText); - if (nameWidth > maxWidth) { - nameWidth = maxWidth; - } - _nameNav = QRect(_forward.x() + _forward.width() + (maxWidth - nameWidth) / 2, _forward.y() + st::medviewNameTop, nameWidth, st::msgNameFont->height); - _dateNav = QRect(_forward.x() + _forward.width() + (maxWidth - dateWidth) / 2, _forward.y() + st::medviewDateTop, dateWidth, st::medviewDateFont->height); + _fromName.setText(st::medviewNameFont, _from->name); updateHeader(); _leftNavVisible = _photo && (_index > 0 || (_index == 0 && _history && _history->_overview[OverviewPhotos].size() < _history->_overviewCount[OverviewPhotos])); _rightNavVisible = _photo && (_index >= 0 && ( (_history && _index + 1 < _history->_overview[OverviewPhotos].size()) || (_user && (_index + 1 < _user->photos.size() || _index + 1 < _user->photosCount)))); updateOver(mapFromGlobal(QCursor::pos())); + updatePolaroid(); update(); } @@ -169,7 +199,7 @@ bool MediaView::animStep(float64 msp) { case OverDate: update(_dateNav); break; default: break; } - float64 dt = float64(ms - start) / st::medviewButton.duration; + float64 dt = float64(ms - start) / st::medviewOverview.duration; if (dt >= 1) { _animOpacities.remove(i.key()); i = _animations.erase(i); @@ -185,18 +215,27 @@ MediaView::~MediaView() { delete _menu; } +void MediaView::showSaveMsgFile() { + psShowInFolder(_saveMsgFilename); +} + void MediaView::onClose() { if (App::wnd()) App::wnd()->layerHidden(); } void MediaView::onSave() { + QString file; if (_doc) { - QString cur = _doc->already(true), file; + QString cur = _doc->already(true); if (cur.isEmpty()) { _save.hide(); return; } - if (filedialogGetSaveFile(file, lang(lng_save_photo), qsl("JPEG Image (*.jpg);;All files (*.*)"), cur)) { + + psBringToBack(this); + bool gotName = filedialogGetSaveFile(file, lang(lng_save_photo), qsl("JPEG Image (*.jpg);;All files (*.*)"), cur); + psShowOverAll(this); + if (gotName) { if (!file.isEmpty() && file != cur) { QFile(cur).copy(file); } @@ -204,8 +243,10 @@ void MediaView::onSave() { } else { if (!_photo || !_photo->full->loaded()) return; - QString file; - if (filedialogGetSaveFile(file, lang(lng_save_photo), qsl("JPEG Image (*.jpg);;All files (*.*)"), filedialogDefaultName(qsl("photo"), qsl(".jpg")))) { + psBringToBack(this); + bool gotName = filedialogGetSaveFile(file, lang(lng_save_photo), qsl("JPEG Image (*.jpg);;All files (*.*)"), filedialogDefaultName(qsl("photo"), qsl(".jpg"))); + psShowOverAll(this); + if (gotName) { if (!file.isEmpty()) { _photo->full->pix().toImage().save(file, "JPG"); } @@ -213,6 +254,48 @@ void MediaView::onSave() { } } +void MediaView::onDownload() { + if (cAskDownloadPath()) { + return onSave(); + } + + QString path; + if (cDownloadPath().isEmpty()) { + path = psDownloadPath(); + } else if (cDownloadPath() == qsl("tmp")) { + path = cTempDir(); + } else { + path = cDownloadPath(); + } + QString toName; + if (_doc) { + QString cur = _doc->already(true); + if (cur.isEmpty()) { + _save.hide(); + } else { + toName = filedialogNextFilename(_doc->name, cur, path); + if (toName != cur && !QFile(cur).copy(toName)) { + toName = QString(); + } + } + } else { + if (!_photo || !_photo->full->loaded()) { + _save.hide(); + } else { + toName = filedialogDefaultName(qsl("photo"), qsl(".jpg"), path); + if (!_photo->full->pix().toImage().save(toName, "JPG")) { + toName = QString(); + } + } + } + if (!toName.isEmpty()) { + _saveMsgFilename = toName; + _saveMsgStarted = getms(); + _saveMsgOpacity.start(1); + updateImage(); + } +} + void MediaView::onShowInFolder() { QString already(_doc->already(true)); if (!already.isEmpty()) psShowInFolder(already); @@ -248,6 +331,11 @@ void MediaView::onDelete() { } } +void MediaView::onOverview() { + onClose(); + if (_history->peer) App::main()->showMediaOverview(_history->peer, OverviewPhotos); +} + void MediaView::onCopy() { if (_doc) { QApplication::clipboard()->setPixmap(_current); @@ -262,7 +350,7 @@ void MediaView::showPhoto(PhotoData *photo, HistoryItem *context) { _history = context ? context->history() : 0; _peer = 0; _user = 0; - + _saveMsgStarted = 0; _loadRequest = 0; _over = OverNone; _pressed = false; @@ -277,6 +365,7 @@ void MediaView::showPhoto(PhotoData *photo, HistoryItem *context) { _index = -1; _msgid = context ? context->id : 0; + _photo = photo; if (_history) { for (int i = 0, l = _history->_overview[OverviewPhotos].size(); i < l; ++i) { if (_history->_overview[OverviewPhotos].at(i) == _msgid) { @@ -298,7 +387,7 @@ void MediaView::showPhoto(PhotoData *photo, PeerData *context) { _history = 0; _peer = context; _user = context->chat ? 0 : context->asUser(); - + _saveMsgStarted = 0; _loadRequest = 0; _over = OverNone; if (!_animations.isEmpty()) { @@ -310,6 +399,7 @@ void MediaView::showPhoto(PhotoData *photo, PeerData *context) { _msgid = 0; _index = -1; + _photo = photo; if (_user) { if (_user->photos.isEmpty() && _user->photosCount < 0 && _user->photoId) { _index = 0; @@ -332,6 +422,7 @@ void MediaView::showPhoto(PhotoData *photo, PeerData *context) { void MediaView::showDocument(DocumentData *doc, QPixmap pix, HistoryItem *context) { _photo = 0; _history = context ? context->history() : 0; + _saveMsgStarted = 0; _peer = 0; _user = 0; _zoom = 0; @@ -359,8 +450,8 @@ void MediaView::showDocument(DocumentData *doc, QPixmap pix, HistoryItem *contex } _w = _current.width() / cIntRetinaFactor(); _h = _current.height() / cIntRetinaFactor(); - _x = _avail.x() + (_avail.width() - _w) / 2; - _y = _avail.y() + (_avail.height() - _h) / 2; + _x = (_avail.width() - _w) / 2; + _y = st::medviewPolaroid.top() + (_avail.height() - st::medviewPolaroid.top() - st::medviewPolaroid.bottom() - st::medviewBottomBar - _h) / 2; _width = _w; _from = App::user(_doc->user); _full = 1; @@ -368,6 +459,7 @@ void MediaView::showDocument(DocumentData *doc, QPixmap pix, HistoryItem *contex if (isHidden()) { psUpdateOverlayed(this); show(); + psShowOverAll(this); } } @@ -398,14 +490,15 @@ void MediaView::showPhoto(PhotoData *photo) { _w = qRound(_w * _maxHeight / float64(_h)); _h = _maxHeight; } - _x = _avail.x() + (_avail.width() - _w) / 2; - _y = _avail.y() + (_avail.height() - _h) / 2; + _x = (_avail.width() - _w) / 2; + _y = st::medviewPolaroid.top() + (_avail.height() - st::medviewPolaroid.top() - st::medviewPolaroid.bottom() - st::medviewBottomBar - _h) / 2; _width = _w; _from = App::user(_photo->user); updateControls(); if (isHidden()) { psUpdateOverlayed(this); show(); + psShowOverAll(this); } } @@ -417,31 +510,26 @@ void MediaView::paintEvent(QPaintEvent *e) { p.setCompositionMode(QPainter::CompositionMode_Source); // main bg - p.setOpacity(st::medviewLightOpacity); - QRect r_bg(st::medviewNavBarWidth, 0, width() - 2 * st::medviewNavBarWidth, height()); - if (r_bg.intersects(r)) p.fillRect(r_bg.intersected(r), st::black->b); + QRect r_bg(st::medviewNavBarWidth, 0, _avail.width() - 2 * st::medviewNavBarWidth, _avail.height() - st::medviewBottomBar); + if (r_bg.intersects(r)) p.fillRect(r_bg.intersected(r), st::medviewBG->b); + if (_bottomBar.intersects(r)) p.fillRect(_bottomBar.intersected(r), st::medviewBottomBG->b); // left nav bar bg if (_leftNav.intersects(r)) { if (_leftNavVisible) { - float64 o = overLevel(OverLeftNav); - p.setOpacity(o * st::medviewDarkOpacity + (1 - o) * st::medviewLightOpacity); - p.fillRect(_leftNav.intersected(r), st::black->b); + p.fillRect(_leftNav.intersected(r), overColor(st::medviewBG->c, 1, st::black->c, overLevel(OverLeftNav) * st::medviewNavBGOpacity)); } else { - p.setOpacity(st::medviewLightOpacity); - p.fillRect(_leftNav.intersected(r), st::black->b); + p.fillRect(_leftNav.intersected(r), st::medviewBG->c); } } // right nav bar if (_rightNav.intersects(r)) { if (_rightNavVisible) { + p.fillRect(_rightNav.intersected(r), overColor(st::medviewBG->c, 1, st::black->c, overLevel(OverRightNav) * st::medviewNavBGOpacity)); float64 o = overLevel(OverRightNav); - p.setOpacity(o * st::medviewDarkOpacity + (1 - o) * st::medviewLightOpacity); - p.fillRect(_rightNav.intersected(r), st::black->b); } else { - p.setOpacity(st::medviewLightOpacity); - p.fillRect(_rightNav.intersected(r), st::black->b); + p.fillRect(_rightNav.intersected(r), st::medviewBG->b); } } @@ -450,16 +538,20 @@ void MediaView::paintEvent(QPaintEvent *e) { // photo if (_photo) { + int32 w = _width * cIntRetinaFactor(); if (_full <= 0 && _photo->full->loaded()) { - _current = _photo->full->pixNoCache(_width * cIntRetinaFactor(), 0, true); + int32 h = int((_photo->full->height() * (qreal(w) / qreal(_photo->full->width()))) + 0.9999); + _current = _photo->full->pixNoCache(w, h, true); if (cRetina()) _current.setDevicePixelRatio(cRetinaFactor()); _full = 1; } else if (_full < 0 && _photo->medium->loaded()) { - _current = _photo->medium->pixBlurredNoCache(_width * cIntRetinaFactor()); + int32 h = int((_photo->full->height() * (qreal(w) / qreal(_photo->full->width()))) + 0.9999); + _current = _photo->medium->pixBlurredNoCache(w, h); if (cRetina()) _current.setDevicePixelRatio(cRetinaFactor()); _full = 0; } else if (_current.isNull() && _photo->thumb->loaded()) { - _current = _photo->thumb->pixBlurredNoCache(_width * cIntRetinaFactor()); + int32 h = int((_photo->full->height() * (qreal(w) / qreal(_photo->full->width()))) + 0.9999); + _current = _photo->thumb->pixBlurredNoCache(w, h); if (cRetina()) _current.setDevicePixelRatio(cRetinaFactor()); } } @@ -468,40 +560,40 @@ void MediaView::paintEvent(QPaintEvent *e) { if (imgRect.intersects(r)) { if (_zoom) { bool was = (p.renderHints() & QPainter::SmoothPixmapTransform); - if (!was) p.setRenderHint(QPainter::SmoothPixmapTransform); + if (!was) p.setRenderHint(QPainter::SmoothPixmapTransform, true); p.drawPixmap(QRect(_x, _y, _w, _h), _current); if (!was) p.setRenderHint(QPainter::SmoothPixmapTransform, false); } else { p.drawPixmap(_x, _y, _current); } - if (imgRect.intersects(_topActions)) { - p.setOpacity(st::medviewControlsBgOpacity); - p.fillRect(imgRect.intersected(_topActions), st::black->b); - p.setOpacity(1); + } + if (_polaroidOut.intersects(r)) { + // polaroid + p.fillRect(_polaroidOut.x(), _polaroidOut.y(), _polaroidIn.x() - _polaroidOut.x(), _polaroidOut.height(), st::white->b); + p.fillRect(_polaroidIn.x() + _polaroidIn.width(), _polaroidOut.y(), _polaroidOut.x() + _polaroidOut.width() - _polaroidIn.x() - _polaroidIn.width(), _polaroidOut.height(), st::white->b); + p.fillRect(_polaroidIn.x(), _polaroidOut.y(), _polaroidIn.width(), _polaroidIn.y() - _polaroidOut.y(), st::white->b); + p.fillRect(_polaroidIn.x(), _polaroidIn.y() + _polaroidIn.height(), _polaroidIn.width(), _polaroidOut.y() + _polaroidOut.height() - _polaroidIn.y() - _polaroidIn.height(), st::white->b); + } + if (imgRect.intersects(r)) { + uint64 ms = 0; + if (imgRect.intersects(_leftNav)) { + p.fillRect(imgRect.intersected(_leftNav), _leftNavVisible ? overColor(st::medviewBG->c, 1, st::black->c, overLevel(OverLeftNav) * st::medviewNavBGOpacity) : st::medviewBG->c); } - if (imgRect.intersects(_bottomActions)) { - p.setOpacity(st::medviewControlsBgOpacity); - p.fillRect(imgRect.intersected(_bottomActions), st::black->b); - p.setOpacity(1); + if (imgRect.intersects(_rightNav)) { + p.fillRect(imgRect.intersected(_rightNav), _rightNavVisible ? overColor(st::medviewBG->c, 1, st::black->c, overLevel(OverRightNav) * st::medviewNavBGOpacity) : st::medviewBG->c); } - if (_leftNavVisible && imgRect.intersects(_leftNav)) { - float64 o = overLevel(OverLeftNav); - p.setOpacity(o * st::medviewDarkOpacity + (1 - o) * st::medviewControlsBgOpacity); - p.fillRect(imgRect.intersected(_leftNav), st::black->b); - p.setOpacity(1); - } - if (_rightNavVisible && imgRect.intersects(_rightNav)) { - float64 o = overLevel(OverRightNav); - p.setOpacity(o * st::medviewDarkOpacity + (1 - o) * st::medviewControlsBgOpacity); - p.fillRect(imgRect.intersected(_rightNav), st::black->b); - p.setOpacity(1); + if (imgRect.intersects(_bottomBar)) { + p.fillRect(imgRect.intersected(_bottomBar), st::medviewBG->b); } if (_full < 1) { - uint64 dt = getms() - _animStarted; + ms = getms(); + uint64 dt = ms - _animStarted; int32 cnt = int32(st::photoLoaderCnt), period = int32(st::photoLoaderPeriod), t = dt % period, delta = int32(st::photoLoaderDelta); - int32 x = _avail.x() + (_avail.width() - st::mediaviewLoader.width()) / 2, y = _avail.y() + (_avail.height() - st::mediaviewLoader.height()) / 2; + int32 x = (_avail.width() - st::mediaviewLoader.width()) / 2; + int32 y = st::medviewPolaroid.top() + (_availBottom - st::medviewPolaroid.top() - st::medviewPolaroid.bottom() - st::mediaviewLoader.height()) / 2; p.fillRect(x, y, st::mediaviewLoader.width(), st::mediaviewLoader.height(), st::photoLoaderBg->b); + x += (st::mediaviewLoader.width() - cnt * st::mediaviewLoaderPoint.width() - (cnt - 1) * st::mediaviewLoaderSkip) / 2; y += (st::mediaviewLoader.height() - st::mediaviewLoaderPoint.height()) / 2; QColor c(st::white->c); @@ -515,15 +607,58 @@ void MediaView::paintEvent(QPaintEvent *e) { b.setColor(c); p.fillRect(x + i * (st::mediaviewLoaderPoint.width() + st::mediaviewLoaderSkip), y, st::mediaviewLoaderPoint.width(), st::mediaviewLoaderPoint.height(), b); } - QTimer::singleShot(AnimationTimerDelta, this, SLOT(updateImage())); + _saveMsgUpdater.start(AnimationTimerDelta); + } + if (_saveMsgStarted) { + if (!ms) ms = getms(); + float64 dt = float64(ms) - _saveMsgStarted, hidingDt = dt - st::medviewSaveMsgShowing - st::medviewSaveMsgShown; + if (dt < st::medviewSaveMsgShowing + st::medviewSaveMsgShown + st::medviewSaveMsgHiding) { + if (hidingDt >= 0 && _saveMsgOpacity.to() > 0.5) { + _saveMsgOpacity.start(0); + } + float64 progress = (hidingDt >= 0) ? (hidingDt / st::medviewSaveMsgHiding) : (dt / st::medviewSaveMsgShowing); + _saveMsgOpacity.update(qMin(progress, 1.), anim::linear); + if (hidingDt >= 0) { + objc_outputDebugString(QString("Now updating hiding, dt: %1, progress: %2, opacity: %3").arg(hidingDt).arg(hidingDt >= 0 ? (hidingDt / st::medviewSaveMsgHiding) : (dt / st::medviewSaveMsgShowing)).arg(_saveMsgOpacity.current())); + } + if (_saveMsgOpacity.current() > 0) { + p.setOpacity(_saveMsgOpacity.current()); + p.setBrush(st::medviewSaveMsg->b); + p.setPen(Qt::NoPen); + p.drawRoundedRect(_saveMsg, st::medviewSaveMsgRadius, st::medviewSaveMsgRadius); + p.drawPixmap(_saveMsg.topLeft() + st::medviewSaveMsgCheckPos, App::sprite(), st::medviewSaveMsgCheck); + + p.setPen(st::white->p); + textstyleSet(&st::medviewSaveAsTextStyle); + _saveMsgText.draw(p, _saveMsg.x() + st::medviewSaveMsgPadding.left(), _saveMsg.y() + st::medviewSaveMsgPadding.top(), _saveMsg.width() - st::medviewSaveMsgPadding.left() - st::medviewSaveMsgPadding.right()); + textstyleRestore(); + p.setOpacity(1); + } + if (_full >= 1) { + uint64 nextFrame = (dt < st::medviewSaveMsgShowing || hidingDt >= 0 || true) ? AnimationTimerDelta : (st::medviewSaveMsgShowing + st::medviewSaveMsgShown + 1 - dt); + _saveMsgUpdater.start(nextFrame); + } + } else { + _saveMsgStarted = 0; + } } } } + // disabled download button + if (_save.isHidden()) { + p.fillRect(_save.geometry(), st::medviewSaveAs.bgColor->b); + p.setOpacity(st::medviewSaveAsDisabledOpacity); + p.setPen(st::medviewSaveAs.color->p); + p.setFont(st::medviewSaveAs.font->f); + p.drawPixmap(_save.geometry().topLeft() + st::medviewSaveAs.iconPos, App::sprite(), st::medviewSaveAs.icon); + p.drawText(_save.geometry().topLeft() + st::medviewSaveAs.textPos + QPoint(0, st::medviewSaveAs.font->ascent), lang(lng_mediaview_save)); + p.setOpacity(1); + } - // left nav bar + // left nav arrow if (_leftNavVisible) { - QPoint p_left((st::medviewNavBarWidth - st::medviewLeft.pxWidth()) / 2, (height() - st::medviewLeft.pxHeight()) / 2); + QPoint p_left((st::medviewNavBarWidth - st::medviewLeft.pxWidth()) / 2, (height() - st::medviewBottomBar - st::medviewLeft.pxHeight()) / 2); if (QRect(p_left.x(), p_left.y(), st::medviewLeft.pxWidth(), st::medviewLeft.pxHeight()).intersects(r)) { float64 o = overLevel(OverLeftNav); p.setOpacity(o * st::medviewDarkNav + (1 - o) * st::medviewLightNav); @@ -531,9 +666,9 @@ void MediaView::paintEvent(QPaintEvent *e) { } } - // right nav bar + // right nav arrow if (_rightNavVisible) { - QPoint p_right(width() - (st::medviewNavBarWidth + st::medviewRight.pxWidth()) / 2, (height() - st::medviewRight.pxHeight()) / 2); + QPoint p_right(width() - (st::medviewNavBarWidth + st::medviewRight.pxWidth()) / 2, (height() - st::medviewBottomBar - st::medviewRight.pxHeight()) / 2); if (QRect(p_right.x(), p_right.y(), st::medviewRight.pxWidth(), st::medviewRight.pxHeight()).intersects(r)) { float64 o = overLevel(OverRightNav); p.setOpacity(o * st::medviewDarkNav + (1 - o) * st::medviewLightNav); @@ -543,19 +678,26 @@ void MediaView::paintEvent(QPaintEvent *e) { p.setOpacity(1); // header - p.setPen(st::medviewHeaderColor->p); - p.setFont(st::medviewHeaderFont->f); - QRect r_header(_save.x() + _save.width(), _save.y(), _close.x() - _save.x() - _save.width(), _save.height()); - if (r_header.intersects(r)) p.drawText(r_header, _header, style::al_center); + if (_overview.isHidden()) { + QRect r_header(_overview.x(), _overview.y(), st::medviewHeaderFont->m.width(_header) - st::medviewOverview.width, _overview.height()); + if (r_header.intersects(r)) { + p.setOpacity(st::medviewOverview.opacity); + p.setPen(st::medviewOverview.color->p); + p.setFont(st::medviewOverview.font->f); + p.drawPixmap(_overview.geometry().topLeft() + (_photo ? st::medviewPhotoSpritePos : st::medviewDocumentSpritePos), App::sprite(), _photo ? st::medviewPhotoSprite : st::medviewDocumentSprite); + p.drawText(r_header.topLeft() + st::medviewOverview.textPos + QPoint(0, st::medviewHeaderFont->ascent), _header); + p.setOpacity(1); + } + } // name - p.setPen(nameDateColor(overLevel(OverName))); - if (_over == OverName) _from->nameText.replaceFont(st::msgNameFont->underline()); - if (_nameNav.intersects(r)) _from->nameText.drawElided(p, _nameNav.left(), _nameNav.top(), _nameNav.width()); - if (_over == OverName) _from->nameText.replaceFont(st::msgNameFont); + p.setPen(st::medviewNameColor->p); + if (_over == OverName) _fromName.replaceFont(st::medviewNameFont->underline()); + if (_nameNav.intersects(r)) _fromName.drawElided(p, _nameNav.left(), _nameNav.top(), _nameNav.width()); + if (_over == OverName) _fromName.replaceFont(st::medviewNameFont); // date - p.setPen(nameDateColor(overLevel(OverDate))); + p.setPen(st::medviewDateColor->p); p.setFont((_over == OverDate ? st::medviewDateFont->underline() : st::medviewDateFont)->f); if (_dateNav.intersects(r)) p.drawText(_dateNav.left(), _dateNav.top() + st::medviewDateFont->ascent, _dateText); } @@ -579,8 +721,8 @@ void MediaView::keyPressEvent(QKeyEvent *e) { if (newZoom > -MaxZoomLevel) --newZoom; } else { newZoom = 0; - _x = _avail.x() - _width / 2; - _y = _avail.y() - (_current.height() / cIntRetinaFactor()) / 2; + _x = -_width / 2; + _y = st::medviewPolaroid.top() - ((_current.height() / cIntRetinaFactor()) / 2); if (_zoom >= 0) { _x *= _zoom + 1; _y *= _zoom + 1; @@ -589,7 +731,8 @@ void MediaView::keyPressEvent(QKeyEvent *e) { _y /= -_zoom + 1; } _x += _avail.width() / 2; - _y += _avail.height() / 2; + _y += (_avail.height() - st::medviewBottomBar - st::medviewPolaroid.top() - st::medviewPolaroid.bottom()) / 2; + updatePolaroid(); update(); } while ((newZoom < 0 && (-newZoom + 1) > _w) || (-newZoom + 1) > _h) { @@ -619,7 +762,6 @@ void MediaView::keyPressEvent(QKeyEvent *e) { _y = int32(ny / (-_zoom + 1) + _avail.height() / 2.); } snapXY(); - update(); } } @@ -700,41 +842,45 @@ void MediaView::preloadPhotos(int32 delta) { void MediaView::mousePressEvent(QMouseEvent *e) { updateOver(e->pos()); if (_menu || !_receiveMouse) return; + textlnkDown(textlnkOver()); if (e->button() == Qt::LeftButton) { _down = OverNone; - if (_over == OverLeftNav && _index >= 0) { - moveToPhoto(-1); - _lastAction = e->pos(); - } else if (_over == OverRightNav && _index >= 0) { - moveToPhoto(1); - _lastAction = e->pos(); - } else if (_over == OverName) { - _down = OverName; - } else if (_over == OverDate) { - _down = OverDate; - } else if (!_topActions.contains(e->pos()) && !_bottomActions.contains(e->pos())) { - _pressed = true; - _dragging = 0; - setCursor(style::cur_default); - _mStart = e->pos(); - _xStart = _x; - _yStart = _y; + if (!textlnkDown()) { + if (_over == OverLeftNav && _index >= 0) { + moveToPhoto(-1); + _lastAction = e->pos(); + } else if (_over == OverRightNav && _index >= 0) { + moveToPhoto(1); + _lastAction = e->pos(); + } else if (_over == OverName) { + _down = OverName; + } else if (_over == OverDate) { + _down = OverDate; + } else if (!_bottomBar.contains(e->pos()) && (!_saveMsg.contains(e->pos()) || !_saveMsgStarted)) { + _pressed = true; + _dragging = 0; + setCursor(style::cur_default); + _mStart = e->pos(); + _xStart = _x; + _yStart = _y; + } } } } void MediaView::snapXY() { - int32 xmin = _avail.x() + _avail.width() - _w - st::medviewNavBarWidth, xmax = _avail.x() + st::medviewNavBarWidth; - int32 ymin = _avail.y() + _avail.height() - _h - st::medviewTopSkip, ymax = _avail.y() + st::medviewTopSkip; - if (xmin > _avail.x() + ((_avail.width() - _w) / 2)) xmin = _avail.x() + ((_avail.width() - _w) / 2); - if (xmax < _avail.x() + ((_avail.width() - _w) / 2)) xmax = _avail.x() + ((_avail.width() - _w) / 2); - if (ymin > _avail.y() + ((_avail.height() - _h) / 2)) ymin = _avail.y() + ((_avail.height() - _h) / 2); - if (ymax < _avail.y() + ((_avail.height() - _h) / 2)) ymax = _avail.y() + ((_avail.height() - _h) / 2); + int32 xmin = _avail.width() - _w - st::medviewNavBarWidth - st::medviewPolaroid.right(), xmax = st::medviewPolaroid.left() + st::medviewNavBarWidth; + int32 ymin = _avail.height() - _h - st::medviewPolaroid.bottom() - st::medviewBottomBar, ymax = st::medviewPolaroid.top(); + if (xmin > (_avail.width() - _w) / 2) xmin = (_avail.width() - _w) / 2; + if (xmax < (_avail.width() - _w) / 2) xmax = (_avail.width() - _w) / 2; + if (ymin > (_avail.height() - _h - st::medviewBottomBar - st::medviewPolaroid.bottom() + st::medviewPolaroid.top()) / 2) ymin = (_avail.height() - _h - st::medviewBottomBar - st::medviewPolaroid.bottom() + st::medviewPolaroid.top()) / 2; + if (ymax < (_avail.height() - _h - st::medviewBottomBar - st::medviewPolaroid.bottom() + st::medviewPolaroid.top()) / 2) ymax = (_avail.height() - _h - st::medviewBottomBar - st::medviewPolaroid.bottom() + st::medviewPolaroid.top()) / 2; if (_x < xmin) _x = xmin; if (_x > xmax) _x = xmax; if (_y < ymin) _y = ymin; if (_y > ymax) _y = ymax; + updatePolaroid(); } void MediaView::mouseMoveEvent(QMouseEvent *e) { @@ -746,7 +892,7 @@ void MediaView::mouseMoveEvent(QMouseEvent *e) { if (!_dragging && (e->pos() - _mStart).manhattanLength() >= QApplication::startDragDistance()) { _dragging = QRect(_x, _y, _w, _h).contains(_mStart) ? 1 : -1; if (_dragging > 0) { - if (_w > _avail.width() - 2 * st::medviewNavBarWidth || _h > _avail.height() - 2 * st::medviewTopSkip) { + if (_w > _avail.width() - 2 * st::medviewNavBarWidth - st::medviewPolaroid.left() - st::medviewPolaroid.right() || _h > _avail.height() - st::medviewPolaroid.top() - st::medviewPolaroid.bottom() - st::medviewBottomBar) { setCursor(style::cur_sizeall); } else { setCursor(style::cur_default); @@ -797,6 +943,15 @@ bool MediaView::updateOverState(OverState newState) { } void MediaView::updateOver(const QPoint &pos) { + TextLinkPtr lnk; + bool inText; + _saveMsgText.getState(lnk, inText, pos.x() - _saveMsg.x() - st::medviewSaveMsgPadding.left(), pos.y() - _saveMsg.y() - st::medviewSaveMsgPadding.top(), _saveMsg.width() - st::medviewSaveMsgPadding.left() - st::medviewSaveMsgPadding.right()); + if (lnk != textlnkOver()) { + textlnkOver(lnk); + setCursor((textlnkOver() || textlnkDown()) ? style::cur_pointer : style::cur_default); + updateImage(); + } + if (_pressed || _dragging) return; if (_leftNavVisible && _leftNav.contains(pos)) { @@ -831,6 +986,10 @@ void MediaView::updateOver(const QPoint &pos) { void MediaView::mouseReleaseEvent(QMouseEvent *e) { updateOver(e->pos()); + if (textlnkDown() && textlnkOver() == textlnkDown()) { + textlnkDown()->onClick(e->button()); + } + textlnkDown(TextLinkPtr()); if (_over == OverName && _down == OverName) { if (App::wnd()) { onClose(); @@ -976,6 +1135,7 @@ void MediaView::hide() { _save.clearState(); _forward.clearState(); _delete.clearState(); + _overview.clearState(); } void MediaView::onMenuDestroy(QObject *obj) { @@ -1004,9 +1164,7 @@ void MediaView::onTouchTimer() { } void MediaView::updateImage() { - if (_current.isNull()) return; - - update(_x, _y, _w, _h); + update(_saveMsg); } void MediaView::loadPhotosBack() { @@ -1058,7 +1216,9 @@ void MediaView::userPhotosLoaded(UserData *u, const MTPphotos_Photos &photos, mt void MediaView::updateHeader() { if (!_photo) { - _header = lang(lng_mediaview_doc_image); + _header = _doc ? _doc->name : QString(); + if (_header.isEmpty()) _header = lang(lng_mediaview_doc_image); + if (!_overview.isHidden()) _overview.hide(); return; } @@ -1071,26 +1231,77 @@ void MediaView::updateHeader() { } if (_index >= 0 && _index < count && count > 1) { _header = lang(lng_mediaview_n_of_count).replace(qsl("{n}"), QString::number(index + 1)).replace(qsl("{count}"), QString::number(count)); + _overview.setText(_header); + if (_history) { + if (_overview.isHidden()) _overview.show(); + } else { + if (!_overview.isHidden()) _overview.hide(); + } } else if (_user) { _header = lang(lng_mediaview_profile_photo); + if (!_overview.isHidden()) _overview.hide(); } else if (_peer) { _header = lang(lng_mediaview_group_photo); + if (!_overview.isHidden()) _overview.hide(); } else { _header = lang(lng_mediaview_single_photo); + if (!_overview.isHidden()) _overview.hide(); } } +void MediaView::updatePolaroid() { + int32 pminw = qMin(st::medviewPolaroidMin.width(), int(_avail.width() - 2 * st::medviewNavBarWidth)); + + int32 pl = _x - st::medviewPolaroid.left(), plw = st::medviewPolaroid.left(); + if (pl < st::medviewNavBarWidth) pl = st::medviewNavBarWidth; + int32 pr = _x + _w + st::medviewPolaroid.right(), prw = st::medviewPolaroid.right(); + if (pr > _avail.width() - st::medviewNavBarWidth) pr = _avail.width() - st::medviewNavBarWidth; + + if (_w + st::medviewPolaroid.left() + st::medviewPolaroid.right() < pminw) { + pl = (_avail.width() - pminw) / 2; + plw = _x - pl; + pr = pl + pminw; + prw = pr - (_x + _w); + } + + int32 pminh = qMin(st::medviewPolaroidMin.height(), int(_avail.height() - st::medviewBottomBar)); + + int32 pt = _y - st::medviewPolaroid.top(), pth = st::medviewPolaroid.top(); + if (pt < 0) pt = 0; + int32 pb = _y + _h + st::medviewPolaroid.bottom(), pbh = st::medviewPolaroid.bottom(); + if (pb > _avail.height() - st::medviewBottomBar) pb = _avail.height() - st::medviewBottomBar; + + if (_h + st::medviewPolaroid.top() + st::medviewPolaroid.bottom() < pminh) { + pt = (_avail.height() - st::medviewBottomBar - pminh) / 2; + pth = _y - pt; + pb = pt + pminh; + pbh = pb - (_y + _h); + } + + _polaroidOut = QRect(pl, pt, pr - pl, pb - pt); + _polaroidIn = QRect(pl + plw, pt + pth, pr - pl - prw - plw, pb - pt - pbh - pth); + + int32 nameWidth = _fromName.maxWidth(), maxWidth = _polaroidOut.width() - st::medviewPolaroid.left() - st::medviewPolaroid.right(), dateWidth = st::medviewDateFont->m.width(_dateText); + if (nameWidth > maxWidth) { + nameWidth = maxWidth; + } + _nameNav = QRect(_polaroidIn.x() + ((_polaroidIn.width() - nameWidth) / 2), _polaroidOut.y() + _polaroidOut.height() - st::medviewPolaroid.bottom() + st::medviewNameTop, nameWidth, st::medviewNameFont->height); + _dateNav = QRect(_polaroidIn.x() + ((_polaroidIn.width() - dateWidth) / 2), _polaroidOut.y() + _polaroidOut.height() - st::medviewPolaroid.bottom() + st::medviewDateTop, dateWidth, st::medviewDateFont->height); +} + +QColor MediaView::overColor(const QColor &a, float64 ca, const QColor &b, float64 cb) { + QColor res; + float64 o = a.alphaF() * ca + b.alphaF() * cb - a.alphaF() * ca * b.alphaF() * cb; + float64 ka = (o > 0.001) ? (a.alphaF() * ca * (1 - (b.alphaF() * cb)) / o) : 0; + float64 kb = (o > 0.001) ? (b.alphaF() * cb / o) : 0; + res.setRedF(a.redF() * ka + b.redF() * kb); + res.setGreenF(a.greenF() * ka + b.greenF() * kb); + res.setBlueF(a.blueF() * ka + b.blueF() * kb); + res.setAlphaF(o); + return res; +} + float64 MediaView::overLevel(OverState control) { ShowingOpacities::const_iterator i = _animOpacities.constFind(control); return (i == _animOpacities.cend()) ? (_over == control ? 1 : 0) : i->current(); } - -QColor MediaView::nameDateColor(float64 over) { - float64 mover = 1 - over; - QColor result; - result.setRedF(over * st::medviewNameOverColor->c.redF() + mover * st::medviewNameColor->c.redF()); - result.setGreenF(over * st::medviewNameOverColor->c.greenF() + mover * st::medviewNameColor->c.greenF()); - result.setBlueF(over * st::medviewNameOverColor->c.blueF() + mover * st::medviewNameColor->c.blueF()); - result.setAlphaF(over * st::medviewNameOverColor->c.alphaF() + mover * st::medviewNameColor->c.alphaF()); - return result; -} diff --git a/Telegram/SourceFiles/mediaview.h b/Telegram/SourceFiles/mediaview.h index cdf3c221b0..bcbe72bd5c 100644 --- a/Telegram/SourceFiles/mediaview.h +++ b/Telegram/SourceFiles/mediaview.h @@ -52,15 +52,19 @@ public: bool animStep(float64 dt); + void showSaveMsgFile(); + ~MediaView(); public slots: void onClose(); void onSave(); + void onDownload(); void onShowInFolder(); void onForward(); void onDelete(); + void onOverview(); void onCopy(); void onMenuDestroy(QObject *obj); void receiveMouse(); @@ -79,12 +83,14 @@ private: void userPhotosLoaded(UserData *u, const MTPphotos_Photos &photos, mtpRequestId req); void updateHeader(); + void updatePolaroid(); void snapXY(); QTimer _timer; PhotoData *_photo; DocumentData *_doc; - QRect _avail, _leftNav, _rightNav, _nameNav, _dateNav, _topActions, _bottomActions; + QRect _avail, _leftNav, _rightNav, _bottomBar, _nameNav, _dateNav, _polaroidOut, _polaroidIn; + int32 _availBottom; bool _leftNavVisible, _rightNavVisible; QString _dateText; @@ -101,6 +107,7 @@ private: History *_history; // if conversation photos overview PeerData *_peer; UserData *_user, *_from; // if user profile photos overview + Text _fromName; int32 _index; // index in photos array, -1 if just photo MsgId _msgid; // msgId of current photo @@ -118,7 +125,7 @@ private: OverState _over, _down; QPoint _lastAction; - FlatButton _close, _save, _forward, _delete; + IconedButton _close, _save, _forward, _delete, _overview; ContextMenu *_menu; bool _receiveMouse; @@ -126,6 +133,13 @@ private: QTimer _touchTimer; QPoint _touchStart; + QString _saveMsgFilename; + uint64 _saveMsgStarted; + anim::fvalue _saveMsgOpacity; + QRect _saveMsg; + QTimer _saveMsgUpdater; + Text _saveMsgText; + typedef QMap Showing; Showing _animations; typedef QMap ShowingOpacities; @@ -133,5 +147,6 @@ private: bool updateOverState(OverState newState); float64 overLevel(OverState control); - QColor nameDateColor(float64 over); + QColor overColor(const QColor &a, float64 ca, const QColor &b, float64 cb); + }; diff --git a/Telegram/SourceFiles/overviewwidget.cpp b/Telegram/SourceFiles/overviewwidget.cpp index 3c78540c14..e4c46149fd 100644 --- a/Telegram/SourceFiles/overviewwidget.cpp +++ b/Telegram/SourceFiles/overviewwidget.cpp @@ -671,7 +671,7 @@ void OverviewInner::paintEvent(QPaintEvent *e) { } } if (sel == FullItemSel) { - p.fillRect(QRect(pos.x(), pos.y(), size / cIntRetinaFactor(), size / cIntRetinaFactor()), st::msgInSelectOverlay->b); + p.fillRect(QRect(pos.x(), pos.y(), size, size), st::msgInSelectOverlay->b); } } break; } diff --git a/Telegram/SourceFiles/pspecific_linux.cpp b/Telegram/SourceFiles/pspecific_linux.cpp index 3c8e5bf155..8d1937c93b 100644 --- a/Telegram/SourceFiles/pspecific_linux.cpp +++ b/Telegram/SourceFiles/pspecific_linux.cpp @@ -293,6 +293,12 @@ QRect psDesktopRect() { return _monitorRect; } +void psShowOverAll(QWidget *w, bool canFocus) { +} + +void psBringToBack(QWidget *w) { +} + void PsMainWindow::psActivateNotify(NotifyWindow *w) { } diff --git a/Telegram/SourceFiles/pspecific_linux.h b/Telegram/SourceFiles/pspecific_linux.h index e68147ed82..7fba2bb320 100644 --- a/Telegram/SourceFiles/pspecific_linux.h +++ b/Telegram/SourceFiles/pspecific_linux.h @@ -170,6 +170,8 @@ void psAutoStart(bool start, bool silent = false); void psSendToMenu(bool send, bool silent = false); QRect psDesktopRect(); +void psShowOverAll(QWidget *w, bool canFocus = true); +void psBringToBack(QWidget *w); int psCleanup(); int psFixPrevious(); diff --git a/Telegram/SourceFiles/pspecific_mac.cpp b/Telegram/SourceFiles/pspecific_mac.cpp index 6cdf90b569..81232d749d 100644 --- a/Telegram/SourceFiles/pspecific_mac.cpp +++ b/Telegram/SourceFiles/pspecific_mac.cpp @@ -363,7 +363,7 @@ void PsMainWindow::psClearNotifies(PeerId peerId) { } void PsMainWindow::psActivateNotify(NotifyWindow *w) { - _private.activateWnd(w->winId()); + objc_activateWnd(w->winId()); } namespace { @@ -380,11 +380,19 @@ QRect psDesktopRect() { return _monitorRect; } +void psShowOverAll(QWidget *w, bool canFocus) { + objc_showOverAll(w->winId(), canFocus); +} + +void psBringToBack(QWidget *w) { + objc_bringToBack(w->winId()); +} + void PsMainWindow::psNotifyShown(NotifyWindow *w) { w->hide(); - _private.holdOnTop(w->winId()); + objc_holdOnTop(w->winId()); w->show(); - _private.showOverAll(w->winId()); + psShowOverAll(w, false); } void PsMainWindow::psPlatformNotify(HistoryItem *item) { diff --git a/Telegram/SourceFiles/pspecific_mac.h b/Telegram/SourceFiles/pspecific_mac.h index caf78864f1..f057159841 100644 --- a/Telegram/SourceFiles/pspecific_mac.h +++ b/Telegram/SourceFiles/pspecific_mac.h @@ -186,6 +186,8 @@ void psAutoStart(bool start, bool silent = false); void psSendToMenu(bool send, bool silent = false); QRect psDesktopRect(); +void psShowOverAll(QWidget *w, bool canFocus = true); +void psBringToBack(QWidget *w); int psCleanup(); int psFixPrevious(); diff --git a/Telegram/SourceFiles/pspecific_mac_p.h b/Telegram/SourceFiles/pspecific_mac_p.h index 29f4bb336e..9ff3dd6d06 100644 --- a/Telegram/SourceFiles/pspecific_mac_p.h +++ b/Telegram/SourceFiles/pspecific_mac_p.h @@ -29,9 +29,6 @@ public: void updateDelegate(); - void holdOnTop(WId winId); - void showOverAll(WId winId); - void activateWnd(WId winId); void showNotify(uint64 peer, const QString &title, const QString &subtitle, const QString &msg, bool withReply); void clearNotifies(uint64 peer = 0); @@ -50,6 +47,11 @@ public: }; +void objc_holdOnTop(WId winId); +void objc_showOverAll(WId winId, bool canFocus = true); +void objc_bringToBack(WId winId); +void objc_activateWnd(WId winId); + void objc_debugShowAlert(const QString &str); void objc_outputDebugString(const QString &str); int64 objc_idleTime(); diff --git a/Telegram/SourceFiles/pspecific_mac_p.mm b/Telegram/SourceFiles/pspecific_mac_p.mm index 4b36604588..ff16dfe171 100644 --- a/Telegram/SourceFiles/pspecific_mac_p.mm +++ b/Telegram/SourceFiles/pspecific_mac_p.mm @@ -184,19 +184,26 @@ void PsMacWindowPrivate::updateDelegate() { [center setDelegate:data->notifyHandler]; } -void PsMacWindowPrivate::holdOnTop(WId winId) { +void objc_holdOnTop(WId winId) { NSWindow *wnd = [reinterpret_cast(winId) window]; [wnd setHidesOnDeactivate:NO]; } -void PsMacWindowPrivate::showOverAll(WId winId) { +void objc_showOverAll(WId winId, bool canFocus) { NSWindow *wnd = [reinterpret_cast(winId) window]; - [wnd setLevel:NSFloatingWindowLevel]; - [wnd setStyleMask:NSUtilityWindowMask | NSNonactivatingPanelMask]; - [wnd setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces|NSWindowCollectionBehaviorFullScreenAuxiliary|NSWindowCollectionBehaviorIgnoresCycle]; + [wnd setLevel:NSPopUpMenuWindowLevel]; + if (!canFocus) { + [wnd setStyleMask:NSUtilityWindowMask | NSNonactivatingPanelMask]; + [wnd setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces|NSWindowCollectionBehaviorFullScreenAuxiliary|NSWindowCollectionBehaviorIgnoresCycle]; + } } -void PsMacWindowPrivate::activateWnd(WId winId) { +void objc_bringToBack(WId winId) { + NSWindow *wnd = [reinterpret_cast(winId) window]; + [wnd setLevel:NSModalPanelWindowLevel]; +} + +void objc_activateWnd(WId winId) { NSWindow *wnd = [reinterpret_cast(winId) window]; [wnd orderFront:wnd]; } diff --git a/Telegram/SourceFiles/pspecific_wnd.cpp b/Telegram/SourceFiles/pspecific_wnd.cpp index 5489cb9f26..27c6f85c9e 100644 --- a/Telegram/SourceFiles/pspecific_wnd.cpp +++ b/Telegram/SourceFiles/pspecific_wnd.cpp @@ -1348,6 +1348,12 @@ QRect psDesktopRect() { return _monitorRect; } +void psShowOverAll(QWidget *w, bool canFocus) { +} + +void psBringToBack(QWidget *w) { +} + void PsMainWindow::psActivateNotify(NotifyWindow *w) { } diff --git a/Telegram/SourceFiles/pspecific_wnd.h b/Telegram/SourceFiles/pspecific_wnd.h index ca89ef319e..ecfcaf50b6 100644 --- a/Telegram/SourceFiles/pspecific_wnd.h +++ b/Telegram/SourceFiles/pspecific_wnd.h @@ -181,6 +181,8 @@ void psAutoStart(bool start, bool silent = false); void psSendToMenu(bool send, bool silent = false); QRect psDesktopRect(); +void psShowOverAll(QWidget *w, bool canFocus = true); +void psBringToBack(QWidget *w); int psCleanup(); int psFixPrevious(); diff --git a/Telegram/SourceFiles/settings.cpp b/Telegram/SourceFiles/settings.cpp index ae6144e0a1..3c3460c5cc 100644 --- a/Telegram/SourceFiles/settings.cpp +++ b/Telegram/SourceFiles/settings.cpp @@ -64,7 +64,7 @@ QByteArray gLocalSalt; DBIScale gRealScale = dbisAuto, gScreenScale = dbisOne, gConfigScale = dbisAuto; bool gCompressPastedImage = true; -DBIEmojiTab gEmojiTab = dbietPeople; +DBIEmojiTab gEmojiTab = dbietRecent; RecentEmojiPack gRecentEmojis; RecentEmojiPreload gRecentEmojisPreload; @@ -130,17 +130,71 @@ void settingsParseArgs(int argc, char *argv[]) { } const RecentEmojiPack &cGetRecentEmojis() { - if (cRecentEmojis().isEmpty() && !cRecentEmojisPreload().isEmpty()) { - RecentEmojiPreload p(cRecentEmojisPreload()); - cSetRecentEmojisPreload(RecentEmojiPreload()); + if (cRecentEmojis().isEmpty()) { RecentEmojiPack r; - r.reserve(p.size()); - for (RecentEmojiPreload::const_iterator i = p.cbegin(), e = p.cend(); i != e; ++i) { - EmojiPtr ep(getEmoji(i->first)); - if (ep) { - r.push_back(qMakePair(ep, i->second)); + if (!cRecentEmojisPreload().isEmpty()) { + RecentEmojiPreload p(cRecentEmojisPreload()); + cSetRecentEmojisPreload(RecentEmojiPreload()); + r.reserve(p.size()); + for (RecentEmojiPreload::const_iterator i = p.cbegin(), e = p.cend(); i != e; ++i) { + EmojiPtr ep(getEmoji(i->first)); + if (ep) { + r.push_back(qMakePair(ep, i->second)); + } } } + uint32 defaultRecent[] = { + 0xD83DDE02, + 0xD83DDE18, + 0x2764, + 0xD83DDE0D, + 0xD83DDE0A, + 0xD83DDE01, + 0xD83DDC4D, + 0x263A, + 0xD83DDE14, + 0xD83DDE04, + 0xD83DDE2D, + 0xD83DDC8B, + 0xD83DDE12, + 0xD83DDE33, + 0xD83DDE1C, + 0xD83DDE48, + 0xD83DDE09, + 0xD83DDE03, + 0xD83DDE22, + 0xD83DDE1D, + 0xD83DDE31, + 0xD83DDE21, + 0xD83DDE0F, + 0xD83DDE1E, + 0xD83DDE05, + 0xD83DDE1A, + 0xD83DDE4A, + 0xD83DDE0C, + 0xD83DDE00, + 0xD83DDE0B, + 0xD83DDE06, + 0xD83DDC4C, + 0xD83DDE10, + 0xD83DDE15, + }; + for (int32 i = 0, s = sizeof(defaultRecent) / sizeof(defaultRecent[0]); i < s; ++i) { + if (r.size() >= EmojiPadPerRow * EmojiPadRowsPerPage) break; + + EmojiPtr ep(getEmoji(defaultRecent[i])); + if (!ep) continue; + + int32 j = 0, l = r.size(); + for (; j < l; ++j) { + if (r[j].first == ep) { + break; + } + } + if (j < l) continue; + + r.push_back(qMakePair(ep, 1)); + } cSetRecentEmojis(r); } return cRecentEmojis();