CrackMe.apk
Download file
package com.google.common.base;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.CheckForNull;
@ElementTypesAreNonnullByDefault
public final class Strings {
private Strings() {
}
public static String nullToEmpty(@CheckForNull String str) {
return Platform.nullToEmpty(str);
}
@CheckForNull
public static String emptyToNull(@CheckForNull String str) {
return Platform.emptyToNull(str);
}
public static boolean isNullOrEmpty(@CheckForNull String str) {
return Platform.stringIsNullOrEmpty(str);
}
public static String padStart(String str, int i, char c) {
Preconditions.checkNotNull(str);
if (str.length() >= i) {
return str;
}
StringBuilder sb = new StringBuilder(i);
for (int length = str.length(); length < i; length++) {
sb.append(c);
}
sb.append(str);
return sb.toString();
}
public static String padEnd(String str, int i, char c) {
Preconditions.checkNotNull(str);
if (str.length() >= i) {
return str;
}
StringBuilder sb = new StringBuilder(i);
sb.append(str);
for (int length = str.length(); length < i; length++) {
sb.append(c);
}
return sb.toString();
}
public static String repeat(String str, int i) {
Preconditions.checkNotNull(str);
boolean z = true;
if (i <= 1) {
if (i < 0) {
z = false;
}
Preconditions.checkArgument(z, "invalid count: %s", i);
return i == 0 ? "" : str;
}
int length = str.length();
long j = ((long) length) * ((long) i);
int i2 = (int) j;
if (((long) i2) == j) {
char[] cArr = new char[i2];
str.getChars(0, length, cArr, 0);
while (true) {
int i3 = i2 - length;
if (length < i3) {
System.arraycopy(cArr, 0, cArr, length, length);
length <<= 1;
} else {
System.arraycopy(cArr, 0, cArr, length, i3);
return new String(cArr);
}
}
} else {
StringBuilder sb = new StringBuilder(51);
sb.append("Required array size too large: ");
sb.append(j);
throw new ArrayIndexOutOfBoundsException(sb.toString());
}
}
public static String commonPrefix(CharSequence charSequence, CharSequence charSequence2) {
Preconditions.checkNotNull(charSequence);
Preconditions.checkNotNull(charSequence2);
int min = Math.min(charSequence.length(), charSequence2.length());
int i = 0;
while (i < min && charSequence.charAt(i) == charSequence2.charAt(i)) {
i++;
}
int i2 = i - 1;
if (validSurrogatePairAt(charSequence, i2) || validSurrogatePairAt(charSequence2, i2)) {
i--;
}
return charSequence.subSequence(0, i).toString();
}
public static String commonSuffix(CharSequence charSequence, CharSequence charSequence2) {
Preconditions.checkNotNull(charSequence);
Preconditions.checkNotNull(charSequence2);
int min = Math.min(charSequence.length(), charSequence2.length());
int i = 0;
while (i < min && charSequence.charAt((charSequence.length() - i) - 1) == charSequence2.charAt((charSequence2.length() - i) - 1)) {
i++;
}
if (validSurrogatePairAt(charSequence, (charSequence.length() - i) - 1) || validSurrogatePairAt(charSequence2, (charSequence2.length() - i) - 1)) {
i--;
}
return charSequence.subSequence(charSequence.length() - i, charSequence.length()).toString();
}
static boolean validSurrogatePairAt(CharSequence charSequence, int i) {
if (i < 0 || i > charSequence.length() - 2 || !Character.isHighSurrogate(charSequence.charAt(i)) || !Character.isLowSurrogate(charSequence.charAt(i + 1))) {
return false;
}
return true;
}
public static String lenientFormat(@CheckForNull String str, @CheckForNull Object... objArr) {
int indexOf;
String valueOf = String.valueOf(str);
int i = 0;
if (objArr == null) {
objArr = new Object[]{"(Object[])null"};
} else {
for (int i2 = 0; i2 < objArr.length; i2++) {
objArr[i2] = lenientToString(objArr[i2]);
}
}
StringBuilder sb = new StringBuilder(valueOf.length() + (objArr.length * 16));
int i3 = 0;
while (i < objArr.length && (indexOf = valueOf.indexOf("%s", i3)) != -1) {
sb.append(valueOf, i3, indexOf);
sb.append(objArr[i]);
int i4 = i + 1;
i3 = indexOf + 2;
i = i4;
}
sb.append(valueOf, i3, valueOf.length());
if (i < objArr.length) {
sb.append(" [");
sb.append(objArr[i]);
for (int i5 = i + 1; i5 < objArr.length; i5++) {
sb.append(", ");
sb.append(objArr[i5]);
}
sb.append(']');
}
return sb.toString();
}
private static String lenientToString(@CheckForNull Object obj) {
if (obj == null) {
return "null";
}
try {
return obj.toString();
} catch (Exception e) {
String name = obj.getClass().getName();
String hexString = Integer.toHexString(System.identityHashCode(obj));
StringBuilder sb = new StringBuilder(String.valueOf(name).length() + 1 + String.valueOf(hexString).length());
sb.append(name);
sb.append('@');
sb.append(hexString);
String sb2 = sb.toString();
Logger logger = Logger.getLogger("com.google.common.base.Strings");
Level level = Level.WARNING;
String valueOf = String.valueOf(sb2);
logger.log(level, valueOf.length() != 0 ? "Exception during lenientFormat for ".concat(valueOf) : new String("Exception during lenientFormat for "), e);
String name2 = e.getClass().getName();
StringBuilder sb3 = new StringBuilder(String.valueOf(sb2).length() + 9 + String.valueOf(name2).length());
sb3.append("<");
sb3.append(sb2);
sb3.append(" threw ");
sb3.append(name2);
sb3.append(">");
return sb3.toString();
}
}
}
Download file