package com.google.zxing.oned; import com.google.zxing.BarcodeFormat; import com.google.zxing.common.BitMatrix; import java.util.Map; /* loaded from: classes3.dex */ public class Code93Writer extends OneDimensionalCodeWriter { @Override // com.google.zxing.oned.OneDimensionalCodeWriter, com.google.zxing.Writer public BitMatrix encode(String str, BarcodeFormat barcodeFormat, int i, int i2, Map map) { if (barcodeFormat != BarcodeFormat.CODE_93) { throw new IllegalArgumentException("Can only encode CODE_93, but got ".concat(String.valueOf(barcodeFormat))); } return super.encode(str, barcodeFormat, i, i2, map); } @Override // com.google.zxing.oned.OneDimensionalCodeWriter public boolean[] encode(String str) { int length = str.length(); if (length > 80) { throw new IllegalArgumentException("Requested contents should be less than 80 digits long, but got ".concat(String.valueOf(length))); } int[] iArr = new int[9]; int length2 = ((str.length() + 4) * 9) + 1; toIntArray(Code93Reader.CHARACTER_ENCODINGS[47], iArr); boolean[] zArr = new boolean[length2]; int appendPattern = appendPattern(zArr, 0, iArr); for (int i = 0; i < length; i++) { toIntArray(Code93Reader.CHARACTER_ENCODINGS["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*".indexOf(str.charAt(i))], iArr); appendPattern += appendPattern(zArr, appendPattern, iArr); } int computeChecksumIndex = computeChecksumIndex(str, 20); int[] iArr2 = Code93Reader.CHARACTER_ENCODINGS; toIntArray(iArr2[computeChecksumIndex], iArr); int appendPattern2 = appendPattern + appendPattern(zArr, appendPattern, iArr); toIntArray(iArr2[computeChecksumIndex(str + "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*".charAt(computeChecksumIndex), 15)], iArr); int appendPattern3 = appendPattern2 + appendPattern(zArr, appendPattern2, iArr); toIntArray(iArr2[47], iArr); zArr[appendPattern3 + appendPattern(zArr, appendPattern3, iArr)] = true; return zArr; } private static void toIntArray(int i, int[] iArr) { for (int i2 = 0; i2 < 9; i2++) { int i3 = 1; if (((1 << (8 - i2)) & i) == 0) { i3 = 0; } iArr[i2] = i3; } } public static int appendPattern(boolean[] zArr, int i, int[] iArr) { int length = iArr.length; int i2 = 0; while (i2 < length) { int i3 = i + 1; zArr[i] = iArr[i2] != 0; i2++; i = i3; } return 9; } public static int computeChecksumIndex(String str, int i) { int i2 = 0; int i3 = 1; for (int length = str.length() - 1; length >= 0; length--) { i2 += "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*".indexOf(str.charAt(length)) * i3; i3++; if (i3 > i) { i3 = 1; } } return i2 % 47; } }