From ee7374d81611f758d50beb1f64ee0f81c048295b Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Mon, 10 Oct 2022 11:34:29 +0800 Subject: [PATCH] =?UTF-8?q?@=E6=B6=88=E6=81=AF=E9=80=BB=E8=BE=91=E8=A1=A5?= =?UTF-8?q?=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/views/weight/AtTextWatcher.java | 24 ++++++++++ .../yunbao/live/activity/LiveActivity.java | 4 +- .../live/activity/LiveAudienceActivity.java | 3 ++ .../yunbao/live/adapter/LiveChatAdapter.java | 18 +++++--- .../com/yunbao/live/bean/LiveChatBean.java | 24 ++++++++++ .../live/dialog/LiveInputDialogFragment.java | 5 ++- .../yunbao/live/event/LiveAudienceEvent.java | 3 +- .../yunbao/live/socket/SocketRyChatUtil.java | 11 ++--- .../yunbao/live/socket/SocketRyClient.java | 18 ++++---- .../yunbao/live/views/LiveRoomViewHolder.java | 41 ++++++++++++++++-- .../live/views/PortraitLiveManager.java | 7 ++- live/src/main/res/layout/view_live_room.xml | 12 +++++ .../main/res/mipmap-xxxhdpi/emphasis_cn.png | Bin 0 -> 12767 bytes .../main/res/mipmap-xxxhdpi/emphasis_en.png | Bin 0 -> 17149 bytes 14 files changed, 144 insertions(+), 26 deletions(-) create mode 100644 live/src/main/res/mipmap-xxxhdpi/emphasis_cn.png create mode 100644 live/src/main/res/mipmap-xxxhdpi/emphasis_en.png diff --git a/common/src/main/java/com/yunbao/common/views/weight/AtTextWatcher.java b/common/src/main/java/com/yunbao/common/views/weight/AtTextWatcher.java index b09afcd98..ebf86475f 100644 --- a/common/src/main/java/com/yunbao/common/views/weight/AtTextWatcher.java +++ b/common/src/main/java/com/yunbao/common/views/weight/AtTextWatcher.java @@ -112,4 +112,28 @@ public class AtTextWatcher implements TextWatcher { } } + private String atUserID, atUserName; + + public String getAtUserID() { + StringBuffer stringBuffer = new StringBuffer(); + for (String userID : spanMap.keySet()) { + stringBuffer.append(userID); + stringBuffer.append(","); + } + return stringBuffer.toString(); + } + + public String getAtUserName() { + StringBuffer stringBuffer = new StringBuffer(); + for (String userID : spanMap.keySet()) { + OlineUserlistModel model = spanMap.get(userID); + stringBuffer.append(model.getUserNicename()); + stringBuffer.append(","); + } + return stringBuffer.toString(); + } + + public void clearMsg() { + spanMap.clear(); + } } diff --git a/live/src/main/java/com/yunbao/live/activity/LiveActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveActivity.java index 1ec757e10..3ad34edc7 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveActivity.java @@ -938,7 +938,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL /** * 发 聊天 消息 */ - public void sendChatMessage(String content) { + public void sendChatMessage(String content, String atUserID, String atUserName) { if (!mIsAnchor) { UserBean u = CommonAppConfig.getInstance().getUserBean(); if (u != null && u.getLevel() < mChatLevel) { @@ -947,7 +947,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL } } int guardType = mLiveGuardInfo != null ? mLiveGuardInfo.getMyGuardType() : Constants.GUARD_TYPE_NONE; - SocketRyChatUtil.sendChatMessage(mLiveUid, content, mIsAnchor, mSocketUserType, guardType); + SocketRyChatUtil.sendChatMessage(mLiveUid, content, mIsAnchor, mSocketUserType, guardType,atUserID,atUserName); } /** diff --git a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java index a09e91e4f..667b116e2 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java @@ -833,6 +833,9 @@ public class LiveAudienceActivity extends LiveActivity { case NEW_MESSAGE_REMINDER: manager.showNewMessage(); break; + case AT_MESSAGE: + manager.showAtMessage(); + break; } diff --git a/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java b/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java index 336a4bb4d..5be4c19f3 100644 --- a/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java +++ b/live/src/main/java/com/yunbao/live/adapter/LiveChatAdapter.java @@ -24,8 +24,10 @@ import androidx.recyclerview.widget.RecyclerView; import com.makeramen.roundedimageview.RoundedImageView; import com.yunbao.common.CommonAppConfig; import com.yunbao.common.Constants; +import com.yunbao.common.bean.IMLoginModel; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.interfaces.OnItemClickListener; +import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.DpUtil; import com.yunbao.live.R; @@ -57,10 +59,13 @@ public class LiveChatAdapter extends RecyclerView.Adapter { private RecyclerView mRecyclerView; private LinearLayoutManager mLayoutManager; + private IMLoginModel model; + public LiveChatAdapter(Context context) { mContext = context; mList = new ArrayList<>(); mInflater = LayoutInflater.from(context); + model = IMLoginManager.get(context).getUserInfo(); mOnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { @@ -289,7 +294,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter { } else if (bean.getType() == LiveChatBean.SYSTEM) { boolean isContains = false; for (LiveChatBean model : mList) { - if (!TextUtils.isEmpty(model.getContent()) && (model.getContent().contains("堅決維護青少年群體精神文明健康")||model.getContent().contains("click to register if you like. pdlive conducts"))) { + if (!TextUtils.isEmpty(model.getContent()) && (model.getContent().contains("堅決維護青少年群體精神文明健康") || model.getContent().contains("click to register if you like. pdlive conducts"))) { isContains = true; } } @@ -374,13 +379,16 @@ public class LiveChatAdapter extends RecyclerView.Adapter { mList.add(beanNull); notifyItemChanged(size + 1); - if (isSlideToBottom(mRecyclerView)){ + if (isSlideToBottom(mRecyclerView)) { mRecyclerView.scrollToPosition(size + 1); - }else { + } else { Bus.get().post(new LiveAudienceEvent() .setType(LiveAudienceEvent.LiveAudienceType.NEW_MESSAGE_REMINDER)); } - + if (bean.getAtUserID().contains(String.valueOf(model.getId()))) { + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.AT_MESSAGE)); + } } /** @@ -389,7 +397,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter { * @param recyclerView * @return */ - public boolean isSlideToBottom(RecyclerView recyclerView) { + public boolean isSlideToBottom(RecyclerView recyclerView) { if (recyclerView == null) return false; if (recyclerView.computeVerticalScrollExtent() + recyclerView.computeVerticalScrollOffset() >= recyclerView.computeVerticalScrollRange()) diff --git a/live/src/main/java/com/yunbao/live/bean/LiveChatBean.java b/live/src/main/java/com/yunbao/live/bean/LiveChatBean.java index 044c84de6..c6b55e3a6 100644 --- a/live/src/main/java/com/yunbao/live/bean/LiveChatBean.java +++ b/live/src/main/java/com/yunbao/live/bean/LiveChatBean.java @@ -58,6 +58,30 @@ public class LiveChatBean { //超皇字体颜色 @SerializedName("contentColor") private String contentColor = ""; + //@名字 + @SerializedName("atUserName") + private String atUserName = ""; + //@ID + @SerializedName("atUserID") + private String atUserID = ""; + + public String getAtUserName() { + return atUserName; + } + + public LiveChatBean setAtUserName(String atUserName) { + this.atUserName = atUserName; + return this; + } + + public String getAtUserID() { + return atUserID; + } + + public LiveChatBean setAtUserID(String atUserID) { + this.atUserID = atUserID; + return this; + } public String getStartColor() { return startColor; diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveInputDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveInputDialogFragment.java index 6a9fca469..6d79a9ab0 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveInputDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveInputDialogFragment.java @@ -76,6 +76,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O private long trumpetNum;//喇叭数量 private String mLiveUid;//主播ID private AtTextWatcher atTextWatcher; + private String atUserID = null, atUserName = null; @Override protected int getLayoutId() { @@ -235,7 +236,9 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O ((LiveActivity) mContext).sendDanmuMessage(content); break; case GENERALMESSAGE: - ((LiveActivity) mContext).sendChatMessage(content); + ((LiveActivity) mContext).sendChatMessage(content, atTextWatcher.getAtUserID(),atTextWatcher.getAtUserName() ); + atTextWatcher.clearMsg(); + dismiss(); break; } mInput.setText(""); diff --git a/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java b/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java index f2b80de9a..4aa8a9edd 100644 --- a/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java +++ b/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java @@ -132,7 +132,8 @@ public class LiveAudienceEvent extends BaseModel { TRUMPET_NOTIFY(20, "全服喇叭"), RECOMMEND_CARD_NOTIFY(21, "贵族推荐通知"), SLIDE_SETTINGS(22, "滑動設置"), - NEW_MESSAGE_REMINDER(23, "新消息提醒") + NEW_MESSAGE_REMINDER(23, "新消息提醒"), + AT_MESSAGE(24, "@消息") ; private int type; diff --git a/live/src/main/java/com/yunbao/live/socket/SocketRyChatUtil.java b/live/src/main/java/com/yunbao/live/socket/SocketRyChatUtil.java index 65a9848fa..fa35d42f5 100644 --- a/live/src/main/java/com/yunbao/live/socket/SocketRyChatUtil.java +++ b/live/src/main/java/com/yunbao/live/socket/SocketRyChatUtil.java @@ -1,5 +1,8 @@ package com.yunbao.live.socket; +import static com.yunbao.common.CommonAppContext.logger; +import static com.yunbao.common.CommonAppContext.mFirebaseAnalytics; + import android.util.Log; import com.adjust.sdk.Adjust; @@ -24,9 +27,6 @@ import io.rong.imlib.model.Conversation; import io.rong.imlib.model.Message; import io.rong.message.TextMessage; -import static com.yunbao.common.CommonAppContext.logger; -import static com.yunbao.common.CommonAppContext.mFirebaseAnalytics; - /** * Created by cxf on 2018/10/9. * 直播间发言 @@ -80,7 +80,7 @@ public class SocketRyChatUtil { /** * 发言 */ - public static void sendChatMessage(String mLiveUid, String content, boolean isAnchor, int userType, int guardType) { + public static void sendChatMessage(String mLiveUid, String content, boolean isAnchor, int userType, int guardType, String atUserID, String atUserName) { UserBean u = CommonAppConfig.getInstance().getUserBean(); IMLoginModel model = IMLoginManager.get(CommonAppContext.sInstance.getApplicationContext()).getUserInfo(); if (u == null) { @@ -112,7 +112,8 @@ public class SocketRyChatUtil { .param("contentColor", String.valueOf(model.getContentColor())) .param("startColor", String.valueOf(model.getStartColor())) .param("endColor", String.valueOf(model.getEndColor())) - ; + .param("atUserName", String.valueOf(atUserName)) + .param("atUserID", String.valueOf(atUserID)); msg.create(); String targetId = "g" + mLiveUid; diff --git a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java index 538b00ebf..a4c851cc4 100644 --- a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java +++ b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java @@ -1,5 +1,13 @@ package com.yunbao.live.socket; +import static com.blankj.utilcode.util.SnackbarUtils.dismiss; +import static com.blankj.utilcode.util.ViewUtils.runOnUiThread; +import static com.yunbao.live.activity.LiveRyAnchorActivity.isDRPK; +import static com.yunbao.live.presenter.LiveRyLinkMicPkPresenter.leaveDRRoom; +import static com.yunbao.live.views.LivePushRyViewHolder.dr_pk_view; +import static com.yunbao.live.views.LivePushRyViewHolder.rtcRoom; +import static com.yunbao.live.views.LiveRoomViewHolder.getIsHot; + import android.os.Handler; import android.os.Message; import android.text.TextUtils; @@ -54,14 +62,6 @@ import io.rong.imlib.IRongCoreCallback; import io.rong.imlib.IRongCoreEnum; import io.rong.imlib.chatroom.base.RongChatRoomClient; -import static com.blankj.utilcode.util.SnackbarUtils.dismiss; -import static com.blankj.utilcode.util.ViewUtils.runOnUiThread; -import static com.yunbao.live.activity.LiveRyAnchorActivity.isDRPK; -import static com.yunbao.live.presenter.LiveRyLinkMicPkPresenter.leaveDRRoom; -import static com.yunbao.live.views.LivePushRyViewHolder.dr_pk_view; -import static com.yunbao.live.views.LivePushRyViewHolder.rtcRoom; -import static com.yunbao.live.views.LiveRoomViewHolder.getIsHot; - public class SocketRyClient { private static final String TAG = "socket"; @@ -609,6 +609,8 @@ public class SocketRyClient { chatBean.setStartColor(map.getString("startColor"));//昵称开始颜色 chatBean.setEndColor(map.getString("endColor"));//昵称结束颜色 chatBean.setContentColor(map.getString("contentColor"));//文字内容颜色 + chatBean.setAtUserName(map.getString("atUserName"));//@名字 + chatBean.setAtUserID(map.getString("atUserID"));//@ID if (!map.getString("guard_type").equals("undefined")) { chatBean.setGuardType(map.getIntValue("guard_type")); } diff --git a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java index a22e75200..8fe686125 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java @@ -206,7 +206,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis public static String mNameText; public static String mAvatarUrl; public static FrameLayout ft_hot_add; - public static ImageView img_hot_gif, newMessage; + public static ImageView img_hot_gif, newMessage, atMessage; //多人PK static TextView time; @@ -673,6 +673,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis mic_ico = (ImageView) findViewById(R.id.mic_ico); newMessage = (ImageView) findViewById(R.id.new_message); + atMessage = (ImageView) findViewById(R.id.at_message); mic_ico1 = (RoundedImageView) findViewById(R.id.mic_ico1); mic_ico2 = (RoundedImageView) findViewById(R.id.mic_ico2); ViewClicksAntiShake.clicksAntiShake(newMessage, () -> { @@ -808,7 +809,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis mLiveChatAdapter.removetItem(bean); } else if (bean.getType() == -2) { mLiveChatAdapter.removetItem(bean); - ((LiveActivity) mContext).sendChatMessage("Hi~"); + ((LiveActivity) mContext).sendChatMessage("Hi~", null, null); } else if (bean.getType() == -5) { String url = CommonAppConfig.HOST + "/index.php?g=Appapi&m=Turntable&a=tricky"; url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" @@ -833,6 +834,17 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis super.onScrolled(recyclerView, dx, dy); if (mLiveChatAdapter.isSlideToBottom(recyclerView)) { newMessage.setVisibility(View.GONE); + if (atMessage.getVisibility()==View.VISIBLE){ + RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) atMessage.getLayoutParams(); + if (fastMsgRecyclerView.getVisibility() == View.VISIBLE) { + params1.bottomMargin = DpUtil.dp2px(38); + } else { + params1.bottomMargin = DpUtil.dp2px(8); + + } + atMessage.setLayoutParams(params1); + } + } } }); @@ -956,7 +968,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis fastMsgRecyclerView.setAdapter(fastMessageRecyclerViewAdapter); fastMessageRecyclerViewAdapter.setMessageListener(msg -> { //点击的消息发送出去 - ((LiveActivity) mContext).sendChatMessage(msg); + ((LiveActivity) mContext).sendChatMessage(msg, null, null); fastMsgRecyclerView.setVisibility(View.GONE); params1.bottomMargin = 0; mChatRecyclerView.setLayoutParams(params1); @@ -3059,6 +3071,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis }); } + /** * 展示新消息提示 */ @@ -3066,6 +3079,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis Locale locale = mContext.getResources().getConfiguration().locale; String language = locale.getLanguage(); ImgLoader.display(mContext, TextUtils.equals(language, "zh") ? R.mipmap.new_message_cn : R.mipmap.new_message_en, newMessage); + + RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) newMessage.getLayoutParams(); if (fastMsgRecyclerView.getVisibility() == View.VISIBLE) { params1.bottomMargin = DpUtil.dp2px(38); @@ -3075,5 +3090,25 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis newMessage.setLayoutParams(params1); newMessage.setVisibility(View.VISIBLE); + + } + + public void showAtMessage() { + Locale locale = mContext.getResources().getConfiguration().locale; + String language = locale.getLanguage(); + ImgLoader.display(mContext, TextUtils.equals(language, "zh") ? R.mipmap.emphasis_cn : R.mipmap.emphasis_en, atMessage); + RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) atMessage.getLayoutParams(); + if (newMessage.getVisibility() == View.VISIBLE) { + params1.bottomMargin = DpUtil.dp2px(58); + } else { + if (fastMsgRecyclerView.getVisibility() == View.VISIBLE) { + params1.bottomMargin = DpUtil.dp2px(38); + } else { + params1.bottomMargin = DpUtil.dp2px(8); + } + } + + atMessage.setLayoutParams(params1); + atMessage.setVisibility(View.VISIBLE); } } diff --git a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java index 1066b35b3..358f220b2 100644 --- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java +++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java @@ -1531,7 +1531,12 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe */ public void showNewMessage() { if (mLiveRoomViewHolder != null) { - mLiveRoomViewHolder.showNewMessage(); + mLiveRoomViewHolder.showNewMessage( ); + } + } + public void showAtMessage(){ + if (mLiveRoomViewHolder!=null){ + mLiveRoomViewHolder.showAtMessage(); } } } diff --git a/live/src/main/res/layout/view_live_room.xml b/live/src/main/res/layout/view_live_room.xml index a422be806..45c9d118c 100644 --- a/live/src/main/res/layout/view_live_room.xml +++ b/live/src/main/res/layout/view_live_room.xml @@ -1995,6 +1995,8 @@ android:layout_centerHorizontal="true" android:layout_centerVertical="true" /> + + + + CDh(EOYKc#6;(U-j!}C= zZL0n0=l%U%=enNckCT&oocrA8KIiqk)7E@WM#4Y>0079Ks!F;50MO$0yXzgo+b5yB zRpRXj&`bCEGeE^K(>4IW27oFl=)=wTvxt%mCQp0Y73&{_VRWdJ6*|IlA3ltpfr*_t z@KICJlBvXPbBTV_fHCCa->3JUyUl$2GY2O&4Z&Gt>l@b0!h zOM{uUQ>OT$jR%2Ce&?5Gjpq`dv6RX>>`;xhkvY^Hbceq*v49*U-J3(k`32%=1|8z~ z!dVIhEt@peS%zAM4)Rw$!%!UAzbiOg9hpX<-#)G72ol^Dg?g>FLlWx->1su4$CHBj z^se;me0zDK0rM=V2GoQ&;bH^Iq*s3a;gJ_JG*(o`bLNo|n^A6@sii+@)q9R0_Wr*w zc^qGpcCo^)*U{2k07UtIoOrIA5nZL-^!A_FEw4lUQA^1uEd`PsK^)tB z)`P2_OGdLDlF<)`7nL#QsI$ZgQ{A#uHRL84`>kNNqG{70@gwt%*c|f<@=)gSC+~#0 z9!)@N9%~x^`<3kc1JqUD#IweZS-azzu7*y$PCS1jB-@fcRQuj1;4AAv8Gj~7u^EgI zU0wX%4~!*G5|ettzwW*As`#HkmZ5k?0P+i4C_6`N7oXrq?w9v)vH5r28CgJ|t4eF% z!&C`{f&R5eJ$T2QPXxAKLEY%B5drk1FJ=NwP$V*DFNi}`pidW{|3TZ^I6O7|F+{!hf6 z&!ADfHQ+LrqsxQZpCp86j~arugEW+Hyi$NW-9O88;`uD%6>ujOc!U?&gFj~K+{MLC zl4_F{f17pmS)5t93jd$3x&la=3v%cOnrCDQk{2pEZ^Bl1pnZMDPAdujyiNd~Fa*al z`!yC2#R%)`4EV2u&^lB)OGipj?w*f*p6K{0>nizwjky}29Qa3I`|mFxHnUUm41VNG zT;ZzwJcdS4^gr+3rAehHS~-yDMWhb^z3`TKqIv9s%L~TWR;8LVW%lm#-@R?xDFV26 z1sR-+_Az;>fiKvdZ(Z~@j*?sTDx%;^t+eTk)PI8o8(Y>Cm|ByBSsl=SDF0{34V1Qc zCapdh{k)V5-M^9A1%xy);v6<~)(-wjW8Y~Ieu>@@1!f#$76LKa>WsN-vgCnG)nF7(E`T==DQgfT;m|>oG3v+cxY&M zW36McjD9&=+}m2HGh$h{@HF`qm4D9gtOfi&tfCX;{b6n$(lpnRlHL{)qZgHs8bSF# z)7<5+vICEnBvP#pOzVT2RQ_j~`+KxJARGzWg`As{pn4a_!MbkW>H0%1 z82^&rM&?s6LSP#YO0fK5EqHvmiYNN&o8a--WtPkyGrzV9xZFrkz=%iSw~9%d>Q!V8 zY+*A>ijp|qbwbs|p4l-x8Pl?>x?90lKPNxuz+MWCuS+>1o{G|Y%C_xfOP?l8nC5ygD;=+!pcELf`|I>!(mt zZV$eEZMZIP&z@+huY2W8)U`jSHk3ZeEc1r%3l&)V_}s*LaC!R9?R-rTSy09-b1<9p z8nRZf8|A(L^PBJs7_kkdvk#>T4yE!2eI3;yLzaQ&3MyCrX4Np%{f#a7$hUYVV5(*& z4O?u8Z}Ik6@)$3wH`koGU8!D$Mp<*MBy!wn4;{zmmnie|$-pqlorrSHkkLNY5SI|& zg9YQ=FOAvhVvhN}v9}9^u(^9rGbCJXGT9nr>jGYua|6yTD&%-v1ZknP}{`bGFh{><&Vg1 zwN2vdmB0OsZ1nCh!lfA&woUtEyST_1CqBpdCEY%9TVcA9qsz^l=|#WgFA}bEGtDz) zhLF>}*>SvbR^$Qu2ig2SmOyn_il9M`Tu|Ndu#9ttYr~j|Ht(yXA9w_G=JDQjcFTKA(k zTMk-wz4z;@fp>q61gh{c0#>Rl-{3~fb(2c%C zKQjpwpp|zX>jF)si+|Bn!19Kie?7T5_pp4Ou=Ymat)#KC>CBoy%9I=L>CS`GSdH!ex<0Mp66CzFW)9+5BX=u_ze*oY^NSPUb*rm-xE#SnjaxxcsS^Mki| zX1~Rk%;MrBBi2!xib++DYQD0uuO3oE$<|CEa3pKS5jEo%S$ z6LNL*f!FzEBjLH%fI#EcMuuC1el%;ypW~c;aFHe{z;j2;anNXcjh>wJ3DJ8$k}VTR zeKWqPdHfesDDynbRl<|$z+{NoGGH1X8zHI!68;Nw9G2~)y`Q?~hxD?Rms)x?>*=_^ zfqAi50Blvwl9tXD9D`r1MET6xrZ}!D1w8&S-0wB~_&Il$w{HF9%*pn+zzq8LuK@$Y zUavosmBEE)`|~MVPTh`HU^bc7gsxrmp(*Bg(EwwMDw#EHNz?Bf*%;S)TA!G1D~;ea z?>XvYbqi^vhK)!|04&IEE&d#M?_N6@my5n5rYyw+Fl$TWy)(*yzt1=KKMysG-uVA(|i^z46dX0zF z#${A9)4Dhq(_2VMIF$3$BIGs{PDeuij1NNz#b$bFEy{y$t_(by-LER!|FjH0{fmfY zmYI4z-RAFgz4~P3&3%`_hcPGX8(z6}LK>C327R z67-Cz_%`>gYmmK8IuYK0i*%ef%)hR+=qS}Ip8IsNHKsU9&Tq;Wz(&bS;&`k_7Ox{5_{%vM9>1kPdKi~;fmg6<=kU4C#=H|aIm00aEE25Dq)Tw#qc6Sr@ zVjK5~^+xq;;JF~l#l3pDlTpRVJVg(@#|uPM-R*yG+*TA6KJ9%yUuwaIf$REMMsKL4 zN4GUEwF9i{PA>VmLE-N;Fr-`Vfu~6=J|A0L9*RH8wU<1EIsUrFyg4tJ^?KnylgSF9 zuk^zLir?_$KY!N(q@dMSuI`#~uKap(z5Lg_^$;CcA9cPG#cEP{{?X8UEMNKkM2nAe zmhYUS^jeH)xf6FxjWNI%xOj+nUzxJDuCicRRl3F{MgQCVkn=@9iSOSyzN}ZTL^AGd z7w0rkZd=7b+J9pRNpcXspn>qVJbVh-Q9@fnQabGzy^Rp{7a?tba#Y|KOsc(UM72BTvpVug(uGl6Es?{3=e%mv2{)M>u8?o3}p$ z`KFGuF4In~R2?5qXk`ikw>mo?-h|oBR98;;)UI+rMVx1y>^R4HMTVTA#B@IrZ|v99 z*4_9DDmQnm9gjS1^rG{pN0RJ|yJO{H3VU_qnv=tksEA3jvdkWBZbWtC;)}nRBO!aA z1;!^WTpO|V2MVGuGYUW7WIdFzX?;R)kxx_1D2#=nl)o|}A;4(04_l2+lWHS!*DhnS z79Ho z12?rPAVWDfd-hK6 z!q|o18oc!Ap-%QhdRn`*Y!@Z_T0V_S8NvQ0IFy*Rx$kqhw1~0MP@J+T;`-^TTD;~A zun^-;>H88U@+h}qKum}r-vp3S3d@QzwL86Sd8qIHQG zd1-fx(&y)4H0ugqkPjmW=n0Rh;%J8?`li9(7LQWR?oIE1Njayes{XyYrst&RmPAZel^?65 zczLUdzH80jKi9i^wIdDpv!Ka`>l*ep6_kfSfM7ChXUfHdp4Q}T{F(0G1DI1$P#0q5 z$8f6yn7R+vSpu?d{2+E2=gr`_*CiT5xS@yJyP%5ikh@BA}o2RBrL~NrA84qrSKp|3ehT|X5mqe8hYK;EW?KrP8+8)K8a`P~;AaDu;Ut$?0 zhfVIYaa@Cy<;|v4eqj{$Lp%Q5u1#eUdbkE4HX8aE^gTZ5D-KoXp0MUi4^P9DZ#kXM z#Cmt9+sn=mXY+Yfva0*oasu^P+18{uEaJHqyqvi$0<(_=yf;5dGc4?56)?W@szbUQ z&RelL@VV{KG3slZ57|!&fHH}i$&-!3i@ma<_c-F;=d~PJH!k|tQW2Rk<%1Sc-fiwXXYh99@0F-1hL^^2d(&T5A4EUYC+Ak% z$@&T0S={*UrJ4&UP#sc|d^ZioJ+!PG2*39Kebo0Q3VajK^k3M4ZI-0e0Nwox4{4p zqF5igwhrw~5L(`>i(&?~*1o-$>cmI;N!r+7hGeO}S@EwXQEc2L%6;z{g*3f~NNaDu zUOeR2UK2j%KVR_DVpLa#b_4W*)*IayM{BOg6lqofZ$0bTtUc=hg`x!#EZIV7aSqG8WkxG(XUwodG}duxX9l%xg$IT|>pZ92Rx0?70!{Ir!x4 z75eGvgr0=yYfJ&OL1gY#6ti8S3(rF%&{gM|wl7lJ5`5=AQ{>gfPe@3qVA32ZJ0o~7 z{zM21YXGgb6Pj(@aZ7n8ZT0Q#X9uDCF{F~RN4;8}3kD!sc*inhPG4NDh0#`;HX zXX7I@6>H_S!!;H~HF|sl$!gu^Ns%ACcL?#!8pJq0zLJI#?QJ&AdE{NSQGF4s8Q6PmE1m`bSfa%A;qRdTXklB9Z1Q5H*>s8Tw%yhW>{*sh_&-~uwWTqaz zLI(Qks0jm-l$FkuoIzGC-W9S>Hlb?Ro`Waj`n(K%9im*WEWvaP(FFOoJ9kXQuTg?x z@{aS6zt=fKxHpC>D;*6~+ehX;5?kXPjfI~lwL54<9ODaCH&k9!)u&;V-U5sD>B(7u zNF{mx>CRsxAyU0lrf#mEzNs(hhB8|SH8~f!w5g)PZ8@I>wOJiBy5J)@609zqhd-Uv z(*X>U2yU*V(6kg%KDm~ua*7ORsFNe_&He!DHzQ7UmMpa2A3(dOf1ie&TlOE8k~jGH zIi4>T#4ez|&SBHPw*=ZYoow3+ve|d~MSNlgEYF37I+6~_D!zzB0ZWZqXwgI#JfJ^u zB2g)iSSxoIU22EQD{kJh$5j<->k)Y&Z8G$6%IM^Z*Tf>q72Cryhjrp%d0eA(>}KW8 zlQ%yk+6}WVOrhPtWgV2ZqvZFv&j2BPac_Ja z$cTuH!3Gw-Duvraq-kH6%2WOz^|xv1Y$HO9;RlY;<`N=|i3`c2)fFBug#5ip4k65S z`+E9f*UV5UlMN=5;_oHfER2NY9cJ62Q)@D_w*+92Fb14?zk)n)4p{lXaAaCb4XxxL z7&J(XU&0~G@7U*`9vdvpp>5l68k znXdq(^!$L144Dw~O0An7#==vrLvzg8e8nSVTrsJG91(ojoAcofpp93dxsQ!#Mq~W+ z^?Rn`--ANipFWg@ACk|@;9|pH)-N?S_1q?5J=Dd4VJXE?;fqG7GM zlOnLnE*Lmma@Q%pz6N9gxZ-|#3H=yt6~*jZC5&n@T7)ES>V&y+0nt>xi{%8|WhHt- z@A_ist^LKf_33U%f_{K#-N_>3GDm4YGi1*5?lrTIQs?AlDO+G z{73-B(-I~bH`Tx2KqG)X=P(Ol&fm z7)*MBF{>@2e=%BXfa%1E@Q6K|%Al>}uKYl(B@Zk$M(>Bk13I~D)%l1nexX7~ewu%+ zNR0Vv<~!SC_b0)qOP4y0l1jbB)*hP8JlV|>^zzCweK&2x-*?@V!(eZeJBZ=P)C~qf zKTLRo-4%di_eV7u#6}HdVa!SImCCL=qb3Iwo++N}2{H$LV+g4K0z~lQ!Z$N|V5E=k zAg^z?y$)r`mod*b9EvrwK9}4H&iU+XDc+4PU&SIk7~l=&DH(f*8`q7Kgy@$PUJ=$+ zPTh|?i52`qCt?g9c)eYYNJs?95g~X3leqHZ$AP=wG?5Q#nDD6jsRq}3+}dx>lH+pU z*r2U92Gf#5tf9u_I8N0tR5*kO|51b`D|N-4CcrSM8d(=>7j3dF7AkjBzN@X!kg64( zYu6^*)ZT zWv&YuGQiBRqUq+k4&5fH_{>l}=HX_eg6~%xh44NBm?o&wK2CUH{YEK~R??;P#R@%P zh9nxHQR?ZkJ{iPs6HL?-^;gMc|IT&LN{7d&>W-CCcm5%m(U!pBVWpq35A(Ae>|_iR zA)tUt^ECEK>lbIkccx1(-uSI_zU5Q-qx_l6&3EaSy9r<%eSMH|PDaVw`-uPvBSSAx zSiC&Rmm7^V9I2r?eA~fFMiW#`75u@sc6~8Mhfe*n!@nvgWF-j?-AaIfw9E=J8m71b zlR0#>?O**?A{t~t5Wk=_k~y*5JmuoFl_hZC!h6lbr)}geS9V?aZt6;Kv|(3J+)xew zr1S`|rDshiAdCfXQ7oCw*{f>y1gG*zf%p%JgY!&~6=Bm6FO2SAaB)AcBSQcYB$Zy8O?F$LxW4yk2D)_qrk1b5j}U3dwtnM)r?0XeJW^XkThda6tflHB}Q>FzcPln=Y`JmQOf@?KdRBJ-Hs<3O6D6Te1rV z(5@CHPM*983G&M?n}<<|Q`i9>4!}$Be@GMsR8lR|KUPZ@9tYNH`2q&}&1F`#dCk7% zWV=q-v(blBy=t;q{@LV3v?-7{`$Esdn}>WDM#G{Y2e*Uy&=F@r?$t99k>h#A!|_Mn zz(a|;)H_oqnISJ)n7X&usxkXv*{`XhKa(MJda6vqV39vM9zWj74c}Y9w%$`&qN&Pu z`?`rplZ8{XHLpk|GC|m2YFx71176?ue`j%0Ba$nP(?66N7p-Vqm*?q%7B0e8jy#vq zuei=5o<~Ry-st3JK+@c5-b%3sc0Ad*#`OQNqiU;$g5A{I+vOaA@(ZPv__Z&@UP4J_ zhZ>g?RAN2$gSBCJ!N0R_T3rSApL`2--?{Ka>pj0)(Ea|jpJ^+kajwgMj$l#!Au+o@ zX@ToVzIQ765g$3W`0mJSd^5xMvMMzIeL*bP08syiXb7teMh2R_cEy50zc4V!YzIrv zJn>#$8&+9E9`b$Q7rg1U;lSmTb3K0Iopc}|;P1_O87G}fbq`HLa(8tfi}N;Nn?jov zM1N$yO`IuL9}Dv{J)k(G#chHWMN%I>kgfYIZc&QRKSi`$1S1M}4AP*FF_lZT*v=O)Ie%Z6C{W0!B|6?ZG4z!%5N*4A( zYo&SrAS?2Zqx)C*&ID29!^;DrY4t>TMg?@blh!&eXov<8^yo3rd_x2%>A>+qfkjLd zXu(7q7a9rgjiEpLsZsSIMf^vq(61WggspJKpg%ib}_sNgAv*G!!rL_vbBUGM4 zwFko?0HsqNxFnaGAa<9Ptdk-+6rLM%s~JqWBk}mk+v?YmaX{B4*H5nk!(+~4C(??9 zxgLOs^f-!N7&y|{2X%`}$R$A4;XC#q-JCFZOB*F)m<(%Xx82TZ+QB@UZ=FOH<{7|X z|A`EYGrQsB+Rvh({ivWbPu*(o@Sy&#@EvSs=0JnE$${)1{&`AEr8(n+oJz+AEO_L7 zZ6^X>zTc!EiHAP!PqRH9`lYDwU48Oz{B&qj5f*n|u;Neac9Mn0N8Mi(CVVZ4yBkl2>iS>LJ#MgXR7`9V(^i7 z=BV(U-FHc}K{HdhHRjZ-XX55gktVN30i}AIJ5bzj<_LmN$hxB(wzuah$?BeH$?R^T zC@#5A>n(T{(H!lG!wv}RJl=a^fHEi?w&;o)`Us}T2`h3{5wifnDICI8Ua zbZm3!NcqTeLNALRv0HEcwD78a^LY_=z!&hi?_>f$iMpMyzwP_DFLg_xfol|@&LruF z=@i{>Wf}s6C=#@f@#g!sJ8nJp6T-li#+885mme$ck_2d@wc%2u>;xO5H}@8~HruyO z@Xa@)#$N(`EJ}LAA*a6EcW(o;%#TndSpx9}25I>C!z!!N?NAZsFFO{;%%qCCr!FnT z`GB~BlkbDEqbY|gx>W4;q;fL3EbcinHh)ib4qzU6UIz?t(%fq`TxdW?vYExH#*N`JEAdUkBvrQ_?KA(`iKd2B#0Z?`#hlF%t z?Agi%lu;}0)=wNv8xV*Om5esU1m}uvc7>G*(CsUl<@4ukw=J6lLPS4-mA|sU1VWF8 z7&)pOMp|eU21)wi+PG-<5j^qo6d#~0r&7Hqe$=>(IF3C{mm>UohVOq5BlZGcnR%3q zptDHR2fHge43I~rV2!0ip8_TE+yK^?>r>j@Ck}rO4ahjmM!D`_BQ$ee?|%Bsrd5up zTEJ`P4*fLtnN((kLa#2W&c5z@X+1lMP5EthDtItKj2`1ECi1>Ca{^|%bkI)Xdqsb? zGcST-$sFx+Sv&*28)Wf6qi7Vv4%B3D8a((M*ZFZp7*1Y62b4ss17xw=24Hn?lR4b9 zgEkN08V&$kh_q$eFw$RGz`OI+V(!>IIZIkI04i${;{u&_S%OQP5oyvJBPk_^9k-jn ziaUWdw(%4l3cP@#-&Nj9k}0zir`GQ{eeN|SBKH*@8@pt+S1v!>nVtqhIC%fEhK0gwynLHne@$u}XFdG($hX3bxrvKN{th?zRLG-dcXneyEuiBhi+`p;ktjuO zA<((+!MHg7DgKhny%RmR@5QXO%%G{p!j5Jz6QGq z8)j8XQZDfIlbS=d9dJJf-bLX9xQRA9O_c?cW39sVt*^f7OfaTpvQE$g5MwIS`UNtT zj=-naf2dNV6sj584CUPG>->tjAmYA9QsY4OP@zXjlvNp$%g`wY&~icPd`S0;3MGyw zvv=ahT4NRRK_ZfK6Csy{yDF~~q~wTML_1*C8YQ4PuQMwNf&pK$!0H1}uyp$aYSjt19;4=^uE8yF#+V?O70(92%mu30qD*ULD!d z;w`hDTD;XS<)?U;w^*mrJH7eW_MXN40qD9nE3j`oR2TO+7{#5E$g1S;bASu)8?m>N zxpAhXmm%_wf`Ka>e+Ot|2}osG<{nUc1Ke>9koHHh%#G1^2@pcGM*Pvo6(9T#zGRuh3=UEhmq~9Qvce&1L^oZB z@!}cvQF%Q0>fjsIn8LW39&@BiCoPCn;idVnwoLl19-xg)+AABE&>mDtm5(?UrZCLT znRR;^8bhHoBB5S<9KkJ6Fr1?5o!61lL3B#@`t~07^TYW+2_2^iU!VIjvS?R?7xI%3 zH?7;i7$@!%th~*?=16)uQau+uipQ>^Rv8nY{HH29Kt2cj^t~OefkI1Ba)0=xOMN7=lxtYn})k;lUIK5Zn1z{N|~E_xD>)xPQ?Sp{i`k)s+Lo{fM<|ZMKdvgWM+scie6|u->Ma;aSKRI(Nl5Xaqc_Dqfc{N7Nw%%e z=Lr*j`W(|k&zhg@no5EmC4hXh zYu*X?^?svk@Ka>Y+$9}Jk3H$b0X|i3(;d!SxO_XTld0*2{9Rm+OixDfdtt{uGVFT` z#tW_-(FOh`cdpM=3=XT7Sb<}VxgNfT`8U}>dB!RM=ak)N8hgK(HbtP*4AwOIKKya{ zTX5*Kj#`WCwEj}<1{kfb_BoF-^H>A?WK+ifmknQVl&Ez_cb5M~+LUv-#*f~D%_jKB z1Ur{o4yT>dZ7pG0Cu>D-6cbPe5ULO16-_1W@_0(XX^eN@>~OigUBhBn22b;yYLmt1 zsJu=ME(n&a(Rq!-+`Ccr%dzQFsXngO9v{7}Nv^D%0$z`E?;3m@Ea|8zLnlR<{nEPm4iplYGd{bfc{Yki@J$u9wKzVh@36cC^cFFbqE&P^ zKgW5_w(?xBgVAkG3Aw_5b4!e}aKDO{h({7S1eW-{-bUM&)<2E*)FV60RWGNk0{^?C z#kcsS86voCNH%soM2i4&C2znZ(TY_$7W~sVF&0Sd* z382Ed5|d~S)}&||^l*_~C8o;6GWkoeJ1hLFe(S0U3CcIR4+g3pbA#5}SE8~#baP%s z#yEYN(oGS>Og+hDk*XgtEs~6qgU>y$aNI~IDYXx1!*kv2oVHh;n&|#gG`@28-yvJW zr+1a}ov$Fn1uem9(%U4 z0Noi~a`ec1c<1{H^YnyQOr4cJ*)6JL(?689wj-HqS{ScINFN$evz;CnuAboEv-7SK zM*fc0vu5sv=AWiEp)rTG?ILpXRooeeqxL2LxOMXC((c$}2NRE$0>c<#iIlG-h)XRh zWiyUN4#&3zgp>CfMn0Cv$F&AD#YSW% z-)r1=R#C@JOb_t7hvY2@H~b2(zNIdA>4|Xn7TEK`&J^+eJhHvfVk*EGg;$Iyo+|OA z`=J^x8dFw9^3Whk^98_TKGCg5Pa&n&co%pZpdb$#?9y)kgW&jY8ONm7G0qRN2@z1{ zhdAHlg02^DD%|-*9uwQ>kdfdxk>U=cY^Lg5iFf1%B-`}#?-i^X`IvQBm1B?cT8T-3188SP0 z>iGU1EiNgLBMuKoE|P^+cRES_eR4l72OwQR7rd`@usprUV8V5`?Z+eZX8_-^>eZnMRHGL4_lV<&$1tTVA+q~Y^G}nEZTT* zSHdkdY4&Z6?J^8zwpkOr<=*Y}re2WcJd?Qq$K}5zI|?4B4f#?f15O$5;FqVU*Lvy~ zG3H3GB^1Z-69TIj_4jezqSn+QLCLUu?QWzlR6gtmcp@ui3>}*6K=^@Zi zW3z`WpIn%9MLHp^a<$2Sa!D>K<>L_es;fM|^qjV$LPn=Ngf{kXx6h>kp9{(u^7qQ~ zMv|p{{%VtWC+3cS+k1SkpT6WF4PsvnmQQr{(%m2{itgPQxn3pEhoG~$!L^WlKl8@} zV~QqCdXASaAY;qC0x-v7b^+t>)5#{m_xW!h%FwDw8|hwtBB!<)bLXXY0?N}-cZ)g`* zuO4Zf5n)-)PmooHoJIip^wVH#aiz7U7fPHjO`9UGoPge6zYRyyTPNFq&@N2MI;PQo zdVkf<1&&S_ibh_O{10*czJMnt-xlRb)|=WazTeR6?oOrr`)f`CjAI{m-8neI+VGE< zyoD;=Y1mLQ>X<@QFP-)3{X5`*{mm38hzx%)7+c#VP%?i5@L?*G8jn}&{csk~K9 z>%m{*i%ws#jN=qrLH#f}Q{9rxm+jnIO|Ac6&INv)>&xVGI}2HEH(V?bE(4{7=GWsd z{eKv?6K@y~-uwa9lF#L%_&HDH7ve_q*4td$Y9xH1KazvZ|06Pp%i zhbgWQLod#{<=Yli#7#W^e>|);IOhHCimX*kUYM~8J0C7~J1QBa`4(Im1$e1qN6z@K z+k_tYu4StM<}bbVcZUJE4H;S(;D_?&KjmF})$SF%V*;5=YWsf_FIf*B;BddX@7hsNGE4NL_qJ@^zlCq1JLv~{6pQk@QY43%-t)c?Y_A;|Azz58eyNbnL#NStUZ6hZ~A``F4G}- z&p(iasW-{ZEK1=eE^O!VK=89AmJweFId6z@^x$GbGO7HB1)J3a=_((2#&4ucbrTCrp&!LQV zUawxw|Htf#7+cEyWV8Noek4A*KD2oiO?Yct$z&y&{51|{o_Fgp+SCF$+%#wZkZYb~ zP%hP$#P7O-K+agn-g2I){%8_3F$11B!O|fmiadUz#YmDWj`4qZZG8AG;4Y?*QA92A zze&$)aONTYC&T8P3T7Bp64ww_KwfWVc@g-ZUX%htFbp5c9N(K$Lv`A*iEa}@f58Qj zi+)((plHQ*AXu8g!4v&|w05*Bu;fiCsz{YVU|ZRmRJR5dSA%rxx_|J{5dyu2?g*5A zi=hromNmXG{5>M9`wF-^a==?Q(ih^A{?tLfjgC?R;Dzul(L)~r--j} z&g7gfN|j`ZW4_g3)RJEaqKSf=VHiXBcAz+(L1yRx4yhKPjgJKF74(_hDgu6=o{ql3-B`(`t6s)~eAPiSjs4>CLD zEB{_uc43rSi%!*Dc^C$Yehri|wRtsq=lv?h-=fsV;5|M*vo(F3Gwqot%lsnLwKU?4~%9a2hew3IL!RKkHGsC0yFc!EoLAr1x#v9ZBU58t8cKFb002OP*3-HH0D!<3|2<*Qi(ln; z_O~uBK))Nh8h|&SIF|tc1OTn2e(S;AwWs8bOkbN~+e&Q7nA-0W6S$Z{6atNkdt8Et zjP8#N8X30r>^S4|r<=E?bG*h}#NzGMV_w>70;|Z>nnbS+$pcK>+aev}@n0 z_|fwC+BiZQKCqvH$c&f&_*nfakX7uFpY=h*O7BkiRZt3+uX2wUTc|tRChUqM#NZc~ zdbh7$&f#6AN7Kc@5ptPxfBiWv&V>`EV09HTuPg|JCX{IyjxMZ@@nNyOxX)IPsz z9zL1_maMM}{f{-v=`rdP_GlX#q@nQk<_$;05NBc6rf%q1yL9Ez)&E+jfS33tZbs;3 zrD3ePk#s6Qg&8(z$thOFw$h~Swc6yr))7u7{&?@PbwvY)p?X#C)qi1~lT%xCLAHNF zFGa=~AiVg$5i$mYtNDaUbZ$@}`M+Mfl}PPzdAZ~L7s<;p{~L6Ea7=2p*x3!3o!Qhy zxZ#uepNcH!;{%tU?C(AMAMZsIFQE&F`fv?fjvsQCw+AjJJ~lYYAecWKE~FFrHzEoh z=rO#@lxUl`S=Od$)IX{~8<{(D==^}ym5|2CR8ren3c96@HQpz{n z1RG4>aTU2_mcaE=2dZOmL?HMn?YFcn{bQe7sM+oq())*`NV174pR`&R-$4GZJL-VZ zv{4(IZyt=U!wA>sG$lp~nXxpP^3&sX0g!72eFi*CBE5AJdpT&R5 z?>#=rkouiTvE`Tv(g_(uwC!gN*EtQ>E&M9x&yDN=fB`WWT+$v@lB|H2A4jp*R>?ZX z*B+)OUGk{QtnHuu)YBa@GXu8;Ki`OfORQ)84JPAODr7+NL=-XqANxOjL^Lpvp(0XU z(Hps^ce7Nl=2>>u+tg9JvH@#AdCSvfU9#+Uk?cqU&1iQ0l;t;11=ppg1o2pX4tnpk zkMzG_kTbz$2YhMwdgNCzFdC2Yo5{OF7Pt~W_Q&`ir@;BJvpNd}JC!@LghAfQ(1(E) zeJgJY4_VNtI-lRNSy;72DX0}yF40ob-_P}}O0`3xc=b5QI|UWOxA~H=q5qCQx^noP zB|o@R;8c%<#*eyh>~Br~6St-)+X?CAv|a)_z2rqfn)6UvmPF>LwSv+hFVRWV+}R74 z2|J!-u!RDtIHMti4mC=|kGyPieNme%D0SZ?IbW;+`TCW$cLsYA)10_HZR}HO@6;U} zykkf1Z#Kiu7s?#OT$lF3=r(fyu@)2j!JftP=Uy3iV$us4Q9$Gb4A61@Gh2qL{T;Y^ z78MD4M1jD-t5KQzRi~T0aU}Cp+U@=t?oJz0om#bba>DvrsyaiIB(4<6kNlj~5&(5OPv8gx*ie=6)bdMXP0- z-~X)bc|RRSfeJS16SXQ7elFgS5$lmf;T^B}ju-0Mec!b`k&Qk_LCsGN9_^A#4hQ(L z5Pr=4O!D_=PWC@QlBPqPAno~l!_Q!;&Ig^!AANMvs5u3e6Y(i&88?6Ig(m9kyZ!u- zY1taubT@ce;NvruJ6Bo{ip?r8MZ2SSOgdv}MrPZib}?}WoHs=oZOqM)FmFKFiYV|F>0 z^h1|WHX>~R97530D}a~$3g(pb;<&}unuDBiF1`*bA-Sr$;?acxW7g&;t7ro}e~XY> z6S>;MPgo$BbR4{*2w_DuppUFzxPo#E=rrCtX#8yj$VBb5R?zs#%kSQ8*84LN5&AF$ zl-eJ92<7l7{3!q3Fl4nVj#ll&XRTo-{F|53P~&Q2(FWIDC3=J^Ad#3MR3cy?z4nAp z5cJ(ce68*t^PvgR#+wApmPlXxlv%2bGzvupJD1i*j^nHlf0Vjxhtf!8LQczZ;$Amj z7=LZqpUxMN7bGf7`e?4zfA?BGs_Pfr^_1xhJ~&u-yz(q${c|K4)eQmHWm3sydd2m| zh1#WOA@v6|r@k~AfED5)GJ57M??p~gr|r;VG@`gkdkqg4bMN^Nh&K@UXXoO0Mx!Yh zW$%4@^6GTjK2e54aMo*hoGz#)B5pIvgwU%1 zxn#8kX}8Z>QDaL^^>|Enl&bT|G&dgF-00UJ`tr+fwP%$OY_ znC?rQ>JD;idw@5j8a zb!e`|Q=Zdbx<`-C4<5f870oDp8@^lqZn-qytcj;G>uf*bykYuJRs&(Bpdm$j)&$?m z=c??86=u-`Xv1^@Rz)*c50cnqcA|JrP;IAc-sbtjR$gaU=0Wyttflhyu=&^t&z08= z#zK=TclWP(wjM4Dgv`FUC|szwaAHuzMi^-=$oXfqIA+)ie8)Redv``0{XTvr^3eHyA&dO_Vr`K)d z&zzJ>y!%!BCCtsUAZ+imcldVx7m-=tTjD2`$q`?)&@)*(LVbXk`YV0?L`&;C+lNa9 zV+|K_XTWTa5;(lDBgRTb&8yW0?0i@Y8qj73)s^_h$maET2Ipt{ZDR+QY>r6TJJb8E z=2jbj11m2H(6M(G5kz5gvh6bENM%X|;Pn~Ck;0GbC0gjR+r#z^9K41^xHUisifBjr z=RPM=7BrE}^7aL18|P+y4C$jo2|0IP@xj=~0ZPWkhJM6yd?(>Exqg&E4>_W*pAvBg zfc!KK_U&9l`4+vwtVpc!WMj3L(gPoK8j(652Qpo)UIiUNkS<&7Qej8_VLQ)xj2y`4 zS0m{{XTe7w%v+0%%BqHq_~MU_XU@Zel@Iw{mo1dGx)=ktx>?-6yu7aR$@te}&4%Qe z!)&}nG&TIxH;rK4;CnA*N)815n_|C1W{#&{q13C%ScePFc3$j$8*8m!lvx}qcpGuL zVskVx6rPngm~-pi6JMP?-+xv^7Y-xCdU1&+w_Ooc@c2&2$lov*YauctrR!V=e&;?J zmxR6QS2E#O!ouPh6Q9%j-Gk4w?Wxuv&@7e<7Gt}n42Yh2X-#yd#HQ_OB_FOTiV?_Y-wqIc2?6@ z_rYZ1!~UyioJv8PT!_ccZgZd-l)?4rCaF$A53<%B37cyjfi2hGB+x6Fu{6SD?Wsv3 zF?48|f^_&i%ztFQX`^qd@vSDqVwaMPvmy+eSb|_9~wc zvtDCoy@gr(%dk7_da!30^|rI!w=dpYcdxMcn}sonetMr7@C98*fnRT%mn zJq<8(^Hei*G#6D?|>QRup9qEgc2w^RyBA!-QsH3#f9S#3hI?-hi}uYou8Qbo?b=_EBju#(z42q%or%P(BjiXY2=JpH9gp9V<9 z9vU8KCfNsqZVm9#dd{Hza7PbD(4Erg*{rL( zqx$K|lG+%MoYS;QAt@rBSdx7=?~{UiBl+}2mD(Q{*DnR1+O`x)yR&6~BD)QUR z^w1ytJbr^xu0}EX9n3|B)KE)JLudKv2Me+Tk-SEPyElFj6xJRIJ<}_Qij5kMgp1vM zkBNfP=u6Eny=h*5)k&*l7_wGpei?N0wOY=Nc25!kop;sG`N$KY1appOqdDonwZFBu%IN0!U|uDP+sU8-tVH0J5| zrf*(bs>tf48P=SC+6O}v4p$drj^TTb8dCQbdL9TpO|1aeP@+)%2m~NsLvvRa25|p4 zUga>dHOT4QQdBj)c~YbqSL)vV>+|!v^RwfzpTR$;9gVt@<&v;IB%-@q{7|Fs!p=o$ zf87xm5K}dzv>)}LvJ8I)Vk)g#$4)JSx91uc;z! zBPmu_2ZW1{I6s~l0ghYq<)i__K3sl5pprh97||0w`V`cf-lI4CV2Cc_pwl%N&KP!b zu(j-XzNB`ZyH}DU-!Eqf2u;wUX`5$yi}^{b4zFpndiXQ*=%R$Zx0H0ARDdx3NPOue z_^>5_6`n8)wm{<9ZkWEtQL%DGoNO(d^qHt6lTjM_Ann+b!G@w!>EzGANFD9GvF5mxx$1t?P)YZfc_@X`+QHw)&Ib`9Yp)76pl&s%vsj0VrH6f` z`>VN4%Lgt?3ec!+B%{SP?6>oj@B(}1yO6WPrMH0w@kdv}w-R@_+~p=)9Sw(d-QREA zQ#+pUr&%G-wa;;V6GM$EOL6jiMP?~<&Xr7Orw1tfInbeR*F=3EYS#iP=T;V8=+`)3 zu{poSbpJ$YkKDYO#qugRAD|0y&wUk_3XF`+p&lIugddF*ltyB4bZoY1zuw@;4NoJf zB=ll<2snylIkK$Bqm$NA(eJmCy$#6_pbC#pWm;pklR3JP?w8{xwPW^c0Y3I5(wIWa zvQY^I&=Lr|aS<9kB>jv!$*Lf%*p{((#PRo=12=NX@Y-pzU*fofgs3F3q# z;;q&JjmQNz*$SlCpqLp(?1OCU7?ZhGT3(z502$b2gQ-zWnm@N=vc;YK5K_yfOp&JY z&ppdfje7@L*vRy1=A+`&a#tuao|t)_(igccQrF~1kP31%1Ag!J$@CdYgmf!$SnhTx z+j`Y~OhHg8c?fZZWz>#wXBPBMlffT9ddMz4W@}vt;?2S_k8xBQ7w`T#&1p+jYelkO z^~>#0-%^OdMl5j549ksK)#zWx0%UlQlTNK|PTtoOXL~rj4XsTxGg5ftEBdn*KU&$H zmND^YO|fP?ZJc}MsG2DNhVv}O%EePS0-Rp*q~f~qUNO{#&u$b{-&4Y5Jo_9L!V7}V z!4i{RgC!lIiislNxCn)JRgE`4ZQq$WGW(FRFwf;w5L22Qt3%{-{=Lqwk-YEtS)u5W zMLzB$w)d8`v;7}xK~>NOjrRl1-=9zpD4$HEv=to^!INt*iZv zZp#jyW%!lQk3?!0KdS;tMUP*nsWIaOI>2v=Pzfc58J1!W#)CTD21n?uFuvln5b}k` z!v3wA1{{LnuTIkH%ZP!qwp8g1(hxSnuDX(XS4i1R$O$V3+ayerEbUlgaDVsQhsZ5H!RLIeM zm3vc|!Z#1`1^_8*dWB(O<+C}NXED$HV-fO6WqJnhUNF((`xeni zB<$|dqg>jLG)3GBf-n!Z_5_nQ%W^F!>m=uDJF4@=;{vYs4}Qx+-@vREK98q(fQhp> ztqCP8J-K?QWRM?^?Ze9q$>yzpGRxpduOg+_k;myrhvhb>ZgsXo%&$gF)KuiSQaG zk)};h@u^mWAjfJwXr(i16@l6z_aMU51gPL3?qaZn7zXysKI#A^{4UYP);E?IcF{~5 zN8~M<=!XKnBuF;8)sr)SBwX!$Bkly zU?{E1Q4*;MI>xAl-C|UD);lRX#=dXwVR=I7pzMXAxO;vy_9D8l`IPPnwXCC{Duj*L zbX(~|F>+|-dw$_ETsDg09sX)gJ0;sJ5i-d881>6_^Agq7RvYG3dn^^s_8>v(xr};+ z8E_2oWO$Z70oH`sp7QPG8lkjzS@~N0OEe9r$t@0FI~tT3GL+M21e|aIiCrBD^!Kd0 zY?4>(e!Dz^F&t?+++h5r%gzX5xAUZ#2U2uaSbH|#G|U#`mJHoXsnj{2KKv9^s#}sn zAH=&;xwuqG29JlAc#~V;P*{hmSNw!H??|<08$*#=4pKiS2PB$3Zc}S|7~gwe zcwHUyswqFg5z)hRQ>}4c8k^Ch>`;|;znZ?k3`0gih*W9 z7Lj_J@AYY@Kpi~$(3$k^d_{)PA^{nLD-Qk_%2pTzoTz%eX`tr(NT=F2pxb`^J1SESjioshG5u{Rt^Y>Uh* zI-K{S{@@sJU(=*m-hRX|mbs&N%DWd8*FL@ISeE*(Hasg6=mZx-!|lPRX!o4r{a zhG%fud6Ogr(^k0-RG8ktko*m+7>^EWe#JM@)~@60rTm9T?k_{w@mp?i=4qxPul&)? zDMX}IRKSb8dUDsuu0K^O0@INr zTx?jq)prI380e~!t*>Jeqp4?d6>-ub#V&x~c5IYGEW1Kon68f9A-M@B$}2blH?e;F@Lc`30ywdR2yU~8s>nk^ZZ0q* zeB$py{C0SiKAqOKj%MeT!D4hJQlr#k5ooDW!MyFI+(hzK_%XNK2_L1FDf$vQoWmm@y=tD-0go(5CtNChO2QQdU0%A_d=cRUICB8_|AKf4Fy zJAM;N-a`Q)yoz$(W}B zPbak1mmSs7qj;&?`H!t9woIO$$e_d{RAL{W5QgZZzWs!*rPg z1aAuja_y5vAaSm~9%NlHE1yZt&D@-y`QZt^o#c=AjMWloWEAt{nJL_Jetl;6<()fk z01LFbu6vh%mkTntO;H?K*br?aXer53l3bq=&C-h=sBb zW#tnb0ibp|PFvW&X8}O{A=woEy!8N?a`Dko1sHpxXBB&?Q$!(!{qKgJ@#pek;(zRx zo-a!|R~ZjiKEc`b&y|UEZ z9?wU7<+DRi>KD@IFcSu7;gFLIw}c6=YrL|8`(!F%oDolIZ)e``ZIpe9SKOmrZbw_6 zme4h?@wUvp|6K?FAO@wm7FR{w?-IXPr;UJMYGK??Pt?VbbMU(r&+FLz00LCfT)p*( z_iP2J36?9gL&QA&8H9ju)XPG{TX_Y>P`9wBHzEpVHpIYEVlW9-Vav7H7+g#F)WO_SxbA17i`E| zL9g7FF{p%GZSlf=uS@KNZjI46WI~6`sD@9Y>p275~ix%$C z&I`hIRHIBUX^2WFchGvlY$z)+3t@V6(N>wsbnUkurwTCQ$dY2IqGk0b)iNtowWYBG z{h^yqludA#7(_}N)zItGvIS{7J2G?0B0GUOC28n@d=EH}ApXZC7!!ez+->~$LDl=~ z!+HfkN9IWwA2{bv(B$1~KOw~m&5dKB$XWE7HS znVP$li3xgj?TXA zpK73ysLor!@564wNl|xA>7_Bn)~gm0gXWQz?oIe#WFP3xJfmnaKaBi9T zju7Th4=0}}E^)cWkeNwR2&}?G{yEci5Y^T%_>zom(G4nh_VC893eepuV)9g61}fCi zB~!bAUBHPx!KFohLNQL=_?@9Rj(tC~6=7w!U5|Ab)x_H2B^Ec#`M{~$m^*U*5yM|Eyc1WK){gsOprN=WZ&&Za2 z%aMfZ?$_N&GZrhA1iP?A@QsI@1iT#O9~;3atb4o>4w1KlJCEXY2(zvDlF<3chB2E* zN<!6JoC3D*M+Wox99<}YLkXHwY z_Mt*NCsp}ZO<_$awYgt`oi#CZu;n;|`iXCX*4kmQ(`*siLWfvWGs+JxbDGWZAaA#S zegmN%*T^znHOzi)A|B~C^eKVyw%e*2YIt_smsGJ-BSy9-O_Y`jJ{L>&9UoTx$RFSQ zG3dpO%L@&95>@kdDzD-=Wyle5-&h(y-1zfg1^JGWZcB34hTZfnH;Y@{#pcG)-oO%*_toXfEA*KCprp!keQ@Q*V)$*%(S&B58i^slv06Wu-#OkY#8&kf&Th4 z2R2*79XU2cGPRLNeWWbNp@Ju=IST{j{^WjIGh(|cSXexBv6EUBtZj5!)msyPRyI=e z4T6Dsc;nPLoYb*#ETsE~$3JwXWz?8s6ou2UT`ED@(>q5MzwN5*!iaLd139a?CrVSy zSJR+xM7hEobx^Oq3c7UZF1M=;zw_Pga(d82^F|>0K~T)cgvU`n#qjPGK1YE0Wk15R zr`nIccevpKNPPhQtcMBZg_v)X{U|!sv)|bjuTbMx_5^>?SXH`+k!jU*U>2lbPiEJ0 z^3J?|B6=Qo&Thx`Vw{x?0juCHy7`DYRU36nF|syi{;R7apuMB(F$Wd8rKG6+i%(sc z5G=IjDI*dL7wH2y8@VU*gE5yedTexIM$q^$J7h{fpb=#`(4(_SEA{3izwovdBg8NB z5qx87vUAY50&sTTTk4;Nlg+o~SZ3;V4uM>1V9=Ejir+YUG?5Y|7(L<{W3Er0oRy*` zSk8eR)+vuTVq31SB4w13s()I4XMZ7f|55D#Y+3G}^H4HJWPz=wJ~!iYtN~6#+atg* z86-xTiqm&ZQh}CAu~f?!RoZqZacuEp8h%e?rXPtrDt0@yaG;^EQ0+&NwJZZwN^HM& zA7JVf)Z51ED#v`#WkVUiJaYUwCrm0iob7J-7_!oP#1smq4xgN)0zp-hL0@a)89GrD zR(tFY_nYbvXx>0Dr!v*vGi?g8k-xe6swMt zUp3uAWXbP+#Cx%cPAMSyz-IRVern+dV4c@Z;*xcnmxYuCO~hrZv3rl}jXxvBD4SO^ zaZhDbJ$JdfB=(Qxuvn+X|lmpHx@^ue54yJUi{AOz2s68<|uZPe2n=6 z-H@=Q*c0lVV5^F6b({9+x0zq+%7Wi+v;{|gJKFo29LzAk`rA1-MT7&0r( zm!h5UbbP);q;y$hQSx!t#rr#!Y6)0s^#Qn5g&&%Iz2pz^wIJB>swqZT5S(++&c61R zkKHNe@-_eCr`FnWhQsS^1^!)gq|^>(lFP~$ipD>d3}a&z((x+*20#(fjaa|vw-n_0 zHETVh(%5`gUF^~m-6FmO=yjXuwPY6YL0FgH5ZWNic}WvespCsigB1#4$Kg)wYjvpJ2=e~-KEUDX!C~2n^XjOG zt2(EBwuZQDe0?0YOYZox&|tAKf2dST`A8oCBYjB!#rd!h2LDE}F($m09yYR{qC%51TMR$;KhGYH8Y#w*>~?vGdxM; zNG&Usr(+IXubCa_V7k;A^dR=X*ZWD-Zi=nQx z{;JD=d-^qj8PBy7RC|?G?3=Smpg=UWX*m~iu)`}EbQJ~&brx*I#6RLd`SBxSduD`- zqn0Z?=xO62i3%}_^Y4A?@5IuZQ~p_&l?M3QYw%fl{&}7`o82>L?Yy#3-I=PL7!w;a zz&;c63UABlJ^5uyWvg?+5^+izEQV89aWr~~td$JANfSGI<_C*iTygIisYIAx*(1y> zsPBYxbI?{@r$2kZ_&zn-NIvb;RhjQ*jpGMO7GzrcH6ch48_qM137HVVz!?vJ(SgW? zrSp8MJt@vd%2E9gZ{_L2J;15x=<9Mz(99GCv)d1-TW#Ym%4_{+RzFeNmrkm4OTD*E zOQp`M^eer3awRYtkH$J$Zr`HK8EB-Nui%@H#+dZQzx?{Ljwmx>F7U>E_;J0YGhfPv z29!3#|6(704D>qv+&Jc%s(b~b5qEm{1gB+)_eDDuGaMfULjqwQ26hXf5CtWlxh0Kp z3%*yQ^1)@d*FN2!cx1eEcht5A#;J!EFsdKv!%~RL!t#ePN|nzLgB8Xoz8;<#vP7D6 zwUkijDjdOX`mGaJVJR@=$|l!>|IJn^D&|p~e&(U25fo$SDTKB%9IenH8?6WiQE=cQ z9Oy=cq;EX;7pb{iK)d<-NK z6>O!_Zdj+oRaTrswm=qFsMyCjQ_g%?S*0ZwCs+KmY!ur6vedUBk9t^vS*ed7(#P&g zkExMtHv8V%$Q&zvdR+7H;T*;Fhj#Oz&Chf^&klb+`u6tA;>T?60$!CZf|lfb1q=T? z906&Bz)uc#CiLP9J6<<@Sg)S#t~eMb^jlZ~%qZqzNtZB^yr2Sx&PxLJ=fGy&d`95i zs?Uzt)YZphZebA4lyk8b+0mtUAA*sxkpwX(r&?F z{(<@xUobZB?lC@I7jGQfGW?N_*sckxKMtk_LJz69V{O&TOAS4rm?WARU%HwL zfZYqdA@)l<;*upo<7xZ-<&x}DAg;b!Vk)kz`ejFWB8_-*6pfpN`&l&t_+JL^VStJXN}H zJq`nhss5N~qdj-8#?wRC z!$K6RW$^oaVY6%YRX%Dy)+Ifbj|>3iR`2B*6;SnbWu1*NA1Ql679^Z$YkDlPo)xpZ zeA1Ps3=gMRG@;`&+sbI3blF!$>5VjAI{a#vALiu1^d50Uf#)=Qs5ID+k&g%5PW@i5 zSzslF+?3zobytCwqJqb6V5as@HCvDF6tab(`Y>~d-xGdU;;DRTsJ#qrTnej*MK-J2 zsL)6zQW?Zo2oIbFhi*AB_AzE7VtuaHXQPv6Bm1_da^AauYH)R`H3$eSu!n+*`C>6FXjheRnhuG@>&Fw<-mJRWqyeWl@CFj-kEL6z zj_QI$N-DNdLA}e3e_Chh-oWh^X{w~(D;$5&d|x6clElSLpb=m3=srqW}LN(YPMTfc0G&qV9|18nk^ppuc>&2$OSW}4@2GWPDsc` zQA=Kd<@J2wY1Un4+=kp3Vt1~)&Uz2F$l=w9ygh2)9Vds!a6_(j)me6i87$I|lEy)a z((S?Oq0D}Ha#_0^HxltZau{;N>EN9sJ6!!~Jhfp)7xSC!i<28FP{XIfz)t z?w^4xCg7t@G?Rjhot>s6p9foIRaOcd6;hi70LR5-AXEoGbRqn+@z9l+x{ly`cCV7y zqf%{U7`>>?M53x-y;|5MyKbTgv17_w`>nA6I8@YdBWKO0zl(koqXjoJbdmp{Zu*>T zR=?f6pO?tr+kv{yU`6Y4@HLt_5w5Be&z@*{5_Xsc*Q|AVbMLxcn!{Xt!}CQMd!r7{ z{>YfU5$hFEX;i^@Ru)R5$4(i_riPjzlZpx zsi4M91dLf0y$2l@v$}suF6H(np`+i)Epkd&&0E43r%Px--*j{U(#X3g=TA=E{F9|xmM=t^zv8B#QQ zJ1xYxOnXy1q-)7ibT;Yud6RvS?ZEeWNZD>EjB-)#Lt96N``V?r(E%-jPn?{5cGIuo z#2ez3qdJ-{0|#Fgk|+$ltcH}v-aTWb91Qf0%4MX+xKb?~D8t~H+rttGRm_3hL%orm zO|Yf;tdSf@zju$xqssL+cD!9oQI}ivzPN?4L<@iAr^pkj`6|6G@+sN<7HV_Y;3}u^>*UZe2yFa<8kJ2&jCt@SaAXu2 zi_B%lSeiS(U8!X&7`wP^?|0k7&8I}CskRjpWq#T`yql}C(L|mFtX~)C0VXpqCed+a z89mVww@XO`t#PWmDt)J)7}|x1kG|t}rx<%~mv3g|!#zRg6fL-c9Zi`@b9vB8r!f;K zSss0rnfX|CHb!0@Ve1>Rq(8<$*Aax{|MTR*Oyv9_hSEo^(o|zm_!i`|$Oz1zw~#_T zsiy;&+f|~zY4^G(vNtm35n~W^CN?UG3F0pLU|%H?af$_y|WmG9>Ab=B=!k`=r}??we=HFaB(^~b_8uGg-rR=mI*`CLVXmcM2h zWX#|o(e{ftuxN>N^B&|LS6C!@TM-90>T;+D)BVF?IFT-E`8WLNmy|$**?S5p4bbE+ z)%P^%SnX6`!mv7H41ZUdz-2`wfl5A6McZ-M?T{_I@%6r(q=`c&HVMv%-J=mr_H%nE z*Z~#i1Yr@eWm)~fg=&V^>^XfNZ7Q$Rl%XEXX_m{iH`4m4M5ehTFIBp{=@q!K63om3 zqXSWC0H$sGj=wzj#8S<~JW2o%OmbfNmJDBEe3>e3m;k2{gDZo#6(X)AvQd#sQT^a_ zNSn>|wF2z7^L8FHwqZ9Hn=_`cWJNTL@9XUi`hDv5p3(K~Nt-$=f&x3(YD=p$mm z#W4e~JZ>9ICvKUTQ7@!cb>u+IX{VXyh|P2O$V#|k-|_slx#q0yy6MB~+b2r}*%xO~ zL`^*M;TG*Y734V^kB|s$p9X80$YEXROapc>E|j z#^O=ed)Un^tc+of)%9n+h{rkNetQ zs~b%hc8@eB(v%2a46YIJq5H1*a&Y%xrv0mYqn)${0(K%Qs_ejdDCpci7gS3X%{&to za({fkEXeQq{Qms3m~bcuEeDkty9+Foh51!=q(ZA20p=k&l=l^4we>u!$`;GFkU^G0 zHehcfMpZgpsCpE&0`z$3z5cP`h1#Nn)2bgfpnx9Bss-6jA0a69pdTw|X&>}%f#Hy7 z`49?QF4m?H9ZHd}NMRWZBr8DxZ-M$|OVe;O_fGx5)g+z@qrm{i_eoM5Cdn11{W-lN zF~f2ZEy*^E4DL@qz7Fp7r8jv-HX+a)e^0v9^Vt^lrRT*?i4Q+n*&4I5Ill%cPVc?2 zZVf8p!H{kKJQItSe69x_P4|CKDA4;>W@J;iJSAPDsCMTnY+fwpndE#ac!Z9J$XdBU z`cO5TZMxm+sdnbWf++NEF$%VK%eoD3h78Xm$uMN~6W5f+u2P&-P0S#p7r}Lx4VJ27Aoe%I-KK{c#7nt}fp-i# zW1XCmCYmJcn6)MVsY%_5)t5Bl0o}2SgZ=fAv3i{0Fa0;wEyDg1MoYZd%{Fxsxdv=x zRnBZ65si1OAIRgENxxT{_{>0=svxy+D&E z-8WZnW3_T$GdNSZBCRMMo$5VhQDU!y=PyXzu|qTML9N|^e^~y)LdM$I7BB)dQh+Zt z8ggS8d|JQ+>j+4t+;j29txu1{Yo7QKQLfFN1c%32d*7Zv|3Dk`TWB|2feiOTAWSWK z^W*%KXx5NEJ~|;99_g1);`%>8^dkyT4v4n>z(^Wgs&1i1P;##N5@)Jt2|p0O0nCxN zkGZH*$8o6uEfD#|0nbs}xV7pjSRA$Q07|Cy=}Zk1%+z;t9^P?K?TB^N$eSAz@cfp* zeI)Y_R_ekEa%4CmKP!x?=kZcfZqZyz0R)iwoZ7HxU~aLn&0h3J z^%?$l&%7GZ&26vu|4aP(K+H64aRh^LFGO_ZQGL^A*QxckTz-lOH4I4`Z=9+1yGY?* zK#@rA5&_ZUdViP1!av2O5ufgAz7qEFV`DnMT~JEU&$8H%y7T4`y8jQEqDcHVC+ z7~_<-xBcI_7kN>{*&+T@iD*=JJL$ETbSfiAUNV^R7`fEUnH64G@atc|RS`s^Yx|DC zgMKF)O^nqFsN+t%*^3Lx8~)%1$y@OQ0d5vz`nC_{hz_?gEF8-2f>aW%JsI)O&moH;~j{i^B9dpP_ z|6 zK)mL2m)o)NVa?sXjg^1Z_E!Y?30R9ROQVD22H4>aUl^oQ?@&BoHjC60;1XSafF|(& zf6ks0_~=r5zCd!C{|iDy9DF>ca{0BBBO*MVAKj;@c%5X2*U|qr)u82d)UZeXf687w zHDJfO0xEb$EQcm+;m*`YRU|mA#8%6g@})`TV*(N{pC()R6?O3cLy#F+X+;8|8^PR! zyI2B;fDsLnU;KBc+v8;!Y1SpHWbS$f=(z?6_{ z1>w7ZQJSn!bYnr>-vQ!QsiD_pR8Y4qjtmpbtng9^YF^2 zk7pUsMIxD`4XHv|1ul&;Bz7VppFEpK>m30EJpccj