package com.google.zxing.datamatrix.encoder; import com.google.zxing.Dimension; import java.util.Arrays; /* loaded from: classes3.dex */ public final class HighLevelEncoder { static final int ASCII_ENCODATION = 0; static final int BASE256_ENCODATION = 5; static final int C40_ENCODATION = 1; static final char C40_UNLATCH = 254; static final int EDIFACT_ENCODATION = 4; static final char LATCH_TO_ANSIX12 = 238; static final char LATCH_TO_BASE256 = 231; static final char LATCH_TO_C40 = 230; static final char LATCH_TO_EDIFACT = 240; static final char LATCH_TO_TEXT = 239; private static final char MACRO_05 = 236; private static final String MACRO_05_HEADER = "[)>\u001e05\u001d"; private static final char MACRO_06 = 237; private static final String MACRO_06_HEADER = "[)>\u001e06\u001d"; private static final String MACRO_TRAILER = "\u001e\u0004"; private static final char PAD = 129; static final int TEXT_ENCODATION = 2; static final char UPPER_SHIFT = 235; static final int X12_ENCODATION = 3; static final char X12_UNLATCH = 254; /* JADX INFO: Access modifiers changed from: package-private */ public static boolean isDigit(char c) { return c >= '0' && c <= '9'; } /* JADX INFO: Access modifiers changed from: package-private */ public static boolean isExtendedASCII(char c) { return c >= 128 && c <= 255; } private static boolean isNativeC40(char c) { if (c == ' ') { return true; } if (c < '0' || c > '9') { return c >= 'A' && c <= 'Z'; } return true; } private static boolean isNativeEDIFACT(char c) { return c >= ' ' && c <= '^'; } private static boolean isNativeText(char c) { if (c == ' ') { return true; } if (c < '0' || c > '9') { return c >= 'a' && c <= 'z'; } return true; } private static boolean isSpecialB256(char c) { return false; } private static boolean isX12TermSep(char c) { return c == '\r' || c == '*' || c == '>'; } private HighLevelEncoder() { } private static char randomize253State(int i) { int i2 = (i * 149) % 253; int i3 = i2 + 130; if (i3 > 254) { i3 = i2 - 124; } return (char) i3; } public static String encodeHighLevel(String str) { return encodeHighLevel(str, SymbolShapeHint.FORCE_NONE, null, null); } public static String encodeHighLevel(String str, SymbolShapeHint symbolShapeHint, Dimension dimension, Dimension dimension2) { int i = 0; Encoder[] encoderArr = {new ASCIIEncoder(), new C40Encoder(), new TextEncoder(), new X12Encoder(), new EdifactEncoder(), new Base256Encoder()}; EncoderContext encoderContext = new EncoderContext(str); encoderContext.setSymbolShape(symbolShapeHint); encoderContext.setSizeConstraints(dimension, dimension2); if (str.startsWith(MACRO_05_HEADER) && str.endsWith(MACRO_TRAILER)) { encoderContext.writeCodeword(MACRO_05); encoderContext.setSkipAtEnd(2); encoderContext.pos += 7; } else if (str.startsWith(MACRO_06_HEADER) && str.endsWith(MACRO_TRAILER)) { encoderContext.writeCodeword(MACRO_06); encoderContext.setSkipAtEnd(2); encoderContext.pos += 7; } while (encoderContext.hasMoreCharacters()) { encoderArr[i].encode(encoderContext); if (encoderContext.getNewEncoding() >= 0) { i = encoderContext.getNewEncoding(); encoderContext.resetEncoderSignal(); } } int codewordCount = encoderContext.getCodewordCount(); encoderContext.updateSymbolInfo(); int dataCapacity = encoderContext.getSymbolInfo().getDataCapacity(); if (codewordCount < dataCapacity && i != 0 && i != 5 && i != 4) { encoderContext.writeCodeword((char) 254); } StringBuilder codewords = encoderContext.getCodewords(); if (codewords.length() < dataCapacity) { codewords.append(PAD); } while (codewords.length() < dataCapacity) { codewords.append(randomize253State(codewords.length() + 1)); } return encoderContext.getCodewords().toString(); } /* JADX INFO: Access modifiers changed from: package-private */ public static int lookAheadTest(CharSequence charSequence, int i, int i2) { float[] fArr; char c; if (i >= charSequence.length()) { return i2; } int i3 = 6; if (i2 == 0) { fArr = new float[]{0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.25f}; } else { fArr = new float[]{1.0f, 2.0f, 2.0f, 2.0f, 2.0f, 2.25f}; fArr[i2] = 0.0f; } int i4 = 0; while (true) { int i5 = i + i4; if (i5 == charSequence.length()) { byte[] bArr = new byte[i3]; int[] iArr = new int[i3]; int findMinimums = findMinimums(fArr, iArr, Integer.MAX_VALUE, bArr); int minimumCount = getMinimumCount(bArr); if (iArr[0] == findMinimums) { return 0; } if (minimumCount == 1 && bArr[5] > 0) { return 5; } if (minimumCount == 1 && bArr[4] > 0) { return 4; } if (minimumCount != 1 || bArr[2] <= 0) { return (minimumCount != 1 || bArr[3] <= 0) ? 1 : 3; } return 2; } char charAt = charSequence.charAt(i5); i4++; if (isDigit(charAt)) { fArr[0] = fArr[0] + 0.5f; } else if (isExtendedASCII(charAt)) { float ceil = (float) Math.ceil(fArr[0]); fArr[0] = ceil; fArr[0] = ceil + 2.0f; } else { float ceil2 = (float) Math.ceil(fArr[0]); fArr[0] = ceil2; fArr[0] = ceil2 + 1.0f; } if (isNativeC40(charAt)) { fArr[1] = fArr[1] + 0.6666667f; } else if (isExtendedASCII(charAt)) { fArr[1] = fArr[1] + 2.6666667f; } else { fArr[1] = fArr[1] + 1.3333334f; } if (isNativeText(charAt)) { fArr[2] = fArr[2] + 0.6666667f; } else if (isExtendedASCII(charAt)) { fArr[2] = fArr[2] + 2.6666667f; } else { fArr[2] = fArr[2] + 1.3333334f; } if (isNativeX12(charAt)) { fArr[3] = fArr[3] + 0.6666667f; } else if (isExtendedASCII(charAt)) { fArr[3] = fArr[3] + 4.3333335f; } else { fArr[3] = fArr[3] + 3.3333333f; } if (isNativeEDIFACT(charAt)) { fArr[4] = fArr[4] + 0.75f; } else if (isExtendedASCII(charAt)) { fArr[4] = fArr[4] + 4.25f; } else { fArr[4] = fArr[4] + 3.25f; } if (isSpecialB256(charAt)) { c = 5; fArr[5] = fArr[5] + 4.0f; } else { c = 5; fArr[5] = fArr[5] + 1.0f; } if (i4 >= 4) { int[] iArr2 = new int[i3]; byte[] bArr2 = new byte[i3]; findMinimums(fArr, iArr2, Integer.MAX_VALUE, bArr2); int minimumCount2 = getMinimumCount(bArr2); int i6 = iArr2[0]; int i7 = iArr2[c]; if (i6 < i7 && i6 < iArr2[1] && i6 < iArr2[2] && i6 < iArr2[3] && i6 < iArr2[4]) { return 0; } if (i7 < i6) { return 5; } byte b = bArr2[1]; byte b2 = bArr2[2]; byte b3 = bArr2[3]; byte b4 = bArr2[4]; if (b + b2 + b3 + b4 == 0) { return 5; } if (minimumCount2 == 1 && b4 > 0) { return 4; } if (minimumCount2 == 1 && b2 > 0) { return 2; } if (minimumCount2 == 1 && b3 > 0) { return 3; } int i8 = iArr2[1]; if (i8 + 1 < i6 && i8 + 1 < i7 && i8 + 1 < iArr2[4] && i8 + 1 < iArr2[2]) { int i9 = iArr2[3]; if (i8 < i9) { return 1; } if (i8 == i9) { for (int i10 = i + i4 + 1; i10 < charSequence.length(); i10++) { char charAt2 = charSequence.charAt(i10); if (isX12TermSep(charAt2)) { return 3; } if (!isNativeX12(charAt2)) { break; } } return 1; } } } i3 = 6; } } private static int findMinimums(float[] fArr, int[] iArr, int i, byte[] bArr) { Arrays.fill(bArr, (byte) 0); for (int i2 = 0; i2 < 6; i2++) { int ceil = (int) Math.ceil(fArr[i2]); iArr[i2] = ceil; if (i > ceil) { Arrays.fill(bArr, (byte) 0); i = ceil; } if (i == ceil) { bArr[i2] = (byte) (bArr[i2] + 1); } } return i; } private static int getMinimumCount(byte[] bArr) { int i = 0; for (int i2 = 0; i2 < 6; i2++) { i += bArr[i2]; } return i; } private static boolean isNativeX12(char c) { if (isX12TermSep(c) || c == ' ') { return true; } if (c < '0' || c > '9') { return c >= 'A' && c <= 'Z'; } return true; } public static int determineConsecutiveDigitCount(CharSequence charSequence, int i) { int length = charSequence.length(); int i2 = 0; if (i < length) { char charAt = charSequence.charAt(i); while (isDigit(charAt) && i < length) { i2++; i++; if (i < length) { charAt = charSequence.charAt(i); } } } return i2; } /* JADX INFO: Access modifiers changed from: package-private */ public static void illegalCharacter(char c) { String hexString = Integer.toHexString(c); throw new IllegalArgumentException("Illegal character: " + c + " (0x" + ("0000".substring(0, 4 - hexString.length()) + hexString) + ')'); } }