// 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/util/Strings.java
// public static void binaryAppend(StringBuilder s, int value, int digits) {
//     int start = 0x01 << (digits - 1);
//     for (int i = 0; i < digits; i++) {
//         if ((value & (start >> i)) == 0) {
//             s.append('0');
//         } else {
//             s.append('1');
//         }
//     }
// }
// 
// Path: src/main/java/uk/org/okapibarcode/backend/DataBar14.java
// public enum Mode {
//     /** DataBar-14 */
//     LINEAR,
//     /** DataBar-14 Omnidirectional */
//     OMNI,
//     /** DataBar-14 Omnidirectional Stacked */
//     STACKED
// }


import static uk.org.okapibarcode.util.Arrays.positionOf;
import static uk.org.okapibarcode.util.Strings.binaryAppend;
import java.awt.geom.Rectangle2D;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import uk.org.okapibarcode.backend.DataBar14.Mode;
        int[] mccorrection = new int[520];
        int c1, c2, c3;
        int[] dummy = new int[35];
        String codebarre;
        StringBuilder bin = new StringBuilder();
        inputData = new int[(binary_string.length() / 8) + 4];

        length = binary_string.length() / 8;

        for (i = 0; i < length; i++) {
            binloc = i * 8;
            inputData[i] = 0;
            for (j = 0; j < 8; j++) {
                if (binary_string.charAt(binloc + j) == '1') {
                    inputData[i] += 0x80 >> j;
                }
            }
        }

        codeWordCount = 0;
        codeWords[codeWordCount] = 0; /* space for length descriptor */
        codeWordCount++;
        codeWords[codeWordCount] = 920; /* CC-C identifier */
        codeWordCount++;

        byteprocess(0, length);

        codeWords[0] = codeWordCount;

        k = 1;
// 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/util/Strings.java
// public static void binaryAppend(StringBuilder s, int value, int digits) {
//     int start = 0x01 << (digits - 1);
//     for (int i = 0; i < digits; i++) {
//         if ((value & (start >> i)) == 0) {
//             s.append('0');
//         } else {
//             s.append('1');
//         }
//     }
// }
// 
// Path: src/main/java/uk/org/okapibarcode/backend/DataBar14.java
// public enum Mode {
//     /** DataBar-14 */
//     LINEAR,
//     /** DataBar-14 Omnidirectional */
//     OMNI,
//     /** DataBar-14 Omnidirectional Stacked */
//     STACKED
// }


// Path: src/main/java/uk/org/okapibarcode/backend/Composite.java
import static uk.org.okapibarcode.util.Arrays.positionOf;
import static uk.org.okapibarcode.util.Strings.binaryAppend;
import java.awt.geom.Rectangle2D;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import uk.org.okapibarcode.backend.DataBar14.Mode;

        int[] mccorrection = new int[520];
        int c1, c2, c3;
        int[] dummy = new int[35];
        String codebarre;
        StringBuilder bin = new StringBuilder();
        inputData = new int[(binary_string.length() / 8) + 4];

        length = binary_string.length() / 8;

        for (i = 0; i < length; i++) {
            binloc = i * 8;
            inputData[i] = 0;
            for (j = 0; j < 8; j++) {
                if (binary_string.charAt(binloc + j) == '1') {
                    inputData[i] += 0x80 >> j;
                }
            }
        }

        codeWordCount = 0;
        codeWords[codeWordCount] = 0; /* space for length descriptor */
        codeWordCount++;
        codeWords[codeWordCount] = 920; /* CC-C identifier */
        codeWordCount++;

        byteprocess(0, length);

        codeWords[0] = codeWordCount;

        k = 1;
        for (i = 1; i <= (ecc + 1); i++) {