+
+
+ 本地HTML页面
+
+
+ 獎勵說明
+ 在您使用平台服務取得和提取收益(包括:互動收益、通話收益)前,您應閱讀並遵守本說明及將來公示的新增的單項說明或規則、操作時的提示以及規則。 我們在此特別提醒您認真閱讀並充分理解本說明,特別是免除或限制我們責任、限制您的權利、規定爭議解決方式的相關條款。 除非您接受本說明,否則您無權使用相關功能。 您一經使用獎勵獲取、收益兌換和提現等相關功能,即視為您已理解並接受本說明。 我們保留根據相關法律規定、主管機關要求、業務開展情況等,對獎勵的領取、兌換、提現規則進行變更、調整、中止或終止的權利,同時也會將變更、調整予以公示並自公示之日起生效。
+ 1、如何獲得獎勵?
+
+ A.付費消息:
+ 用戶在以下情況將有機會獲得付費方付費訊息星幣價值的固定比例作為獎勵:
+ (1)系統匹配的會話,不同等級時,低等級用戶為付費方;同等級時,男用戶為付費方(目前等級由低到高分別為:未認證用戶,真人認證用戶,達人認證用戶 )。 系統匹配的會話包括:系統匹配的搭訕/訊息(如紅娘牽線)等;
+ (2)除系統匹配的會話及平台另有規定外,首發訊息的一方為雙方會話關係中的付費方。 首發訊息包含:一鍵搭訕/搭訕/私訊,以及視訊和語音通話;
+ (3)若一方在會話關係中已經被認定為付費方,則系統配對到同一會話關係時,該方仍為付費方; 當用戶收到其他用戶的付費訊息時,達人認證用戶會獲得該部分付費訊息星幣價值的33%作為獎勵(具體獎勵以平台顯示為準);真人認證用戶可以獲得的獎勵為22%; 未認證用戶僅可獲得11%。 我們鼓勵您進行真人認證交友。
+ B.禮物:
+
+ 1、當用戶收到收益禮物時,達人認證用戶將會獲得該禮物星幣價值的34%作為獎勵;真人認證用戶可以獲得的獎勵為22%;未認證用戶僅可獲得11%。 用戶背包中尚未送出的禮物不能用於提取收益。
+ 2、獎勵如何領取? 領取獎勵前,需先進行真人認證,通過認證後,綁定收款方式方可提領。
+ 3.最小提現金額? 10美元起提。
+ 4.什麼情況下會領取失敗? 用戶的帳號存在異常; 收款方式異常; 平台技術故障; 用戶被其他用戶舉報、受到平台調查或監管部門有特定要求等存在未解決爭議事項;
+ 5.領取失敗後,該筆獎勵會到哪裡? 領取失敗會導致該筆獎勵退回,如有疑問,請聯絡客服。
+ 6、其他費用 用戶對其收益應依法納稅,其平台收益相關的報稅、稅費及相關責任義務等由用戶與其合作方(公會、靈活用工平台等)約定,與平台方無關。
+ 7、其他聲明 用戶瞭解並同意,獎勵規則具體以平台顯示為準。若因平台系統突發故障、第三方軟體服務商故障、駭客攻擊等導致平台顯示及功能故障,平台將在發現後儘快修復,平台無須因此承擔賠償責任。
+ 8.無效獎勵 若經平台核查認定您全部或部分獎勵無效時,平台為履行法定義務、配合相關執法部門或履行社會責任等原因,有權自行決策將與上述無效獎勵對應的用戶側消費款項予以退還;您同意支援平台的相應決策,並配合平台要求退還您的相關獎勵或等價金額。 此時,平台有權從您帳號的收益餘額中自行扣除相應金額,若不足以扣除時,您應在平台作出通知後指定週期內按照本公司告知的方式補足。
+ 無效獎勵包括但不限於您基於以下情形而獲得的對應獎勵:
+ (1)無民事行為能力人或限制民事行為能力人的使用者打賞或進行其他消費而產生的您的獎勵收益;
+ (2)因您透過違法、違規、違反平台規則或違反公序良俗、誠實信用原則的行為而獲取的獎勵收益;
+ (3)因司法/行政機關要求退還/劃撥的收益(及司法/行政機關要求退還/劃撥用戶消費金額時該等消費金額中對應的您的獎勵收益);
+ (4)使用者使用非法收入、作弊收入或非平台指定方式儲值或消費而產生的您的獎勵收益;
+ (5)用戶依法依規撤銷其消費行為(包括但不限於支付通路退款等)時其相應消費所對應的您的獎勵收益;
+ (6)本公司有權基於平台風控判斷、用戶投訴、行政或司法機關的要求等情形確認您的部分或全部獎勵收益無效。 在您使用平台服務取得和提取收益(包括:互動收益、通話收益)前,您應閱讀並遵守本說明及將來公示的新增的單項說明或規則、操作時的提示以及規則。 我們在此特別提醒您認真閱讀並充分理解本說明,特別是免除或限制我們責任、限制您的權利、規定爭議解決方式的相關條款。 除非您接受本說明,否則您無權使用相關功能。 您一經使用獎勵獲取、收益兌換和提現等相關功能,即視為您已理解並接受本說明。 我們保留根據相關法律規定、主管機關要求、業務開展情況等,對獎勵的領取、兌換、提現規則進行變更、調整、中止或終止的權利,同時也會將變更、調整予以公示並自公示之日起生效。
+
+
+
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java b/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java
index dc2ac6c0b..ef081e2e4 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java
@@ -1,11 +1,16 @@
package com.shayu.onetoone;
+import android.app.Activity;
+import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Process;
import android.util.Log;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
import com.alibaba.android.arouter.launcher.ARouter;
import com.facebook.FacebookSdk;
import com.shayu.onetoone.activity.fragments.message.ChatMessageFragment;
@@ -24,6 +29,7 @@ import com.shayu.onetoone.utils.ChatPluginExtensionConfig;
import com.shayu.onetoone.utils.NeverCrashUtils;
import com.yunbao.common.BuildConfig;
import com.yunbao.common.CommonAppContext;
+import com.yunbao.common.bean.CrashSaveBean;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.imrongcloud.InstructorSendReward;
import com.yunbao.common.manager.imrongcloud.InstructorSendRewardProvider;
@@ -34,7 +40,9 @@ import com.yunbao.common.utils.L;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
+import java.lang.ref.WeakReference;
import java.util.ArrayList;
+import java.util.List;
import io.rong.callkit.CallEndMessageItemProvider;
import io.rong.imkit.RongIM;
@@ -53,11 +61,29 @@ import io.rong.message.CommandMessage;
import io.rong.message.TextMessage;
public class AppContext extends CommonAppContext {
+ private final static List> activities = new ArrayList<>();
+
+ public static void exit() {
+ for (WeakReference activity : activities) {
+ try {
+ if (activity.get() != null) {
+ activity.get().finish();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+ System.exit(0);
+ }
+
@Override
public void onCreate() {
super.onCreate();
L.setDeBug(true);
SpUtil.getInstance();
+ registerActivityLifecycleCallbacks(new AdjustLifecycleCallbacks());
+
NeverCrashUtils.getInstance()
.setDebugMode(BuildConfig.DEBUG)
.setMainCrashHandler((t, e) -> {
@@ -109,7 +135,6 @@ public class AppContext extends CommonAppContext {
});
-
RongcloudIMManager.addRongcloudIMOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() {
@Override
public boolean onReceived(Message message, int left, boolean hasPackage, boolean offline) {
@@ -126,9 +151,52 @@ public class AppContext extends CommonAppContext {
IMLoginManager.get(this).setLanguage(false);
- RongConfigCenter.conversationConfig().replaceMessageProvider(CallEndMessageItemProvider.class,new OTOCallEndMessageItemProvider());
+ RongConfigCenter.conversationConfig().replaceMessageProvider(CallEndMessageItemProvider.class, new OTOCallEndMessageItemProvider());
RongExtensionManager.getInstance().setExtensionConfig(new ChatPluginExtensionConfig());
}
+ private static final class AdjustLifecycleCallbacks implements ActivityLifecycleCallbacks {
+ @Override
+ public void onActivityResumed(Activity activity) {
+ }
+
+ @Override
+ public void onActivityPaused(Activity activity) {
+ }
+
+ @Override
+ public void onActivityStopped(@NonNull Activity activity) {
+
+ }
+
+ @Override
+ public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) {
+
+ }
+
+ @Override
+ public void onActivityDestroyed(@NonNull Activity activity) {
+ for (WeakReference reference : activities) {
+ if (reference.get() == activity) {
+ activities.remove(reference);
+ return;
+ }
+ }
+ AppManager.getInstance().removeActivity(activity);
+ }
+
+ @Override
+ public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
+ activities.add(new WeakReference<>(activity));
+ CrashSaveBean.getInstance().setActivitySize(activities);
+ AppManager.getInstance().addActivity(activity);
+ }
+
+ @Override
+ public void onActivityStarted(@NonNull Activity activity) {
+
+ }
+
+ }
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/DiamondExchangeActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/DiamondExchangeActivity.java
index 7aaf89663..73094317d 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/DiamondExchangeActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/DiamondExchangeActivity.java
@@ -173,8 +173,8 @@ public class DiamondExchangeActivity extends AbsOTOActivity {
private void initData() {
- if (getIntent() != null && getIntent().getBundleExtra("bundle") != null) {
- type = getIntent().getBundleExtra("bundle").getString("type");
+ if (getIntent() != null && getIntent().getExtras() != null) {
+ type = getIntent().getExtras().getString("type");
if (TextUtils.equals(type, "yuanbao")) {
title.setText(getString(R.string.my_arnings_exchange_star));
} else {
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/MainActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/MainActivity.java
index 54f40f7e6..e209430fa 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/MainActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/MainActivity.java
@@ -13,6 +13,7 @@ import com.alibaba.fastjson.JSONObject;
import com.angcyo.tablayout.DslTabLayout;
import com.angcyo.tablayout.DslTabLayoutConfig;
import com.angcyo.tablayout.delegate2.ViewPager2Delegate;
+import com.shayu.onetoone.AppContext;
import com.lxj.xpopup.XPopup;
import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.fragments.BaseFragment;
@@ -32,6 +33,7 @@ import com.shayu.onetoone.manager.CallClientManager;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.manager.SendMessageManager;
+import com.shayu.onetoone.utils.UserManager;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.http.base.HttpCallback;
@@ -232,9 +234,10 @@ public class MainActivity extends AbsOTOActivity {
* 检测用户是否设置个人信息
*/
private void checkUserInfoIsSet() {
- OTONetManager.getInstance(mContext).getBaseInfos(true, new com.yunbao.common.http.base.HttpCallback() {
+ OTONetManager.getInstance(mContext).getBaseInfos(false, new com.yunbao.common.http.base.HttpCallback() {
@Override
public void onSuccess(com.shayu.onetoone.bean.UserBean data) {
+ UserManager.saveUserBean(data);
if (data.getStatus() == 0) {
RouteManager.forwardCompleteActivity();
}
@@ -289,7 +292,8 @@ public class MainActivity extends AbsOTOActivity {
ToastUtil.show(R.string.main_click_next_exit);
return;
}
- super.onBackPressed();
+ //super.onBackPressed();
+ AppContext.exit();
}
@Subscribe(threadMode = ThreadMode.MAIN)
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/MyArnActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/MyArnActivity.java
index 19165d452..368617d43 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/MyArnActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/MyArnActivity.java
@@ -17,6 +17,7 @@ import com.shayu.onetoone.manager.RouteManager;
import com.yanzhenjie.recyclerview.SwipeRecyclerView;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import java.util.List;
@@ -87,7 +88,14 @@ public class MyArnActivity extends AbsOTOActivity {
RouteManager.forwardActivity(RouteManager.ACTIVITY_DIAMOND_EXCHANGE, bundle);
}
});
-
+ ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.info), new ViewClicksAntiShake.ViewClicksCallBack() {
+ @Override
+ public void onViewClicks() {
+ RouteManager.forwardWebViewActivity(WordUtil.getNewString(R.string.my_arnings_reward_description),
+ "file:android_asset/Reward_instructions.html"
+ );
+ }
+ });
}
private void refreshMyArn() {
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/WebViewActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/WebViewActivity.java
index 81c6888ee..79bdbbbc6 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/WebViewActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/WebViewActivity.java
@@ -68,7 +68,7 @@ public class WebViewActivity extends AbsOTOActivity {
finish();
return;
}
- if (!url.contains("token")) {
+ if (!url.contains("token")&&url.startsWith("http")) {
IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
url += "&uid=" + userInfo.getId() + "&token=" + userInfo.getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/FriendsFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/FriendsFragment.java
index 68294ba66..42e1fa0af 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/FriendsFragment.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/FriendsFragment.java
@@ -106,13 +106,16 @@ public class FriendsFragment extends BaseFragment {
@Override
public void onError(int status, String msg, SendConsumeBean bean) {
super.onError(status, msg, bean);
+ if(status==503){
+ RouteManager.forwardActivity(RouteManager.ACTIVITY_MATCHING);
+ return;
+ }
int money = 100;
if (configBean != null) {
money = configBean.getMatePrice();
}
new TipsDialog(mContext)
- .setTitle(WordUtil.getNewString(R.string.not_money))
- .setContent(String.format(WordUtil.getNewString(R.string.not_money_video_tips), money))
+ .setTitle(WordUtil.getNewString(R.string.gift_not_money))
.setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
.setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
.showDialog();
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MyFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MyFragment.java
index 6ecd92b51..9fc205b82 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MyFragment.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/MyFragment.java
@@ -320,9 +320,12 @@ public class MyFragment extends BaseFragment implements OnItemClickListener() {
+ @Override
+ public void onItemClick(MessageConsumeConfigBean bean, int position) {
+ new TipsDialog(mContext)
+ .setTitle(WordUtil.getNewString(R.string.not_money))
+ .setContent(String.format(WordUtil.getNewString(R.string.not_money_tips), bean.getPrice()))
+ .setApplyText(WordUtil.getNewString(R.string.dialog_apply))
+ .setOnDialogClickListener(new OnDialogClickListener() {
+
+ @Override
+ public void onApply(Dialog dialog) {
+ super.onApply(dialog);
+ }
+ }).showDialog();
+ }
+ });
- @Override
- public void onApply(Dialog dialog) {
- super.onApply(dialog);
- }
- }).showDialog();
} else {
ToastUtil.show(msg);
}
@@ -268,43 +273,47 @@ public class ChatMessageFragment extends AbsConversationFragment {
ToastUtil.show(R.string.toast_call_not_unlock);
return;
}
- if(CallClientManager.getManager().isCalling()){
+ if (CallClientManager.getManager().isCalling()) {
ToastUtil.show(R.string.now_call_tips);
return;
}
- checkAuth(new OnSendMessageListener() {
+ MsgCheckUtils.checkAuth(mContext,targetId,new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
- new BottomListDialog(mContext).setSelect(new OnItemClickListener() {
- @Override
- public void onItemClick(String bean, int position) {
- CallClientManager.getManager().checkMoney(targetId, true, new OnSendMessageListener() {
+ MsgCheckUtils.checkPrice(mContext,targetId,new OnItemClickListener() {
+ @Override
+ public void onItemClick(MessageConsumeConfigBean configBean, int position) {
+ new BottomListDialog(mContext).setSelect(new OnItemClickListener() {
@Override
- public void onSuccess(String token, SendConsumeBean bean) {
- super.onSuccess(token, bean);
- Bundle bundle = new Bundle();
- bundle.putString("model", CallClientManager.VIDEO_CALL);
- bundle.putString("targetId", targetId);
- bundle.putString("callId", targetId);
- RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_VIDEO, bundle);
- }
+ public void onItemClick(String bean, int position) {
+ CallClientManager.getManager().checkMoney(targetId, true, new OnSendMessageListener() {
+ @Override
+ public void onSuccess(String token, SendConsumeBean bean) {
+ super.onSuccess(token, bean);
+ Bundle bundle = new Bundle();
+ bundle.putString("model", CallClientManager.VIDEO_CALL);
+ bundle.putString("targetId", targetId);
+ bundle.putString("callId", targetId);
+ RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_VIDEO, bundle);
+ }
- @Override
- public void onError(int status, String msg) {
- super.onError(status, msg);
- new TipsDialog(mContext)
- .setTitle(WordUtil.getNewString(R.string.not_money))
- .setContent(String.format(WordUtil.getNewString(R.string.not_money_video_tips), configBean.getVideoPrice()))
- .setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
- .setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
- .showDialog();
+ @Override
+ public void onError(int status, String msg) {
+ super.onError(status, msg);
+ new TipsDialog(mContext)
+ .setTitle(WordUtil.getNewString(R.string.not_money))
+ .setContent(String.format(WordUtil.getNewString(R.string.not_money_video_tips), configBean.getVideoPrice()))
+ .setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
+ .setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
+ .showDialog();
+ }
+ });
}
- });
- }
- }).setStrings(Collections.singletonList(String.format(WordUtil.getNewString(R.string.chat_video_tips), configBean.getVideoPrice())))
- .showDialog();
-
+ }).setStrings(Collections.singletonList(String.format(WordUtil.getNewString(R.string.chat_video_tips), configBean.getVideoPrice())))
+ .showDialog();
+ }
+ });
}
@@ -324,44 +333,50 @@ public class ChatMessageFragment extends AbsConversationFragment {
ToastUtil.show(R.string.toast_call_not_unlock);
return;
}
- if(CallClientManager.getManager().isCalling() || isFloatWindows()){
+ if (CallClientManager.getManager().isCalling() || isFloatWindows()) {
ToastUtil.show(R.string.now_call_tips);
return;
}
- checkAuth(new OnSendMessageListener() {
+ MsgCheckUtils.checkAuth(mContext,targetId,new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
- new BottomListDialog(mContext).setSelect(new OnItemClickListener() {
- @Override
- public void onItemClick(String bean, int position) {
- CallClientManager.getManager().checkMoney(targetId, false, new OnSendMessageListener() {
+ MsgCheckUtils.checkPrice(mContext,targetId,new OnItemClickListener() {
+ @Override
+ public void onItemClick(MessageConsumeConfigBean configBean, int position) {
+ new BottomListDialog(mContext).setSelect(new OnItemClickListener() {
@Override
- public void onSuccess(String token, SendConsumeBean bean) {
- super.onSuccess(token, bean);
- Bundle bundle = new Bundle();
- bundle.putString("model", CallClientManager.AUDIO_CALL);
- bundle.putString("targetId", targetId);
- bundle.putString("callId", targetId);
- RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_AUDIO, bundle);
- }
+ public void onItemClick(String bean, int position) {
+ CallClientManager.getManager().checkMoney(targetId, false, new OnSendMessageListener() {
+ @Override
+ public void onSuccess(String token, SendConsumeBean bean) {
+ super.onSuccess(token, bean);
+ Bundle bundle = new Bundle();
+ bundle.putString("model", CallClientManager.AUDIO_CALL);
+ bundle.putString("targetId", targetId);
+ bundle.putString("callId", targetId);
+ RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_AUDIO, bundle);
+ }
- @Override
- public void onError(int status, String msg) {
- super.onError(status, msg);
- new TipsDialog(mContext)
- .setTitle(WordUtil.getNewString(R.string.not_money))
- .setContent(String.format(WordUtil.getNewString(R.string.not_money_audio_tips), configBean.getMp3Price()))
- .setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
- .setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
- .showDialog();
- }
- });
+ @Override
+ public void onError(int status, String msg) {
+ super.onError(status, msg);
+ new TipsDialog(mContext)
+ .setTitle(WordUtil.getNewString(R.string.not_money))
+ .setContent(String.format(WordUtil.getNewString(R.string.not_money_audio_tips), configBean.getMp3Price()))
+ .setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
+ .setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
+ .showDialog();
+ }
+ });
+
+ }
+ }).setStrings(Collections.singletonList(String.format(WordUtil.getNewString(R.string.chat_audio_tips), configBean.getMp3Price())))
+ .showDialog();
+ }
+ });
- }
- }).setStrings(Collections.singletonList(String.format(WordUtil.getNewString(R.string.chat_audio_tips), configBean.getMp3Price())))
- .showDialog();
}
@Override
@@ -407,17 +422,23 @@ public class ChatMessageFragment extends AbsConversationFragment {
@Override
public void onError(int status, String msg) {
super.onError(status, msg);
- new TipsDialog(mContext)
- .setTitle(WordUtil.getNewString(R.string.not_money))
- .setContent(String.format(WordUtil.getNewString(R.string.not_money_tips), msg))
- .setApplyText(WordUtil.getNewString(R.string.dialog_apply))
- .setOnDialogClickListener(new OnDialogClickListener() {
+ MsgCheckUtils.checkPrice(mContext, targetId, new OnItemClickListener() {
+ @Override
+ public void onItemClick(MessageConsumeConfigBean bean, int position) {
+ new TipsDialog(mContext)
+ .setTitle(WordUtil.getNewString(R.string.not_money))
+ .setContent(String.format(WordUtil.getNewString(R.string.not_money_tips), bean.getPrice()))
+ .setApplyText(WordUtil.getNewString(R.string.dialog_apply))
+ .setOnDialogClickListener(new OnDialogClickListener() {
+
+ @Override
+ public void onApply(Dialog dialog) {
+ super.onApply(dialog);
+ }
+ }).showDialog();
+ }
+ });
- @Override
- public void onApply(Dialog dialog) {
- super.onApply(dialog);
- }
- }).showDialog();
}
});
}
@@ -433,27 +454,7 @@ public class ChatMessageFragment extends AbsConversationFragment {
return EasyFloat.isShow("call");
}
- private void checkAuth(OnSendMessageListener listener) {
- OTONetManager.getInstance(mContext)
- .getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback() {
- @Override
- public void onSuccess(UserBean data) {
- if (data.getInfo().getName_auth() == 2) {
- listener.onSuccess("", null);
- } else if (data.getInfo().getName_auth() == 3) {
- listener.onError(data.getInfo().getName_auth(), "當前正在審核中,請耐心等待");
- }
- AppManager.runDebugCode(()->{
- listener.onSuccess("", null);
- });
- }
- @Override
- public void onError(String error) {
- Log.e(TAG, "onError: " + error);
- }
- });
- }
private void sendAuthRequest() {
MessageChatAuthContent content = MessageChatAuthContent.obtain("");
@@ -632,7 +633,7 @@ public class ChatMessageFragment extends AbsConversationFragment {
video.setImageResource(R.mipmap.ic_msg_video_lock);
call.setTag("true");
}
- AppManager.runDebugCode(()->{
+ AppManager.runDebugCode(() -> {
call.setTag(null);
call.setImageResource(R.mipmap.ic_msg_call);
video.setImageResource(R.mipmap.ic_msg_video);
@@ -771,43 +772,28 @@ public class ChatMessageFragment extends AbsConversationFragment {
}
}
- private void initPriceBean() {
- OTONetManager.getInstance(mContext)
- .getMessageConsumeConfig(targetId, new HttpCallback() {
+ private void showRedPoint() {
+ RongIMClient.getInstance().getUnreadCount(new Conversation.ConversationType[]{Conversation.ConversationType.PRIVATE}
+ , false
+ , new RongIMClient.ResultCallback() {
@Override
- public void onSuccess(MessageConsumeConfigBean data) {
- configBean = data;
+ public void onSuccess(Integer integer) {
+ Integer tmp = integer + MsgMessageFragment.systemPoint;
+ if (tmp <= 0) {
+ numLayout.setVisibility(View.INVISIBLE);
+ return;
+ }
+ numLayout.setVisibility(View.VISIBLE);
+ num.setText(tmp + "");
}
@Override
- public void onError(String error) {
+ public void onError(RongIMClient.ErrorCode e) {
}
});
}
- private void showRedPoint() {
- RongIMClient.getInstance().getUnreadCount(new Conversation.ConversationType[]{Conversation.ConversationType.PRIVATE}
- ,false
- ,new RongIMClient.ResultCallback() {
- @Override
- public void onSuccess(Integer integer) {
- Integer tmp = integer + MsgMessageFragment.systemPoint;
- if (tmp <= 0) {
- numLayout.setVisibility(View.INVISIBLE);
- return;
- }
- numLayout.setVisibility(View.VISIBLE);
- num.setText(tmp + "");
- }
-
- @Override
- public void onError(RongIMClient.ErrorCode e) {
-
- }
- });
- }
-
@Subscribe
public void moneyEvent(MoneyUpdateEvent event) {
if (giftPanel != null) {
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/message/CallVideoActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/message/CallVideoActivity.java
index e2d6dcb9a..408c2222c 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/message/CallVideoActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/message/CallVideoActivity.java
@@ -558,7 +558,7 @@ public class CallVideoActivity extends AbsOTOActivity {
//
@Override
public void onCallEnd() {
- if (!sessionId.equals(targetId)){
+ if (sessionId!=null&&!sessionId.equals(targetId)){
Bundle bundle = new Bundle();
bundle.putString("model", CallClientManager.VIDEO_CALL);
bundle.putString("targetId", targetId);
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/setting/SettingActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/setting/SettingActivity.java
index 45b7e17a7..8fbaeb520 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/setting/SettingActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/setting/SettingActivity.java
@@ -114,7 +114,7 @@ public class SettingActivity extends AbsActivity {
@SuppressLint("SetTextI18n")
private void intiData() {
- versionCode.setText(VersionUtil.getVersion());
+ versionCode.setText(VersionUtil.getVersion()+"("+VersionUtil.getVersionCode()+")");
cacheSize.setText(GlideCatchUtil.getInstance().getCacheSize());
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/adapter/HomeRankListAdapter.java b/OneToOne/src/main/java/com/shayu/onetoone/adapter/HomeRankListAdapter.java
index b783c239d..f791741f3 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/adapter/HomeRankListAdapter.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/adapter/HomeRankListAdapter.java
@@ -87,12 +87,7 @@ public class HomeRankListAdapter extends RecyclerView.Adapter 5) {
- user_name.setText(bean.getUserNicename().substring(0, 4) + "...");
- } else {
- user_name.setText(bean.getUserNicename());
- }
+ user_name.setText(bean.getUserNicename());
level.setText("Lv." + bean.getLevel());
money.setText(bean.getMoney());
@@ -102,7 +97,7 @@ public class HomeRankListAdapter extends RecyclerView.Adapter mList) {
+ if(mList.isEmpty()){
+ GreetBean bean=new GreetBean();
+ mList.add(bean);
+ }
this.mList = mList;
notifyDataSetChanged();
}
@@ -83,6 +87,7 @@ public class MsgGreetConfigAdapter extends RecyclerView.Adapter 0) {
+ if (!hasFocus && editText.getText().toString().length() > 0 && mList.size() > position) {
mList.get(position).setContent(editText.getText().toString());
editText.setEnabled(false);
}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java b/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java
index 85d533939..fdb25d861 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java
@@ -69,12 +69,12 @@ public class UserBean extends BaseModel {
private int b_y;
private int b_ym;
private String b_ymd;
- private int name_auth;//1 未提交 2 已认证 3已提交
+ private int name_auth;//1 未提交 2 已认证 3已提交 4被驳回
private long name_auth_time;
private String auth_front;
private String auth_back;
private String auth_remark;
- private int sage_auth;
+ private int sage_auth;//1 未提交 2 已认证 3已提交 4被驳回
private long sage_auth_time;
private int is_hot;
private String vodie_price;
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/dialog/MsgMoreDialog.java b/OneToOne/src/main/java/com/shayu/onetoone/dialog/MsgMoreDialog.java
index 80f847986..d0be7120d 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/dialog/MsgMoreDialog.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/dialog/MsgMoreDialog.java
@@ -7,8 +7,12 @@ import androidx.annotation.NonNull;
import com.lxj.xpopup.core.AttachPopupView;
import com.shayu.onetoone.R;
+import com.shayu.onetoone.bean.UserBean;
import com.shayu.onetoone.event.MessageMsgBusEvent;
import com.shayu.onetoone.manager.RouteManager;
+import com.shayu.onetoone.utils.UserManager;
+import com.yunbao.common.bean.IMLoginModel;
+import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.Bus;
/**
@@ -33,6 +37,10 @@ public class MsgMoreDialog extends AttachPopupView implements View.OnClickListen
read = findViewById(R.id.ll_read);
config.setOnClickListener(this);
read.setOnClickListener(this);
+ UserBean bean = UserManager.getUserBean();
+ if (bean.getInfo().getSage_auth()!=2) {
+ config.setVisibility(GONE);
+ }
}
@Override
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/CallClientManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/CallClientManager.java
index 27acc20ac..7211a6e1d 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/manager/CallClientManager.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/CallClientManager.java
@@ -50,7 +50,7 @@ public class CallClientManager {
public static final String AUDIO_FLOAT = "audioFloatWindow";//浮窗
private static CallClientManager manager;
private SurfaceView localVideo, remoteVideo;
- private Map listeners;
+ private Map listeners;
private CallTimeTask timeTask = null;
public static CallClientManager getManager() {
@@ -84,8 +84,8 @@ public class CallClientManager {
RongCallClient.setReceivedCallListener(new CallMeListener());
}
- public void addOnVoIPCallListener(Class zlass,OnCallStatusListener statusListener) {
- listeners.put(zlass,statusListener);
+ public void addOnVoIPCallListener(Class zlass, OnCallStatusListener statusListener) {
+ listeners.put(zlass, statusListener);
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
@Override
public void onCallWait(SurfaceView localVideo) {
@@ -96,7 +96,7 @@ public class CallClientManager {
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
- for (OnCallStatusListener listener : listeners.values()) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
startTimer(null);
@@ -104,7 +104,7 @@ public class CallClientManager {
@Override
public void onCallEnd() {
- for (OnCallStatusListener listener : listeners.values()) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@@ -112,7 +112,7 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
- for (OnCallStatusListener listener : listeners.values()) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
@@ -150,14 +150,14 @@ public class CallClientManager {
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
@Override
public void onCallWait(SurfaceView localVideo) {
- for (OnCallStatusListener listener : listeners.values()) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallWait(localVideo);
}
}
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
- for (OnCallStatusListener listener : listeners.values()) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
startTimer(targetId);
@@ -165,7 +165,7 @@ public class CallClientManager {
@Override
public void onCallEnd() {
- for (OnCallStatusListener listener : listeners.values()) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@@ -173,7 +173,7 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
- for (OnCallStatusListener listener : listeners.values()) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
@@ -187,14 +187,14 @@ public class CallClientManager {
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
@Override
public void onCallWait(SurfaceView localVideo) {
- for (OnCallStatusListener listener : listeners.values()) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallWait(localVideo);
}
}
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
- for (OnCallStatusListener listener : listeners.values()) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
startTimer(targetId);
@@ -202,7 +202,7 @@ public class CallClientManager {
@Override
public void onCallEnd() {
- for (OnCallStatusListener listener : listeners.values()) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@@ -210,7 +210,7 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
- for (OnCallStatusListener listener : listeners.values()) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
@@ -244,7 +244,7 @@ public class CallClientManager {
public String getSessionId() {
RongCallSession callSession = RongCallClient.getInstance().getCallSession();
- if(callSession==null){
+ if (callSession == null) {
return "";
}
return callSession.getCallerUserId();
@@ -265,7 +265,8 @@ public class CallClientManager {
@Override
public boolean cancel() {
- if (sessionId.equals(targetId)) {
+ long id = IMLoginManager.get(CommonAppContext.sInstance).getUserInfo().getId();
+ if (sessionId.equals(targetId) || !sessionId.equals(id + "")) {
System.err.println("接听方不计费 结束");
return super.cancel();
}
@@ -309,7 +310,7 @@ public class CallClientManager {
extra = String.format(Locale.ROOT, "%02d:%02d", (time % 3600) / 60, (time % 60));
}
handler.post(() -> {
- for (OnCallStatusListener listener : listeners.values()) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onTime(extra);
if (warningTime <= 60) {
listener.onTimeWarning(warningTime--);
@@ -355,7 +356,7 @@ public class CallClientManager {
warningTime = bean.getMp3Time();
}
if (warningTime <= 60) {
- for (OnCallStatusListener listener : listeners.values()) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onTimeWarning(warningTime);
}
}
@@ -365,7 +366,7 @@ public class CallClientManager {
public void onError(int status, String msg) {
super.onError(status, msg);
if (status == OnSendMessageListener.STATUS_NOT_PRICE) {
- for (OnCallStatusListener listener : listeners.values()) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onErrorNotPrice(msg);
}
endCall();
@@ -553,12 +554,12 @@ public class CallClientManager {
* 如果对端调用{@link RongCallClient#startCall(int, boolean, Conversation.ConversationType, String, List, List, RongCallCommon.CallMediaType, String, StartCameraCallback)} 或
* {@link RongCallClient#acceptCall(String, int, boolean, StartCameraCallback)}开始的音视频通话,则可以使用如下设置改变对端视频流的镜像显示:
*
- * public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {
- * if (null != remoteVideo) {
- * ((RongRTCVideoView) remoteVideo).setMirror( boolean);//观看对方视频流是否镜像处理
- * }
- * }
- *
+ * public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {
+ * if (null != remoteVideo) {
+ * ((RongRTCVideoView) remoteVideo).setMirror( boolean);//观看对方视频流是否镜像处理
+ * }
+ * }
+ *
*/
@Override
public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/SendMessageManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/SendMessageManager.java
index 7655b25c2..3a0ef5b4d 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/manager/SendMessageManager.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/SendMessageManager.java
@@ -72,6 +72,10 @@ public class SendMessageManager {
}
public static void pingVideoMessage(String toUid, String time, OnSendMessageListener listener) {
+ if ("0".equals(time)) {
+ listener.onError(504,"时间错误");
+ return;
+ }
SendData sendData = new SendData(toUid,
2,
"not",
@@ -135,7 +139,7 @@ public class SendMessageManager {
@Override
public void onSuccess(SendConsumeBean consumeBean) {
if (consumeBean.getCode() != 0) {
- if (consumeBean.getCode() == 500) {
+ if (consumeBean.getCode() == 503 || consumeBean.getCode()==500) {
messageListener.onError(OnSendMessageListener.STATUS_NOT_PRICE, consumeBean.getMsg(), consumeBean);
} else {
messageListener.onError(OnSendMessageListener.STATUS_ERROR, consumeBean.getMsg(), consumeBean);
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/provider/OTOCallEndMessageItemProvider.java b/OneToOne/src/main/java/com/shayu/onetoone/provider/OTOCallEndMessageItemProvider.java
index a817ff249..764ac220d 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/provider/OTOCallEndMessageItemProvider.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/provider/OTOCallEndMessageItemProvider.java
@@ -22,6 +22,7 @@ import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
+import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.ToastUtil;
import java.util.Collections;
@@ -133,13 +134,15 @@ public class OTOCallEndMessageItemProvider extends CallEndMessageItemProvider {
private void checkAuth(String targetId, OnSendMessageListener listener) {
OTONetManager.getInstance(null)
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback() {
- @Override
public void onSuccess(UserBean data) {
- if (data.getInfo().getName_auth() == 1) {
- listener.onError(0, "");
- } else {
+ if (data.getInfo().getName_auth() == 2) {
listener.onSuccess("", null);
+ } else if (data.getInfo().getName_auth() == 3) {
+ listener.onError(data.getInfo().getName_auth(), "當前正在審核中,請耐心等待");
}
+ AppManager.runDebugCode(() -> {
+ //listener.onSuccess("", null);
+ });
}
@Override
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/utils/MsgCheckUtils.java b/OneToOne/src/main/java/com/shayu/onetoone/utils/MsgCheckUtils.java
new file mode 100644
index 000000000..128c28e89
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/utils/MsgCheckUtils.java
@@ -0,0 +1,52 @@
+package com.shayu.onetoone.utils;
+
+import android.content.Context;
+import android.util.Log;
+
+import com.shayu.onetoone.bean.MessageConsumeConfigBean;
+import com.shayu.onetoone.bean.UserBean;
+import com.shayu.onetoone.listener.OnSendMessageListener;
+import com.shayu.onetoone.manager.OTONetManager;
+import com.yunbao.common.http.base.HttpCallback;
+import com.yunbao.common.interfaces.OnItemClickListener;
+import com.yunbao.common.utils.AppManager;
+
+public class MsgCheckUtils {
+ public static void checkPrice(Context mContext,String targetId,OnItemClickListener listener) {
+ OTONetManager.getInstance(mContext)
+ .getMessageConsumeConfig(targetId, new HttpCallback() {
+ @Override
+ public void onSuccess(MessageConsumeConfigBean data) {
+ listener.onItemClick(data, 0);
+ }
+
+ @Override
+ public void onError(String error) {
+
+ }
+ });
+ }
+ public static void checkAuth(Context mContext,String targetId,OnSendMessageListener listener) {
+ OTONetManager.getInstance(mContext)
+ .getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback() {
+ @Override
+ public void onSuccess(UserBean data) {
+ if (data.getInfo().getName_auth() == 2) {
+ listener.onSuccess("", null);
+ } else if (data.getInfo().getName_auth() == 3) {
+ listener.onError(data.getInfo().getName_auth(), "當前正在審核中,請耐心等待");
+ }else {
+ listener.onError(data.getInfo().getName_auth(), "");
+ }
+ AppManager.runDebugCode(() -> {
+ //listener.onSuccess("", null);
+ });
+ }
+
+ @Override
+ public void onError(String error) {
+ Log.e("ChatAuth", "onError: " + error);
+ }
+ });
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/utils/UserManager.java b/OneToOne/src/main/java/com/shayu/onetoone/utils/UserManager.java
new file mode 100644
index 000000000..265f7822f
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/utils/UserManager.java
@@ -0,0 +1,19 @@
+package com.shayu.onetoone.utils;
+
+import com.alibaba.fastjson.JSONObject;
+import com.shayu.onetoone.bean.UserBean;
+import com.yunbao.common.utils.SpUtil;
+
+public class UserManager {
+ public static UserBean userBean;
+ public static UserBean getUserBean(){
+ if(userBean==null){
+ userBean=JSONObject.parseObject(SpUtil.getStringValue("oto_user_info"),UserBean.class);
+ }
+ return userBean;
+ }
+ public static void saveUserBean(UserBean bean){
+ userBean=bean;
+ SpUtil.setStringValue("oto_user_info", JSONObject.toJSONString(bean));
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForAudio.java b/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForAudio.java
index c0d60e400..e9fbaa4a9 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForAudio.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForAudio.java
@@ -13,11 +13,14 @@ import android.widget.Toast;
import com.blankj.utilcode.util.PermissionUtils;
import com.shayu.onetoone.R;
+import com.shayu.onetoone.bean.MessageConsumeConfigBean;
import com.shayu.onetoone.bean.SendConsumeBean;
import com.shayu.onetoone.dialog.TipsDialog;
import com.shayu.onetoone.listener.OnDialogClickListener;
import com.shayu.onetoone.listener.OnSendMessageListener;
import com.shayu.onetoone.manager.SendMessageManager;
+import com.shayu.onetoone.utils.MsgCheckUtils;
+import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
@@ -143,16 +146,22 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
AudioRecordManager.getInstance().stopRecord();
isAudio = false;
mUpDirection = false;
- new TipsDialog(mContext)
- .setTitle(WordUtil.getNewString(R.string.not_money))
- .setContent(String.format(WordUtil.getNewString(R.string.not_money_text_tips), msg))
- .setOnDialogClickListener(new OnDialogClickListener() {
+ MsgCheckUtils.checkPrice(mContext, targetId, new OnItemClickListener() {
+ @Override
+ public void onItemClick(MessageConsumeConfigBean bean, int position) {
+ new TipsDialog(mContext)
+ .setTitle(WordUtil.getNewString(R.string.not_money))
+ .setContent(String.format(WordUtil.getNewString(R.string.not_money_text_tips), bean.getPrice()))
+ .setOnDialogClickListener(new OnDialogClickListener() {
+
+ @Override
+ public void onApply(Dialog dialog) {
+ super.onApply(dialog);
+ }
+ }).showDialog();
+ }
+ });
- @Override
- public void onApply(Dialog dialog) {
- super.onApply(dialog);
- }
- }).showDialog();
} else {
ToastUtil.show(msg);
}
diff --git a/OneToOne/src/main/res/drawable/button_my_arn_exchange3.xml b/OneToOne/src/main/res/drawable/button_my_arn_exchange3.xml
new file mode 100644
index 000000000..8f1f4e5d9
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/button_my_arn_exchange3.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/drawable/button_my_arn_exchange_btn.xml b/OneToOne/src/main/res/drawable/button_my_arn_exchange_btn.xml
new file mode 100644
index 000000000..48ad14ee3
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/button_my_arn_exchange_btn.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/activity_entry.xml b/OneToOne/src/main/res/layout/activity_entry.xml
index ca46add50..94fda5bb5 100644
--- a/OneToOne/src/main/res/layout/activity_entry.xml
+++ b/OneToOne/src/main/res/layout/activity_entry.xml
@@ -277,7 +277,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/next_step_is_consent"
- android:textColor="#ffb1b1b1"
+ android:textColor="#FFFFFF"
android:textSize="10sp" />
@@ -295,7 +295,7 @@
android:layout_height="match_parent"
android:layout_marginLeft="1dp"
android:text="@string/and"
- android:textColor="#ffb1b1b1"
+ android:textColor="#FFFFFF"
android:textSize="10sp" />
-
+
+ app:srcCompat="@mipmap/diamond" />
+ app:srcCompat="@mipmap/icon_level" />
+ app:srcCompat="@mipmap/diamond" />
diff --git a/OneToOne/src/main/res/layout/view_message_input_gift.xml b/OneToOne/src/main/res/layout/view_message_input_gift.xml
index 0a480ab9a..f35640fb2 100644
--- a/OneToOne/src/main/res/layout/view_message_input_gift.xml
+++ b/OneToOne/src/main/res/layout/view_message_input_gift.xml
@@ -44,7 +44,7 @@
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_gravity="center"
- app:srcCompat="@mipmap/ic_drill" />
+ app:srcCompat="@mipmap/diamond" />
UA00001b5ch_0Itp)
z=>PyA07*naRCr#Ly@_tL%aJ9i{5&2%kDm|y{QUep=GXa8KI8|F$H(LQ=LcWSA3wNuFPbZU
zK7Qr{T!NqPpO25v=f}_dJNM3g^SOWb^LX*c$H()*f9JZ#$K&%y_u`fK4EK5rkDrgn
zT&^+C;PKt}Geh{ms2(2=JeL>p6O03cItT4p{ph70yYIz~^H{wMW15R*G&T9W>-r2!
zz%}Y;=#L-HlHS{P_6z;~o&H{^y%C
z>GkIweBAdp*5zaVoooDxq2AfCpP$DMz8782eM3Gbm-&50_I%9JH2sU#xCWq4kZ|vp
zc!jj~@i52Wy?Xz#y~3E$?D~{5P2lYuEF@
z+LO6F$J%I81tbZnR(ytAxc9a1p+#)!EZo5hkSq91GRD*^p1@sC50dLEVv$_(T>G7(
zE!;fo{sA6|yukiEK7O#*%YRylm4#fplb;X%JTB$ih9|sd_g^;YKl0v?S^y#%NJtLZeRS3W7(T{kVlh$B?btI;+Wso(HLfjeCMJ+0(Dg1NL-gzzb6o8J$WBnffr7rY)
z@VjwH?up>H9E6bkjs9mY(0wEr=|63jH)uYe_h{XykA;84M;-_E-(zgu&UNC-lAJ_U
z6dlGtk0+Us{J0qAAX0!r3+!7|JDG&@962(tXk{%7u=`*%VPz_uAdN~~61jWg
z%Zt2+R<(3^Xy{f8LLTD!fXaZyDF3Ny?w?im{HF2IVxH_r$+}!#PhI&(nX8SGcFnsM
z^O^prw=eoXhYP&|N$hPs^`P-g!?|N!3lnOl(n!1hb3L{)aKLMaJ1F=cFeZpaijGaU
zz-byNO!5#W7{(s~a2aNi;SsbeXFp2DX19fDc!7R5bd3kb3fQOt)z
zL>i0va{l#mXYLXQ#jK#H$MZ4vFD#_c9wy8Equ{Q6)}TW(Uta}PS8Q@}GCm4ga*rV1
z#|S1~n)zakU!woQ@gsF$yWx4lI>u6si8)RQh@}V16jG}<{nU%19ii^EkYJ<;f5yzC
z;#_%S86$fvYX<_50R~Yya}W{-R6B6-2nZSN-&nWVTj)USgD4x!LF$j>o3-P0e4c<@_y71`aX*b92rd&UbqbmJ
z0?Yt0-$Nv0EDzAOEew*}0SfT*TTO5YmHrz58QfKJ%k!f_3TA%F?lwA!(Mh~Tnwar_
z3g{Df5@cCXMn7|-?ZA*_c-Tk7cOT$IqqW$5&&TuQ`{xVe5{C{qj3bDWYt|CJ0_?`9
z81c#X4`}c4ctTkZ`9Z*Ze|&sBey~I|SRVL1if)Klj;5clpT`pureQ&sni%m@UIWbc
z@$vojkH_c7=P0>xI)FRCn_nCg$bQ!AOZ#uIT9U;M3(RY-fBrm%DfZ3$?Kz*2ME@hq+l{M5i9iQ`_;mgP!zXW2{_mEPxyx1RiKpm-MJ+A$?q{8Jj$oj1d6wV;S#DySC#+&k_Kl!R!k;
zorbOGUudeNh4&pMo7kfr!Q4CQVPb_fQ$!M)zp;Yg`%Ik
z{FC&<*Yo)p`A=zPG_ZJ;PJOH)O$xd4Wf%fOJbxZ=&<0bDcEL0c=b#*iWQpA?>G?7&
zPg~hew(p;RJVq%D4bAh%w;TG0kd|D5@k1GIB@{3?YcTxj;14Ceucj>5Up6xE_3(8$
zz^zjt;|IfiK7OE|%1J!N=U|=rmzZvGo)Nx9tpgc$*u_AG+!(z(b0sxpQqkqht0eW*poalvI!Xd`}^_y94SIm
z2l&TgY_|VXR7_O}TrfN_!w(*l)OdbA@w{Q~`CU#w2o>Z2{Cqz?AJ3n!pYO+D;@~q#
zgD-l4q7CM5+6te8gZ62*Q6uuP&a;jcsld_)TyS!JHaA^Hlx&f)vuV>jf4;xJ9s}cM
zi10aROu&mXOumS&k@;4B62vbHV^PJdGlqswUo(1Wa0^l*Xi5P8Okn%#`FwtU(}tYe
zMijXTO1`=+v@z;Y|8~
zFu>c^^&uw_ZGYJewl}b6-;a?CkH7x;KmIpUP)9l`a9+K|xmN0$jK2U*e?!<9n4K_v
zuVwavw!}zR&WG6y*>|{MpskD|NFfmL$2Umf`{(;(yeRYY^??l)8m+-g
z)JsFv!`G$e?__kYS+1+)A2W>RSghe~JSbDe&I3ICFcvmzprinZCyp-((*|by-Gw6q
zWI_and+&VuJAH*w<>T0_rUIP3NJRpc_0ny2l5*7|jgA%00(6+d20L04Rock+n9DT4Zs7{`VSKjw6BLjc6Yw$Fm??UjNJu<}&XQA%OAiRdkvV$bFx4Z$bFA9TG<*
zylH+Rg-(oEyiaD_~2<+awk_w)i|ZrC@@lX7)jtMD*t
zz2ud+oC#jG7eFm%DWfmUcCsiT$x+Wx@i@A5Q3;j2ydjR5pWNr?``P_%k_e3Op(T>N
z$7p-gviMUV^3pWd*alb%frGzedT-X7UCH6PS|n3&ZGQ}x4e|M%&@9q0_A!Bu0X=7<
z={w%*PfwpmK;+cAGRPe3U}P+?2H;UND_+7g?A^H;o2-Cw(Ymzeu-QPGc4p0Z+cu*D
z7PRDst)TW$_WaCB-voU)Mow5?
z0dfU{B0epQFzgLb9W!$fxhCxFn-h23>(R7;g-HV9nFnJEpUsl@MejNo6^=!%k7bQM
zqe08>oL~EHd)|H~1Ay{p!zoV6ZZ-F%ulqSKPU?U1V!!49ckl2|?adX!M%zg#QTt$3;@cRwXMdxC`ftsODgUEDuEltzxC3a%JTdzg;nzgXKnpNKJ!I
z4+Mi^7v_cY9(Ym6mlK5jk}U|2*O=P#Y<^E?AhTdd{G-AcoD(w$7W!{3J-!_IPg9)t
z6z@TG4!(lNk@}7=y!Ev38F+|MJ?P7d3nlkcmuf4ay%D@xaA?nwNjk*T-cYY4|-HJinrs-UEKB20xDzcMK
z7@v1u_wC|fGm5SJ>nfx-<9lSCrgUD-S%2f`IX@n
zhZix*T*GH(PJ~sW?@Cv8goMk$m2|3N3plecQ%qedVDLb}VJpN?mROzF-t1*SWZ;Cm
zrQox!%7VZgm5y$wpQJ=m)hI9}=s2mxPE<6EjrPffPz-zG1N46K
zY0mcG_YpkILxX@XKLVX6{LB)F$^>3kC-^4Wm!H#vzk-B+I~kac8vWS2k0r=*TZ8Cy4LkOUp||;B^Fnru|{I4H6`!vK45zPr%@dy6IXa@1)M&8~NzT#m
zGg~9>V@LO?FjGGeo_5yOFQEI7ZB;%2dFr}8(H{W-rLiLmJ-bP<8mFR5j~rpJ?BhI9
zCnNbKJwmQKoa+<
z+4Jmie$$C%p1dAIASnkp!)Oz86*A$Vxbu~IoY>_9r%@8r{4*t1HeMzQ2k4b3_QKVFEgPj{O-He8)
z{OD>WkYdY%xz|~>
zW>;+uvvPLNl_g90>-uHQ!x#l4n`~atzc6>Of^f>Ln*h)TCs8N`HbxLim;gf;{!uV7
z8L9}1D%d=Jf?%T93&JZFYZy7lWVf3N%-O2rLjTlb%$S)8t^8*!h`f-z4Y^4pAq8+&
zM{Z0_nt}-BD8&MQm%xsr$vzA+)i$cQf+CH}EkCAw>Cfb+xNJCd5zwJ1eT_VyAo_Aj
zIQVHeD*jb0ZxRTY@q(28%9C!@LXhKyF<3gIF`S|WquxfaI)s(+V@9#)6xSSU0=orc
zjK1s{(qw5>u6UHCg{xBju<=qT1ZbT>p>%Wb+T&+3@92cu;5QxzWuR;g{XKNo&~V7`
z>-*<9B|C^(iy56*L8lF5sp@386X2a%E@siM^CVx1L|Jjug^`4=~;ZdbGq!t^P*BD)yAw#8T}{@8d$7jBO4w
zHxL4uMw@_}u-oB~3`fzTG7X?GJn0T_F6ccImuGq^w=wPPd5;GD1#
zRLBt#>c=Oi$&^0kdf{JZd8lT;WC6!O@bTSj9XUh~iosnUC+s_v88V`91I8ck{ll
zN&1^~PUKEXLLeEP(3gXE0^kyzQ?BvM=l2IvvB9e<0(J`D@bKry&-0tJJAMFekm>du
zww$pfu@cL`)JmjK+PQ=w-d_1Zf(tA>UJ3|h49v48%`kjyhpx(aMpjr9s~=IylmtX%
zs8P0kB5iq;Z+OW-OcgEi?TVl1L!`oHUhBv6@uwL5aP`&NaOG;Wrqf2s}o?MBe3P&7W;aWLm6R{Bt2cnG3x06J?
z$C6MAEk}*!tH~eOyAsEfAb>)EO7RG@GLhdl0s0#-xnxsOAS^XG;QHf~xX43MR(Z^!
zlnbrH11s~b0=_4sQ?vXoqsaoPF9x;;wqkbu|~1~6Fq
zN|(JJCIf8qE$L8Y2HN%jTFK8H9jroY5#j_6EMv9SwT@Q99Vbe3M4bll&_6TKEkB9y
zIH!3J`a4LLkpWJM4yK^2qHp5DN3NOLv_VU$mH*ZaQ19hLI=nu@ba5n`3OGW}0yxAy
z88cSy0!UT5ibWnKCiIgSI{F9GQAu-5$LCteap3+bA^liDD2r6$_BK@qK42gR(26Z@)U75IgfpgIR
z)Mh}$t}_;#h3mj)DjSiP1#z{WJFzc!RrDWJ;&p3FEF|aqBBnWU)a#_&%Wisd%;3Zs
z($xRfay-d_P7XYTQEsgJt2A8KFE(
zzy)-2h7)k;5B#M4q4FsDa)u||lVL?SV^pUD&h*1gRHcq#y87}R3Y7{|K~Z53Q~@!Y
zcm2hZ-1CY1?5QDu*$MOkKamTBvd#{Rqh1Y+s2AOfbxZ%s1@o)?7wajoK+NVC9{mqa5^zcR
zWXk-D-Q5hWl!3kubjCtlpJ?|tH(ikq8zD5^ZB#oN$>_WLE09=P!FhU)Dqz7S|~dtBT+4goT9Ho!hg~@0SsBJ#n01
ziKE^{|0;8Fusjj$scWtJ(~f|9_4=Lj8J$UjN$^<1wVkb4r{lS?FT1I%omWGw9GCU3
zdu&HGP|d+XOJ@f3d&&FC6tJUCa`3{>ah^s_UdDQ|ZqUrASjV2TruI^K$Ep+oAEexq
zIOKtlF?tcGQEoY*sU(Sa`_U^;B{xXu!bX*)1sPXWSk5qM8w~oC)`;asGEvHrKKnBc
zF!rlbrb^_H!uJl_!yipbU}XB;$e2{k2Y5(G;TtF!AZ|J#Ue!?ycfF*`#}1!2?d#Tn|~
z8JHfEL(mI%kN2PaZChEHdHXb8>Z^+!%nzP
zBpLER8*{!e^53TCivcZukt|CfNlskWz`xS}%B~Z`%(ZLCu1m*sLr2n?HMOE5Ui&gq
z?9(8+n{}Hhj6t1_HwSz}a>@=kKxGB7x&kzncWoSZ>6?uxqV%fmeT!REQfAQY
z-fPv4Ds-=47~F)F?8ZovWBH1Ih0^TVR6m!b
zG}|fXY>40-KE(Rqc)sNm992qZxdXFD7E||V+SNE5lGXom+&`wRbfZZo056
ziRTO{DeSpfUemYY`@nGx*^9%MhwZtI9mQ3sax1ELd$@LqL{3`V6J%}1xZ`flXm?Y6
zKgYR=HI+{4X4+K5!2AwBE&ruo)aHboH^cwHisP`Ed*Pg6xe-E=bMKrMgWq`_=woW4
zcs(=1pHKD-^VaH}N_$~=)a6vIx)RT$lV)5Ow9}o9N*sF^EvHoZFl3Zj5?V?>8}{rI
zjWS-GBwI@gu%n$T#8L|T>I!60O{CJap?5nTn_O$i7v_ru+b9=-nZBY_@ft&0ZV=hd
zH~5!4)>GdtluV*!h>LP7$t~D-nJ$aNHn+Av3tQJOtTb6H?o6ZDZdB;}>DCm7jA)ug
z&q+0yeq~EnbfjOaWu|4ovFGHC4x>^#tWNZ^qusRi=+dFs
zI@9>`sbb+CTT+)_cS;HnUhECb9vRo(7)E&rUuy(MTH=Z>BkvHO(615ZZ7XoUF3z^R_?
zMqMYbZS<{Wp0bnD##Gakwk`8%utcFMWVPINj#o$HWAstWDkG@Dy>$%K_gyzBua2fp
z`?ek6AZgKT`zidm(%oiQr^PR@2P#v)l~;1VKapo)qW90Uyy^|BD6RAeped_K!&T|n
zNC9_^b)SoUUP{6Oh)5{}NUi>Vn@3p!5_a(^lviY(#*Gr^2Bvm!?(FHY8F?N{<#NAx
zzRGZ*5?(LPJ1-eBezvd287bG;@JP2lcXQBfPwK}u;zh0V&nH#>@B$m7D>%Lm^F4-$
zd(gdEC`M~<44(bPd{>Tr_klQ?9@O{j>$FjQrj<1<*_-DSRJN7&C2vhKJ)%oMOt(k6
z=<-0LXG(B}~|&Ng{er|48*smR+ymN&oFL>8lubLGEHok+}CBpQSW;!eh2)ar63g
zPnsz1TY!<_v=&vnz|!4$9?A+-?I
zd=T*^J`Ut{IT;S|zUYGTV}|WKOQSc++-hwc=6I)Vk|pmu1DXFO;06IS~cd(a=wJ
z@;m?Zi3Z>Sn-q2AbavThnZ_h{MF*QlQ)2ioLrt=!Y-UcyWi~iRV0eLO_ufZe=jG_}
zc)i6@Hy|Q4&4`3TpzQs59wiGHlJXD$DGr0W{-nzg^*il*S0_ttF^a+`lC&F4fo~<6mTTGdnH~kP)5NLi_sBSEGmVd7L!X>k7B=(
z=>>xUU$EjZwU2Df#gT7p*Bd)^R+Y`FiZHqfH0-ej4QU(j&o~Ii
z@*OKxoTct*{v)R_9AY
zhd%%hQPv_dj@4(tZ3Tj)E3?V1SHg4Uo?XYbJtkXCzn=
zy!5ksbK&E!fByUbA@#N{e7U#Sz1Zakwd2X&8m<`-#n~ejR)Pcd?CeCr$c~EZbYfB5
zmAw@%43d=qInE3lMCQoRac@Yz5ZPFbY>jKBR@<1G&eh?1p?|tfx15M|F-j|v!XYYP>`QG3%(F9*F?%F`YazFZFJu0GB;Uxw4n45>F;KY`Tf7
z*8bEE%pkP1g9*l=?b&&_f|s#Ip5;AGmqe38M>O9WSCD1-U`>M^2x=bQs8_28Ozv?xITuk?wgf?Q*9r!HlOG;57j
zehyxZFwNGWTFj_{?wKAjqvsf1zv|ueX(e2+p+R&e=LQ+CX^g6{S|g6$dB(uJqcQM!
z8A$?;BlT2y{^$^*1ypn-utT}=K{b{?Lwkyr-f
z_5?18glp}g)j1qh!&cQ>930A9-0x}78J?7~wj?C>zJmugO
zS-KIN)*B0D(8Vp4F7hb_azYqzIEqF7I1_(%bF9S>LE5!ue;&{#H`h&`UHY$ibo1XR
zCmZv$7LhJ##p>EkiCM^tiBgS>aS5K;NY8U8+b9mnFf?R!e=NxGEx&|ez%w2w155(`
z#U5-QK)@(te2AL_uI9K(`4#AoX@#iTIJV?WBd;AMfz-LXgsXNLtLg^I)hkN9U5p1e
z+kiqu4lmZH{i3_RJa-5U;Okwy;Wv*URktvLI`97U?p|T=tBg;LsFT|Qq0Z&7LDW%i%
z)nW(0rs!y^YEvMW=G2^*TjP+*;@l!Ajyd@UA^v)oh;vb
z&S5b#oovKEU3$dG?>eXFJDm727)|mp(ROW!Pvv7K({G1#XbK)x5-HTf!T}%ofd>E2
z+Bm)bW!oN~Ks!c0JidpH1L{u!3AHSs2xed@^OY{CSiYkKG8k3lJ_@YrYbui@D<5Tkg`KN7wiQY1DV0j5cP7zUrzxa~|kZuGCWG
zzyuCbR{yN5I0!>hF+PXMs9(oO){;n
zig#gYyU$B#?nzAPDU?teNoqT5tnyVECtyBcfUe{fg#Y_FKV{{tPRB?k_UU!TuuC9@
zK$yoHMPirTh(+JyLx!t)}^GQOu$r1f6EuTuSw=-q;^r2oehgz)PIIobo-y!j~^
z`jV3QCQ)b=g`VL1@h|n)OUnGA66@6oMD%fl>!g4H3Bto#5`WwALJ<>6JUkEF`Pd;1igf|vV_ULD)+aIRUaK4xJIvJQzz?Iea^WkQ^&zo9o0ro
z=aPC=db6tGs++HoQ$+vL&K>AYU7a!sbhW8E@b8uyvg3_2Ivlg+kongg
zonuNWl$z2)jm6fnl;jkMYVHHOs?dsK}W_H|G
z9sil;zOHz-!&S~#mk-%kzG=Y?^`elkR1d80hIicP+jRvw{Y#ue7dJvIoAX({t6oYS
z2dpNST3KIqq|$~npe{N4svm&Dw~vQUj?;xF&u9JYFlZB@bA=NfRV1bPV^vCY1F~Jw
zv$a%6l`__+VR43ZHXp8=dA_^eqTO<=cMHF-t?R-6=FyAj^#U6k
zw1H`uB19Ppa%LCz=YHA?ml(T_@i9SzLzJr|Pr2FPDNXsvbQCs|!K2!g%@jqPZ(S=w
z{9SU_;IXN;0rW-9H@4P1s2_Dya$6l_LUqqy=EZT}vnXoTO1VKh2QDRiaN++LrkKi7
zx5T?~^#P7>)iRaIYLntbSLoQQ5=nZ93%k=qP`i8`kq-Yp?#Xf9M`~FPCNL=Hur4p{
z;XS_;}PlFS#iR(82lWy(P2O;b*a8OYP2
z*H0diy%{yirom?@cVdq!mq1|%UUc0zQ^N7u^aScmYy;=Y7{XN6wmB$urQXpYhCCx~
z$q^s&l|&9x!h@-m`AIm*fif$Uzwb46!05ZmlA&N?gDw9|`L}virHF5O8d;47hapzZHMHf=nHMJ*ivCjewF#fJG7=34`^rhQcQ1mJCKVwy(~82jC&Te&X_x{8@9-ht&Y#=9
z>eN(+u;N^@@>PS~GbC*}z3G>2G`-BD*6ZjjQ)5~@d-*}%q%imML%Ovj^z+o5MSF2`
zYBEbwxf!>v!wb@pS(07{Zj419jb5FGl^hasvFe$(e~X;~H!WQzPo~GuZwQ6L%99@3
zed>3=rGGzKu8w2T$rKN?#=Y`tRer^_)_FQjR4U1fTdFekexrp}(oAHM!ItOBkPP{*
z80_v1hqCwhvEANi+eMgt{Yva)
zGjGcIIj{Ou2>T`GtIZQBEctIlr3)7;-z@0&A3v`48=&cJGsPiq^){wQtYN+{zA
zw*>q9aQJg0u@<^U-Z35<%{1qA-1+?aS!b6kb-y(9nQet#U{>dx7S`
z((6JRtNhLvZz!R9`;-WAXV-byV|Y*hr%I8W`^{de)^qh_wS}*A5bR%NJdFCgxyduf`_``6OPkf!bwNuRWJlct#&XwIMV*~Gf
z$kl1o3KRU6DuPB(2H=q42&WzW$HL|i;nndrL*`qb9}Fm*_UYD8r+ODQ>^Sx1MwG|&BFxO@oh?h*7(;?>Jt`@F+pbd6Rl=E$BNPV
z9caKi7eg5!vNO1i2TlkSqztJX&^U={*K;ypc(@f?39!j1?`I=D;yIoDF}N!oOtDPC
z|92muXc<_CL%4{M&Rtzc3awd!vVi8<*4k&
z^p&D{z#>PT{&re|y#EfsU_Jl(FMt16e)ITvesLeT$lp(A6FeTD-!ycRRJ-Ts)Oasv
z6d7fLtU3Y6!LzE7q$|dKXMrAc6PL%;CmJX#Snpndz>MxCM0r@m(3yI
zjtrR6-1F<6ibC-i$8TqygbS$5;#8#qN_hbn#)DBtf$L&-UxM`+SW(?ErZU;9O^w9v?${Gf&X-
zCr+*bVMG=hqmDt&y6BX9TxFj*9ZV%P;twwc4u>f-aszqbkPr%xVsFWqPXeg6yAk9e)
zl7VKF?Ws{3z%*@?JR6|ifG@7JB$3J=@mr9E`?054`RG{StfCjv3gn2TtVUKf{@@su
zU{ZuTxZ9b^&Pqx1@0{LNCg3~c6C94$zv7?eaSFJ_Yx*XrSelzEgX&-W$~67Kz~tYY
zlblQ!uGE|~GA9;778+9z{j2FDG>5xz+OVyonkoO;r^oo`G57~G4Qv&8c=Q*t@J8w0
zTnlu$N9u|?%Zd_@4PCkfN1bp53(+%3*#w{F!HtLSS{LB4i|fEZaFUP1Zi5v-avMdw
z8fDLQI2UX{?YEAdA^j5~7XDF^3Gl!9vy+?5BnE$5;?$webbc*vi4iHXUCDhG;@eWbR6!di#z+p%E&43HZtS+@;DRAc^RiHJt_
zi0)TuW%@vMCs$n2ag?_E@aD-PfNz&&%{iF(W3q)Q|CLi2FNX}gVG0Of$Y45M=#b$_
zRX(no*Wife&(G)g&%lqLpU0m@2ca~HV;egPZ1hP>0(Pqmax@H{0Hq6?G+jDdc=(_2
zD2%aB($c5QfU6_v3!{
zbVX#{l8=7o5Kd4R-tFMod_g_Vj2LZV2fuJCs4FvsVsVRHgSJM*Y_nZP29u2j%Nl)Z
z3NfU`hv-;0%n(O@v%HTDd~gz@f0HE4BfI^xH
z@;`|sP9P$uw^37Nvy%5i|FQw8TF^~*^Bt2SE--ebUf9QI>yHyTji^th)K`pBp+9{aBTj~+S
z^kRzOLVi*%tC77g*ldwxUEeENQ;h@T?Xa4q3xr^8s@LYry?yO3_W>x_ZgJv{!LcK@
zxCCW3?6n}T;htVae)cfmo!${(m2>;9(Y`ck_4n()J`((_J+DPQq+iP+@g_df#vNb3
z4F&WVOJ-d|U)fMy#%OR#e$5~5sd60^T#aY>Sa%%dg6=say3c-YgQ(e~K9R=@(6&7k
z`fALqk-|@4u&*sMgp)tM%+3^PM?J7D#zU`
z8nwhseRMi9_9Zgxm0P*lUL6x5@H;~FmV5`y-6eQq_3o6xlr_y;9d|nPb!kM$u}T~(
zX!Rv>@JrHZ-M@((=bT?RVzburUB)iKpkRebX|BuZ8CMx1zDs7J=o$|`1<~D?4wUtq
z8Vy}?gr&~7;zU!bqt-R=A9aD%8@m
zu@gxT>60m3i=MZvHm!>M(S-lSKbXd~pidg`VkWrF$LI!?Ovnw!TE7q7}oqIYBxxA6t-
zA7xXa3H^d`pCHx|E{B)5q^ZchB2JuAuS2aq{Th&a$!=JRkmJQpml~7J4>abbT%O)6
z!Sj{$F&w)u4v3W{?U+3dG%PR>{Zy*Jy6#psZc2e~H@HL0@YY-}>MF^7nru
z?@cC$&I-rhC)hVg+k?sb9hyZSU{KWSE4NMzy48({S>FDbaFlvEKu9t5GOkrDcFjV<
z{<8aGV2sDsvd&GQtoV|ug@N%D7sD-r?JMehM?o=9hj!()OvPBQ<04vS9kDYIJ#lay
zYH2P@7IfpvvGbbs^vxLE*U943acl>m5_!|1kYw*WqQul7^?|OI6B1n=N(t_3B3M!ZZ73O@cnHP_~55Ba3y$y%UczWX&
zvfvE|Y+p7G506+Y$wC`Tt}V)W-U(mrd7QGDqnyc~rwrV8zw@ubtgaSawp4i+lMogV
zBWTdM)pWe%goe{GLFcbRj!I8HExmIWqtuUd$A4-N9Kq(5HJzSI8avF;*jpaaQ$Ju5g2S$Bw4sbe44n@X<`sCGAL&x(^Zt
zL3cG>_U2R8x4K?_)6(~3rCLdP#)7V?b&lHL)?bn5r~MCl@}YLBfB>ypR9nWOv6+qs
zrGP+VHD>pLz;g_$9JPs{w&8XdaS$!n5jSeP%jg4(-68)Qb5$8G=g(FVNjO
z{}((t#K=z&$m^pYS%;wfsH4|e7L6VEVrFRsyYR;`o(`c%S*G0DG$^FW!lNOD#Us+L8?}jh%GF@KLJm%`2z0vs1Ateegr$pQxv0Iu9vw
z6`7Pi;qK0iCf1P%OBPXMyyf6MN_d^>;(CaTKfpgQeU;cK{FzK9^}Qg5pIkfQAEs~!
z2H%+(S7gQMAC7G&Clc!#CS3qi`<6pXR5*S*+ScKTVMXUwr#j+AmN;7C9rX8#@-MPE
z{)AH)oo8ht8QlO_2^V5Lj4!DxpoMHOW9^i6df|VH6Ze6sGSggVarOZk3#&&D
z<&0qzdhk@gnZ@Vpyp|~bg}4rc)Xs;EKU;a8PT_Rd6%M0S;=mU3ubCNLjx-v8&b-0{
z-4N2Y030KGa%F4;G=pXtpAUP)j>?e&OvI+<6vyiLfY)1p4;=F~g`IQ{59n<6=rvQh
zqR9yF7TtjR=69D^-D@3|kxsqeonA8#U&;OYANb4|seYwPt8~XA1{6sC#7l51G
zW9m2^MUc(cM%fyn)g$CLi>DM&TE<$>Nvq!R4Dmm4x`2eu0C=pq9THqSHyK9i@6-n}
zZEubfo{|AiYRL}HV&`WWgdo-0GK#g2Qs8r@El-W%i9Tl*0ms4=@C`_jRMBoz6
zI4WeJ)w!MN@Z^IZCq0lUnS89)F*B0FGEl;rczz?}bz~Ejp(L!A#bb1lQ+bcE>|&pz
zo%)@=Brs=?Bn1}3qv%2{cS;a2*z8pjfQ99aVU$#tLnuV@Eb>a)(Mbg3QLo-o_du*ypRT?8M
z_wP|a_JP(M@{E)o9leu=dEpSa^}$LRN>O&v?+svMv=K>YH0%RV;Rs+q4;JD{8VmU5
zjD}c!15|m!6jFil(Cu9$U`Bt7H+UxOJ_=!6T5lPlX>hTirgSy+En}O;gM_-yasd3d
z;R3es2^?ks3jHK&LDMpQmQ7=M>Q+wSAPR_|AM`<5A`Ymm8=Nj7UDlZ-5!aq9hN332
zRePCcyiW0*J@UaaBdv~2w^L2NDT5`0)iU0uERA*N*Qrqg8Ha;gh4{4J%W0!btj
zY`Kfn&d^fo0>ut*K6r$bVrvu!+LKHJ24uoTutr4*CF&vbivk?Qmav*0>{
z>3~L7qfTF>5h`q=@8U>TlX@&3PL^2*d(=S64UYq-!TS@$V^e;f!r}6|?gz#5fKsbv
zpmH=hUy)GwCoOOn|JaJ+DM%x)r|h%vPvJ<)tLn34(Ya}P?4}hN$evU??=55GXV>}Z
z!cma7HV}giSCf%Sxkej+*tI$vzAx6|iKl#yS|e5QXoPSy8Wbk8*WHdFCw8q&79A&+
zF!FQmr5NWwd}a)L}ociqc-4x
zp?rhsjGAwzmpa--T%foUbcE?gjnig>rGL}jLy!()N8#N#a$?`50<|e{I@^<{of%d)Tl7O
zTkeXnMo4q1*LZ+J=thv}pV7uerHS|43**HMZKuMzDUKE6Z3g`TI1VSvR$hxFHR4sz
zip~4lWBxM!M11s0M`5i*Ar)OqZ^^aue>s8TDz|u>j{yv@r&Dlm)pXPL#`T=dpc50~
z>W6m2{Ekb<|D?V|JS+4cE9jepbyIpWR^
z900m1LGZI{p>Z^!8zw@y+gWA-T_^px97!jea1l2WX~E|vx)Rt&X6*a^D(f*#&|6BQ
z|IWRKQ)0n5JsUFOtN_Zth!fZ<9o)e)8HI7e<2^d^P0r(r#(Q9=BgjkpCNiH=J2`}t
zL4JFW8(8Ie`el=aXz{rB40ZjP)rIA0D5!+}WH^*&Jq^9v2O~BCxJ6c-s*kY-GNjfU
zFS#oZLOC0+GL}~(S2F89xunwkOBbAuvqaD)YbFIOF<@H}9emjfjCLFbH`iJ^#3_S|
zBL8fZiAMCulwoz_r{v5*v?h4n5gW
zR_~^+w^<+Zo(3eqtdopw5L|*ufZ&!-FYB$EVg)OzpO+7+3F5w?
ze*z}^E|Uf(Y#b|poIf|OX*+i?0zUlQICL{4d(H>j)pVl6wdbbi<+yrY@$X$$ai{+F
z_m%_mOwVgG!9;JGTxY8zyGDTD#`)cMZ6jDTk`gv3M+RFE5PK!OCfzbw6q6|8M!*Xl
z${}F|d6Qa_5Gqh|TqD%O9(8J5$j$FlnPi-YH=E$jGAH#ov%r);&3qoWNOJO52W_4Q
z2gvnb1Gcf?OS$QR>8j`1D^YR6`#J7x+zF#je9yd)6O+P!O_LK_mHkjckN*aX*@*1^eTkv6FXl(|HkUZ-}f38hM4=@#Pr@1
zW7ho339rMdRi+#b2Nv|{Z+Rc@Z5OVw-*2+RLhS7U9lauWKxYc-Eqd@#!FH`=%M~{M
zXKy}!e%UL!S6r8KTHsf>PV>7QKCy*-E%oI#anGHXQ0sJiFj0ihJJa1xJQJOIPWNxnnz`bN
z6JB7E1~>Q9I<-&T;rm?ante`$g!imrrZt!k{9$1*Z?OcQ9+&bX?#_*i*sg^=Tl7r$
z5O91m8=_OJK7PK({$)(fM{Z~E9{V)u-+55PrH4wLeNs*cW@rnTQP(oJ3O9#N3dUeN8|{^jrgo<7F#im|&j)@PlaY(A=^e)rwhD7rp=q0mtX
z1g=3HarshYRsi4>=$i)5rdQP^_RRuFjybf|L8#;Ewxmh;jO-qsg(qwHu$gMG=
zg-4b>pKRY?fr3YFeIs8{Ss0fCh*2(mPo+DLWHe}g$FJ-5m>z7b#pE^oS#N}YgYhym
zs}yJ-QOp`fb(+lTv_J2BW{6n(=)bouhiXH6rOQFWIn8`H75}{qwg)L=j5EgqvU^|e
zhh6};GxD{)1y{mpug+V}SuE;1K}>7<$dgYfYYxAihiz!9e~$TR{(Ut%#2!gGct17)
z)I`;eF}%5@9Uz6zUVK6r8waR~{wBIAI$L@q{8lx%$8hR#ZA9NgJ{%cItJ%Qwx!_W(
zM(%c2`JtLHw}v|S=;dTz41*zB6Wai7UV3%zH8~zon)YURjXLAmNHy1O>!T@`m9;^j
zSbV((IH#2VXvSHODB38m3kh?b{a;t??8z(?Blnu{HLATlC?0y=4P8|>1gLrS@Nqhf
zON|aa)JBZ)1l~d!_tG2>gP~D(tdqAzYl$dzFC%nY@nG|CccHXHrYbo&l6S;hDPSAp
z_IkDBgrLYFOg!+Q`imuQA;Wi{l(^U2RJ#W_D~>d{g(o-3z^N$b{ToMvaV-H->qGty;IPkpK+g)x95`(|C30q
zOZPdwPIJ!$3an>r^snBz8RX5}tdHpstU2xi%=()Ce@9M|cL$#U+2=v`VQR^vAX2m!IMkD;K${BLI;l9X5*QA5$KqGlWV3+Y3P7z&`SUR;t94R@qfmRq
z?LP#%%hHdnbl|0o%;j@pJXxVm`;&kI+>qj
zhuqiW9|F*
zyANKg-`2Z1=7?~B+2j=~hD3S7oV0{RnJxuZ05jn)o#YYk`$1_|+OM^Rp!(e+r()Nm
zkA86V)RpgSTu#TSvwitc|EGo6{aK5nH<9S0+@N^u5`FvUkq+2(&AQ~srYV`W5%)_1
zS&H2daEEXrc$PsIsRx_)qoj+DlQ$L*
z%<7kYUWv(jxNknW>0DKoOwLJUl~*06-2)+U@)W{F8y&QNW~Le*gTBLiY0Im*b4X#o
z*LvavCpk$KE07S1VmM@KJ8UG&6|&(j3z#}>mrY6zM_3*ga^?4Qbg%O_nMJyr!6Fkc
zZ=V0UKMQB=FrGootH;)E2ae-t;iP6`W1s{z@uVZyOed*4og(bQ`*3|6h*oK~pQ
zt?ZW$*_vM`f~sm&aX|T(vv-^M<_)2o-1I~6k>o!n+r1n{&ptnaLarjiqZkF*Y*;Ju
zk=%;T$o}|5+I(fTDk_c)vpFqu6m12;XRTkJ-!^x!4P7DT?{CD;P
zGF3hn|1jlUe2eQVvsr;hWpXfBSe+&|^P7$Wl7LTtdm_xJ_*70xqYV?gils~emE6V0^Qn`+GG57NO?>`=
zJoo9kU|*ez3g=5O*Audl{!yYI9B2JGYXSL>&IdyodY&gR*F!(ZL4#|N^+JM}QYtGq
zj-SB~NWnN;B>xScBqE~&Fpp8~>Z}Os$y}(D%%mVs`Vr<*t0I0lc)*+R
ziieDHD6u=17MUG#w}`@g0v#R>q{B=e|7qDSocz||;%n-j`xKI7#ik9S$6mPI=+`*H
z&lOhmGkAQ^q?aYcnOZNKA;_SD{6EryWczP65=uiU6C}5GzkE#C5AcudSm7Vzb?~8x
zDt)T{_Lsl^k9F%v$h-co6^4)Z1aMgg0q?C8y`(hCk)jM63u^RX(6eAv1vnWa8Tu>)
za(C%F-7+?anqW~loxN4M{6VI;ICrSkyM+ycGC2%f&69w%N?knPBh|A?nXGIG48r0`
z<*bsV)StShwfntLadK?!=#qnG0KouB9>Z&Ie-TlcXne+&@JOSRY`>XuDmhkOKJKAC
z_vsO#YhTip3$XRIae&}NCOnR=%cr!}
zW7AtjN-O0*TdxUV%d_>gHj<$}xVBl{Fet>jsrJwMkI%_NeVC}(sl1%
zBY#yOY>Xa(9)XeR1(A(cZv)Vv<6qQ;zJ%kRz5wpOVLu(^Esk-1`UQ2_*aE65n
ztxyVQLq@!5jU(-W8%wfFjm~K5e;t2NUA+O;E!T^tqYu-x($da!LA0H$PlCa$`taUd
zInQxJ<#)Vo?5R@jb;{c*=90zoC%A_Rj!Hd%A2ThD`_vDX&L#V)t7hB*gaZd0j#TM4
z2s!qVQ&^Fu9R6`{o=Pz5-dPE#$k75m2l1#YbjGGCysH$#%GV{~F0&wMNS3>=MVdWV
zezwKln-YuCUse-3##*~M77CGWqj2+nT!|M%9A#CN6DC?dsndb6rw)X5xf`P#>T>H
znJ116U)*cl$5O5FMyL}+$xmf-F1qO;U(1!hlC76&AAwl8p3R;&R^%y{jVa8;i*I7k-@
z$wHQ1SKlycD9M0e4VQTHXlnJ0RNs&2k@g;hv4n%A<2W%NRWGL4w`>DzQ(wLXPFE2n0xdPZ&24^DK+;b+oBpuacGQ8G8(#Sb6SE+)gp(O
znEReax||js$YK>^EtLZq|L7j#Fnu@oR@RK43!ZU*7sxnzdl1_K>2b^;Q_O?TyrXPM
z`2tjAzDKxBamqLn%E4pZO*&QR!_Fl%=x3uc_o|`pVQ(Vd>vL%sjI#c+^5Qlw9`$-C
z0JPm|w5~C@=)F7SKjiq}nob~d%>Kszm$T>YBdB29(ph>78aMgCwG->*Bq|qZ{rfm&
z=@z$W1Ke!Hh?e#nqWx(njSVm@s(~kCef&u_hMdhVU-|i3
zMV>4wJ}Wvk;7p1k`4w{t>tsDF*h+)1<%w7
zsOIZZah}Nb;@1I+1a~)(vp~@aFUj)Xum?r>2x3GD%IiW!v;GMJ!Pog%sBQQ_C&Qo#
zW;Y*@QnIkIY3CdZ$UyaUnMZh8$^(t=_Vp9t7*EvC$LAg-buM5w>jg3Jy8B}jQ>3aR
z-sgo2mic*G5`3_N@ztSo2i6%9zJH(pIwaTUc49@Hu#^WE{m(k0j#moM*TAv(g-m8U
zSvY042wT2cCuD@_RdlnB7Q5c$UD@X=o$f4&^xfF-ja5@JdutIrA(abso#z@{$dpx<
z(kMb|dddZ#CI$KjAtX1KFC@RH2HI)7CCz-62gI8pT7tf7?Yj(Dx=Dq5(Ke<~Rr_iW
zK_ZZeJO(J!ouR7q6`e~cHy?uvOL)9e(|h_aS(aBEk!v|)T>Ne)wZNzX3$N7wD)Tzm
zrCGG4xIN&v3_NO?UIgTFQ_kR#cv3_f<+Rj7?Dz78q7OQ?%u{=mrL!2E$}_VYU#d=z
z+h<`>kcEN#`EAO_Oxw;MId}rgRq=QAfpD;d6TGshYR^-Wf$OG$KSH&IU{>F#rP8X%
z=A~EZw=`g>Mz23Hh}3dp6U-f#RBsfQN$P2AI6Bv1PG&ZXUpfzT#KgI|IJHpC&DVMN
z?%K{y*=M{dr+J~C`T!#nUoJke!M=@eu_DSJO2$K+H+mqfi?lHZKP>*_+_7$P1m(#4
zN~Y4Ygt1ERlfQODBExfTE@?oGZWd-^t><_O_iH%E&9tl1f!27gYb
z4(Fv{d@b!dGDS^QJjb;eLw_e-&H*${`l$pQ`k7PEm&p{EYL(U88e2)a(Y5{X}TOU7-^nj#kHHGt-im+9qf{
zm65|cy^zb`MfKM^Vz0F5(F5+DmVWS&y`RXvEhmiuTeThfJuXypTB)i}(+#Xo9{t63
z$pd}$ZKKFxcrg9=p?D%uoJB+HlPO~*O82sy2Ui{Cr15a@mC1s%C>i^s$g61@i4owy
z)a1@h)L$t=MNSu`1lS1oc~Gi1uMKOa
z!d?x&Bphfs`TIZED$SySU8UHnXmT@7)z7i^QN6F#J9yuG@;L>w0XGVz0
zn_hE8=~g#F_QnxpsY!)KD@(}XJenb$*i+_Dr%=`uQ3Oa}rga18s8jtf5x>xmjiUz9
zD?KP~6G2OJ+cf)iv_#Z?%-oXm
zT3+j<=v|JFOiO|#5h8=j6ok_IjqdpIaUgw>-ecvZ#k-yNEH;mVm#82;Z1de02N#?~
zv#)Oe#v#ob9r2X3QAhDMYq9bCTEcIx|K|hbg?0Q?z6XZ2h6ruWCM>j0_sGc*cMP+bHFjlkvZf
zN2alg{#$~>9vyl*Qr3{$r;}B|!8E
z43XK2>Q?qB<}Z`}Aa%+GIcZL3V^%t{LBVF*M{Y(~rkmjf54o-9nYu*0TwA^2jY4Yr
z_en`2ltTCdoQ5i~Udf=R>`-)z$Io>?mX5lSZf%v(1Im2b#O&0G%`I6n0uX-U|n_
zCrU$;eLt8XW18Wfj8Q2^=N!AvWD|Tw3{Y7$VV6M1a(7T<@*73kb!ysTO+~_00+W!b
z#=$a!!A3GT@HpsFnFLjvX5V81KNnRYyX(DS1&ahZ=(FfNkta4pIcc~)rhks5f9!aP
zJcOf3!8GuWd5inqjvDd93oFo9NnTt)XbV&2T*!AtFh(1}>wQEqHJdW4qnNqK5zy20
zm)P<>{#nONWiJb6;UV0Yby_tkIAG;ai41zaibN(0afA^2ZE>?uegmYx@;?oAVSF;<
znex$2fh&^)(Pb^Ior0L`;wdjY~F>bll{VbnBg{~x5H<0!r*WX#Z-spopuaIpdIRx#$Zf2RB&1ogO0%3fZWQGnGeYJ
zc-!+&S`%ox86TY{;4#Yd&B74@1Nq5mLmk3w(PZVs{viI4V~Mg7w6;{A8oyI4uHHlE
zVrTqFGhL@yt}2XaVa*o|KG_*^3I+cl^C^eWh(r|J8F>=@Z4lfJjW1YM%4&zY;m_#f
zancO?Itr|OViCPzt(
zy9BJ}Xq1)HpNggzE4q?FJt8irIo^Ps7QX1CwIf*xpw{1g;$khRAQ9=U5)@+r~O=s@#$jaEuj`-(?5S
zo@L;SoG6c%UnuT6o5Pqeml~K=6o1od4C2XAw*f~U-s7;S_V=ndc;4L0_n%|y;olgz
zaYNfY|IBo~pLvP;Km0RWRD%gdzXteU9mm@jT4C6bxGp*{Q|Q6MTF#xKr?mDL&uChwexKo8}p0p@4(Oi4GL1#
zb}_n1%pHd=Tlif04e-4Lby-ysPXhf8ql@ynG*(F4egKz^usY1%z@4SWo}7YB-UZZ=
zLlh0I);f^eR54nwm|p4Lrx=Qe!1wN|o@T`H`5Q3OJdM{K*KE_nJ^$dk<{hK7e>H^p
z8dY2j?L9#8^g0@}nA7lrBFnkUvvKj=W#{Z
zD4oyznuhKS2u7A|Ky6bYXOB_ete=1gc@Cwdnee7a(O5USN1a1XU*MJ8(PQAg>ohi&
zdTNl(Jm;9t4s$0;i?K*3A`aJZPXD`_wEvP#b?epU6^ad#ZLMKjwp{e0h}BT
zzoRbOW28F|fPHP|nC>&zXm0%HXz7o);B|-i#8){=2KWVRXs_{{Qn0{gbmBT
zbCCth0~&{({?~n5>Du1}`9H;D7xa9+e%h9eGiZ^FR&$-L+
zqIfm|EiX85R>}QC3AtX9-*>`fRGcz1^4%NV7OY<5ArozBJ6>>Orwird>uExZb@<~2
z%rr`7zLFew?p})jiU>a(2EVY$F{gUDn&_SEb+F(`QGVBv6_XWkb6aJK$WQA&M!47i
zx8Dm66*^VG%s%?s{bA95M8+2@zN0>yF#)oG)J>*_D)y{})c<)Cy#x30%TqELkI=*{~&A%XN=0hYG*cry_
zjd?7-vf~9bqmzZ&q2qW%IYP#Vo_Nf>@Wy93fx%7?{%alWb8FM8Z@#dsZXW?;`-Zl*
zl%Oy(e9t~8;ga;t-xssJxBE)&{E^VTaacXOhFgJ;4uZT!C3~5h_^Xff)bmQ*TB7CwJ;ixKajKRqd~j9NH`RLol)PVS|k*uTo5bkWk&j*_*la6L2H%N!;;
zZN^?7Dv14-({8n%iU|Cwkdd~;q9l%se%$U00kU67c3_qmaS?_*rgl0!I0)i8|8(PwBpKEBXkbUn{ARWy&gK07Gc_3-RHNb~az$LqS=F~bmZ~A30;$ZPndm|`bH@(NVDgr!35<`edro;eb<$^f_
zIBX{~)mOC9wsR?aM5BE~Zu3de!|8y#On+s#I4w7hnXMET%UB0FVCW2!Yl)CC#m(=m
zA3;=WzO_0hVy>uP*5BnBZ-GL=dynxpQhp^Nv5Nf%lopX3!n23o>a4=R&^4+qUjzTd
z3cD8z#=?v=o($+xCKjQz4!%vG+gZDE!x>YYs1NjTS=TxJ9U`NAl~jFn12A`ydFkvt
zoo~DHHv4~D=+#Q=6uDLsZ>jQQJ*vxRe#Zfl^Y{mS&`1H@yw`#37q`cbtsOJ-E*>vx
z+!ipPpgz|EeF#)PMGN$IOM7oElG(KRw>JyjMH_qb!Z<`^P^wRywXuSyz9$^HX6*7l9_0
z-FLj|rgI&wH{Oo*`Vftgk+~?!?(dbcgXq2n(2f`i|CRr5S7tJbsyQduz8yXP)H9{W
zo;>X`u+Pg0MHEZL)Ve7;_rQle*>^Hys0&%mxlj`N`0Q6H^QM$)uYG5t8aU;cQOf^x
zz&7r>%akmf)G|gTOJH>CE+J5-M>qZ*3Sv!6Jj$o
zntd)Vb~RMSYN8{fkV`lbJEmoZ=O=`=of$EKXHJwvWo^T(U(uMv;3K5bCv
z0D(O=jsa&7(HOnGC^nCDyxn
zk;rdfI4cV7x1@#fndjIhN<=U;bNuB;+Lz^Z0&i&WyZ`}{iWkG+Zo9r)$S|$VF4>{%
zIngQ(E$yO1G#4z@F@O;#vic`>GV@|nFxCq9(UmKHG%Igyehu9GC}IE?^~ryMh8V@K6C_v|1`
z8^lK*;1~oNf2jZ0bvJG$r4;D$DmcSRvWWTDaWqp#H9%l?)akr6XPk|L>~;dJ+JN(N%A%G*}X?vUGVb!
zE-c=Z@=LkSQtj=SnSNGWt_YM8n!VN+pupvCKD#ghNkkI*;PDsDQe$V2iRY(!$>CDz
z(v;4^RZadcd%zW|_tW!tN+ZXK@=4vH@|`^?##i&5c#|q_u+1tZ%~c8~yDteHG@o0H
z?qi{mDl!ja8A&Ri0i;pWu)TaL{r*npj9YY841DP_bDlnD#}IHE9NMprREkf^xnL2j
zCr`dXsX6{8R{g^t;GeM)9e-Aj5F7t4~uJ*LqM}}vn$vPG-|C6mU?}9yb;vetEOFkXqF~bllFNg58
z6Iw#Xo^EBSILM*_CG;U53A;*}1LhF|tv!A>=^dFcr^F(@f>Y$!Dqyo@v^a9nA(-++
zH(;&>ngFxB2$sEujDOq^I9V_{b*Xgt1mUoD7^mJP=Z^mlo~>*02s?t(L+7NtE)%yz
zSPgOp68kivBO9bo4C!O9h2!~Z9d_Z}5QpU8gb70l!w7o-exQ#bPiqSPgMv^=lgUk|
zIc*CmKYwVg`p|IpBZN2i-p(FSl`)Td+^8=l^gG9}aPrQUf!^8@E&LfwCwecje`)Fj
z@TyV`^fT;>lP~o=_5wXy6Bv+GMkV2o>;?sq%JwTF3v-GKuZG**t^(Y5xV;OlIwfkZ
z`FCW>>`x5#vv0wRr&iEGMjaaLRd*;4(2kf%X~$VmDggHh7ON0$b&+P=Uw+!BE3R+>Ae-&X1QF}n?{OAnKkN^@M}Xi
z(iQtu8<(;PH+}C9bx4yZA_)hepXXza2Yo*0Usa)d^%5;rCSx2i$Da$Dka#=ZBDnmDof(rspq8c%*FzmI20Rm*2D8-n<Q
zkC_5AYIDS{eZX|9Op8KwXAs9i+q)^sWuV=*3|eTR-?5BC5A8Jb@Tun<`XVsx=0K@S
zY&oXx6$e0n$$)KV%_RfRYbl_zQEplTGUHoc#q06FGrOZ;&*j>G%>rqy)J`r&|IpGv
z&Zce}O1}1KHorvG@AWuG%qb&4WX>-7Pxy=mB=rHz?d0}T%X_KQO4yhvX$F2d0xE14^=`~I4xcwR$Xw{mNn8+X>Y%~t1tT`5P|msfed
zW`^cD{-ZwO@9J}hHv~Zu|G2-;iX&rM$kU|Z?lIo)ojsuV!RL2L_}OCYLQF$ga}R0p
zmH+(72oFZ3v_so4@A;`L;&WU~o`5EU_wlYK+&&aKmGg!E#e?b2cb?*?anKA*H7co#
z;G5zzVf41