// Path: src/main/java/uk/org/okapibarcode/util/Arrays.java
// public static int positionOf(char value, char[] array) {
//     for (int i = 0; i < array.length; i++) {
//         if (value == array[i]) {
//             return i;
//         }
//     }
//     throw new OkapiException("Unable to find character '" + value + "' in character array.");
// }


import static uk.org.okapibarcode.util.Arrays.positionOf;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;

            switch (i % 3) {
                case 0:
                    offset = 0; // cluster 0
                    dummy[0] = k + c1; // left row indicator
                    dummy[columns + 1] = k + c3; // right row indicator
                    break;
                case 1:
                    offset = 929; // cluster 3
                    dummy[0] = k + c2; // left row indicator
                    dummy[columns + 1] = k + c1; // right row indicator
                    break;
                case 2:
                    offset = 1858; // cluster 6
                    dummy[0] = k + c3; // left row indicator
                    dummy[columns + 1] = k + c2; // right row indicator
                    break;
            }
            codebarre.setLength(0);
            codebarre.append("+*");
            for (j = 0; j <= columns + 1; j++) {
                if (!(symbolMode == Mode.TRUNCATED && j > columns)) {
                    codebarre.append(CODAGEMC[offset + dummy[j]]);
                    codebarre.append('*');
                }
            }
            if(symbolMode != Mode.TRUNCATED) {
                codebarre.append('-');
            }
            bin.setLength(0);
            for (j = 0; j < codebarre.length(); j++) {

// Path: src/main/java/uk/org/okapibarcode/util/Arrays.java
// public static int positionOf(char value, char[] array) {
//     for (int i = 0; i < array.length; i++) {
//         if (value == array[i]) {
//             return i;
//         }
//     }
//     throw new OkapiException("Unable to find character '" + value + "' in character array.");
// }


// Path: src/main/java/uk/org/okapibarcode/backend/Pdf417.java
import static uk.org.okapibarcode.util.Arrays.positionOf;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;

            switch (i % 3) {
                case 0:
                    offset = 0; // cluster 0
                    dummy[0] = k + c1; // left row indicator
                    dummy[columns + 1] = k + c3; // right row indicator
                    break;
                case 1:
                    offset = 929; // cluster 3
                    dummy[0] = k + c2; // left row indicator
                    dummy[columns + 1] = k + c1; // right row indicator
                    break;
                case 2:
                    offset = 1858; // cluster 6
                    dummy[0] = k + c3; // left row indicator
                    dummy[columns + 1] = k + c2; // right row indicator
                    break;
            }
            codebarre.setLength(0);
            codebarre.append("+*");
            for (j = 0; j <= columns + 1; j++) {
                if (!(symbolMode == Mode.TRUNCATED && j > columns)) {
                    codebarre.append(CODAGEMC[offset + dummy[j]]);
                    codebarre.append('*');
                }
            }
            if(symbolMode != Mode.TRUNCATED) {
                codebarre.append('-');
            }
            bin.setLength(0);
            for (j = 0; j < codebarre.length(); j++) {

                bin.append(PDF_TTF[positionOf(codebarre.charAt(j), BR_SET)]);
