From 5afa3bd30b4755bbdfc0ee34e96b8525491eea4a Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Wed, 2 Aug 2023 13:23:37 +0800 Subject: [PATCH] =?UTF-8?q?6.5.4=E7=A4=BC=E7=89=A9=E5=86=A0=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/MonthGiftNamingAdapter.java | 43 +++++ .../common/bean/GiftWallGiftDetail.java | 51 ++++++ .../com/yunbao/common/bean/GiftWallModel.java | 33 ++++ .../common/dialog/GiftWallItemPopup.java | 25 --- .../common/event/GiftWallItemEvent.java | 27 +++ .../fragment/AllServiceChampionFragment.java | 73 ++++++++ .../CurrentMonthGiftNamingFragment.java | 79 +++++++++ .../fragment/LastMonthGiftNamingFragment.java | 79 +++++++++ .../com/yunbao/common/http/PDLiveApi.java | 27 +++ .../common/http/live/LiveNetManager.java | 69 ++++++++ .../views/GiftAlreadyWallViewHolder.java | 9 + .../views/GiftWithoutWallViewHolder.java | 8 +- .../views/MonthGiftNamingViewHolder.java | 35 ++++ .../views/weight/ViewClicksAntiShake.java | 2 +- .../background_select_all_service.xml | 15 ++ .../layout/fragment_all_service_champion.xml | 49 ++++++ .../fragment_current_month_gift_naming.xml | 24 +++ .../res/layout/fragment_gift_already_wall.xml | 1 + .../fragment_last_month_gift_naming.xml | 24 +++ .../res/layout/item_month_gift_naming.xml | 65 ++++++++ .../main/res/layout/popup_gift_wall_item.xml | 156 +++++++++++++++++- .../background_gift_wall_item.png | Bin .../icon_vacant_position_awaits.png | Bin 0 -> 16032 bytes common/src/main/res/values-en-rUS/string.xml | 2 +- common/src/main/res/values/strings.xml | 10 +- .../yunbao/live/dialog/GiftWallDialog.java | 19 ++- .../yunbao/live/dialog/GiftWallItemPopup.java | 110 ++++++++++++ .../live/dialog/RegularIntroducePopup.java | 14 ++ .../live/views}/GiftAlreadyWallFragment.java | 22 ++- .../res/layout/rogular_introduce_popup.xml | 8 +- .../background_regular_title.png | Bin 32810 -> 29105 bytes 31 files changed, 1034 insertions(+), 45 deletions(-) create mode 100644 common/src/main/java/com/yunbao/common/adapter/MonthGiftNamingAdapter.java create mode 100644 common/src/main/java/com/yunbao/common/bean/GiftWallGiftDetail.java delete mode 100644 common/src/main/java/com/yunbao/common/dialog/GiftWallItemPopup.java create mode 100644 common/src/main/java/com/yunbao/common/event/GiftWallItemEvent.java create mode 100644 common/src/main/java/com/yunbao/common/fragment/AllServiceChampionFragment.java create mode 100644 common/src/main/java/com/yunbao/common/fragment/CurrentMonthGiftNamingFragment.java create mode 100644 common/src/main/java/com/yunbao/common/fragment/LastMonthGiftNamingFragment.java create mode 100644 common/src/main/java/com/yunbao/common/views/MonthGiftNamingViewHolder.java create mode 100644 common/src/main/res/drawable/background_select_all_service.xml create mode 100644 common/src/main/res/layout/fragment_all_service_champion.xml create mode 100644 common/src/main/res/layout/fragment_current_month_gift_naming.xml create mode 100644 common/src/main/res/layout/fragment_last_month_gift_naming.xml create mode 100644 common/src/main/res/layout/item_month_gift_naming.xml rename {live/src/main/res/mipmap-hdpi => common/src/main/res/mipmap-xxhdpi}/background_gift_wall_item.png (100%) create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_vacant_position_awaits.png create mode 100644 live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java rename {common/src/main/java/com/yunbao/common/fragment => live/src/main/java/com/yunbao/live/views}/GiftAlreadyWallFragment.java (77%) diff --git a/common/src/main/java/com/yunbao/common/adapter/MonthGiftNamingAdapter.java b/common/src/main/java/com/yunbao/common/adapter/MonthGiftNamingAdapter.java new file mode 100644 index 000000000..ed15f7b54 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/adapter/MonthGiftNamingAdapter.java @@ -0,0 +1,43 @@ +package com.yunbao.common.adapter; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.views.MonthGiftNamingViewHolder; + +import java.util.ArrayList; +import java.util.List; + +public class MonthGiftNamingAdapter extends RecyclerView.Adapter { + private List giftWall = new ArrayList<>(); + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_month_gift_naming, parent, false); + return new MonthGiftNamingViewHolder(herdView); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + MonthGiftNamingViewHolder monthGiftNamingViewHolder = (MonthGiftNamingViewHolder) holder; + monthGiftNamingViewHolder.showData(giftWall.get(position)); + } + + @Override + public int getItemCount() { + return giftWall.size(); + } + + public void addAllData(List mGiftWall) { + giftWall.clear(); + giftWall.addAll(mGiftWall); + notifyDataSetChanged(); + } +} diff --git a/common/src/main/java/com/yunbao/common/bean/GiftWallGiftDetail.java b/common/src/main/java/com/yunbao/common/bean/GiftWallGiftDetail.java new file mode 100644 index 000000000..7c069265f --- /dev/null +++ b/common/src/main/java/com/yunbao/common/bean/GiftWallGiftDetail.java @@ -0,0 +1,51 @@ +package com.yunbao.common.bean; + +import com.google.gson.annotations.SerializedName; + +public class GiftWallGiftDetail extends BaseModel { + + @SerializedName("uid") + private int uid; + @SerializedName("user_nicename") + private String userNicename; + @SerializedName("avatar") + private String avatar; + @SerializedName("naming_coin") + private int namingCoin; + + public int getUid() { + return uid; + } + + public GiftWallGiftDetail setUid(int uid) { + this.uid = uid; + return this; + } + + public String getUserNicename() { + return userNicename; + } + + public GiftWallGiftDetail setUserNicename(String userNicename) { + this.userNicename = userNicename; + return this; + } + + public String getAvatar() { + return avatar; + } + + public GiftWallGiftDetail setAvatar(String avatar) { + this.avatar = avatar; + return this; + } + + public int getNamingCoin() { + return namingCoin; + } + + public GiftWallGiftDetail setNamingCoin(int namingCoin) { + this.namingCoin = namingCoin; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java b/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java index 83cbb6359..38484a554 100644 --- a/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java +++ b/common/src/main/java/com/yunbao/common/bean/GiftWallModel.java @@ -63,6 +63,39 @@ public class GiftWallModel extends BaseModel { private String gifticonTotal; @SerializedName("gift_count_number") private String giftCountNumber; + @SerializedName("user_nicename") + private String userNicename; + @SerializedName("avatar") + private String avatar; + @SerializedName("naming_coin_max") + private String namingCoinMax; + + public String getNamingCoinMax() { + return namingCoinMax; + } + + public GiftWallModel setNamingCoinMax(String namingCoinMax) { + this.namingCoinMax = namingCoinMax; + return this; + } + + public String getAvatar() { + return avatar; + } + + public GiftWallModel setAvatar(String avatar) { + this.avatar = avatar; + return this; + } + + public String getUserNicename() { + return userNicename; + } + + public GiftWallModel setUserNicename(String userNicename) { + this.userNicename = userNicename; + return this; + } public String getId() { return id; diff --git a/common/src/main/java/com/yunbao/common/dialog/GiftWallItemPopup.java b/common/src/main/java/com/yunbao/common/dialog/GiftWallItemPopup.java deleted file mode 100644 index c3a09ee04..000000000 --- a/common/src/main/java/com/yunbao/common/dialog/GiftWallItemPopup.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.yunbao.common.dialog; - - -import android.content.Context; - -import androidx.annotation.NonNull; - -import com.lxj.xpopup.core.CenterPopupView; -import com.yunbao.common.R; - -public class GiftWallItemPopup extends CenterPopupView { - public GiftWallItemPopup(@NonNull Context context) { - super(context); - } - - @Override - protected int getImplLayoutId() { - return R.layout.popup_gift_wall_item; - } - - @Override - protected void onCreate() { - super.onCreate(); - } -} diff --git a/common/src/main/java/com/yunbao/common/event/GiftWallItemEvent.java b/common/src/main/java/com/yunbao/common/event/GiftWallItemEvent.java new file mode 100644 index 000000000..301d46608 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/event/GiftWallItemEvent.java @@ -0,0 +1,27 @@ +package com.yunbao.common.event; + +import com.yunbao.common.bean.BaseModel; +import com.yunbao.common.bean.GiftWallModel; + +public class GiftWallItemEvent extends BaseModel { + private GiftWallModel giftWallModel; + private boolean unlit; + + public GiftWallModel getGiftWallModel() { + return giftWallModel; + } + + public GiftWallItemEvent setGiftWallModel(GiftWallModel giftWallModel) { + this.giftWallModel = giftWallModel; + return this; + } + + public boolean isUnlit() { + return unlit; + } + + public GiftWallItemEvent setUnlit(boolean unlit) { + this.unlit = unlit; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/fragment/AllServiceChampionFragment.java b/common/src/main/java/com/yunbao/common/fragment/AllServiceChampionFragment.java new file mode 100644 index 000000000..8f6501212 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/fragment/AllServiceChampionFragment.java @@ -0,0 +1,73 @@ +package com.yunbao.common.fragment; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.fragment.app.FragmentTransaction; + +import com.yunbao.common.R; +import com.yunbao.common.views.weight.ViewClicksAntiShake; + +public class AllServiceChampionFragment extends BaseFragment { + private TextView winnerOfTheMonth, lastMonthWinner; + private String mStream, mLiveUid; + @Override + public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { + return layoutInflater.inflate(R.layout.fragment_all_service_champion, viewGroup, false); + } + + @Override + protected void initVariables(Bundle bundle) { + mStream = bundle.getString("mStream"); + mLiveUid = bundle.getString("mLiveUid"); + } + + @Override + protected void initViews(Bundle savedInstanceState, View contentView) { + winnerOfTheMonth = contentView.findViewById(R.id.winner_of_the_month); + lastMonthWinner = contentView.findViewById(R.id.last_month_winner); + winnerOfTheMonth.setSelected(true); + lastMonthWinner.setSelected(false); + + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, CurrentMonthGiftNamingFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); + ViewClicksAntiShake.clicksAntiShake(winnerOfTheMonth, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + winnerOfTheMonth.setSelected(true); + lastMonthWinner.setSelected(false); + + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, CurrentMonthGiftNamingFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); + } + }); + ViewClicksAntiShake.clicksAntiShake(lastMonthWinner, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + lastMonthWinner.setSelected(true); + winnerOfTheMonth.setSelected(false); + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, LastMonthGiftNamingFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); + } + }); + } + + @Override + protected void loadData() { + + } + public static AllServiceChampionFragment newInstance(String mStream, String mLiveUid) { + AllServiceChampionFragment allServiceChampionFragment = new AllServiceChampionFragment(); + Bundle bundle = new Bundle(); + bundle.putString("mStream", mStream); + bundle.putString("mLiveUid", mLiveUid); + allServiceChampionFragment.setArguments(bundle); + return allServiceChampionFragment; + } +} diff --git a/common/src/main/java/com/yunbao/common/fragment/CurrentMonthGiftNamingFragment.java b/common/src/main/java/com/yunbao/common/fragment/CurrentMonthGiftNamingFragment.java new file mode 100644 index 000000000..53364a780 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/fragment/CurrentMonthGiftNamingFragment.java @@ -0,0 +1,79 @@ +package com.yunbao.common.fragment; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.adapter.MonthGiftNamingAdapter; +import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.http.base.HttpCallback; +import com.yunbao.common.http.live.LiveNetManager; +import com.yunbao.common.utils.ToastUtil; + +import java.util.List; + +public class CurrentMonthGiftNamingFragment extends BaseFragment { + private String mStream, mLiveUid; + private RecyclerView giftList; + private MonthGiftNamingAdapter monthGiftNamingAdapter; + private View noData; + + @Override + public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { + return layoutInflater.inflate(R.layout.fragment_current_month_gift_naming, viewGroup, false); + } + + + @Override + protected void initVariables(Bundle bundle) { + mStream = bundle.getString("mStream"); + mLiveUid = bundle.getString("mLiveUid"); + } + + @Override + protected void initViews(Bundle savedInstanceState, View contentView) { + giftList = contentView.findViewById(R.id.gift_list); + noData = contentView.findViewById(R.id.no_data); + monthGiftNamingAdapter = new MonthGiftNamingAdapter(); + giftList.setLayoutManager(new GridLayoutManager(getContext(), 3, GridLayoutManager.VERTICAL, false)); + giftList.setAdapter(monthGiftNamingAdapter); + } + + @Override + protected void loadData() { + LiveNetManager.get(getContext()). + currentMonthGiftNaming(new HttpCallback>() { + @Override + public void onSuccess(List data) { + if (data.size() > 0) { + giftList.setVisibility(View.VISIBLE); + noData.setVisibility(View.GONE); + monthGiftNamingAdapter.addAllData(data); + } else { + giftList.setVisibility(View.GONE); + noData.setVisibility(View.VISIBLE); + + } + } + + @Override + public void onError(String error) { + ToastUtil.show(error); + } + }); + } + + public static CurrentMonthGiftNamingFragment newInstance(String mStream, String mLiveUid) { + CurrentMonthGiftNamingFragment currentMonthGiftNamingFragment = new CurrentMonthGiftNamingFragment(); + Bundle bundle = new Bundle(); + bundle.putString("mStream", mStream); + bundle.putString("mLiveUid", mLiveUid); + currentMonthGiftNamingFragment.setArguments(bundle); + return currentMonthGiftNamingFragment; + } +} diff --git a/common/src/main/java/com/yunbao/common/fragment/LastMonthGiftNamingFragment.java b/common/src/main/java/com/yunbao/common/fragment/LastMonthGiftNamingFragment.java new file mode 100644 index 000000000..7aaabb134 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/fragment/LastMonthGiftNamingFragment.java @@ -0,0 +1,79 @@ +package com.yunbao.common.fragment; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.adapter.MonthGiftNamingAdapter; +import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.http.base.HttpCallback; +import com.yunbao.common.http.live.LiveNetManager; +import com.yunbao.common.utils.ToastUtil; + +import java.util.List; + +public class LastMonthGiftNamingFragment extends BaseFragment { + private String mStream, mLiveUid; + private RecyclerView giftList; + private MonthGiftNamingAdapter monthGiftNamingAdapter; + private View noData; + + @Override + public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { + return layoutInflater.inflate(R.layout.fragment_last_month_gift_naming, viewGroup, false); + } + + + @Override + protected void initVariables(Bundle bundle) { + mStream = bundle.getString("mStream"); + mLiveUid = bundle.getString("mLiveUid"); + } + + @Override + protected void initViews(Bundle savedInstanceState, View contentView) { + giftList = contentView.findViewById(R.id.gift_list); + noData = contentView.findViewById(R.id.no_data); + monthGiftNamingAdapter = new MonthGiftNamingAdapter(); + giftList.setLayoutManager(new GridLayoutManager(getContext(), 3, GridLayoutManager.VERTICAL, false)); + giftList.setAdapter(monthGiftNamingAdapter); + } + + @Override + protected void loadData() { + LiveNetManager.get(getContext()). + lastMonthGiftNaming(new HttpCallback>() { + @Override + public void onSuccess(List data) { + if (data.size() > 0) { + giftList.setVisibility(View.VISIBLE); + noData.setVisibility(View.GONE); + monthGiftNamingAdapter.addAllData(data); + } else { + giftList.setVisibility(View.GONE); + noData.setVisibility(View.VISIBLE); + + } + } + + @Override + public void onError(String error) { + ToastUtil.show(error); + } + }); + } + + public static LastMonthGiftNamingFragment newInstance(String mStream, String mLiveUid) { + LastMonthGiftNamingFragment lastMonthGiftNamingFragment = new LastMonthGiftNamingFragment(); + Bundle bundle = new Bundle(); + bundle.putString("mStream", mStream); + bundle.putString("mLiveUid", mLiveUid); + lastMonthGiftNamingFragment.setArguments(bundle); + return lastMonthGiftNamingFragment; + } +} diff --git a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java index 248c73191..54573f999 100644 --- a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java +++ b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java @@ -13,6 +13,8 @@ import com.yunbao.common.bean.DiscountsModel; import com.yunbao.common.bean.EnterRoomNewModel; import com.yunbao.common.bean.FaceBookUpModel; import com.yunbao.common.bean.GiftAlreadyWallModel; +import com.yunbao.common.bean.GiftWallGiftDetail; +import com.yunbao.common.bean.GiftWallModel; import com.yunbao.common.bean.HourRank; import com.yunbao.common.bean.HttpCallbackModel; import com.yunbao.common.bean.IMLoginModel; @@ -847,4 +849,29 @@ public interface PDLiveApi { @Query("liveuid") String liveUid ); + /** + * 礼物墙选中礼物详情 + */ + @GET("/api/public/?service=Gift.giftDetail") + Observable> giftDetail( + @Query("liveuid") String liveUid, + @Query("gift_id") String giftId + ); + + /** + * 礼物墙本月冠名礼物 + * + * @return + */ + @GET("/api/public/?service=Gift.currentMonthGiftNaming") + Observable>> currentMonthGiftNaming(); + + /** + * 礼物墙上月冠名 + * + * @return + */ + @GET("/api/public/?service=Gift.lastMonthGiftNaming") + Observable>> lastMonthGiftNaming(); + } diff --git a/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java b/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java index 39959de77..6ee8b6508 100644 --- a/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java +++ b/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java @@ -14,6 +14,8 @@ import com.yunbao.common.bean.CustomSidebarInfoModel; import com.yunbao.common.bean.DiscountsModel; import com.yunbao.common.bean.EnterRoomNewModel; import com.yunbao.common.bean.GiftAlreadyWallModel; +import com.yunbao.common.bean.GiftWallGiftDetail; +import com.yunbao.common.bean.GiftWallModel; import com.yunbao.common.bean.HttpCallbackModel; import com.yunbao.common.bean.LinkMicUserBean; import com.yunbao.common.bean.LinkMicUserBeanV2; @@ -1818,6 +1820,7 @@ public class LiveNetManager { } }).isDisposed(); } + public void giftWithoutWall(String liveUid, HttpCallback callback) { API.get().pdLiveApi(mContext) .giftWithoutWall(liveUid) @@ -1840,6 +1843,72 @@ public class LiveNetManager { }).isDisposed(); } + public void giftDetail(String liveUid, String giftId, HttpCallback callback) { + API.get().pdLiveApi(mContext) + .giftDetail(liveUid, giftId) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>() { + @Override + public void accept(ResponseModel giftWallGiftDetailResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(giftWallGiftDetailResponseModel.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + + public void currentMonthGiftNaming(HttpCallback> callback) { + API.get().pdLiveApi(mContext) + .currentMonthGiftNaming() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>>() { + @Override + public void accept(ResponseModel> listResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(listResponseModel.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + + public void lastMonthGiftNaming(HttpCallback> callback) { + API.get().pdLiveApi(mContext) + .lastMonthGiftNaming() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>>() { + @Override + public void accept(ResponseModel> listResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(listResponseModel.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + /** * 直播间取消网络请求 */ diff --git a/common/src/main/java/com/yunbao/common/views/GiftAlreadyWallViewHolder.java b/common/src/main/java/com/yunbao/common/views/GiftAlreadyWallViewHolder.java index b7244cd9b..e19c54ad6 100644 --- a/common/src/main/java/com/yunbao/common/views/GiftAlreadyWallViewHolder.java +++ b/common/src/main/java/com/yunbao/common/views/GiftAlreadyWallViewHolder.java @@ -9,7 +9,10 @@ import androidx.recyclerview.widget.RecyclerView; import com.yunbao.common.R; import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.event.GiftWallItemEvent; import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.views.weight.ViewClicksAntiShake; public class GiftAlreadyWallViewHolder extends RecyclerView.ViewHolder { private ImageView giftImg; @@ -24,5 +27,11 @@ public class GiftAlreadyWallViewHolder extends RecyclerView.ViewHolder { public void showData(GiftWallModel giftWallModel) { giftTitle.setText(giftWallModel.getGiftname()); ImgLoader.display(itemView.getContext(), giftWallModel.getGifticon(), giftImg); + ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + Bus.get().post(new GiftWallItemEvent().setGiftWallModel(giftWallModel).setUnlit(true)); + } + }); } } diff --git a/common/src/main/java/com/yunbao/common/views/GiftWithoutWallViewHolder.java b/common/src/main/java/com/yunbao/common/views/GiftWithoutWallViewHolder.java index 4685e441d..9cd0d6f9e 100644 --- a/common/src/main/java/com/yunbao/common/views/GiftWithoutWallViewHolder.java +++ b/common/src/main/java/com/yunbao/common/views/GiftWithoutWallViewHolder.java @@ -7,11 +7,11 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import com.lxj.xpopup.XPopup; import com.yunbao.common.R; import com.yunbao.common.bean.GiftWallModel; -import com.yunbao.common.dialog.GiftWallItemPopup; +import com.yunbao.common.event.GiftWallItemEvent; import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.utils.Bus; import com.yunbao.common.views.weight.ViewClicksAntiShake; public class GiftWithoutWallViewHolder extends RecyclerView.ViewHolder { @@ -30,9 +30,7 @@ public class GiftWithoutWallViewHolder extends RecyclerView.ViewHolder { ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() { @Override public void onViewClicks() { - new XPopup.Builder(itemView.getContext()) - .asCustom(new GiftWallItemPopup(itemView.getContext())) - .show(); + Bus.get().post(new GiftWallItemEvent().setGiftWallModel(giftWallModel).setUnlit(false)); } }); } diff --git a/common/src/main/java/com/yunbao/common/views/MonthGiftNamingViewHolder.java b/common/src/main/java/com/yunbao/common/views/MonthGiftNamingViewHolder.java new file mode 100644 index 000000000..35da55a3a --- /dev/null +++ b/common/src/main/java/com/yunbao/common/views/MonthGiftNamingViewHolder.java @@ -0,0 +1,35 @@ +package com.yunbao.common.views; + +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.glide.ImgLoader; + +public class MonthGiftNamingViewHolder extends RecyclerView.ViewHolder { + private ImageView giftImg, avatar; + private TextView giftTitle, namingCoin, userName; + + public MonthGiftNamingViewHolder(@NonNull View itemView) { + super(itemView); + giftImg = itemView.findViewById(R.id.gift_img); + avatar = itemView.findViewById(R.id.avatar); + giftTitle = itemView.findViewById(R.id.gift_title); + namingCoin = itemView.findViewById(R.id.naming_coin); + userName = itemView.findViewById(R.id.user_name); + } + + public void showData(GiftWallModel giftWallModel) { + giftTitle.setText(giftWallModel.getGiftname()); + namingCoin.setText(giftWallModel.getNamingCoinMax()); + userName.setText(giftWallModel.getUserNicename()); + ImgLoader.display(itemView.getContext(), giftWallModel.getGifticon(), giftImg); + ImgLoader.display(itemView.getContext(), giftWallModel.getAvatar(), avatar); + + } +} diff --git a/common/src/main/java/com/yunbao/common/views/weight/ViewClicksAntiShake.java b/common/src/main/java/com/yunbao/common/views/weight/ViewClicksAntiShake.java index b2474695e..c59283b42 100644 --- a/common/src/main/java/com/yunbao/common/views/weight/ViewClicksAntiShake.java +++ b/common/src/main/java/com/yunbao/common/views/weight/ViewClicksAntiShake.java @@ -8,7 +8,7 @@ import java.util.concurrent.TimeUnit; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; -import kotlin.*; +import kotlin.Unit; /** * View防抖 diff --git a/common/src/main/res/drawable/background_select_all_service.xml b/common/src/main/res/drawable/background_select_all_service.xml new file mode 100644 index 000000000..aab1d1cb8 --- /dev/null +++ b/common/src/main/res/drawable/background_select_all_service.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/fragment_all_service_champion.xml b/common/src/main/res/layout/fragment_all_service_champion.xml new file mode 100644 index 000000000..6e2e6ffb5 --- /dev/null +++ b/common/src/main/res/layout/fragment_all_service_champion.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/fragment_current_month_gift_naming.xml b/common/src/main/res/layout/fragment_current_month_gift_naming.xml new file mode 100644 index 000000000..37a78bbb7 --- /dev/null +++ b/common/src/main/res/layout/fragment_current_month_gift_naming.xml @@ -0,0 +1,24 @@ + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/fragment_gift_already_wall.xml b/common/src/main/res/layout/fragment_gift_already_wall.xml index 55ebffda9..846998445 100644 --- a/common/src/main/res/layout/fragment_gift_already_wall.xml +++ b/common/src/main/res/layout/fragment_gift_already_wall.xml @@ -74,6 +74,7 @@ android:textSize="12sp" /> + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/item_month_gift_naming.xml b/common/src/main/res/layout/item_month_gift_naming.xml new file mode 100644 index 000000000..ea267bc88 --- /dev/null +++ b/common/src/main/res/layout/item_month_gift_naming.xml @@ -0,0 +1,65 @@ + + + + + + + + +a + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/popup_gift_wall_item.xml b/common/src/main/res/layout/popup_gift_wall_item.xml index 02b2826d6..d7fd2c668 100644 --- a/common/src/main/res/layout/popup_gift_wall_item.xml +++ b/common/src/main/res/layout/popup_gift_wall_item.xml @@ -1,10 +1,158 @@ + android:orientation="vertical" + app:cardCornerRadius="10dp" + app:cardElevation="0dp"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/live/src/main/res/mipmap-hdpi/background_gift_wall_item.png b/common/src/main/res/mipmap-xxhdpi/background_gift_wall_item.png similarity index 100% rename from live/src/main/res/mipmap-hdpi/background_gift_wall_item.png rename to common/src/main/res/mipmap-xxhdpi/background_gift_wall_item.png diff --git a/common/src/main/res/mipmap-xxhdpi/icon_vacant_position_awaits.png b/common/src/main/res/mipmap-xxhdpi/icon_vacant_position_awaits.png new file mode 100644 index 0000000000000000000000000000000000000000..bc47926fffc13889ac0cd967beb8588f6bb99a14 GIT binary patch literal 16032 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 When the gift in the guidebook is the same as the gift in the gift wall, give the same gift Objects, first point the gift on the gift wall, and then light up the gift in the guidebook. Honor achievement Medal of Achievement Medal of achievement - Currently, there are three achievements, namely A cloud of good friends,Very rich, + Currently, there are three achievements, namely A cloud of good friends, A rich party, Very rich, A cloud of good friends: When the number of gifts received reaches 20, 30, 50, 100When it comes to 200 models, light up the corresponding achievements separately;Rich and capriciou A rich party: When the price of a single gift received exceeds 50000 diamonds, it is sufficient Illuminate the achievement; Very rich: When receiving 100 gifts priced over 3000 diamonds, i.e This achievement can be illuminated. diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index 4faaf5e62..60af067da 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -1270,7 +1270,7 @@ Limited ride And limited avatar frame When the gift in the guidebook is the same as the gift in the gift wall, give the same gift Objects, first point the gift on the gift wall, and then light up the gift in the guidebook. Honor achievement Medal of Achievement Medal of achievement - Currently, there are three achievements, namely A cloud of good friends,Very rich, + Currently, there are three achievements, namely A cloud of good friends, A rich party, Very rich, A cloud of good friends: When the number of gifts received reaches 20, 30, 50, 100When it comes to 200 models, light up the corresponding achievements separately;Rich and capriciou A rich party: When the price of a single gift received exceeds 50000 diamonds, it is sufficient Illuminate the achievement; Very rich: When receiving 100 gifts priced over 3000 diamonds, i.e This achievement can be illuminated. @@ -1283,5 +1283,13 @@ Limited ride And limited avatar frame Illustrated book Honorary achievement Lit + 規則介紹 + 禮物詳情 + 虛位以待 + 距離冠名還需%s鑽 + 送TA + 本月得主 + 上月得主 + 上月奪得最終禮物冠名權用戶將獲得該禮物一個月專屬冠名皮膚 diff --git a/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java b/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java index 37b88a0d5..6e518a59d 100644 --- a/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java +++ b/live/src/main/java/com/yunbao/live/dialog/GiftWallDialog.java @@ -16,7 +16,9 @@ import com.lxj.xpopup.XPopup; import com.makeramen.roundedimageview.RoundedImageView; import com.yunbao.common.Constants; import com.yunbao.common.dialog.AbsDialogFragment; -import com.yunbao.common.fragment.GiftAlreadyWallFragment; +import com.yunbao.common.event.GiftWallItemEvent; +import com.yunbao.common.fragment.AllServiceChampionFragment; +import com.yunbao.live.views.GiftAlreadyWallFragment; import com.yunbao.common.fragment.GiftWithoutWallFragment; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.http.CommonHttpUtil; @@ -26,8 +28,8 @@ import com.yunbao.common.utils.Bus; import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; -import com.yunbao.live.event.GiftTitleEvent; import com.yunbao.live.event.LiveAudienceEvent; +import com.yunbao.live.event.LiveGiftDialogEvent; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -97,6 +99,10 @@ public class GiftWallDialog extends AbsDialogFragment { @Override public void onViewClicks() { selectTab(textAllServiceChampion, viewAllServiceChampion); + + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + transaction.replace(R.id.context_layout_gift, AllServiceChampionFragment.newInstance(mStream, mLiveUid)); + transaction.commit(); } }); ViewClicksAntiShake.clicksAntiShake(attention, new ViewClicksAntiShake.ViewClicksCallBack() { @@ -196,7 +202,14 @@ public class GiftWallDialog extends AbsDialogFragment { * 关于点击礼物分类的通知 */ @Subscribe(threadMode = ThreadMode.MAIN) - public void onGiftTitleEvent(GiftTitleEvent event) { + public void onGiftWallItemEvent(GiftWallItemEvent event) { + new XPopup.Builder(getActivity()) + .asCustom(new GiftWallItemPopup(getActivity(), event.getGiftWallModel(), event.isUnlit(), mLiveUid, mStream)) + .show(); + } + @Subscribe(threadMode = ThreadMode.MAIN) + public void onLiveGiftDialogEvent(LiveGiftDialogEvent event) { + dismiss(); } } diff --git a/live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java b/live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java new file mode 100644 index 000000000..bec97cd32 --- /dev/null +++ b/live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java @@ -0,0 +1,110 @@ +package com.yunbao.live.dialog; + + +import android.content.Context; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.cardview.widget.CardView; + +import com.lxj.xpopup.core.CenterPopupView; +import com.yunbao.common.R; +import com.yunbao.common.bean.GiftWallGiftDetail; +import com.yunbao.common.bean.GiftWallModel; +import com.yunbao.common.glide.ImgLoader; +import com.yunbao.common.http.base.HttpCallback; +import com.yunbao.common.http.live.LiveNetManager; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.views.weight.ViewClicksAntiShake; +import com.yunbao.live.event.LiveAudienceEvent; +import com.yunbao.live.event.LiveGiftDialogEvent; + +public class GiftWallItemPopup extends CenterPopupView { + private CardView layout; + private ImageView giftImg, avatar; + private TextView price, giftDetailsBtn, distanceNaming, vacantPositionAwaits, giftDetails, vacantPosition; + private GiftWallModel giftWallModel; + private boolean unlit; + private String mLiveUid, mStream; + + public GiftWallItemPopup(@NonNull Context context, GiftWallModel giftWallModel, + boolean unlit, String mLiveUid, String mStream) { + super(context); + this.giftWallModel = giftWallModel; + this.unlit = unlit; + this.mLiveUid = mLiveUid; + this.mStream = mStream; + } + + @Override + protected int getImplLayoutId() { + return R.layout.popup_gift_wall_item; + } + + @Override + protected void onCreate() { + super.onCreate(); + layout = findViewById(R.id.layout); + giftImg = findViewById(R.id.gift_img); + price = findViewById(R.id.price); + giftDetails = findViewById(R.id.gift_details); + giftDetailsBtn = findViewById(R.id.gift_details_btn); + distanceNaming = findViewById(R.id.distance_naming); + vacantPositionAwaits = findViewById(R.id.vacant_position_awaits); + vacantPosition = findViewById(R.id.vacant_position); + avatar = findViewById(R.id.avatar); + if (unlit) { + giftDetailsBtn.setText(getContext().getText(R.string.send_hem)); + } else { + giftDetailsBtn.setText(getContext().getText(R.string.instant_light)); + } + ImgLoader.display(getContext(), giftWallModel.getGifticon(), giftImg); + giftDetails.setText(giftWallModel.getGiftname()); + price.setText(giftWallModel.getNeedcoin()); + loadData(); + ViewClicksAntiShake.clicksAntiShake(giftDetailsBtn, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP) + .setmLiveUid(mLiveUid) + .setmStream(mStream) + .setmWishGiftId(giftWallModel.getId())); + Bus.get().post(new LiveGiftDialogEvent()); + dialog.dismiss(); + } + }); + + } + + public void loadData() { + LiveNetManager.get(getContext()). + giftDetail(mLiveUid, String.valueOf(giftDetails.getId()), new HttpCallback() { + @Override + public void onSuccess(GiftWallGiftDetail data) { + if (data.getUid() == 0) { + ImgLoader.display(getContext(), R.mipmap.icon_vacant_position_awaits, avatar); + vacantPositionAwaits.setText(getContext().getText(R.string.vacant_position_awaits)); + vacantPosition.setText("?"); + } else { + ImgLoader.display(getContext(), data.getAvatar(), avatar); + vacantPositionAwaits.setText(data.getUserNicename()); + vacantPosition.setText(giftWallModel.getGiftname()); + } + if (data.getNamingCoin() == 0) { + distanceNaming.setVisibility(GONE); + } else { + distanceNaming.setVisibility(VISIBLE); + distanceNaming.setText(String.format(getContext().getString(R.string.distance_naming), String.valueOf(data.getNamingCoin()))); + } + } + + @Override + public void onError(String error) { + ToastUtil.show(error); + } + }); + } +} diff --git a/live/src/main/java/com/yunbao/live/dialog/RegularIntroducePopup.java b/live/src/main/java/com/yunbao/live/dialog/RegularIntroducePopup.java index b1f992dc3..68d143009 100644 --- a/live/src/main/java/com/yunbao/live/dialog/RegularIntroducePopup.java +++ b/live/src/main/java/com/yunbao/live/dialog/RegularIntroducePopup.java @@ -2,17 +2,24 @@ package com.yunbao.live.dialog; import android.content.Context; +import android.graphics.Color; +import android.text.Spannable; +import android.text.SpannableStringBuilder; +import android.widget.TextView; import androidx.annotation.NonNull; import com.lxj.xpopup.impl.FullScreenPopupView; import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.live.R; +import com.yunbao.live.utils.LinearGradientFontSpan; /** * 礼物冠名规则 */ public class RegularIntroducePopup extends FullScreenPopupView { + private TextView regularTitle; + public RegularIntroducePopup(@NonNull Context context) { super(context); } @@ -25,6 +32,13 @@ public class RegularIntroducePopup extends FullScreenPopupView { @Override protected void onCreate() { super.onCreate(); + regularTitle = findViewById(R.id.regular_title); + String title = getContext().getString(R.string.rule_introduction); + SpannableStringBuilder builder = new SpannableStringBuilder(); + builder.append(title); + builder.setSpan(new LinearGradientFontSpan(Color.parseColor("#ffffff"), + Color.parseColor("#F7FDFF")), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + regularTitle.setText(builder); //初始化 ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.close_btn), new ViewClicksAntiShake.ViewClicksCallBack() { @Override diff --git a/common/src/main/java/com/yunbao/common/fragment/GiftAlreadyWallFragment.java b/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java similarity index 77% rename from common/src/main/java/com/yunbao/common/fragment/GiftAlreadyWallFragment.java rename to live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java index ae1d4f378..ddf30f143 100644 --- a/common/src/main/java/com/yunbao/common/fragment/GiftAlreadyWallFragment.java +++ b/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java @@ -1,4 +1,4 @@ -package com.yunbao.common.fragment; +package com.yunbao.live.views; import android.os.Bundle; import android.view.LayoutInflater; @@ -13,8 +13,13 @@ import androidx.recyclerview.widget.RecyclerView; import com.yunbao.common.R; import com.yunbao.common.adapter.GiftAlreadyWallAdapter; import com.yunbao.common.bean.GiftAlreadyWallModel; +import com.yunbao.common.fragment.BaseFragment; import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.http.live.LiveNetManager; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.views.weight.ViewClicksAntiShake; +import com.yunbao.live.event.LiveAudienceEvent; +import com.yunbao.live.event.LiveGiftDialogEvent; /** * 已点亮礼物墙 @@ -24,7 +29,8 @@ public class GiftAlreadyWallFragment extends BaseFragment { private LinearLayout giftWallNoData, giftWallData; private RecyclerView alreadyList; private GiftAlreadyWallAdapter alreadyWallAdapter; - private TextView litIcon,giftAll; + private TextView litIcon, giftAll; + @Override public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { return layoutInflater.inflate(R.layout.fragment_gift_already_wall, viewGroup, false); @@ -47,6 +53,16 @@ public class GiftAlreadyWallFragment extends BaseFragment { alreadyWallAdapter = new GiftAlreadyWallAdapter(); alreadyList.setLayoutManager(new GridLayoutManager(getContext(), 3, GridLayoutManager.VERTICAL, false)); alreadyList.setAdapter(alreadyWallAdapter); + ViewClicksAntiShake.clicksAntiShake(contentView.findViewById(R.id.instant_light), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + Bus.get().post(new LiveAudienceEvent() + .setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP) + .setmLiveUid(mLiveUid) + .setmStream(mStream)); + Bus.get().post(new LiveGiftDialogEvent()); + } + }); } @Override @@ -60,7 +76,7 @@ public class GiftAlreadyWallFragment extends BaseFragment { giftWallData.setVisibility(View.VISIBLE); alreadyWallAdapter.addAllData(data.getGiftWall()); litIcon.setText(data.getGiftWallLightenNumber()); - giftAll.setText("/"+data.getGiftWallLightenTotal()); + giftAll.setText("/" + data.getGiftWallLightenTotal()); } else { giftWallNoData.setVisibility(View.VISIBLE); giftWallData.setVisibility(View.GONE); diff --git a/live/src/main/res/layout/rogular_introduce_popup.xml b/live/src/main/res/layout/rogular_introduce_popup.xml index 8b354e0cc..b8214a611 100644 --- a/live/src/main/res/layout/rogular_introduce_popup.xml +++ b/live/src/main/res/layout/rogular_introduce_popup.xml @@ -173,18 +173,22 @@ + android:background="@mipmap/background_regular_title" + android:gravity="center" + android:textSize="16sp" + android:textStyle="bold" /> \ No newline at end of file diff --git a/live/src/main/res/mipmap-xxxhdpi/background_regular_title.png b/live/src/main/res/mipmap-xxxhdpi/background_regular_title.png index 536cf6788b9758e6c0fecdf3229064a3c390b0c3..1c2e03194a36d54fff6ac3795835bcf9c1efd4c2 100644 GIT binary patch literal 29105 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 A(EtDd literal 32810 zcmV(-K-|BHP)PyA07*naRCr$Oy$6_GRoOOtuf6x_XL@GR6B1geAtWS(P(&bvDyUSYh`y+ZQbh%Y zVAmHZVgo@1DFRCG9YH`OAV>)%71F1jnK^Zr^@d#|(SObYtH-+O)6zppEqnRE7D zdzEM1>we057Q_GJ*TQ4oOfD&x$E0{FmrV}Xp0{k=%4&8R=l0yBZ8zncI`?9*(i{vH zV*sNL5&v!E;_9CGPxBG_PG3~s=KQ^}_nOZ)s+xXBqcZff`aARQk=n93ZH%|qti#62 zHTyVTw~@-+*m!KJ-!`-V!!C}OH$q!Pv0RQUR}V7=#u#`Ifb#&B?ZETPmC|7E^Ob-N z+IHoIDG6^eb0)6tt2O(`_7}I_seSFjg*(;$lT(o|Vl&$(mae zf-%w*{$JCu|Gy&tJ9;3*E)K>lSe7jShOU5f_`VCyIc#Plkw^h7K;ZG3Z#DZYpDQ*2 zmCj_VTj6PrL~ZF-qph0;N-fX%tX!O)w0gdH?JRe58p=6mmtHCW#kyoZ5*UPq0)jOe zFsw$FCF;Q@XCoM@pgcB-0Ha``8^N&;!oB@=1dOpwt!A53rH$V6{}kACcK$LyW=w0> zu2VAmbQe;eO{FtiuP?1{8tUn5PuV5Q^F34o;w>)VRT030?*;G!Uv^T1-Vh7cW-fGf zJ-skIh!g^jS+!~1q)yfEao8LBmkR% zBY<0@#Y+K^U^=e2ms<{CCBV3YY=Z7h!e`l_rK_Va&sqm;URjb)2RA+QYR|JlP+q@b z!&inj)}#D(ZqxV6i%678a4e2gn+?0td%bUUTRaE*P{WkD(f!giIARu{X_|JpS|242#{W8z?Wzam%LYl@ybZQ!Cp`Vp45L)WVG|;_n zFnRXEr;l4(bWU7d=pNOxVntiv_E?#HoO91JAqyZn{C8`ZtbE(r%x3oCLQV1M`3}|i0k|N0i{ehtgi$166=zwzu zE0KoHQUEPvH2p29N(F(B!1n;|DH#l?KydLMU;GYEfRzGcNhGtQgE3oe)z^{8bx)dL z-SXRO4!kYZl&XpOP>32 zY&hrE8*iXmMZID42z9gL;{OATk2U8%FbbkY)J&Q) zn_D-EhdW#x?VkKZF! zDf2lF1Pn-W@MeIQ0rY~yn2bHH(s!LDd2(UO$GsHt-u(pmxbZnj-%`)AlpUIM0g$XIP>GWql7+Bd|CzaIni~b- z+K5V{L1beymg;W@44%zJSqX0=cJ6wdtq0hD2YBS1X>3{_LCUuDb-pjO7C0#jewk!O zvRY-Q74l;#Mxq2sRLXphSfI?$NFA~PJI&;xqriydh-4~UfaoEM!A{9WYMJCNbvQ$6 zqQw)P;Cu+I^q$Y$e!wR{Bz4M><=Y8aKb8g(&8loeeG_G>e}TtQDF^WBc~z&NM%q6Y zZLbXlupJ=N=^#JJMyiYYhRHtBs)A8ZZBinf;(-93O5md6m-zDjx7dqA@8Zo$6@9Mf z4P+gszo{90`2fYDkIL9K@H>FovB&;u_ncJCf@5>oJ{L5UklMC@WRjuca-@??3}&^)kxDZ0T^-A11VpkYh2R9F zDbu7S*y7O4R|p<%=o^gkHU<#-S;DcDtJaPB z>d5&r!VIpTs1js2c|l~)Z2Z~?xNZ9321OHK8pLtf9WhjiNC(wdFEE>~vXBAsA_+8h z!h%-~1S=J!)RsV`7p=NxhU(Jr_sDV;#Z@&T07|52ixyGu+aZ_TTzW2G0p`e1^;(GjR?Hk?;m8I;hpl0`^ zQdr-dMY+XBwLg!c>)%3k;lJU{+N4}=Mun-21n^bX)pdWX6Lh!kG4HUBAN=44=d}4P zd-kns9o^kiO9U)H(vj+lL!A=<1Kl3_svHA-0s7aua7!*Kfe)9_gdvLx0TCJ6$jUEX zA|@2|r4S^}5i_`p>Jk_TH9<)-$%v_YlZ%_mpz?JGm>6M>RU<%glyK7`O7u-@UxJBg znN*+@GAz?sZcaY+;zp}H$(vnoN(dKh!HCqeS_5ndevJl@>Za;xQ(H`1g_=uS!aC@2 zS`ZomRoFKgkPHN%{wHvxkLdRisv3H^zb#qoH~@q^c8>poM~r#SFa6kk2RhR)=TNxtGJOBx8Ps zvsy1l-#Z=(?|3M_=c8JY)RSacQz_fFkW8rxsIClz;7XtYv6yWbx~3=5x?KWxj`~5G zel#1>!eOU`U4g)toMj=)-_%^@9JRp5V5JxT{NM%e@nEs@T3};Uwh85_8T2AR@s1qa zJMQ>sww!+(Y)(J@<;0T@96!3f$tmA||6kj(ne?anSMk$)KR=~sy`QL5Nt$KnQs1rl z(8JQVD_B=3qeiQT&5#!AkgSRp3N3*2lYmBmgPPnV7}D-f%vL@Zu8?Aa%I};JsJ&)1 z@d=e6wORTO$&9-S_5q+WG zqg4WBuNg*K43$9xpDt4Xfns#}C#huGP#Uk_#)LIaB56c4V;~@+F{JXuqCtyJ1e>N^ z*7#J8q0MR1M`CIc5b5!eV-*Bks!<}wg+r|NVP~jbRX{`Pks?T;noiF;jKL?Bl*}dp zM?!d#BHN)+4cRseNF?NJCMG1_T_u&)LfgbNpL|%F<+rvt0fS)Qq*hfpyfT>E%`vpr z!{BNk<$fPtArLB-=oeybS%@}dI&3sgOd#KBBRL8PTn2Z5Nfk{+YuHI3kyG^~^^erG z48Z7TLQ!2cy*33n>U%E;&{JB1$5%gwM+XYtlJ<6IeQOexgp2afIF!yRqk6{{s#X6s z*bqLy_u~6a<6B4XG8kkoA1DOd7FMIJRP&K=0v_1lL5;C@-Yl`V$jnWX*^#RTtx_St znD!Sn0cb+$%UFCBvz4sJWGCjzP7{*AM%d&OSV^&rfT_{yE!c^AKm8Odmcd>cb(k(w zvMu=zZL|_9v}R()Nb7R6nxt8Cy!??EMhFgcgR(1$a4iLRX1{HUG3f7AQ4&1KwxIw_ z8=f1LV**km!>gE}W~bA**c-Qf(PAPN88yD@sN)NYu-y<7Rxb{lVlHHi!%A90t_9Hf3}jz%xP_L9NsOJBMAKvki6#as zMcyj~6h0Y-xlohb0a;+3e9{+ z9I+Omsa!*ctw|$*P`TI}e6Z{p??(T9>mQl4v#u$HzC2JG0!nAKZ5iNvWU!%tA_@fh z;J)thZByDlvzD_jtk_W7rnJFjP1N3u1q=njqW6cYA1te-5&^8hVxohH)+S;C7+=Au z|Ae|^OdhkcrVN|EYjDu2kN^(_Jn>iR=cw!HITCI;Ss4Nnpb&JJ@OaUnJIb)rXtabT zVK5wGI#eV9PMr0alT@_RU_|D3@wsZ&S=T|lM{6-keG~5+L4riJ)ce9d)q-wxvSuq< zZPg-b0%N$^>se|dGqs)UZALxly+S=P>l~}6R3;?gXf;c>o5slmN3Bj0%c!&I80ZiJ zyRv5p^@J7#0wiVkBhWEdHo+bR5J?*#wL{cF8DI6nBAy{CY%@3txNKrMRCkvNc_DDf zG}&m|F^T*{8~L#|tTY7!0#=d<(`mEZB%3E%!IOE5F+%lC01r)pVv(;NdYRok@G_qE zEUav4LZLZ8WlI^(7JF{m@DB$Pl#|5HJBiJ6(_-xDvmL^6qsmGp>IePG8vCK z5rwX-CMGeTy2&ER0Rlh27oAW*8TQZu=y#v&W=>^Pf^os;IdZ5X$cA>(N<`&761=qbF9hu1!c z+uRzKXPeO9yH#h`Wv-nNt~l}{ zxxlKos_5?X&=Lg5W-M@@!nIw|QQBIi)r)Ad3!7HmWmZlPu2!uyQ_!*$zgO5)LfF=Z zU|EU@OeTZUWjBI*J=x9o=x3=e(uT5S9F@v40Z0gTObv?96>ap618$@GHI$s#hare5 z7kt=0)d`yv5Otph4grQDeo_LE$pC~ppp35JPt6!MQCZDA_{q9LI9)sj2Ml^p3v^3t;Gt^gkykgHsk?Sl?uT+A;C+y&dGR8_c;_%M{I-) z(Xv;GnWTgPiy@J=z*;yGEexqV1q(_wDb+0HwK5o>vOa*fM%L3M1k<)o!OG}88YSs> z^7t}%9*1LFQZ1!Q)0hwlQA`i9sa(KEO;50{J(5U|A%&=Nec`XSs=^YD6m z6Z!8!40BJG=yFTm+wa$}4lOh5$^ejpY(!mSjyNLBPTAWO_F4ds= z1xzq=i;8$l)9^1RsNenBZeh&Ts+TXaig zcclIxw&m3V!4m16K~>rd+UMFBy-yO!Rx5PW4C@1q(%=$2w(34y9|TyEZo*I}P-<#J z-=%MXZwzoYDvty-cT7OCEs0#JiWZd6S#c;^%`*&%C-?-u?3aXflWrsO)$|D#+;;a zgDc%nohxiF%77acCrfM88N&T+7>LcuY1Toihml@Jvab!S`e($nlz~#s0`t9fK&0NQ zwVjYPG^ncvL=!+murR)CIN;h~Izsg1Nc}P*pqT@r?ZbNV>v$5e)G8z*p-~P40Xz-H zJCuu9+2I(fa)oNBF2ST|qLGTHS(WfMMe$gAr@y(NkXj|TBS@Q(Xs6*Vl`2oV)2^h33S-bIsNFe!SDs!EUTeVwO z+5r-hp~W#mwA16@{ly@7?4O?X(6eQht1@J20eF8E3ECMeKz;Z`*QfFqT5geOU`4pY{ZjO(5uFeSj0U}Cxi zqK-0Ij((i(_547vEc%_EC!3D#+u~>YY#S3lkrpof#)yNyzSnWv2akI9q??^JW1F$6 zr;4EqC=O=?mv}>&BcN%Uid4l%rlW=yw~Vn>9!x)MlK9@wD(krrVC#@279uU1+3iRf1$TAp$c7%Q*^Uy(T zu{fB9E4C4sCl{4?;GZ-QiaOTWg`&^Q4ym`|NC6;km-Kqc=|C=6;o8&`zX3C7)X8D{ zlkki< zk?Y}bTn?{RgXPhtB*k&nxP>04`u>qrSP!)5C@xl>L?(?)hGC$uB&jUDOxb+I1c~g@ z(Nv15ZSl#bC!vO#@NeafkRTKV{+Sa$KI!Fm#!3@PxQe0Bdss+)5Or5ZR->R$U)Kyk z-J>T-2m}h4H&&nc=$S%bdZbJiF|187$=M8ISJ(HV-lkVaeXA#c?y+#L8w*Sb9wy6C zm@^Egghx!r+GuxQ*q+HnMpKLqjq*PF%?k=r+hZ(0_|zS7NZMi9h6on`gB74e(ZY(n(mtnbk_EKCtyTkVfoHDE z*>z7xrXFW70j}f&MQ|J-3?m(HjTe#g~cFnptUWFY?Fi49}K_|0bNF? zhpb$#%<)MW?|`_fVSZ0*g(Xs*;v#N2Szlfu=@$UU)8|a11FwWe+&DrHtZ5e z>Qz#qvSdc4`dqKF2^E!8Dgh>u#MJkt1RGHb#gc`bRo*4)pq{mA7J?eXR!3zpdLMGJ zHSBV)v=UD*zYAAeHkOS~Vojll;<+!N7H2oZ9zS&%PdD|UDP6$$ULRX^I5_CS**Lx> zgSKIP&w*9_91p$A@y~Z$tnRL=jer(LbtbXRIGgX(3QX^^7&U;{$GdBMT>sD@szWX^ z{p6wYC9$z607^DKo->assXvcj5=o6go$~&;*&01p<>=Lu`&q2 zv6QgsaCQ?mWNE`eO-i8@AO#?XH$<b(@0YWx{+$}6HqsC3p}G~^ zh#D65ZrvHf*4E+Wn(sGBsady8BgE$2u}R=C>K&H2$%i)aZXF(=Tx?`RqM$COR(%nV zrL6g)--x-Xbx)WJ6o-(DNGw25y;{57#i$B5wRC}Nwa1iADqlLFA~kd*hACX>dOL>( zL}fHKVM$h-wtG;}p(WyYh-vL|ULLve!umP97X$RKe-_t%_`G+2*H~w5g`@w%JbL4{ zo4NF^|0pBFID!(n-=y`PjBweM z4VGglgQ2}Wi36uv*nb-vm4M-zhe~*VSqYgza=%GEiv~`sPuhrY3T)WPF?k?>B6Je& zFiJ0?rk-c0T#dj)PtkCKC=ZC)A?DS8!eoQP0>3v!>xWLtJ*QPC!EE%N6%%X}BI?oD)Z~qWkNjIP zpxB7&?}nEd(dzp0BH^sF7a5A1Hu^T2{3F%f1eMLXCw_l?Qa4&e;=maPvVRX&HuveM zrge4JV55S&$jvQ{!SXWGl!(s^VGLC-lRc{Ophe6aKmAU_EG6xgbbnZo+KXp&SlzA* z4H_y~QM^OF+bp*cC`na|=Cma?ma?*itv{LLUHb`2&}fK?eXrn_HIL!0)@Cf_Idq?s zLBGjv!iQ+D)3GlgJ=(??zYi1a1m=Bf4nKQbj&;Qg?ccLapM%t8v&# zOSsa899x8BPj0c$?=ZYsvEc>4X}c%+al6}m>6(Cj=avE1q1mF~iRr5m?BTm7^ zDxg#!y&{;PBLGBIQt!CepT&Wuk*JA5)cU<~Lwqtxdy-V6Bz27p#PJE+7)VC888w=? zBb8A7&LQrmQ7vT#@cNs2%oWJskPKK;TxPjx6)SbgVlcMwaL{Sn`- zR`KdKt?2J}(PKsyN8`k~^|@Ek(bkV~13tFixr-nF<(=4(NgI@#EWD_4_bd+Zm&b>Y z?5V={xkz9{wf2*?a63(&lEEqaW-zJC!s-IYPoJ#et$vPg9+>`@qFr*A5KhoF;&53Sb&d;`(QzH8(0ZVn+3#q+1#prlUv{{Y-u0 zEh=-{xfyJ;mn61*t3AAQ>tNVr8>|0F;7gzHbVv?kcO-=uc>UfXbiY@h$8=-h)oA?U z_fMLW#-!P4ta!14)vr~=4(yFzo2^8J?qad>>&>giC4$ zBlf2Q355yBWI?f;MR5u|gnQiVocMy;z#AA!iLvL5%CS5KtIRNUL5`0Y9Io*s586_Wf05Yyd$z`vls?TKxYnEU&r^nJ^%n907*naRO5JQ zb$|ss*yzYH-do@}>z4y?T#uy-9=wV#g8RbQ26Lq)m!6(A2KUnmi-Zf0j718OHnrO7 zv6Y)B>#z9a2^m&sC^o<*jKY*<(6hVkmBt|_G>gAiEwAC`pY_*)A>DK0d94lPzJ4id zv{K*kv;I2Z()ToXSUCD@vfXdqrJq~=dKE9+F=!}(^$bbdj%FN^$8LvGa$aEl@){oc zSzn#}ZVGVf+rqHTyfkJXFZ+ltw-Vs-%X=}fM&{KX31}MiNuzgD8T+2whEY=_n5}xf zf|q_9WecZgrk~J+=5gkh-p%Vfeb>6TYgl~$P@T%8-~iZ+kSm~GuCu73{LqRswznaK!)M2$!Ja1(9&PTE?r3+ zbm3k&sX2v6DpZ*(dpW*!(-5rgs?Z<(sxN+46BdGe0w*1u$G%(HSkucfPyrv?$uO~# z!S%st9|@_EJ%u1R=T`$(!u439;KM6Z#(CObrR*XNl|nU~lzd4WK+`hL#)01&752xA*Y#t~Ym|#Ky7oJ- z4eeV=F#0Ihl4pu|{r15yXK}nPg7HvvJUL7Z)k-=PqKpJ&$dw^E!{fC~iEgO0sETV$ zioi~~zUk6{7S>M{s$K12+jX$3a+`;YNZl_C&Nk)gwvga9rhl=8H|^Nix9(NZxA=kD zWwj;Nvs<+}%c=o-wJIg*L9sPGucE{1#n@U9>@|Oa_qoHjOU!iWlr7_;Hr%tw!_AKj zB2lD(JdPS|nNI>GX2H!T@ryHBkf?F2=>w7p@CoCrpg9|bC6M&Jv^2nFe;!1(=CWYO zhhGdtc0DsnSZvSNIc7*~!vHDD8$z4kEO4=ztR6~q$7-&i2Scb|iaKfI??@|#o+i5S z5nGa_Nzl;|np&UcAh0?7cnLNiE_ZR`<-~02Jx$;I`9}krE55cqoW5qg+q!I={Ov6V zoA(w~@Z=2=Y$oiGz+qpG*wJ-gTNeVw?uX>D`yrCqtXp2g1D6xSGFec4JW<>YulsVV znQ82GQggUffKtL{n{7Br*_z5wfG4l+!@wHPoCBNuU6-$KoN-(eww@=$!3t|#Jn_Tc zu;27O#C$sb4X|1K;1J$^a7grmh_O*FaVmeLJU!Cw9Hk_oJ$k0(N)T#%HHw(gG8t}n zY9P#-rRcBB_%-2mG8j?(cg=K!#FH9Do++YbWnlcw9JW6t%j1XOsoHx(EBLdk?q*l! z@_38RoOt086pp=vQ64*hVrxdN#Mp8L69Wfxzp)2DZ*mjsj5nPq-`RhxV*Tne5=9rN zdZ>C#fK8cPWVr;cIHLtY3Ft2ZEiH_1HHOg!*ia@2oPKt16|cQlhEsOIs=i2-C|t|5 zVNTsCbI62gQbg80(cr8jcEkGQdlx+}heG_S<8;E553)ZaK#DTx3#)zuo6klmt2VtV zu+f#(&+I-ojUyDZA+Y&F2sRNDxX=KbAD^{e0jzF;yib?+b>rTjeQkp=$z>0Sy7mLznfUW3q$2PiYAOh*YX)e%p@?h7Bj)1}&3jKk3iX zO%@KlbQEkQa4-I@AFKXZ9j2O%**OWiS6|7Tg`JO#&V>2bT?6nc^$c&DgL24^lB(C@ z2PD|Y*2-xwY&dG>HN;+qd5iBW7R3c@!XV09SM z2+DLnhMRpUHLB7W!aYd}*~A9*0!MR8lF$BbD^KJbs#2)-VEOwu`Ik7b|2cjf*5o@e zh>xKff=%0UOz10P2j2zud4^IIys4G(u^rOerW(p$Tkf;(-7-WcYJpXJvE6`nYzm!K!?hR)i6A1tPi0EW z3ZMbpGGzf$flkB22}EZTQ=%B0DtQk)+Vi3IohWu=4wfmvja=T*AVtiEhW|6CH)HIC zDCK%0$&k)UA@)6v(ohth_|Ctoc;t>EF8X{4`A7g(Mg4IU>OO3c0N3h z9p+0G*0Z99ri+st$;Kd`MuAL zR4-ySiys=2HV(0sN%n(Cb*qxAX&a1M55;$Mi7XT@#lgsDgsdiqN4&>@K~D|(oQl%P z;;I;5l9Y|G1f(qsvoCDtnTd^)-?%08EWW$;-|jl= z`6(UFind8u&-P~(f@JHwMQCRwjO(pp+ugeO@&C0W4o^FDx=r21OEvIAe^X?WYA#C* zx)>brWy(YcVtcrkPhgjwa`@~l2YHM0OtTfF)1eB*Kj;nk#eXTY;)WVaS3Q7OO<7II zVIUw6B_S3=Icsx{BY>$S7!8+{lypp$r#9T_5hj76RPlgoG31*Z5d~Q*dE$hI=;VvW z9UKaxvA;@BFR_X#W^?+vt(dr(bo`A)72I{hAiiUO&6|trCse#PJ1StH&;MHifEG4g zM^d9sGnmbD_YGmghjCRzit5Y*vzWN8v{k&bsDj57vzfF*0!J9k<~L`p4-Ja54#|Q3 z(M4+1y&qu=RgJcfDWszW z@U};Rvlezdq6uT?(>dnD=MWEsSL((Op9t=l(&2ni^s#!}7bzBbA-BGA2-#zrH!j(irL*fBKWNNR6V)v;hHaT^2rXFq_RSQ-F<{R0K9hekroq{EE~&wSvxCP!Bfu zT%pt`MGYGPP5XEo`=8o^mafR-L#or`zv)NM2Lyz&4Uy{|*lK1H^G(9CXW|6ICFKMe;{*N;LaTBSC4D*P6?j!+k!}~Qndv(2mJDFoxu&`5P znWXEbKlEeGtC2xjzir>Ix1n`{+=Kk;p9)yDHB1|* zVXw31;6H(hllTu&V?@)0<2r@W8p^xn;)OGA$0GX6P&>2zdi!kEM8Q> zqXKLg2yBk}Qlv)xl9-JGgFP1Hu!mwcYnRt>w+0&%><#)qQ?JLDja-Zp{#PHjOtAE_0@hF&AJ$My%vdupWsk6hdhpH8_n+C;z4zjPEbtF zzQd8Bo!2U;PAsZMUTo8zYlhH>+Ukw%YFtd!vk@ffzSli1w+KbEB2HLD{VC55okkis z$PaQHcwKvxfiVV6yo#l7UXHJ4oA6#&4r}u((Zi0pohP^M#JF+|le)cN-Y*WY&TdVC zj0JV?BSih{(g5GRYY?rj2aD7n0vlImpLgl#2*%NzwZXCpROvWaH-JShaW?>p9x{{+ zi1JO)qk+sfB5W&Ruz{T5#D)?XTO1=>aeX-ZNa3_F*c1a ze!3acCs|l{Z4vLkKOk}zgI*n?ef%9SPTF*l8)lsD>w zx*c-)YTgA75Wi&j&7E{_`MumQw&=WVdSSvT@kAA~mTo)c}^gSi&L| zkf`6)J~@Gpo!u6ySc@MW!rKoNhZ)wX%)@@t2}h}Df4!;)-AgDLuDoc)CmEHCm`vY5 z$8YO67L}Yp*%Rb^85okzj!!Hc#YcBA_S)a8`1{>Mum^o)>9klnJt34!wa}VCB6fvG zyZEWnI%S8>ND+_e3;RZ=0a9#BkK+hDO_{)@Mv+Qd@O>L@iR0K`c7TnL>n5mT#o{Y) zk(0w4NMV&##UMNVWu9m*VnWr&r1#1=@V@!@s^g#~K4{cI&nyk_{d)${QuSa{Y)nmd zhlmxh7@E=+vI$Bx0k~cukHMw57&@+kjHV?YHCkB2u^W+PR{#uk0G+vw0Ew)PlnYd9 z3TOmOM@pyIdr4XH#L1cRBC1+sK-G4z&n`Kfa%2``I~ZPh&&Q8{*NdR)Axrfk# zOki{4pm^!zX$c(t#faHleRdSnLtsPy=vup?hC8n))Op2HIfhvW=dknMnY#EH8jshW zEa8=hit^M(W1{G`nm?(WbWX0b^z2UiXR*Cg4Z4@qS#GSTilJKzBfu7 zl`_&*D+hS!`#q=$z>`y|d5n$y&TL0Yv8c*`kH>$~3%97tjY`XP+BoQ6HJIUmsSd(cu4(F0FRwmo0xshUY);Lgw zgQLISf%ND&2U7FV$J)1lg0EZ6c+E;;jn{?&_OXTBnXxw}l`QPCv>42J@KEc^j@7^u zMPRdp<42Da(ORe=QwdO{L(YkXkP$X*i(sOmvNRfpxn0E(xpaOO10%Ibb(R?|EVAuU zy3n+ZR8k5XFVhMTC2kG{Gmgrt$WqzI04$vH$qsyC-z1u{46e)Zt2@eg`h|X^I2U_7 zK>M&7^pAuKZRsB_w(@%+F5)f%JI!6iZyeZTZYlzsRw zNAT9aPgn171zhy)_hVqAQ$G;ce9-`#+kaEQ^2IVfUzejn?9h{&u!8|M4=FWjD*_us zjr#f7Qe~t1641=iV6(i2JFnEPZ`mWC_*yH*O|1`*8|wG*)J+4zad4<%3%bq#u{vM{ zFk?XuyQ%kxNaZX0F>d<=_Bx>%IiYsk1XE5BeBb=bzxwd5-v$c^R}Q zrbVAU^z98QCyabQOKh{I{Iam*zh=%mEEl(J=& zhx>n1fV--OY)YQY5MT7_q$N6zJSIeXAyjEE4B8?&lU(f0aR}{762rrz&2_;9Omu2& zP$9#30`tGoj<&5DCr9T2*1i2xoM*S-Urri*d|sNbD@H4CBQ(%7h%jTSx4-VDpmqv4c9=Ud8XtI3>LW@^^8`f3)_v) zkaqK*!8Q(c6hi(EjGWZk%T=a_` zlm|V?wOQuIt;=H@%b%k=-$Zm>Wkr(3AS4qOT3TfUj~4n}cS~Wu3hiJ0p^HD=SPv%M z8+`o0U@OBRZRAhBM*yH{uc01wbXoY40XA>GTtQ#AU#|npp2Bw1Q|KHkjka&UQo)0& ze#C4(Wq{3<`dt9#EXZO{1p;f9yZFnM(!i>E6BD;j;7H{*C%ed-&zJGi{YAJHj)~Kf zILs*bS^=155TGtcf(`wnOGGLwP@|x~=?k*hao?=415q&GeLw0Acc@Uyh!xR}6&)Kh z=lCXUy{GgpZCF;rv)2?bd5<(!y3C{(q2_(>DS`sLiDI(sNv1JXyEQGwM<6u0OgWDEne6|H$lM*Pe^RWFc zNvvGq;jwG_fs&6DsZ&MbFs_ez*G64(d>@fwbc?kpiy zstN-!*=w2|TIGSEisWt~l547<=%q+DErJYmLSPxOM?#XzFtmLKBN*%fQ>c{3B#{S zTdYliq}>s8L`ZMKjqFTG!sWm1wol>nhU&5Lp_kuYbWS&Za79GNH|H6B&v(yJU=vPs z`AbKajW2(zeM^cG_Y&AV@JFdeP1!zyPZ@2w;vA*kF<{U6IqbPW8odc@?zl?ZY_vxS zIO2;fNM#tFyL%Apmg`g@5MXn-QSPd2jP*8`BTUV)?68 zeE6n}BhuxVKgVpBzyZpQPsU}6*_nN8vxrn){8SM=D?Q9RC9)E{e*Ylec_Ly-G`byI zC-AW|hxh4FwNY-pzrjb~QueRgF`(4MciN4c0 zjfac8>|?5{QoC%6BjFJ&JD78FD<;fw z4;v6YFPVhqc(SJk27Qbkm&8S1>A(+f7{D9vl(F!$9e8s|4bQzgAXgoq!xurvL~V(l z%E1yR4~i`MlDBBU(E_X^E2&we%?q&M4BJlo_rd0dYYIwTsUIobg(rP6niQ7`0MG~? z2^oRS86OdB?*F4?UZh5S+5m;i4Pcu~%;sRpI5gNu6)UQ9D$N9wkyjKKGbsi(*C?8C>V%!&fTsYcgtBoYBoW zGAWr(rBw38K0(np#;)w)(@^;?MHWBl25;$bFzbXSy!fXf^c8`*$K)`$s)i5#RuU1$ zmIy5)^>1~SO?I`aD3R7 zgIvwRtdm9(G+?#;p713g>{ltnsCxH0)>8%*MowOgVUR=Xd*GLw& z`_Xw!+gG;XrP~Iu{2vu`Y~`RbI9#PO+tH{^^x4o_PXJCjX(5w!FjRC=t;sYgGLvJB zafHDU#^*FPWI}YwU2b94@lD8Q7#{oG5Vo0}LL$qs^sgnP319@UMQl)DTZ?Zfi^onAol`_nMF6f^-IrcsVC8 z_ffyAT4TK$D;7Nz2Ys1f+|W-&uY`F$l|@5DfvU?eatOdt4U&D&C5qGTaBavJYM6lr zdIHgF7*GL6_fUXLK7r9~bZn`IuYRT-k33t(i_Z@rpJqsLaSr%ywkrjULEo z@KleB0hDn%!keb-O8VK)e6|U@&5(PKo`0^4d+#bnR9AJtkA4=ZQCIx9w~hwKRfDg6 zGa80V&h3s=4+S3dgKRcmG48wd+5(m?CWfdC;Re|jsDWq^+y7mBaL!@ZIm0opTLGxDZ19Js6m2_yi1Cg zKDWBw@J)9lDO&l&CQRB{dfG^RdgJjTa&0!crY6ubItniAS?S`jEBkQdB^}7NjO@WO zTOAynMSfz0RxPQ17ckNvuUH~;B@ zLIC`tCv2i=AyPCqxQO8q2jHnnnTuj%TO7Ie1d<6#h()qY>$^pf`En5xxsJIH+x0>5 zYP1bQlrJLn>489;yg*=+t1!$ttrg>EHe@#3uVU$2m*f0w8{Y4-u(oLpdPSVg=*bvw z4`Jd!6?9JqYOF ztBfrUb|?BP`c3R!jVh}tr5+wrSR%zB`c~-OVk^D|991XIaQ1o47^l1ze|@@)2ktG_ zc_V0Y{^;_LX0y5EyzY7(U8ypoVqkL%fz3O#TuK+2*sCKN#c|YU>cQq-Qll8dl8%pA7Y;4s=v~w3m#&Bg3-^How{k*vzT}8yELpMR{{H z+{pSXcn@ci9;-voYDE|2o!!jqz904AfHPV@GT7XE!3MGV*T_aAg79S85xHR22OdUM z(sAeV6TKcM=&(52)9iB0I6Q}rF%F);w~VQ~C&ck7Z~m={V9-Z8sT>==R*)jlCE(F4 zg!-frv!ZuOM#I5VHZqni&JU+|>^w7zt!JfC_P}3xW{CAJb3w;P1vOWwiu4p^+H`mT zCq-|w(NtyF`y1`(n$pl4<$L{je(|sI(`-B5>1;+{)4S*uGv-Urqch=R`)Uolo-rf% z>aHEu_Kn=bq$QnspN}B5M3s8Cx=zP&oFnl96oVW%k-jC5WIniwmycbB1(+Jbwz(cU3AE)#3G5D`@Yq zF=3L7oTVM(OWup}S>AEeP{U(Y$YyiqH#R?0pKdRK%{?~{iE*1U&B1a171jNx=S6DN zyo0mYOYNj4W^>Ecl=Uw1gfwIuisj7MFN1xKlrH2#kB>j<+%gS7YLEH#U~|vU`@>nJ z({Jj!hx1#lVHA&Z@ae50&Zd98kN!0tdRKYq`OriEYH7cs2{rxT9Nu}Zj1T`+#nBf> zYSdG|?Z-M1n-paOH`|r(vT^7)qQJ?&oV!-8g=*mwFEEaPHdPy$Duux}BJDJr*6pIL zIo!43B^=B=E{A#hq%asT(7MHH0Uo(-04v|9iG6(*X$JMvCOXNpA>1lJ7l+u1-OI2l z45PZzIOME6a$PErk`$1BaH|SN_NT}08A9(n6>!f(mCPF1gqU{@Mf6uKG*vBp>dFq- z&Go=1y23+Y_2c-}`Zv9Y$22+1{Wffvc&t!FfMY)3nW-DF-G+6T+MWsyT)4M&QZ9ig z!H3a^*Vc1f@_+^#A8=_^kbzAG$k$I|9j{HmVy+-zugUXw1XvNGNat2aZuG!w?T09A zp%kE+Vz}|bPBb-H0)2^<{QBt{9(}NY7WhaL{iAuV3ZUYN8TkriOra3Da7Z5(`&k-a z5_4!HnlutCznB=!0}sexf!agl*0_k8))xWJQv^6_HKRv6N7*<}F%oi@UV2e4_L!5x z(Z{OfTPs}rMoesZ>G-6uR3&huMp^i(VY3-Y-r}FX`Dz7s6M!iL@$vr^dA@#pJ{hj% z0%|BNW#0FqUyNc{JlNBC(LKAkFCG99H->u>9Yv|eNGVh&za29(g zP$On@=g(CdR6R3eWt-3H^Qd*CviMG`bpUeh7Iv7I#-v?RxbLz)_%)7C8DR6|Z~L(( zjJh6fG;Zp&ao9H_u(|ELby1+Eup+4AY(Ecfup?|R@^K3IE7c;BibP!UL!7+O6GpT4G};Ype90M@_v zdz|M7cy0Vx^tapSX2-I!Xzw}C^Nej{OrZypN(mhJqdjrP#C$^|F*cMqzIta3wW5bq z%>ySzkFdfx)`09Hf<w`P!A)BD%Rse_eEvla-g+R!zv5j8*t*!ep(~~(t>9zE< zR-<&hjfTYY&TYjQ6)^Y8%M}rrxYs-xSVq^w4;Jy%ljV?|?6+SUha4eSecIaa>t7VG z$DA~d{MzD2+op%}}9aWctPG)+0D^+~@+wGwm^#rAz5MUE|4Wf5&5ZD}UFq_-XU#F5Z>C{>E zqO2F)(1WCd`_zIagIwh$c!dnwL8)fJw;fD7t_9mqchKYj@4i&SKkper+V{b2$!f%@ ztm2dhxsOl)T3uj-Y=_wSt)oU9OQgX_y9~R`$zbMZa^X&QszKm_mp=fj^?~I_0hL}4 zw_MYQY?B3-aa0Sg*ySE1EMx*3+wGXa-e=?*1rG9RH($2okL=u(jU`Q4Z0Ons1(`gH zb9U--q(-eqbFGH$Tp!a<*%@D%JsQ&*(^FA z@US=ooRPlCV2juYbrcl=kJwhLTzSGGFJo`a^p2)ri+UMgL;9;Q5Gx^?GTFfyXGW9t z_ty_#@nRRBJFN-Rc8Cm@cl~(~e}Azm&KdgpH(Sx#CVdKzJXpjtPnGMzMgb62^Gj#8 zV8Y}C3VlAV`FR0@gVN0^L`=K%0P*}mhiCE9-zs?NZ)FUTYnKDtOiSRfPvr%O-}vhS z1`6tVk?4tI^41PMabiSdfAKw)hJgWlA2b|nFpchceMZz&=BCzwU(I8)p47RtgFdr!g>Jsugl~%5CWUWZz$lzi=`oc$*UEy z!STdP<=-E^UBwgE58#;Z7+~|;eyn~+?k9_wR}?SQ90Qv_oxfh}%hL(4!uHoaAAM?& zGs70C&fX?K5C;Z`ZF}Gz15Y|gwIyJ)0Oei}-1U*Bqc%0$S2=I=-&B66t|9}oTLEx%^RvGI;vRT zXiAWJmVm<+>JNE4%>$Yc#tl>3$5;ZeK-;1RIcGJS=x=V-pE z1cf3s2}Fol>7Qay1?!2JO&H(@;PVEk6be3m@O_zkIGwie)vq?Av&(_!aa?^>0qfTK z`1r@un6FeW0_LCoun&bofY}DKk!*)@vTy-5l+J>#tA5&t?)5tSIdX5ewOcsj+}6-Q z{o2bF+;!U!@=X@La(=5yg#q+-`?&6^epE#eo@`j0shC5s&-^UtA6=_fxcH-HHhN;I zLDk?RLVy^@0Y~RWPG-7Dt^Ccx9(dX#C~nqUS0rH0nV-cR!#4DnU(hC2^%6s#;vh$V z=UOd%RwWQy`dS4~{BaPc{aB_4?Ox@Aa`1fOoK}n)pAgQ0TQ2UwC%@5#oN|3XMrzc% z(t{TVGpcEGr-dU8W^?QL>*eC4fKx7pa-*eeS-sI#gG~fv@mUo;L+pd5m1|kB$)!#y zE0U6>+bVKCUcN3(mv3~N=tJU`De`xhIg*^=q@Q&n+bnWKahjLRX1u%#toQ+E*>)h) z1-$b@17iBGNB2Ds&RId zsNcec+*))v(vy9R4tg=(NnoFE%?ZvOleZfBX?se*+4s6A4OEfx0|6u=jf4mupx{0g zB%^8|8gHs7wDVOPXY16ckV42ORqx5?CDWluN|}*NvYgOvq6~Dz8YuRMJWvEAG*}Lq z$8{!Z5-7R7TNsE#0nn;}C^NF(n2FK_h^igu1UB?<+V%;2?hDZ&6c65C#52!O20q!a zu1*VQeyv3?mnWaBV8)CjjyXQsoAc_T3U2=s#k(-fo|DAUpN?!cq*~GSm9Mp6+{6fM zHmsNDqib6Ud0M`3hGais z{Gy<8MC-*RLITrZOwW$rHVPhmG1K4E~(Edp#btV9PSnh>H}XIcRD)U0DV`XOb%)Wyoai6ZBP zao11~WJIwFJJIg$@U#(GsIc9r`9cAR7J*Hb;pD42d8WleVU^F9KVM~2cS}(uG^6vi z5~G0rRRJEkc>rsA%fg^6wksr<&?pjBhB4cvvEYnmB*>^#e|g0Z`7zeKB7v6oUgVy87()x7|;14pYy`kf-I znp7l;J~o(=FgEKz1Z6MMfrBFahnNs`s z&OInA0EaH}dJ))&%Sg`=)i2`6^x3ZaWU#mLdcE+#5MFz_jN{I4Lz@cbyY}lFFlCn{ z4mw$?y6?PH#)R#YA=oT=rGf#mdDVac!-kN`T9{_o-){c81RGPWGuZ}}qGMgO7@8cw zWFXS6Lg`onSfQm`Nsj?&vY+eaQpz=jorp7lm7PWfWDq+SNxdW}C6YEpz@n)Ne$wTm zcqVVLf8Jfi-yRxdTkU9L-u_L08lx-{I|ac2sT;B=Yi;Dae7QrIekdDurNTSYbo(q0bc7t8t}16mc&Nwj_iqj;B;zRa+{- zrKm>*DxxUyI;Cd|Od<=i>I!Y1*FB@6l107{0w_{!NuyM;2xc5ZxcZX8T15`iPcpU= zqnW5&)l~G&HxA&9H)2Rb!EKWr9DGO?Q>I1)LsMIvXF8taf(TXbA0B)QM{$a zVz1m+!mH2KkVrAKbulFJT*NpPX|E$~>)}c(< z@^@GMDfkw1>?IR&Si5!z12^}=UAR#C{S9p5?5pn~>8?jhri|?i9(GzVsdmaSJ0$iX zzR+k0?s%Qpjf<@B37d*Y|DaA-p~)^#mk|q)--*sMQ#>f46QMW+946pIi&y9_H*G;8 z9#Cbn4`OPYFhyvFB$!sL_Vl;%h6$jeI0C&*f`Co0+L6gXinq$fM(_RPF?q~TZe99n z(MuKF`RC%WZX)l{1s6uP6uNTDw~q|sz3V;P_=^G5XeV@}5kySNU`Kl$l*L?w+5Cw> z&3HyH@}a=$&7chU+(m83EBniBSM;H0wU1Ao*@DpuY;OH&FA5ucjM>V;+7+It|7X7~ z)vS+l{ZWBUJQJSwEDd9bv6q-Es1XpE>Q>lU%C@E#b8=;e3`#GqAxx=`6Nz>xIL(G* zTd-ZA$zqs)WHYwiB_&kHryeN@`yD9+)tU>>;$Rsj%ntN8**P7L!z}~t=@j4RxE$MR zZ%5|*H?F`(&s%@-F85YD&rE1WcgjKc=QHTP<5*#|hyYaov2Y=GHXMhRWFOjwhOlEV z5B9!lFLuiKyf{NDMw(=Z^?48bSkvPn>-z{OiMcA40Dyo;pHUnpeO8lJ`pZohtz<=> zFs6_iW@b54#foR5lLmDzVZAez083m3PzlfxI#`1iE7gj?hFB0w$f#yAIQy0*!n3K- znp_J{n_^~^i}i$)nlN?SB$h9A@%w8B#JD!PNPRl|Xz9{k{h^0DZXLvi4a09HCh_?% zHDl6N^(iswISTT-`G&!W32|WRHVzItIE#r}CD7mNZ5=5k(CRsXT;Y(+= zpi~U-ms^L>+e2d}jkI4py9Hxn={R+J2r#a{x`3Yb>V9p6Q=LQOyx{08c30{g)%T`f z7tp(5__4Yna2Q(4yn`rsFk&{h60_0Y8=(my$SGAUnPE8gD=lar?Fbk5uP^EmkL@rk zC1R?E`U8CUzALi~gd)Ij(zhc6@q0pzQsW^Ezxn_->7^t!YDYtjy77Vyavxss$W}HM0XPCY401{3iVfmA zm6aqulmnWayj6u9TS z^#5t^OQ7tk%5=YdhCA1op^_RhSxF!R28byfSxUYNtK9RapHT+%w1X)aRsE??nS^gwhQiBvnD z3#RCTY!fS1`WPOTI2@1mj*$lau_}5rHVKT6DF(+l^G!~Liyy~{gE0oC%HfLv2hW{7_~unB*CaS`6#X*PAL72>m>e@z zF9i+!@o~jCqsCST3%Wc!x3#Rft|_8gmBXX)ec9&}aV|b>Ay!!*r1%4@EZ!F3Cr?I51rolggutM~^C3Wm$LxM*T?$Q7 zEErOMVO-!%YKf5KMWaKZQ=zL@>YZ0n{u+R>&2woO%gIy;I#V_7iK*vP+kXN$k2VgO z9L+mC(&G^OD0J)xLz{8Rq8vCeo@~knc{P49-KL$&^6Po7cTg&z#lf9sz4%MhdX0D$ z2NnJt1BdDhV!lF#`{&l`n7iX`SP`qz&pJxy$|kqmS8QPjv^Yf18V@SU>#5^sWw5QZ zVVp~AIh(q`GR;Pydus(aJ!Y$O)NUfQ1?fIr58O!pMt+$LOxi+gGw@Y3w@kz};4|O| zfu?K%4GD!cC!}!d+jEd)N5}zg6I2i?icS!cyZ|Dli+rXa(m6+&V=!ezvV^{a_sQ=c zen{S$%0>Mht;xZG67pZT9Rc~)#2=_TM?Je$YVQyl78cNPa1@IoU!L~GH#r~cYy_FY zr#w>*6n?Np;3p>kNe;T|mIv1tnJ?y^Cb#6eI2P%&yOjqs>mc~EnvEc z7`?|3Kn-M*rMIdmNAWWhBB2THl-Zl|oLQYXIK;;{+f6;2cI#~f-sE+mrmC2Y%QxH~ zt52w_%$>YHD}Yr4X!iT+`1A;>B2AU6smx7m9czKCF0h$BN8)OdT>mL@n{!?3whi`F zI~=#3)#Q+|B9yiP%}jcZv~Kj91ryr`>MFO*d!1YzTpe~32UWXQjKxWdKIC1@i&EK< ztXx)<2+Tu!lLxP?1E|k^UlZC_`7ED_6AtE4Q|EFefQzkR2KW^Hex>m zO%_31e5!zcy{3AUa(cHQl?gE4$)jaN;>0!c)H$D6gR?Tes2g5O6>+b5GQz!2hFqE< zo1ike5nG!0@EhdTA7bGQhKkv9C`rbsaO=j4m{6N@ZdmRoW;2f~XvqJDJTQ#~p2HvF z9F)<{SF-&ZPh;{3rgVoSN|9wsQtlhl#z)$G7;-`+S}^^Y+3ZMzO@-Rp5B5t2J_R=o zil{}2%-hs{9l)7>IW6mNk77*OTk}x-5L>&Pwk2@tIAi;_FE`(rOm35#ik)DyR?Njz zTv1KoSF@(+qIPUm{}bIf&80Fjj|MJt@F!6aGYoCaoD2%)zG~6{-6pqP zvDg@|b^z&=KvRRx9ZeY?gOYL1<0;XzSOo^-Rc;Tp*}PU%s>U5pvLRK5Y?D-3ztJgR zHvPg+`bEd>QMCnEi&{**DZ>@{YStRi zk2Yb!im3|UBXx}{k>q7>ajW}py$|8u(8a+8IrL8qqyKxORa5uWwV$R{rIh&O7Nis7 zXmdk!6(Sse=ECwv&R^-SPxg?nZA3KA*g>hJ!H&VG_0(CqFCNRq8xj05ueb3YYOF=B$xM6r5(>D;r(gLCs}O zAdlbps~VjZ>y)@}mi^ayCVG}OJ1fzRPl$#pnm^-!$;w50B<#!dJNUR72Rw%g1`&Ja zxhVP)PEbZFN`MK2jS8goVNul-5HzPY&S6V0QDdRZN)fTjk4ws{^Wg*tRNLVjFw=!oTNsBNu_v7s%oN*s22OyVj#YxE4wv4*ee z6(6_ln+2Qc{B!Kn@v&IU)nO?HP|Rm-{?+@N;{LQ(yRKTP4}!zD5Qmh@xkzSwuH{ym z2w9&>b=fkmgEP)btK;926r{uAl)SZ+E6&s^sNGK-KCt;`&t89K`}*HDHKqnrWegAG z(Eq*dC~aE>QID&cZrv&~Mgf}R31l;4$VCyl#shiUdlrZ1oxd`1vhQ%B^(j{nD%`nK z;>IT>#z>?pE2PQ5WOX={zax?eO+1x3+LbgFq~EbR85SBTFw<~5mMd_G59WYP9XnM$ zYi5aM#Go(Bg3ky$?uC)gz)vpoY--naf9MG+^v-Q?(796yJ|}L6Vymq0W95*L2t|j= zfEzQciUQrL?6i);pzn-TjjKV}TqL#tnLhlQPEiTGD!%Y9oTMujEgY)@tw&m=-dY!? zYfD$@tOjkC`^`q>6{;n48V$d@!xY&(H&sP1BV?b0{TulU< zn_MjKazXp^`F#OK#&nq!UE{jyrOc1n392~fO$HJTN^#N2LQ54U>TxwyFqzt()sxvd zu`ODz$eP170o34M@z05&R7KZix!Fj;Bhz=5Dxgs9wh&$AaT;=_REtCKNAHYdOK~%t_3}6I2WQsHgfI%bB;p>&{Vx9C@ zA*O%PIc;cjIZ#Q>KI(kJM9pyVu(!j;mKts8ys+N>W4!np5!R zx+p&XI5K;-syDo4o!U0hAV#w7qG{MedT>JT1gZil9VikPU0PF$>4_amvqpCOaS9%v zllaWk3wDg}xq2K;?Ch~|fJVA_zCb4FVE2Gz>mJjq+Wbqgh9`qb6~ro>h7qf$Jv?S7 z$2lCk&b4jVwqZG-T1cX`vY^B!Z{}unroigC(W!407o1`;Sm}vbtt! zFu8tkHd!jo1T1U!RCC(gt1u0v_4>R%+O z>={?Mb%(_LPexFlf|nFfB?T{FuAC`LP@>3jO=(!6Y=DNQi37-~l&^^-5XJG3DZUd?Np#|FBpiAlv62oDQFTuOF{8AYNpn2 z)gWYD;7P30K%p%pTK{5rv&k;^^#l&yf4XoH2iFl#B^0QbENAjp0-@{ZvNyznH+zuF zePoA5F@D<(7*P&Bc*$Fp%;&{#_B5*Uyl#;k5^#%UBnw5YZ*%o=k~*n?k^J;5SW2x$ zkE$s>4$&H5Xs)XMx%S9tZmIgO>A=XgM|&wD6;e>3s>GCPgbeJ=0oLq(`_F3YRzIWx z(;oiX&$WP}by502*Sl&DT|Kd>RxH!&ZHuN+w4VWS(^<_S+W9q}{FOXAlGl~l6i2&s zkiwb7Z6d;g;~E8LKbSw?#|d37mzpVr0?o}StmsaZg;#v`%U9j?^=ohV@O{1?X40OM z8Z8V)NG(0Q;oK|tZQOXlB+Jum#$9)ENMSs%1Ab`)4NYU{%m-Lhl2~(ANBP`yR{AGo ze33a4YSDa9ewT;)6zoed6y%i4Aa zZ%FBhW!BK-zA-1TB2I9jFp62CRFg%8gU^R} zt`DSZ)kKr$#pn*0%0vQ@a^Z@QMXM+x)qa(rP|27|LTM_gN=oNSISv-$%5dD{Y&b_PXx*jLXbj}ygQgK!T85M&UbIVADRl}I6i3>{9DK$gDv z>DFSX(My?h4Rm~L{-QWdj*rCdGdeg{@SMs$*a&RHD;tX^X9A$ZRxfu7VWi>wtZ&uK zpkS2CHB)_L3a$+eGg0|^@3!Eq;Z~QDVGhT%#{7*90<1XwS6ia-(^}9oq#lqI(^#Ul z5opXfSiLrZMV&rZy$qCthNc8ou5d>V3_SOnPk;KeSKWK>?Snr2EPPhl5{YsPL3#i< zX%Db@TJgzF&rD;kOk*5ya^vVK2UwgBN#i;5{nuomdth0=ulB}1savrmoOm}riPvIonRK3 z4i9lo#=^k58)zNOM4+&1K;n*rz{9&r2uNWz5y6QB(mvpnB7~)gty1NZKI)T#&Nvi< z{D8E6gDWi%7ertpNdzMf$xvlJ3Hmr_imW-8IL)(q2djIaf9tS7EjCSe#VIk}Mc`_E zj=Y#9rmB1;#|Z~2;Xss)^Cdk*&R-UKIpINR za;>TLs_Ly- zoMWmA(p9MBXDfuPehZfLR7a-W`s~i)Pu7qU6QYQdm87(cLIjbgX-pKdK4;;w4A!jl zkn<$Qiw+0<&go8|Gl>_T-1NZppZ&_Ge!l&=r}7y;)#!O?555*=RB+HO78Zp8e*HMG zoKMP;u33W(HDUpW;-{J<78c8Bnh4Q7Cxw$gx)$dzZ&GcPhNHf{U}`s*B9ksRf-DoG zK>-ZAmMAxY2?ua8cR|#F>tIyx ztL4$BU4{4-G$>kQ4yZh8V_R$5vb+$p(MAN-S^iCm0aB)$9JCbc68SFA8-Xe(pHET= z9Fi|h5~gMk(J~*ZJc4l319)cV2%`CG@uQw@ynR&yVjS3ZcZC1`*pTYo_pIn_X@Kfp z4yh7w$%~ovU!=3i>m$fYPiuiUp%Ff%B_U%$0-(>9cvN)^Rt-@F9y?Q2amH%s^@5Xd z5x?U1TZ>cW4x>=F_uKE8NL4B@8LgP{NRETMg+zV7B@UW9s=cOiUe!`)np>$J!x&Rs zS8UTph2qcRN~BHJITCA}Mi0^A1Y|Uh#>aP|f187+vmUPd(i_xSi#;*2k8P={CFA1JVTH^7 zV@M>P7=mhS1Ws(x{z$z#Zb+pRf>5B`M>4V|02LdQF`F<&X8noIDwiVtovC=it_nQp z`V-02z1Gvsa3$2PtrJGvEGgN!fSlogEGX+4jkj-B##p2*$KVNLa4?15;#-*eYc@QA z0r_H)qDoS(O*-gg)=?Do=OR)Oe23U)B3Kds+jD&GR}3yHbc-#9hA-A!kKJ>++q&nr ztq`v8xrzu|8Toq>?J3`sLdpXg7pBp@#6$N27i2W-GwwR=zK8DBUOAVRz4t%x$lX_5 z{*T|@zIF3pB9Y0Yyj+rq`=opZTqJTrAQ*MvxAl*X?%Siu)%4dKgJCC1(uC&J`wr2z#duE84U>6wTUZ^0C@uJk?koLSL zS+SrL?%N~9tveN-ABq?lD2^&D8FRM51G`UIPB&#lHD{!d&iYut#K*gq3$?ga$aE4; zlP?4j``gi!l@ zIQz9)n=FmqAx$i7;(3e4B(jl%SsXJ+fl2=+y@p@bqAg2VGtf*ea!$Q0qoMU=W=@QY z6#EK{uZcMR;dBo$$uSiFf)p%_AL zJs_RC`XWIwOr&6@U=l}nnndRUI5yf1>U{D zL3gvGS{sEJDM@kLeuXCv=;(E#3iOI#)O5G1+nh{%%^(TT%8E?Kdc#!tp(7s~E3xrL zHPsL86Izd;DcY2+Zqu>GoOLQ3kkx?@7t>%A@h*@^0;MAG@K(j!g!oalFhcX(5CeTl zG;~JjSSH~_4%U}a>Mi3C-AzJytx)3!A@V*jmV=u+ffAtd zNS0Qx#mGj&@Mp_K#An>XkU9TTps4y{jTJ_}qZBfFcvB3VEIg#x8CF^*_8b4-Lkm2MTnU(-K2>g=9LN&KQXoA^6z;HH;A zc5Vqxeuzd@LgR!)vvScss?fE5uIfImL#%Gkpsm4&pZ1VQIx1))8uP3&dF+z!DGGHURwedCfwmsrD3Wr)y@NHY)kUS@D}dg2X`9{!h|E zOnYRse#Ka&H3`+3^Cx-jR1fN8g>}V&*r3p4C}JnIgx15dC__;oq%#?p$T;0-CEQjL&Q5*JDw4>=VQM{CQLzl5F2 zT%Hki%xosAAIUQU}NOhu9>|yvXHpeXJrEzpo9kw7@ba@4AXY@h>0Ia^(FyEl~+2%CqwfVyOB3yTw!3ptRi zBn~6VGHfxB>}6Vt6y|vj&TesVDC1#!;KB7=khonvF%Ac`Q5uFs0w@-%L8tM_t;gQi z&MEhW)gg39DKWc3(E~CZ;-KwRbSTD6VYIAKXdTT0(pbrtC@7ZM2PRNy&efc96}E1k zz@fZE>NpoG=LihkI;zkl#KO0?sDq=v_+MuOi!uWJ<515GNSx9o@OZBhkBmCV4=LRF z(|u}nSDzYPv{LL25+XWSKu1Pk#Tgm)q+X~X07|Bj zBQ-#=gi=7Y!xa*KaxBx}50V5-VJ<{qkLF^_Rtbo*P^~UT3Vk?qXIk8OTnYcNMxvMx zQTX>Y=<6ZV=^yDjn!P$>mx#;hArb4{NVb%abz0$wQRI>i8lwUl!ZMstpot_O&%>M& z0k^hKI!=VFboner2?wemqajzhK?31uI_U+;G)70$7^Aw4D~RWRhLX<$sRb#tC4teQ zvE=n1zU4!EcRl?frPSPfA#71HbfgLq$r2x8QaG^H!*C!Rc27x`oh(wBB)qvq{q-&> zODgfJ-~|dfCDC>mg9&z?eB6qI=>9z$>VT3~8 zK}a=WOra#hQOUik!{a2*W~P;~q6=|K4wWM=AeqVGEg!!C^Z#lAq9K7@-`#;7_x>6| zYZ`M;U#=Fm=G5Q|2SoF{Hg)r+b>eO3DRJXxT@=c|^^Z%4K80I;6`^rq0 zu7#00P;L?VeFJcx9m2}Dz6YI`bihdh2R81-{Xg1>D2!N%IV%8RF@ac8Vol?z{$?6* z_4hbT)z#@35F%wX5gdx)qxE-P3EvB2E)VpZiFGkTF{$OFBkM#f9bu8!=9po1HF2Z5 zxSDX1>|vDh(=wZLhQa{-C!T!LjhBA&>>G2LM2SRQdmT|JLTpKFYKlc5(FQdyg|NIE z!4Fdy>uDD{59}*&9aFHe{U^{_wF=_;6XCUa5Q#m=rPFYu5;DSLV@QsyPfiKSi_l1C zG$damsLLA~BKeLpW4GY4rxE>Ckx9yq=s}9-05ncfR-SdxoNm z4jp==+w~H2%Au1BqmrPY!$<{?QISEx5#$r2T}d60s3=5yPg@6w7LsReSPtQGEQ(;O z4lD3t!J<+nO^VW4n4zXyWE06N5-HNTK}7+CDr#y<4qDVdHXDy)_m z>jLjzr*PplMcnywfwr|t9N#g9aN8!Ny>Ud#PeOk8VH6*F1}Qg-^_QKC=D%pfp}YI> z;8*?~g^2>(6#4RMUcVk=qkmw(`N@c3LHtD=lDOh`+Q-RKMIxMbc43es?pH~&Vp)(e zfw`6VGP=juXl6P|tcjLz+yqjoX1Jb@Ff77#edRgDyb_s#rJX13$cnxn-}>9%-94va z&Ef5RpPtd2{352~6?Lw?+a$VO02-($6j?75tsHjc^#7vyd{Z;g;(~lb)hnLcVVVxwbBx zam8Pw+&B+UT)hW7?%RZ9O9Bhu+^v?hyBOWE1?kl%svCZ}PAq6q;>vF(@YQQexPN0F zr<{{RXWKJq9efHv20I5@Ft~L$%7YTC|LWaX{h5U*?>>mT{?9FtI9Jq66c>m89cb+=*#zbM@lh>`Enl=B} z4EYspWi}__n0N4|4a(iV8j8Zv7n}%hPB#JyhnVwY1Oz5MS3nSFbU`dx@{8@n#TReQ zs_~$4$F6<-0333Cq`>yl>1oJ`AJNMn?}UfslfHO)BO_bC&rmP!i};NSg!6G$n=} z;e05Lnw%3nX1Fg|n7;|P!oiS+|CcVZcYM-8T8!M3U z$rUcj#Sr8B$8r4nliZW8e$U)(cTJ?9xbmm{rNg7+iL*{p9cwz%3wGbrw(EtRV(<+g z6kG0DjIMVjICTE`EfKnx_F~nxzvjOTEb2VHR1m@FkAC#VsoC;h?52N}KKF`%&7`?tpMNrR+gy_`?@aad zZ1N6oTb&w>`WyNO_a>zbL~=^q&m;iteLXTKorEg5=;-Dna*sp|8&s%g-5@A!wHXyZubei2ibHPjj|tuea%>w{Vlo&9+PW7a^bFT zFIscO;FG-v&%60I`!2ce{EzQj+I&ghc6t3b&l~#A(1Dq&u<*VQxR(|(Xc@~?s(R9u7(nq62c{xTk6Dwtz zq4>Jf=jgNzSn!F<)wfRV#xk!QY*_lEU>Nh0tIwD#Ixl)=^Ot^g^Mf5vw4aYs^GY24 z!vxgeKAh5g1I{^j?a=W1&b#iKE$WW(f$;Gke>9stJ{$i0+2>XHE1!`UZM{9Y)5MI{ z?ltQfSNr`;V|Y2{Ej}-CqY;}DayY3K7!?X>5nyx<63S_9CHX0be11UW^M{Z~v>?Ip ziVD3PV|mrK`8wFla%nbgQr=y6QK{mJ>k9!38^STq zaQA&w?F|C`b+~=|J^g(-F6||8q=QO!Ko27b(acV;q!iNkkMQ68n=TC2T>Uli{e|mV z%d_!cO(Q&JePKuO+RaF<)Ats1fWFFskI${%wDTZhzaO)n&AK7|ehW&qYfp!*{Jq}r z)U^w7`SZQr7e25K&*6WTIy&3ElmFq+BVT=C-|qIi%co%5okF~0-fcMV6Q_;rU%&d= zfBwb94Rg!E*w-#?X`P>p{$d(U!+uLO5v*RtMp#tmBh zxu*xXoQxH$+dHzsV%F>PCw}AWU~?1;T*KYeauODFYAK|>&wg+1y07Hi*E`JApRoJA zJN*Cqlcnbz+U?H2>|AWze`%?ud7ZcF#uIR1cT_s>y4!XoZ~e}1@usc`^~vvk>cLO$ z&R(_cy27K~yAtL9c2oNN##R&t2l3NS&nE>&1)Qe?k9uMqagVI!J^l2fSezMdC9ae% zBMR3On=1PDX_~6&>3e!K$jp?P?%4JIPot$*a>KvIW>ATqO>i$i1JM;%z>SGh({0kJ zoXu-v#L=e1$UJ-itN-OkSNv7emzz^?p&$nhvk(V*rp> zY=+x&CM1?1k-KzoS*9(w;<~f^i?&>I+qs*6_B;2ZKm7ayU(C0Evv_rdC zpScMBx0X{SLjfq!EWfi`u$4Q;-s4Slp!-GBpo zpIHvtJ(~ zlUYk0<067($!q`eD^3S2*FcAwxfcL-L)*` z@RP!)-hED{cYX^-FJFklYZqu{-T9UmO$l5Q$c{Uu@i}w1j36v7()O6 N002ovPDHLkV1l@4>7W1r