Initial commit
This commit is contained in:
305
sources/com/google/zxing/datamatrix/decoder/BitMatrixParser.java
Normal file
305
sources/com/google/zxing/datamatrix/decoder/BitMatrixParser.java
Normal file
@@ -0,0 +1,305 @@
|
||||
package com.google.zxing.datamatrix.decoder;
|
||||
|
||||
import com.google.zxing.FormatException;
|
||||
import com.google.zxing.common.BitMatrix;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
final class BitMatrixParser {
|
||||
private final BitMatrix a;
|
||||
private final BitMatrix b;
|
||||
private final Version c;
|
||||
|
||||
BitMatrixParser(BitMatrix bitMatrix) throws FormatException {
|
||||
int i = bitMatrix.i();
|
||||
if (i < 8 || i > 144 || (i & 1) != 0) {
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
this.c = b(bitMatrix);
|
||||
this.a = a(bitMatrix);
|
||||
this.b = new BitMatrix(this.a.k(), this.a.i());
|
||||
}
|
||||
|
||||
private static Version b(BitMatrix bitMatrix) throws FormatException {
|
||||
return Version.a(bitMatrix.i(), bitMatrix.k());
|
||||
}
|
||||
|
||||
private int c(int i, int i2) {
|
||||
int i3 = i - 1;
|
||||
int i4 = (a(i3, 0, i, i2) ? 1 : 0) << 1;
|
||||
int i5 = i2 - 1;
|
||||
if (a(i3, i5, i, i2)) {
|
||||
i4 |= 1;
|
||||
}
|
||||
int i6 = i4 << 1;
|
||||
int i7 = i2 - 3;
|
||||
if (a(0, i7, i, i2)) {
|
||||
i6 |= 1;
|
||||
}
|
||||
int i8 = i6 << 1;
|
||||
int i9 = i2 - 2;
|
||||
if (a(0, i9, i, i2)) {
|
||||
i8 |= 1;
|
||||
}
|
||||
int i10 = i8 << 1;
|
||||
if (a(0, i5, i, i2)) {
|
||||
i10 |= 1;
|
||||
}
|
||||
int i11 = i10 << 1;
|
||||
if (a(1, i7, i, i2)) {
|
||||
i11 |= 1;
|
||||
}
|
||||
int i12 = i11 << 1;
|
||||
if (a(1, i9, i, i2)) {
|
||||
i12 |= 1;
|
||||
}
|
||||
int i13 = i12 << 1;
|
||||
return a(1, i5, i, i2) ? i13 | 1 : i13;
|
||||
}
|
||||
|
||||
private int d(int i, int i2) {
|
||||
int i3 = (a(i + (-3), 0, i, i2) ? 1 : 0) << 1;
|
||||
if (a(i - 2, 0, i, i2)) {
|
||||
i3 |= 1;
|
||||
}
|
||||
int i4 = i3 << 1;
|
||||
if (a(i - 1, 0, i, i2)) {
|
||||
i4 |= 1;
|
||||
}
|
||||
int i5 = i4 << 1;
|
||||
if (a(0, i2 - 2, i, i2)) {
|
||||
i5 |= 1;
|
||||
}
|
||||
int i6 = i5 << 1;
|
||||
int i7 = i2 - 1;
|
||||
if (a(0, i7, i, i2)) {
|
||||
i6 |= 1;
|
||||
}
|
||||
int i8 = i6 << 1;
|
||||
if (a(1, i7, i, i2)) {
|
||||
i8 |= 1;
|
||||
}
|
||||
int i9 = i8 << 1;
|
||||
if (a(2, i7, i, i2)) {
|
||||
i9 |= 1;
|
||||
}
|
||||
int i10 = i9 << 1;
|
||||
return a(3, i7, i, i2) ? i10 | 1 : i10;
|
||||
}
|
||||
|
||||
Version a() {
|
||||
return this.c;
|
||||
}
|
||||
|
||||
private boolean a(int i, int i2, int i3, int i4) {
|
||||
if (i < 0) {
|
||||
i += i3;
|
||||
i2 += 4 - ((i3 + 4) & 7);
|
||||
}
|
||||
if (i2 < 0) {
|
||||
i2 += i4;
|
||||
i += 4 - ((i4 + 4) & 7);
|
||||
}
|
||||
this.b.c(i2, i);
|
||||
return this.a.b(i2, i);
|
||||
}
|
||||
|
||||
private int a(int i, int i2) {
|
||||
int i3 = i - 1;
|
||||
int i4 = (a(i3, 0, i, i2) ? 1 : 0) << 1;
|
||||
if (a(i3, 1, i, i2)) {
|
||||
i4 |= 1;
|
||||
}
|
||||
int i5 = i4 << 1;
|
||||
if (a(i3, 2, i, i2)) {
|
||||
i5 |= 1;
|
||||
}
|
||||
int i6 = i5 << 1;
|
||||
if (a(0, i2 - 2, i, i2)) {
|
||||
i6 |= 1;
|
||||
}
|
||||
int i7 = i6 << 1;
|
||||
int i8 = i2 - 1;
|
||||
if (a(0, i8, i, i2)) {
|
||||
i7 |= 1;
|
||||
}
|
||||
int i9 = i7 << 1;
|
||||
if (a(1, i8, i, i2)) {
|
||||
i9 |= 1;
|
||||
}
|
||||
int i10 = i9 << 1;
|
||||
if (a(2, i8, i, i2)) {
|
||||
i10 |= 1;
|
||||
}
|
||||
int i11 = i10 << 1;
|
||||
return a(3, i8, i, i2) ? i11 | 1 : i11;
|
||||
}
|
||||
|
||||
byte[] b() throws FormatException {
|
||||
byte[] bArr = new byte[this.c.f()];
|
||||
int i = this.a.i();
|
||||
int k = this.a.k();
|
||||
int i2 = 4;
|
||||
int i3 = 0;
|
||||
boolean z = false;
|
||||
int i4 = 0;
|
||||
boolean z2 = false;
|
||||
boolean z3 = false;
|
||||
boolean z4 = false;
|
||||
while (true) {
|
||||
if (i2 == i && i3 == 0 && !z) {
|
||||
bArr[i4] = (byte) a(i, k);
|
||||
i2 -= 2;
|
||||
i3 += 2;
|
||||
i4++;
|
||||
z = true;
|
||||
} else {
|
||||
int i5 = i - 2;
|
||||
if (i2 == i5 && i3 == 0 && (k & 3) != 0 && !z2) {
|
||||
bArr[i4] = (byte) b(i, k);
|
||||
i2 -= 2;
|
||||
i3 += 2;
|
||||
i4++;
|
||||
z2 = true;
|
||||
} else if (i2 == i + 4 && i3 == 2 && (k & 7) == 0 && !z3) {
|
||||
bArr[i4] = (byte) c(i, k);
|
||||
i2 -= 2;
|
||||
i3 += 2;
|
||||
i4++;
|
||||
z3 = true;
|
||||
} else if (i2 == i5 && i3 == 0 && (k & 7) == 4 && !z4) {
|
||||
bArr[i4] = (byte) d(i, k);
|
||||
i2 -= 2;
|
||||
i3 += 2;
|
||||
i4++;
|
||||
z4 = true;
|
||||
} else {
|
||||
do {
|
||||
if (i2 < i && i3 >= 0 && !this.b.b(i3, i2)) {
|
||||
bArr[i4] = (byte) b(i2, i3, i, k);
|
||||
i4++;
|
||||
}
|
||||
i2 -= 2;
|
||||
i3 += 2;
|
||||
if (i2 < 0) {
|
||||
break;
|
||||
}
|
||||
} while (i3 < k);
|
||||
int i6 = i2 + 1;
|
||||
int i7 = i3 + 3;
|
||||
do {
|
||||
if (i6 >= 0 && i7 < k && !this.b.b(i7, i6)) {
|
||||
bArr[i4] = (byte) b(i6, i7, i, k);
|
||||
i4++;
|
||||
}
|
||||
i6 += 2;
|
||||
i7 -= 2;
|
||||
if (i6 >= i) {
|
||||
break;
|
||||
}
|
||||
} while (i7 >= 0);
|
||||
i2 = i6 + 3;
|
||||
i3 = i7 + 1;
|
||||
}
|
||||
}
|
||||
if (i2 >= i && i3 >= k) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i4 == this.c.f()) {
|
||||
return bArr;
|
||||
}
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
|
||||
private BitMatrix a(BitMatrix bitMatrix) {
|
||||
int e = this.c.e();
|
||||
int d = this.c.d();
|
||||
if (bitMatrix.i() == e) {
|
||||
int b = this.c.b();
|
||||
int a = this.c.a();
|
||||
int i = e / b;
|
||||
int i2 = d / a;
|
||||
BitMatrix bitMatrix2 = new BitMatrix(i2 * a, i * b);
|
||||
for (int i3 = 0; i3 < i; i3++) {
|
||||
int i4 = i3 * b;
|
||||
for (int i5 = 0; i5 < i2; i5++) {
|
||||
int i6 = i5 * a;
|
||||
for (int i7 = 0; i7 < b; i7++) {
|
||||
int i8 = ((b + 2) * i3) + 1 + i7;
|
||||
int i9 = i4 + i7;
|
||||
for (int i10 = 0; i10 < a; i10++) {
|
||||
if (bitMatrix.b(((a + 2) * i5) + 1 + i10, i8)) {
|
||||
bitMatrix2.c(i6 + i10, i9);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return bitMatrix2;
|
||||
}
|
||||
throw new IllegalArgumentException("Dimension of bitMatrix must match the version size");
|
||||
}
|
||||
|
||||
private int b(int i, int i2, int i3, int i4) {
|
||||
int i5 = i - 2;
|
||||
int i6 = i2 - 2;
|
||||
int i7 = (a(i5, i6, i3, i4) ? 1 : 0) << 1;
|
||||
int i8 = i2 - 1;
|
||||
if (a(i5, i8, i3, i4)) {
|
||||
i7 |= 1;
|
||||
}
|
||||
int i9 = i7 << 1;
|
||||
int i10 = i - 1;
|
||||
if (a(i10, i6, i3, i4)) {
|
||||
i9 |= 1;
|
||||
}
|
||||
int i11 = i9 << 1;
|
||||
if (a(i10, i8, i3, i4)) {
|
||||
i11 |= 1;
|
||||
}
|
||||
int i12 = i11 << 1;
|
||||
if (a(i10, i2, i3, i4)) {
|
||||
i12 |= 1;
|
||||
}
|
||||
int i13 = i12 << 1;
|
||||
if (a(i, i6, i3, i4)) {
|
||||
i13 |= 1;
|
||||
}
|
||||
int i14 = i13 << 1;
|
||||
if (a(i, i8, i3, i4)) {
|
||||
i14 |= 1;
|
||||
}
|
||||
int i15 = i14 << 1;
|
||||
return a(i, i2, i3, i4) ? i15 | 1 : i15;
|
||||
}
|
||||
|
||||
private int b(int i, int i2) {
|
||||
int i3 = (a(i + (-3), 0, i, i2) ? 1 : 0) << 1;
|
||||
if (a(i - 2, 0, i, i2)) {
|
||||
i3 |= 1;
|
||||
}
|
||||
int i4 = i3 << 1;
|
||||
if (a(i - 1, 0, i, i2)) {
|
||||
i4 |= 1;
|
||||
}
|
||||
int i5 = i4 << 1;
|
||||
if (a(0, i2 - 4, i, i2)) {
|
||||
i5 |= 1;
|
||||
}
|
||||
int i6 = i5 << 1;
|
||||
if (a(0, i2 - 3, i, i2)) {
|
||||
i6 |= 1;
|
||||
}
|
||||
int i7 = i6 << 1;
|
||||
if (a(0, i2 - 2, i, i2)) {
|
||||
i7 |= 1;
|
||||
}
|
||||
int i8 = i7 << 1;
|
||||
int i9 = i2 - 1;
|
||||
if (a(0, i9, i, i2)) {
|
||||
i8 |= 1;
|
||||
}
|
||||
int i10 = i8 << 1;
|
||||
return a(1, i9, i, i2) ? i10 | 1 : i10;
|
||||
}
|
||||
}
|
87
sources/com/google/zxing/datamatrix/decoder/DataBlock.java
Normal file
87
sources/com/google/zxing/datamatrix/decoder/DataBlock.java
Normal file
@@ -0,0 +1,87 @@
|
||||
package com.google.zxing.datamatrix.decoder;
|
||||
|
||||
import com.google.zxing.datamatrix.decoder.Version;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
final class DataBlock {
|
||||
private final int a;
|
||||
private final byte[] b;
|
||||
|
||||
private DataBlock(int i, byte[] bArr) {
|
||||
this.a = i;
|
||||
this.b = bArr;
|
||||
}
|
||||
|
||||
static DataBlock[] a(byte[] bArr, Version version) {
|
||||
Version.ECBlocks c = version.c();
|
||||
Version.ECB[] a = c.a();
|
||||
int i = 0;
|
||||
for (Version.ECB ecb : a) {
|
||||
i += ecb.a();
|
||||
}
|
||||
DataBlock[] dataBlockArr = new DataBlock[i];
|
||||
int length = a.length;
|
||||
int i2 = 0;
|
||||
int i3 = 0;
|
||||
while (i2 < length) {
|
||||
Version.ECB ecb2 = a[i2];
|
||||
int i4 = i3;
|
||||
int i5 = 0;
|
||||
while (i5 < ecb2.a()) {
|
||||
int b = ecb2.b();
|
||||
dataBlockArr[i4] = new DataBlock(b, new byte[c.b() + b]);
|
||||
i5++;
|
||||
i4++;
|
||||
}
|
||||
i2++;
|
||||
i3 = i4;
|
||||
}
|
||||
int length2 = dataBlockArr[0].b.length - c.b();
|
||||
int i6 = length2 - 1;
|
||||
int i7 = 0;
|
||||
int i8 = 0;
|
||||
while (i7 < i6) {
|
||||
int i9 = i8;
|
||||
int i10 = 0;
|
||||
while (i10 < i3) {
|
||||
dataBlockArr[i10].b[i7] = bArr[i9];
|
||||
i10++;
|
||||
i9++;
|
||||
}
|
||||
i7++;
|
||||
i8 = i9;
|
||||
}
|
||||
boolean z = version.g() == 24;
|
||||
int i11 = z ? 8 : i3;
|
||||
int i12 = i8;
|
||||
int i13 = 0;
|
||||
while (i13 < i11) {
|
||||
dataBlockArr[i13].b[i6] = bArr[i12];
|
||||
i13++;
|
||||
i12++;
|
||||
}
|
||||
int length3 = dataBlockArr[0].b.length;
|
||||
while (length2 < length3) {
|
||||
int i14 = 0;
|
||||
while (i14 < i3) {
|
||||
int i15 = z ? (i14 + 8) % i3 : i14;
|
||||
dataBlockArr[i15].b[(!z || i15 <= 7) ? length2 : length2 - 1] = bArr[i12];
|
||||
i14++;
|
||||
i12++;
|
||||
}
|
||||
length2++;
|
||||
}
|
||||
if (i12 == bArr.length) {
|
||||
return dataBlockArr;
|
||||
}
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
|
||||
int b() {
|
||||
return this.a;
|
||||
}
|
||||
|
||||
byte[] a() {
|
||||
return this.b;
|
||||
}
|
||||
}
|
@@ -0,0 +1,422 @@
|
||||
package com.google.zxing.datamatrix.decoder;
|
||||
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
import com.google.zxing.FormatException;
|
||||
import com.google.zxing.common.BitSource;
|
||||
import com.google.zxing.common.DecoderResult;
|
||||
import com.ijm.dataencryption.de.DataDecryptTool;
|
||||
import com.ubtrobot.jimu.robotapi.PeripheralType;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
final class DecodedBitStreamParser {
|
||||
private static final char[] a = {'*', '*', '*', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
|
||||
private static final char[] b = {'!', '\"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_'};
|
||||
private static final char[] c = {'*', '*', '*', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
|
||||
private static final char[] d = b;
|
||||
private static final char[] e = {'`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '{', '|', '}', '~', 127};
|
||||
|
||||
/* renamed from: com.google.zxing.datamatrix.decoder.DecodedBitStreamParser$1, reason: invalid class name */
|
||||
static /* synthetic */ class AnonymousClass1 {
|
||||
static final /* synthetic */ int[] a = new int[Mode.values().length];
|
||||
|
||||
static {
|
||||
try {
|
||||
a[Mode.C40_ENCODE.ordinal()] = 1;
|
||||
} catch (NoSuchFieldError unused) {
|
||||
}
|
||||
try {
|
||||
a[Mode.TEXT_ENCODE.ordinal()] = 2;
|
||||
} catch (NoSuchFieldError unused2) {
|
||||
}
|
||||
try {
|
||||
a[Mode.ANSIX12_ENCODE.ordinal()] = 3;
|
||||
} catch (NoSuchFieldError unused3) {
|
||||
}
|
||||
try {
|
||||
a[Mode.EDIFACT_ENCODE.ordinal()] = 4;
|
||||
} catch (NoSuchFieldError unused4) {
|
||||
}
|
||||
try {
|
||||
a[Mode.BASE256_ENCODE.ordinal()] = 5;
|
||||
} catch (NoSuchFieldError unused5) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private enum Mode {
|
||||
PAD_ENCODE,
|
||||
ASCII_ENCODE,
|
||||
C40_ENCODE,
|
||||
TEXT_ENCODE,
|
||||
ANSIX12_ENCODE,
|
||||
EDIFACT_ENCODE,
|
||||
BASE256_ENCODE
|
||||
}
|
||||
|
||||
static DecoderResult a(byte[] bArr) throws FormatException {
|
||||
BitSource bitSource = new BitSource(bArr);
|
||||
StringBuilder sb = new StringBuilder(100);
|
||||
StringBuilder sb2 = new StringBuilder(0);
|
||||
ArrayList arrayList = new ArrayList(1);
|
||||
Mode mode = Mode.ASCII_ENCODE;
|
||||
do {
|
||||
if (mode == Mode.ASCII_ENCODE) {
|
||||
mode = a(bitSource, sb, sb2);
|
||||
} else {
|
||||
int i = AnonymousClass1.a[mode.ordinal()];
|
||||
if (i == 1) {
|
||||
b(bitSource, sb);
|
||||
} else if (i == 2) {
|
||||
d(bitSource, sb);
|
||||
} else if (i == 3) {
|
||||
a(bitSource, sb);
|
||||
} else if (i == 4) {
|
||||
c(bitSource, sb);
|
||||
} else {
|
||||
if (i != 5) {
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
a(bitSource, sb, arrayList);
|
||||
}
|
||||
mode = Mode.ASCII_ENCODE;
|
||||
}
|
||||
if (mode == Mode.PAD_ENCODE) {
|
||||
break;
|
||||
}
|
||||
} while (bitSource.a() > 0);
|
||||
if (sb2.length() > 0) {
|
||||
sb.append((CharSequence) sb2);
|
||||
}
|
||||
String sb3 = sb.toString();
|
||||
if (arrayList.isEmpty()) {
|
||||
arrayList = null;
|
||||
}
|
||||
return new DecoderResult(bArr, sb3, arrayList, null);
|
||||
}
|
||||
|
||||
private static void b(BitSource bitSource, StringBuilder sb) throws FormatException {
|
||||
int a2;
|
||||
int[] iArr = new int[3];
|
||||
boolean z = false;
|
||||
int i = 0;
|
||||
while (bitSource.a() != 8 && (a2 = bitSource.a(8)) != 254) {
|
||||
a(a2, bitSource.a(8), iArr);
|
||||
boolean z2 = z;
|
||||
for (int i2 = 0; i2 < 3; i2++) {
|
||||
int i3 = iArr[i2];
|
||||
if (i != 0) {
|
||||
if (i != 1) {
|
||||
if (i == 2) {
|
||||
char[] cArr = b;
|
||||
if (i3 < cArr.length) {
|
||||
char c2 = cArr[i3];
|
||||
if (z2) {
|
||||
sb.append((char) (c2 + 128));
|
||||
z2 = false;
|
||||
} else {
|
||||
sb.append(c2);
|
||||
}
|
||||
} else if (i3 == 27) {
|
||||
sb.append((char) 29);
|
||||
} else {
|
||||
if (i3 != 30) {
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
z2 = true;
|
||||
}
|
||||
i = 0;
|
||||
} else {
|
||||
if (i != 3) {
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
if (z2) {
|
||||
sb.append((char) (i3 + 224));
|
||||
z2 = false;
|
||||
i = 0;
|
||||
} else {
|
||||
sb.append((char) (i3 + 96));
|
||||
i = 0;
|
||||
}
|
||||
}
|
||||
} else if (z2) {
|
||||
sb.append((char) (i3 + PeripheralType.SERVO));
|
||||
z2 = false;
|
||||
i = 0;
|
||||
} else {
|
||||
sb.append((char) i3);
|
||||
i = 0;
|
||||
}
|
||||
} else if (i3 < 3) {
|
||||
i = i3 + 1;
|
||||
} else {
|
||||
char[] cArr2 = a;
|
||||
if (i3 >= cArr2.length) {
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
char c3 = cArr2[i3];
|
||||
if (z2) {
|
||||
sb.append((char) (c3 + 128));
|
||||
z2 = false;
|
||||
} else {
|
||||
sb.append(c3);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bitSource.a() <= 0) {
|
||||
return;
|
||||
} else {
|
||||
z = z2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void c(BitSource bitSource, StringBuilder sb) {
|
||||
while (bitSource.a() > 16) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
int a2 = bitSource.a(6);
|
||||
if (a2 == 31) {
|
||||
int b2 = 8 - bitSource.b();
|
||||
if (b2 != 8) {
|
||||
bitSource.a(b2);
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if ((a2 & 32) == 0) {
|
||||
a2 |= 64;
|
||||
}
|
||||
sb.append((char) a2);
|
||||
}
|
||||
if (bitSource.a() <= 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void d(BitSource bitSource, StringBuilder sb) throws FormatException {
|
||||
int a2;
|
||||
int[] iArr = new int[3];
|
||||
boolean z = false;
|
||||
int i = 0;
|
||||
while (bitSource.a() != 8 && (a2 = bitSource.a(8)) != 254) {
|
||||
a(a2, bitSource.a(8), iArr);
|
||||
boolean z2 = z;
|
||||
for (int i2 = 0; i2 < 3; i2++) {
|
||||
int i3 = iArr[i2];
|
||||
if (i != 0) {
|
||||
if (i != 1) {
|
||||
if (i == 2) {
|
||||
char[] cArr = d;
|
||||
if (i3 < cArr.length) {
|
||||
char c2 = cArr[i3];
|
||||
if (z2) {
|
||||
sb.append((char) (c2 + 128));
|
||||
z2 = false;
|
||||
} else {
|
||||
sb.append(c2);
|
||||
}
|
||||
} else if (i3 == 27) {
|
||||
sb.append((char) 29);
|
||||
} else {
|
||||
if (i3 != 30) {
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
z2 = true;
|
||||
}
|
||||
i = 0;
|
||||
} else {
|
||||
if (i != 3) {
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
char[] cArr2 = e;
|
||||
if (i3 >= cArr2.length) {
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
char c3 = cArr2[i3];
|
||||
if (z2) {
|
||||
sb.append((char) (c3 + 128));
|
||||
z2 = false;
|
||||
i = 0;
|
||||
} else {
|
||||
sb.append(c3);
|
||||
i = 0;
|
||||
}
|
||||
}
|
||||
} else if (z2) {
|
||||
sb.append((char) (i3 + PeripheralType.SERVO));
|
||||
z2 = false;
|
||||
i = 0;
|
||||
} else {
|
||||
sb.append((char) i3);
|
||||
i = 0;
|
||||
}
|
||||
} else if (i3 < 3) {
|
||||
i = i3 + 1;
|
||||
} else {
|
||||
char[] cArr3 = c;
|
||||
if (i3 >= cArr3.length) {
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
char c4 = cArr3[i3];
|
||||
if (z2) {
|
||||
sb.append((char) (c4 + 128));
|
||||
z2 = false;
|
||||
} else {
|
||||
sb.append(c4);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bitSource.a() <= 0) {
|
||||
return;
|
||||
} else {
|
||||
z = z2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static Mode a(BitSource bitSource, StringBuilder sb, StringBuilder sb2) throws FormatException {
|
||||
boolean z = false;
|
||||
do {
|
||||
int a2 = bitSource.a(8);
|
||||
if (a2 == 0) {
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
if (a2 > 128) {
|
||||
if (a2 != 129) {
|
||||
if (a2 <= 229) {
|
||||
int i = a2 - 130;
|
||||
if (i < 10) {
|
||||
sb.append('0');
|
||||
}
|
||||
sb.append(i);
|
||||
} else {
|
||||
switch (a2) {
|
||||
case 230:
|
||||
return Mode.C40_ENCODE;
|
||||
case 231:
|
||||
return Mode.BASE256_ENCODE;
|
||||
case 232:
|
||||
sb.append((char) 29);
|
||||
break;
|
||||
case 233:
|
||||
case 234:
|
||||
case 241:
|
||||
break;
|
||||
case 235:
|
||||
z = true;
|
||||
break;
|
||||
case 236:
|
||||
sb.append("[)>\u001e05\u001d");
|
||||
sb2.insert(0, "\u001e\u0004");
|
||||
break;
|
||||
case 237:
|
||||
sb.append("[)>\u001e06\u001d");
|
||||
sb2.insert(0, "\u001e\u0004");
|
||||
break;
|
||||
case 238:
|
||||
return Mode.ANSIX12_ENCODE;
|
||||
case 239:
|
||||
return Mode.TEXT_ENCODE;
|
||||
case 240:
|
||||
return Mode.EDIFACT_ENCODE;
|
||||
default:
|
||||
if (a2 != 254 || bitSource.a() != 0) {
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return Mode.PAD_ENCODE;
|
||||
}
|
||||
} else {
|
||||
if (z) {
|
||||
a2 += PeripheralType.SERVO;
|
||||
}
|
||||
sb.append((char) (a2 - 1));
|
||||
return Mode.ASCII_ENCODE;
|
||||
}
|
||||
} while (bitSource.a() > 0);
|
||||
return Mode.ASCII_ENCODE;
|
||||
}
|
||||
|
||||
private static void a(BitSource bitSource, StringBuilder sb) throws FormatException {
|
||||
int a2;
|
||||
int[] iArr = new int[3];
|
||||
while (bitSource.a() != 8 && (a2 = bitSource.a(8)) != 254) {
|
||||
a(a2, bitSource.a(8), iArr);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
int i2 = iArr[i];
|
||||
if (i2 == 0) {
|
||||
sb.append('\r');
|
||||
} else if (i2 == 1) {
|
||||
sb.append('*');
|
||||
} else if (i2 == 2) {
|
||||
sb.append('>');
|
||||
} else if (i2 == 3) {
|
||||
sb.append(' ');
|
||||
} else if (i2 < 14) {
|
||||
sb.append((char) (i2 + 44));
|
||||
} else if (i2 < 40) {
|
||||
sb.append((char) (i2 + 51));
|
||||
} else {
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
}
|
||||
if (bitSource.a() <= 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void a(int i, int i2, int[] iArr) {
|
||||
int i3 = ((i << 8) + i2) - 1;
|
||||
int i4 = i3 / 1600;
|
||||
iArr[0] = i4;
|
||||
int i5 = i3 - (i4 * 1600);
|
||||
int i6 = i5 / 40;
|
||||
iArr[1] = i6;
|
||||
iArr[2] = i5 - (i6 * 40);
|
||||
}
|
||||
|
||||
private static void a(BitSource bitSource, StringBuilder sb, Collection<byte[]> collection) throws FormatException {
|
||||
int c2 = bitSource.c() + 1;
|
||||
int i = c2 + 1;
|
||||
int a2 = a(bitSource.a(8), c2);
|
||||
if (a2 == 0) {
|
||||
a2 = bitSource.a() / 8;
|
||||
} else if (a2 >= 250) {
|
||||
a2 = ((a2 - 249) * ItemTouchHelper.Callback.DEFAULT_SWIPE_ANIMATION_DURATION) + a(bitSource.a(8), i);
|
||||
i++;
|
||||
}
|
||||
if (a2 >= 0) {
|
||||
byte[] bArr = new byte[a2];
|
||||
int i2 = 0;
|
||||
while (i2 < a2) {
|
||||
if (bitSource.a() >= 8) {
|
||||
bArr[i2] = (byte) a(bitSource.a(8), i);
|
||||
i2++;
|
||||
i++;
|
||||
} else {
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
}
|
||||
collection.add(bArr);
|
||||
try {
|
||||
sb.append(new String(bArr, "ISO8859_1"));
|
||||
return;
|
||||
} catch (UnsupportedEncodingException e2) {
|
||||
throw new IllegalStateException("Platform does not support required encoding: ".concat(String.valueOf(e2)));
|
||||
}
|
||||
}
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
|
||||
private static int a(int i, int i2) {
|
||||
int i3 = i - (((i2 * 149) % 255) + 1);
|
||||
return i3 >= 0 ? i3 : i3 + DataDecryptTool.DECRYPT_ALL_FILE;
|
||||
}
|
||||
}
|
51
sources/com/google/zxing/datamatrix/decoder/Decoder.java
Normal file
51
sources/com/google/zxing/datamatrix/decoder/Decoder.java
Normal file
@@ -0,0 +1,51 @@
|
||||
package com.google.zxing.datamatrix.decoder;
|
||||
|
||||
import com.google.zxing.ChecksumException;
|
||||
import com.google.zxing.FormatException;
|
||||
import com.google.zxing.common.BitMatrix;
|
||||
import com.google.zxing.common.DecoderResult;
|
||||
import com.google.zxing.common.reedsolomon.GenericGF;
|
||||
import com.google.zxing.common.reedsolomon.ReedSolomonDecoder;
|
||||
import com.google.zxing.common.reedsolomon.ReedSolomonException;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public final class Decoder {
|
||||
private final ReedSolomonDecoder a = new ReedSolomonDecoder(GenericGF.m);
|
||||
|
||||
public DecoderResult a(BitMatrix bitMatrix) throws FormatException, ChecksumException {
|
||||
BitMatrixParser bitMatrixParser = new BitMatrixParser(bitMatrix);
|
||||
DataBlock[] a = DataBlock.a(bitMatrixParser.b(), bitMatrixParser.a());
|
||||
int i = 0;
|
||||
for (DataBlock dataBlock : a) {
|
||||
i += dataBlock.b();
|
||||
}
|
||||
byte[] bArr = new byte[i];
|
||||
int length = a.length;
|
||||
for (int i2 = 0; i2 < length; i2++) {
|
||||
DataBlock dataBlock2 = a[i2];
|
||||
byte[] a2 = dataBlock2.a();
|
||||
int b = dataBlock2.b();
|
||||
a(a2, b);
|
||||
for (int i3 = 0; i3 < b; i3++) {
|
||||
bArr[(i3 * length) + i2] = a2[i3];
|
||||
}
|
||||
}
|
||||
return DecodedBitStreamParser.a(bArr);
|
||||
}
|
||||
|
||||
private void a(byte[] bArr, int i) throws ChecksumException {
|
||||
int length = bArr.length;
|
||||
int[] iArr = new int[length];
|
||||
for (int i2 = 0; i2 < length; i2++) {
|
||||
iArr[i2] = bArr[i2] & 255;
|
||||
}
|
||||
try {
|
||||
this.a.a(iArr, bArr.length - i);
|
||||
for (int i3 = 0; i3 < i; i3++) {
|
||||
bArr[i3] = (byte) iArr[i3];
|
||||
}
|
||||
} catch (ReedSolomonException unused) {
|
||||
throw ChecksumException.getChecksumInstance();
|
||||
}
|
||||
}
|
||||
}
|
145
sources/com/google/zxing/datamatrix/decoder/Version.java
Normal file
145
sources/com/google/zxing/datamatrix/decoder/Version.java
Normal file
@@ -0,0 +1,145 @@
|
||||
package com.google.zxing.datamatrix.decoder;
|
||||
|
||||
import com.google.zxing.FormatException;
|
||||
import com.twitter.sdk.android.core.TwitterAuthConfig;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public final class Version {
|
||||
private static final Version[] h = h();
|
||||
private final int a;
|
||||
private final int b;
|
||||
private final int c;
|
||||
private final int d;
|
||||
private final int e;
|
||||
private final ECBlocks f;
|
||||
private final int g;
|
||||
|
||||
static final class ECB {
|
||||
private final int a;
|
||||
private final int b;
|
||||
|
||||
int a() {
|
||||
return this.a;
|
||||
}
|
||||
|
||||
int b() {
|
||||
return this.b;
|
||||
}
|
||||
|
||||
private ECB(int i, int i2) {
|
||||
this.a = i;
|
||||
this.b = i2;
|
||||
}
|
||||
}
|
||||
|
||||
private Version(int i, int i2, int i3, int i4, int i5, ECBlocks eCBlocks) {
|
||||
this.a = i;
|
||||
this.b = i2;
|
||||
this.c = i3;
|
||||
this.d = i4;
|
||||
this.e = i5;
|
||||
this.f = eCBlocks;
|
||||
int b = eCBlocks.b();
|
||||
int i6 = 0;
|
||||
for (ECB ecb : eCBlocks.a()) {
|
||||
i6 += ecb.a() * (ecb.b() + b);
|
||||
}
|
||||
this.g = i6;
|
||||
}
|
||||
|
||||
private static Version[] h() {
|
||||
int i = 1;
|
||||
int i2 = 5;
|
||||
int i3 = 8;
|
||||
int i4 = 7;
|
||||
Version version = new Version(3, 14, 14, 12, 12, new ECBlocks(10, new ECB(i, i3)));
|
||||
int i5 = 2;
|
||||
int i6 = 12;
|
||||
int i7 = 18;
|
||||
Version version2 = new Version(5, 18, 18, 16, 16, new ECBlocks(14, new ECB(i, 18)));
|
||||
int i8 = 4;
|
||||
Version version3 = new Version(7, 22, 22, 20, 20, new ECBlocks(20, new ECB(i, 30)));
|
||||
int i9 = 6;
|
||||
ECB ecb = new ECB(i, 36);
|
||||
ECB ecb2 = new ECB(i, 44);
|
||||
ECB ecb3 = new ECB(i, 62);
|
||||
ECB ecb4 = new ECB(i, 86);
|
||||
ECB ecb5 = new ECB(i, 114);
|
||||
ECB ecb6 = new ECB(i, 144);
|
||||
int i10 = 56;
|
||||
ECB ecb7 = new ECB(i, 174);
|
||||
Version version4 = new Version(15, 52, 52, 24, 24, new ECBlocks(42, new ECB(i5, 102)));
|
||||
ECB ecb8 = new ECB(i8, 92);
|
||||
ECB ecb9 = new ECB(i8, 114);
|
||||
ECB ecb10 = new ECB(i8, 174);
|
||||
ECB ecb11 = new ECB(i9, 175);
|
||||
return new Version[]{new Version(1, 10, 10, 8, 8, new ECBlocks(i2, new ECB(i, 3))), new Version(2, 12, 12, 10, 10, new ECBlocks(i4, new ECB(i, i2))), version, new Version(4, 16, 16, 14, 14, new ECBlocks(i6, new ECB(i, i6))), version2, new Version(6, 20, 20, 18, 18, new ECBlocks(i7, new ECB(i, 22))), version3, new Version(8, 24, 24, 22, 22, new ECBlocks(24, ecb)), new Version(9, 26, 26, 24, 24, new ECBlocks(28, ecb2)), new Version(10, 32, 32, 14, 14, new ECBlocks(36, ecb3)), new Version(11, 36, 36, 16, 16, new ECBlocks(42, ecb4)), new Version(12, 40, 40, 18, 18, new ECBlocks(48, ecb5)), new Version(13, 44, 44, 20, 20, new ECBlocks(56, ecb6)), new Version(14, 48, 48, 22, 22, new ECBlocks(68, ecb7)), version4, new Version(16, 64, 64, 14, 14, new ECBlocks(i10, new ECB(i5, TwitterAuthConfig.DEFAULT_AUTH_REQUEST_CODE))), new Version(17, 72, 72, 16, 16, new ECBlocks(36, ecb8)), new Version(18, 80, 80, 18, 18, new ECBlocks(48, ecb9)), new Version(19, 88, 88, 20, 20, new ECBlocks(i10, new ECB(i8, 144))), new Version(20, 96, 96, 22, 22, new ECBlocks(68, ecb10)), new Version(21, 104, 104, 24, 24, new ECBlocks(i10, new ECB(i9, 136))), new Version(22, 120, 120, 18, 18, new ECBlocks(68, ecb11)), new Version(23, 132, 132, 20, 20, new ECBlocks(62, new ECB(i3, 163))), new Version(24, 144, 144, 22, 22, new ECBlocks(62, new ECB(i3, 156), new ECB(i5, 155))), new Version(25, 8, 18, 6, 16, new ECBlocks(i4, new ECB(i, i2))), new Version(26, 8, 32, 6, 14, new ECBlocks(11, new ECB(i, 10))), new Version(27, 12, 26, 10, 24, new ECBlocks(14, new ECB(i, 16))), new Version(28, 12, 36, 10, 16, new ECBlocks(i7, new ECB(i, 22))), new Version(29, 16, 36, 14, 16, new ECBlocks(24, new ECB(i, 32))), new Version(30, 16, 48, 14, 22, new ECBlocks(28, new ECB(i, 49)))};
|
||||
}
|
||||
|
||||
public int a() {
|
||||
return this.e;
|
||||
}
|
||||
|
||||
public int b() {
|
||||
return this.d;
|
||||
}
|
||||
|
||||
ECBlocks c() {
|
||||
return this.f;
|
||||
}
|
||||
|
||||
public int d() {
|
||||
return this.c;
|
||||
}
|
||||
|
||||
public int e() {
|
||||
return this.b;
|
||||
}
|
||||
|
||||
public int f() {
|
||||
return this.g;
|
||||
}
|
||||
|
||||
public int g() {
|
||||
return this.a;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return String.valueOf(this.a);
|
||||
}
|
||||
|
||||
static final class ECBlocks {
|
||||
private final int a;
|
||||
private final ECB[] b;
|
||||
|
||||
ECB[] a() {
|
||||
return this.b;
|
||||
}
|
||||
|
||||
int b() {
|
||||
return this.a;
|
||||
}
|
||||
|
||||
private ECBlocks(int i, ECB ecb) {
|
||||
this.a = i;
|
||||
this.b = new ECB[]{ecb};
|
||||
}
|
||||
|
||||
private ECBlocks(int i, ECB ecb, ECB ecb2) {
|
||||
this.a = i;
|
||||
this.b = new ECB[]{ecb, ecb2};
|
||||
}
|
||||
}
|
||||
|
||||
public static Version a(int i, int i2) throws FormatException {
|
||||
if ((i & 1) != 0 || (i2 & 1) != 0) {
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
for (Version version : h) {
|
||||
if (version.b == i && version.c == i2) {
|
||||
return version;
|
||||
}
|
||||
}
|
||||
throw FormatException.getFormatInstance();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user