正在查看: Vi App v10.18.0 应用的 SendOutwardSMSActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Vi App v10.18.0 应用的 SendOutwardSMSActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.ybl.ypp.sdk;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.location.Location;
import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.provider.Settings;
import android.telephony.SmsManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.util.Base64;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.ybl.ypp.sdk.Modules.GetTokenModule;
import com.ybl.ypp.sdk.Modules.SMSOutwardModules;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.List;
import one.upswing.sdk.R;
import one.upswing.sdk.a3;
import one.upswing.sdk.b3;
import one.upswing.sdk.c1;
import one.upswing.sdk.c3;
import one.upswing.sdk.e1;
import one.upswing.sdk.h;
import one.upswing.sdk.m1;
import one.upswing.sdk.w2;
import one.upswing.sdk.x2;
import one.upswing.sdk.y2;
import one.upswing.sdk.z2;
import org.json.JSONObject;
import retrofit2.Call;
import retrofit2.Response;
public class SendOutwardSMSActivity extends AppCompatActivity {
public static final Uri C = Uri.parse("content://sms/sent");
public y2 A;
public List<SubscriptionInfo> a;
public int f35g;
public SendOutwardSMSActivity j;
public b3 q;
public PendingIntent t;
public PendingIntent u;
public z2 z;
public String b = "";
public String c = "";
public String f32d = "";
public String f33e = "";
public String f34f = "";
public double f36h = 0.0d;
public double f37i = 0.0d;
public int k = 1;
public String l = "SMS_SENT_ACTION";
public String m = "SMS_DELIVERED_ACTION";
public int n = 1;
public String o = "";
public String p = "";
public boolean r = true;
public e1 s = e1.a();
public boolean v = false;
public boolean w = false;
public boolean x = false;
public String y = "";
public boolean B = false;
public class a implements m1<SMSOutwardModules> {
public a() {
}
public final void a() {
SendOutwardSMSActivity.this.a("Server not reachable", "DB118");
}
public final void onFailure(Call<SMSOutwardModules> call, Throwable th) {
SendOutwardSMSActivity.this.a("Server not reachable", "DB118");
}
@RequiresApi
public final void onResponse(Call<SMSOutwardModules> call, Response<SMSOutwardModules> response) {
try {
new Gson().toJson(response.body());
SMSOutwardModules sMSOutwardModules = (SMSOutwardModules) response.body();
if (sMSOutwardModules.getResult().getApi_status().equals("00")) {
SendOutwardSMSActivity.this.o = sMSOutwardModules.getResult().getSmsContent();
int parseInt = Integer.parseInt(sMSOutwardModules.getResult().getSmsStatusCheckFreq());
int parseInt2 = Integer.parseInt(sMSOutwardModules.getResult().getOutwardSmsWaitTime());
SendOutwardSMSActivity.this.p = sMSOutwardModules.getResult().getVirtualMobileNumber();
SendOutwardSMSActivity sendOutwardSMSActivity = SendOutwardSMSActivity.this;
SendOutwardSMSActivity.a(sendOutwardSMSActivity, sendOutwardSMSActivity.o, sendOutwardSMSActivity.j, parseInt * 1000, parseInt2 / parseInt, sendOutwardSMSActivity.p);
} else {
SendOutwardSMSActivity.this.a(sMSOutwardModules.getResult().getApi_status_message(), sMSOutwardModules.getResult().getApi_status() + "");
}
} catch (Exception e2) {
e2.getMessage();
SendOutwardSMSActivity sendOutwardSMSActivity2 = SendOutwardSMSActivity.this;
StringBuilder a = a3.a("Unknown Error - ");
a.append(e2.getMessage());
sendOutwardSMSActivity2.a(a.toString(), "DB011");
}
}
}
public class b implements m1<GetTokenModule> {
public final void a() {
}
public final void onFailure(Call<GetTokenModule> call, Throwable th) {
}
@RequiresApi
public final void onResponse(Call<GetTokenModule> call, Response<GetTokenModule> response) {
try {
new JSONObject(new Gson().toJson(response.body()));
} catch (Exception e2) {
e2.getMessage();
}
}
}
public class c implements Runnable {
public c() {
}
@Override
@RequiresApi
public final void run() {
if (SendOutwardSMSActivity.this.f33e.equals("")) {
SendOutwardSMSActivity.this.a("Unknown Error", "DB011");
return;
}
if (SendOutwardSMSActivity.this.c.equals("")) {
SendOutwardSMSActivity.this.a("Unknown Error", "DB011");
return;
}
?? r0 = SendOutwardSMSActivity.this;
r0.getClass();
w2 w2Var = new w2((SendOutwardSMSActivity) r0);
if (!w2Var.c) {
r0.a(r0);
return;
}
Location location = w2Var.d;
if (location != null) {
w2Var.e = location.getLatitude();
}
r0.f36h = w2Var.e;
Location location2 = w2Var.d;
if (location2 != null) {
w2Var.f = location2.getLongitude();
}
r0.f37i = w2Var.f;
r0.a(r0);
}
}
public class d implements Runnable {
public d() {
}
@Override
public final void run() {
SendOutwardSMSActivity sendOutwardSMSActivity = SendOutwardSMSActivity.this;
sendOutwardSMSActivity.a(sendOutwardSMSActivity.f34f);
SendOutwardSMSActivity.this.a("Unexpected user action detected, device registration terminated", "DB104");
}
}
public final void a(String str) {
JsonObject jsonObject = new JsonObject();
JsonObject jsonObject2 = new JsonObject();
jsonObject.addProperty("deviceId", this.f33e);
jsonObject.addProperty("simId", str);
jsonObject.addProperty("applicationPackageName", this.c);
jsonObject.addProperty("deviceOS", this.b);
jsonObject.addProperty("mobileNumber", getIntent().getStringExtra("mobileNumber"));
jsonObject.addProperty("serviceName", getIntent().getStringExtra("servicename"));
jsonObject.addProperty("deactivationReason", "TOGGLING_DETECTED");
jsonObject.addProperty("udf1", this.o);
jsonObject.addProperty("udf2", "");
jsonObject.addProperty("udf3", "");
jsonObject.addProperty("udf4", "");
try {
byte[] bArr = new byte[16];
SecureRandom.getInstance("SHA1PRNG").nextBytes(bArr);
String a2 = h.a(jsonObject.toString(), getIntent().getStringExtra("encryptionkey"), bArr);
if (a2.equals("")) {
a("Invalid encryption key passed", "DB117");
} else {
jsonObject2.addProperty("iv", Base64.encodeToString(bArr, 2));
jsonObject2.addProperty("key", getIntent().getStringExtra("key"));
jsonObject2.addProperty("serviceName", getIntent().getStringExtra("servicename"));
jsonObject2.addProperty("body", a2);
one.upswing.sdk.a.a(this.j, ((one.upswing.sdk.b) one.upswing.sdk.a.a(this.j).create(one.upswing.sdk.b.class)).d(jsonObject2, "3.17"), new b());
}
} catch (Exception e2) {
e2.getMessage();
}
}
public final void b() {
if (this.o.equals("")) {
new Handler(Looper.getMainLooper()).postDelayed(new d(), 4000L);
} else {
a(this.f34f);
a("Unexpected user action detected, device registration terminated", "DB104");
}
}
@RequiresApi
public final void onCreate(Bundle bundle) {
String str;
super/*androidx.fragment.app.FragmentActivity*/.onCreate(bundle);
if (Build.VERSION.SDK_INT != 26) {
setRequestedOrientation(1);
}
getWindow().setFlags(8192, 8192);
setContentView(R.layout.activity_s_m_s_send);
this.j = this;
this.c = getApplicationContext().getPackageName();
AppCompatActivity appCompatActivity = this.j;
try {
String[] strArr = appCompatActivity.getPackageManager().getPackageInfo(appCompatActivity.getPackageName(), 4096).requestedPermissions;
if (strArr != null) {
for (String str2 : strArr) {
str2.contains(appCompatActivity.getResources().getString(R.string.location_permission));
if (str2.contains(appCompatActivity.getResources().getString(R.string.read_sms_permission))) {
h.a = true;
}
}
}
} catch (Exception e2) {
e2.getMessage();
}
String str3 = this.c;
try {
MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
messageDigest.update(str3.getBytes());
byte[] digest = messageDigest.digest();
StringBuilder sb = new StringBuilder();
for (byte b2 : digest) {
sb.append(String.format("%02x", Integer.valueOf(b2 & 255)));
}
str = sb.toString();
} catch (NoSuchAlgorithmException e3) {
e3.getMessage();
str = null;
}
if (h.b.contains(str) && !h.a) {
a("READ_SMS permission not added in application", "DB119");
}
if (getIntent().getStringExtra("showProgressDialog") == null) {
this.s.a(this.j, R.raw.clockwithborders);
} else if (getIntent().getStringExtra("showProgressDialog").equalsIgnoreCase("true")) {
this.s.a(this.j, R.raw.clockwithborders);
} else if (!getIntent().getStringExtra("showProgressDialog").equalsIgnoreCase("false")) {
this.s.a(this.j, R.raw.clockwithborders);
}
((ConnectivityManager) getSystemService("connectivity")).getNetworkInfo(1);
int checkSelfPermission = ContextCompat.checkSelfPermission(this.j, "android.permission.READ_PHONE_STATE");
int checkSelfPermission2 = ContextCompat.checkSelfPermission(this.j, "android.permission.SEND_SMS");
int checkSelfPermission3 = ContextCompat.checkSelfPermission(this.j, "android.permission.READ_SMS");
if (checkSelfPermission == 0 && checkSelfPermission2 == 0 && (!h.a || checkSelfPermission3 == 0)) {
h.b(this.j);
a();
} else {
ActivityCompat.requestPermissions(this, h.a ? new String[]{"android.permission.READ_PHONE_STATE", "android.permission.SEND_SMS", "android.permission.READ_SMS"} : new String[]{"android.permission.READ_PHONE_STATE", "android.permission.SEND_SMS"}, this.n);
}
}
public final void onDestroy() {
BroadcastReceiver broadcastReceiver = this.A;
if (broadcastReceiver != null) {
this.j.unregisterReceiver(broadcastReceiver);
this.A = null;
}
BroadcastReceiver broadcastReceiver2 = this.z;
if (broadcastReceiver2 != null) {
this.j.unregisterReceiver(broadcastReceiver2);
this.z = null;
}
super.onDestroy();
}
public final void onPause() {
super/*androidx.fragment.app.FragmentActivity*/.onPause();
}
public final void onRequestPermissionsResult(int i2, String[] strArr, int[] iArr) {
super/*androidx.fragment.app.FragmentActivity*/.onRequestPermissionsResult(i2, strArr, iArr);
if (i2 == 1) {
int i3 = iArr[0];
int i4 = iArr[1];
int i5 = h.a ? iArr[2] : 101;
if (i3 == -1) {
a("READ_PHONE_STATE access denied", "DB017");
}
if (i4 == -1) {
a("SEND_SMS access denied", "DB018");
}
if (i5 == -1) {
a("READ_SMS access denied", "DB018");
}
if (!h.a) {
if (i3 == 0 && i4 == 0) {
a();
return;
}
return;
}
if (i3 == 0 && i4 == 0 && i5 == 0) {
a();
}
}
}
public final void onStop() {
super.onStop();
if (this.r) {
b();
}
}
public final void a(String str, String str2) {
this.r = false;
this.s.b();
Intent intent = new Intent();
intent.putExtra("status_code", str2);
intent.putExtra("error_msg", str);
setResult(0, intent);
finish();
}
@RequiresApi
public final void a(Context context) {
String str;
String str2;
String str3;
String str4;
if (!(Settings.System.getInt(getContentResolver(), "airplane_mode_on", 0) == 1)) {
try {
List<SubscriptionInfo> a2 = c3.a(context);
this.a = a2;
if (a2 != null) {
if (a2.size() > 0) {
h hVar = new h();
SubscriptionManager subscriptionManager = (SubscriptionManager) context.getSystemService("telephony_subscription_service");
if (this.a.size() == 1) {
if (subscriptionManager.getActiveSubscriptionInfoForSimSlotIndex(this.a.get(0).getSimSlotIndex()) != null) {
this.f34f = hVar.a(context) + String.valueOf(this.a.get(0).getSubscriptionId());
this.f35g = this.a.get(0).getSubscriptionId();
str3 = String.valueOf(this.a.get(0).getCarrierName());
str4 = String.valueOf(this.a.get(0).getMcc()) + String.valueOf(this.a.get(0).getMnc());
} else {
a("Unable to send SMS due to issue detected with selected sim - infoSim empty", "DB116");
str3 = "";
str4 = str3;
}
if (!this.f34f.equals("")) {
a(this.f34f, str3, str4);
return;
} else {
a("Unable to send SMS due to issue detected with selected sim - subscriptionId empty (single sim)", "DB116");
return;
}
}
if (getIntent().getStringExtra("simslot").equalsIgnoreCase("0")) {
this.f34f = hVar.a(context) + String.valueOf(this.a.get(0).getSubscriptionId());
this.f35g = this.a.get(0).getSubscriptionId();
str = String.valueOf(this.a.get(0).getCarrierName());
str2 = String.valueOf(this.a.get(0).getMcc()) + String.valueOf(this.a.get(0).getMnc());
} else if (getIntent().getStringExtra("simslot").equalsIgnoreCase("1")) {
this.f34f = hVar.a(context) + String.valueOf(this.a.get(1).getSubscriptionId());
this.f35g = this.a.get(1).getSubscriptionId();
str = String.valueOf(this.a.get(1).getCarrierName());
str2 = String.valueOf(this.a.get(1).getMcc()) + String.valueOf(this.a.get(1).getMnc());
} else {
a("Pass correct sim slot", "DB013");
str = "";
str2 = str;
}
if (!this.f34f.equals("")) {
a(this.f34f, str, str2);
return;
} else {
a("Unable to send SMS due to issue detected with selected sim - subscriptionId empty (dual sim)", "DB116");
return;
}
}
a("SIM not present / SIM Disabled", "DB008");
return;
}
a("Unable to send SMS due to issue detected with selected sim - send sim details empty", "DB116");
return;
} catch (Exception e2) {
e2.getMessage();
a("Unknown Sim Error - " + e2.getMessage(), "DB011");
return;
}
}
a("Phone is on flight mode", "DB105");
}
public static void a(SendOutwardSMSActivity sendOutwardSMSActivity, Context context, Handler handler) {
JsonObject jsonObject = new JsonObject();
JsonObject jsonObject2 = new JsonObject();
jsonObject.addProperty("partnerReferenceNumber", sendOutwardSMSActivity.getIntent().getStringExtra("PartnerReferenceNumber"));
jsonObject.addProperty("smsSentResultCode", sendOutwardSMSActivity.y);
jsonObject.addProperty("isSmsSent", sendOutwardSMSActivity.v + "");
jsonObject.addProperty("isRead", sendOutwardSMSActivity.w + "");
jsonObject.addProperty("isMsgSent", sendOutwardSMSActivity.x + "");
try {
byte[] bArr = new byte[16];
SecureRandom.getInstance("SHA1PRNG").nextBytes(bArr);
String a2 = h.a(jsonObject.toString(), sendOutwardSMSActivity.getIntent().getStringExtra("encryptionkey"), bArr);
if (a2.equals("")) {
sendOutwardSMSActivity.a("Invalid encryption key passed", "DB117");
} else {
jsonObject2.addProperty("iv", Base64.encodeToString(bArr, 2));
jsonObject2.addProperty("key", sendOutwardSMSActivity.getIntent().getStringExtra("key"));
jsonObject2.addProperty("serviceName", sendOutwardSMSActivity.getIntent().getStringExtra("servicename"));
jsonObject2.addProperty("body", a2);
one.upswing.sdk.a.a(context, ((one.upswing.sdk.b) one.upswing.sdk.a.a(context).create(one.upswing.sdk.b.class)).a(jsonObject2, "3.17"), new x2(sendOutwardSMSActivity, handler));
}
} catch (Exception e2) {
e2.getMessage();
}
}
public static void a(SendOutwardSMSActivity sendOutwardSMSActivity, String str, SendOutwardSMSActivity sendOutwardSMSActivity2, int i2, int i3, String str2) {
if (ContextCompat.checkSelfPermission(sendOutwardSMSActivity2, "android.permission.SEND_SMS") != 0) {
return;
}
Handler handler = new Handler();
try {
y2 y2Var = sendOutwardSMSActivity.A;
if (y2Var != null) {
sendOutwardSMSActivity2.unregisterReceiver(y2Var);
sendOutwardSMSActivity.A = null;
}
z2 z2Var = sendOutwardSMSActivity.z;
if (z2Var != null) {
sendOutwardSMSActivity2.unregisterReceiver(z2Var);
sendOutwardSMSActivity.z = null;
}
sendOutwardSMSActivity.t = PendingIntent.getBroadcast(sendOutwardSMSActivity2, 100, new Intent(sendOutwardSMSActivity.l), 67108864);
sendOutwardSMSActivity.u = PendingIntent.getBroadcast(sendOutwardSMSActivity2, 200, new Intent(sendOutwardSMSActivity.m), 67108864);
y2 y2Var2 = new y2(sendOutwardSMSActivity);
sendOutwardSMSActivity.A = y2Var2;
int i4 = Build.VERSION.SDK_INT;
if (i4 > 33) {
cl.json.social.a.a(sendOutwardSMSActivity2, y2Var2, new IntentFilter(sendOutwardSMSActivity.l), 2);
} else {
sendOutwardSMSActivity2.registerReceiver(y2Var2, new IntentFilter(sendOutwardSMSActivity.l));
}
z2 z2Var2 = new z2();
sendOutwardSMSActivity.z = z2Var2;
if (i4 > 33) {
cl.json.social.a.a(sendOutwardSMSActivity2, z2Var2, new IntentFilter(sendOutwardSMSActivity.m), 2);
} else {
sendOutwardSMSActivity2.registerReceiver(z2Var2, new IntentFilter(sendOutwardSMSActivity.m));
}
SmsManager.getSmsManagerForSubscriptionId(sendOutwardSMSActivity.f35g).sendTextMessage(str2, null, str, sendOutwardSMSActivity.t, sendOutwardSMSActivity.u);
b3 b3Var = new b3(sendOutwardSMSActivity, sendOutwardSMSActivity2, handler, i2, i3);
sendOutwardSMSActivity.q = b3Var;
handler.postDelayed(b3Var, i2);
} catch (Exception e2) {
e2.getMessage();
handler.removeCallbacks(sendOutwardSMSActivity.q);
sendOutwardSMSActivity.a("Unknown Error - " + e2.getMessage(), "DB011");
}
}
public final void a(String str, String str2, String str3) {
JsonObject jsonObject = new JsonObject();
JsonObject jsonObject2 = new JsonObject();
jsonObject.addProperty("partnerReferenceNumber", getIntent().getStringExtra("PartnerReferenceNumber"));
jsonObject.addProperty("deviceId", this.f33e);
jsonObject.addProperty("simId", str);
jsonObject.addProperty("applicationPackageName", this.c);
jsonObject.addProperty("deviceOS", this.b);
jsonObject.addProperty("requestedMobileNumber", getIntent().getStringExtra("mobileNumber"));
jsonObject.addProperty("lat", this.f36h + "");
jsonObject.addProperty("lon", this.f37i + "");
jsonObject.addProperty("serviceName", getIntent().getStringExtra("servicename"));
jsonObject.addProperty("udf1", "");
jsonObject.addProperty("udf2", "");
jsonObject.addProperty("udf3", "");
jsonObject.addProperty("udf4", "");
jsonObject.addProperty("deviceMake", this.f32d);
jsonObject.addProperty("operatorCode", str3);
jsonObject.addProperty("operatorName", str2);
try {
byte[] bArr = new byte[16];
SecureRandom.getInstance("SHA1PRNG").nextBytes(bArr);
String a2 = h.a(jsonObject.toString(), getIntent().getStringExtra("encryptionkey"), bArr);
if (a2.equals("")) {
a("Invalid encryption key passed", "DB117");
} else {
jsonObject2.addProperty("iv", Base64.encodeToString(bArr, 2));
jsonObject2.addProperty("key", getIntent().getStringExtra("key"));
jsonObject2.addProperty("serviceName", getIntent().getStringExtra("servicename"));
jsonObject2.addProperty("body", a2);
one.upswing.sdk.a.a(this.j, ((one.upswing.sdk.b) one.upswing.sdk.a.a(this.j).create(one.upswing.sdk.b.class)).c(jsonObject2, "3.17"), new a());
}
} catch (Exception e2) {
e2.getMessage();
a("Unknown Error - " + e2.getMessage(), "DB011");
}
}
public final void a() {
try {
if (getIntent().hasExtra("isTalsecImported") && !getIntent().getStringExtra("isTalsecImported").equals("") && getIntent().getStringExtra("isTalsecImported").equals("true") && h.b(this.j)) {
this.B = true;
}
h hVar = new h();
if (getIntent().getStringExtra("key") != null) {
if (!getIntent().getStringExtra("key").trim().equals("")) {
if (getIntent().getStringExtra("key").length() == 10) {
if (getIntent().getStringExtra("simslot") != null) {
if (!getIntent().getStringExtra("simslot").equals("")) {
if (getIntent().getStringExtra("PartnerReferenceNumber") != null) {
if (!getIntent().getStringExtra("PartnerReferenceNumber").equals("")) {
if (getIntent().getStringExtra("mobileNumber") != null) {
if (!getIntent().getStringExtra("mobileNumber").equals("")) {
if (getIntent().getStringExtra("mobileNumber").length() >= 8 && getIntent().getStringExtra("mobileNumber").length() <= 10) {
if (getIntent().getStringExtra("encryptionkey") != null) {
if (!getIntent().getStringExtra("encryptionkey").equals("")) {
if (getIntent().getStringExtra("servicename") != null) {
if (!getIntent().getStringExtra("servicename").equals("")) {
if (c1.a(this.j, this.B)) {
a("Device not supported", "DB010");
return;
}
try {
if (ContextCompat.checkSelfPermission(getApplicationContext(), "android.permission.ACCESS_FINE_LOCATION") != 0) {
this.f33e = hVar.a(this.j);
this.b = "Android " + Build.VERSION.RELEASE;
this.f32d = h.a();
if (!this.f33e.equals("")) {
if (!this.c.equals("")) {
a((Context) this);
} else {
a("Unknown Error", "DB011");
}
} else {
a("Unknown Error", "DB011");
}
} else {
this.f33e = hVar.a(this.j);
this.b = "Android " + Build.VERSION.RELEASE;
this.f32d = h.a();
new Handler(Looper.getMainLooper()).postDelayed(new c(), 2000L);
}
return;
} catch (Exception e2) {
e2.getMessage();
a("Unknown Error - " + e2.getMessage(), "DB011");
return;
}
}
a("Please Provide service name", "P006");
return;
}
a("Please Provide service name", "P006");
return;
}
a("Please Provide encryption key", "P006");
return;
}
a("Please Provide encryption key", "P006");
return;
}
a("Please Provide correct mobile number", "P006");
return;
}
a("Please Provide mobile number", "P006");
return;
}
a("Please Provide mobile number", "P006");
return;
}
a("Please Provide partner reference number", "P006");
return;
}
a("Please Provide partner reference number", "P006");
return;
}
a("Please Provide sim slot", "DB008");
return;
}
a("Please Provide sim slot", "P006");
return;
}
a("Please Provide correct partner key", "P006");
return;
}
a("Please Provide partner key", "P006");
return;
}
a("Please Provide partner key", "P006");
} catch (Exception e3) {
StringBuilder a2 = a3.a("Unknown Error - ");
a2.append(e3.getMessage());
a(a2.toString(), "DB011");
}
}
}