package com.google.zxing.oned; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; import java.util.Map; /* loaded from: classes.dex */ public final class Code39Writer extends OneDimensionalCodeWriter { private static String b(String str) { int length = str.length(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < length; i++) { char charAt = str.charAt(i); if (charAt != 0) { if (charAt != ' ') { if (charAt == '@') { sb.append("%V"); } else if (charAt == '`') { sb.append("%W"); } else if (charAt != '-' && charAt != '.') { if (charAt <= 26) { sb.append('$'); sb.append((char) ((charAt - 1) + 65)); } else if (charAt < ' ') { sb.append('%'); sb.append((char) ((charAt - 27) + 65)); } else if (charAt <= ',' || charAt == '/' || charAt == ':') { sb.append('/'); sb.append((char) ((charAt - '!') + 65)); } else if (charAt <= '9') { sb.append((char) ((charAt - '0') + 48)); } else if (charAt <= '?') { sb.append('%'); sb.append((char) ((charAt - ';') + 70)); } else if (charAt <= 'Z') { sb.append((char) ((charAt - 'A') + 65)); } else if (charAt <= '_') { sb.append('%'); sb.append((char) ((charAt - '[') + 75)); } else if (charAt <= 'z') { sb.append('+'); sb.append((char) ((charAt - 'a') + 65)); } else { if (charAt > 127) { throw new IllegalArgumentException("Requested content contains a non-encodable character: '" + str.charAt(i) + "'"); } sb.append('%'); sb.append((char) ((charAt - '{') + 80)); } } } sb.append(charAt); } else { sb.append("%U"); } } return sb.toString(); } @Override // com.google.zxing.oned.OneDimensionalCodeWriter, com.google.zxing.Writer public BitMatrix a(String str, BarcodeFormat barcodeFormat, int i, int i2, Map map) throws WriterException { if (barcodeFormat == BarcodeFormat.CODE_39) { return super.a(str, barcodeFormat, i, i2, map); } throw new IllegalArgumentException("Can only encode CODE_39, but got ".concat(String.valueOf(barcodeFormat))); } @Override // com.google.zxing.oned.OneDimensionalCodeWriter public boolean[] a(String str) { int length = str.length(); if (length <= 80) { int i = 0; while (true) { if (i >= length) { break; } if ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%".indexOf(str.charAt(i)) < 0) { str = b(str); length = str.length(); if (length > 80) { throw new IllegalArgumentException("Requested contents should be less than 80 digits long, but got " + length + " (extended full ASCII mode)"); } } else { i++; } } int[] iArr = new int[9]; int i2 = length + 25; int i3 = 0; while (i3 < length) { a(Code39Reader.e["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%".indexOf(str.charAt(i3))], iArr); int i4 = i2; for (int i5 = 0; i5 < 9; i5++) { i4 += iArr[i5]; } i3++; i2 = i4; } boolean[] zArr = new boolean[i2]; a(148, iArr); int a = OneDimensionalCodeWriter.a(zArr, 0, iArr, true); int[] iArr2 = {1}; int a2 = a + OneDimensionalCodeWriter.a(zArr, a, iArr2, false); for (int i6 = 0; i6 < length; i6++) { a(Code39Reader.e["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%".indexOf(str.charAt(i6))], iArr); int a3 = a2 + OneDimensionalCodeWriter.a(zArr, a2, iArr, true); a2 = a3 + OneDimensionalCodeWriter.a(zArr, a3, iArr2, false); } a(148, iArr); OneDimensionalCodeWriter.a(zArr, a2, iArr, true); return zArr; } throw new IllegalArgumentException("Requested contents should be less than 80 digits long, but got ".concat(String.valueOf(length))); } private static void a(int i, int[] iArr) { for (int i2 = 0; i2 < 9; i2++) { int i3 = 1; if (((1 << (8 - i2)) & i) != 0) { i3 = 2; } iArr[i2] = i3; } } }