// 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;
                codebarre += CODAGEMC[offset + dummy[3]];
                codebarre += "1";
            }
            if (cc_width == 4) {
                codebarre += "1";
                codebarre += CODAGEMC[offset + dummy[4]];
                codebarre += "1";
            }
            codebarre += RAPLR[RightRAP];
            codebarre += "1"; /* stop */

            /* Now codebarre is a mixture of letters and numbers */

            flip = 1;
            bin.setLength(0);
            for (loop = 0; loop < codebarre.length(); loop++) {
                if ((codebarre.charAt(loop) >= '0') && (codebarre.charAt(loop) <= '9')) {
                    for (k = 0; k < codebarre.charAt(loop) - '0'; k++) {
                        if (flip == 0) {
                            bin.append('0');
                        } else {
                            bin.append('1');
                        }
                    }
                    if (flip == 0) {
                        flip = 1;
                    } else {
                        flip = 0;
                    }
                } else {
// 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;

                codebarre += CODAGEMC[offset + dummy[3]];
                codebarre += "1";
            }
            if (cc_width == 4) {
                codebarre += "1";
                codebarre += CODAGEMC[offset + dummy[4]];
                codebarre += "1";
            }
            codebarre += RAPLR[RightRAP];
            codebarre += "1"; /* stop */

            /* Now codebarre is a mixture of letters and numbers */

            flip = 1;
            bin.setLength(0);
            for (loop = 0; loop < codebarre.length(); loop++) {
                if ((codebarre.charAt(loop) >= '0') && (codebarre.charAt(loop) <= '9')) {
                    for (k = 0; k < codebarre.charAt(loop) - '0'; k++) {
                        if (flip == 0) {
                            bin.append('0');
                        } else {
                            bin.append('1');
                        }
                    }
                    if (flip == 0) {
                        flip = 1;
                    } else {
                        flip = 0;
                    }
                } else {
                    bin.append(PDF_TTF[positionOf(codebarre.charAt(loop), BR_SET)]);