@bwip-js/react-native
Version:
JavaScript barcode generator supporting over 100 types and standards.
1,576 lines (1,534 loc) • 1.89 MB
JavaScript
// This file is part of the bwip-js project available at:
//
// http://metafloor.github.io/bwip-js
//
// Copyright (c) 2011-2025 Mark Warren
//
// This file contains code automatically generated from:
// Barcode Writer in Pure PostScript - Version 2024-06-18
// Copyright (c) 2004-2024 Terry Burton
//
// The MIT License
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
"use strict";
// bwip-js // Barcode Writer in Pure JavaScript
// https://github.com/metafloor/bwip-js
//
// This code was automatically generated from:
// Barcode Writer in Pure PostScript - Version 2024-06-18
//
// Copyright (c) 2011-2025 Mark Warren
// Copyright (c) 2004-2024 Terry Burton
//
// Licensed MIT. See the LICENSE file in the bwip-js root directory.
// bwip-js/barcode-hdr.js
//
// This code is injected above the cross-compiled barcode.js.
// The BWIPJS object (graphics interface)
var $$ = null;
var $j = 0; // stack pointer
var $k = []; // operand stack
var $_ = {}; // base of the dictionary stack
// Array ctor
// $a() : Build a new array up to the Infinity-marker on the stack.
// $a(arr) : Convert native array to a "view" of the array.
// $a(len) : Create a new array of length `len`
function $a(a) {
if (!arguments.length) {
for (var i = $j - 1; i >= 0 && $k[i] !== Infinity; i--);
if (i < 0) {
throw new Error('array-marker-not-found');
}
a = $k.splice(i + 1, $j - 1 - i);
$j = i;
} else if (!(a instanceof Array)) {
a = new Array(+arguments[0]);
for (var i = 0, l = a.length; i < l; i++) {
a[i] = null;
}
}
a.b = a; // base array
a.o = 0; // offset into base
return a;
}
// dict ctor
// $d() : look for the Infinity marker on the stack
function $d() {
// Build the dictionary in the order the keys/values were pushed so enumeration
// occurs in the correct sequence.
for (var mark = $j - 1; mark >= 0 && $k[mark] !== Infinity; mark -= 2) {
if ($k[mark - 1] === Infinity) {
throw new Error('dict-malformed-stack');
}
}
if (mark < 0) {
throw new Error('dict-marker-not-found');
}
var d = new Map;
for (var i = mark + 1; i < $j; i += 2) {
// Unlike javascript, postscript dict keys differentiate between
// numbers and the string representation of a number.
var k = $k[i]; // "key" into the dict entry
var t = typeof k;
if (t == 'number' || t == 'string') {
d.set(k, $k[i + 1]);
} else if (k instanceof Uint8Array) {
d.set($z(k), $k[i + 1]);
} else {
throw new Error('dict-not-a-valid-key(' + k + ')');
}
}
$j = mark;
return d;
}
// string ctor
// s(number) : create zero-filled string of number-length
// s(string) : make a copy of the string
// s(uint8[]) : make a copy of the string
//
// Returns a Uint8Array-string.
function $s(v) {
var t = typeof v;
if (t === 'number') {
return new Uint8Array(v);
}
if (t !== 'string') {
v = '' + v;
}
var s = new Uint8Array(v.length);
for (var i = 0; i < v.length; i++) {
s[i] = v.charCodeAt(i);
}
return s;
}
// ... n c roll
function $r(n, c) {
if ($j < n) {
throw new Error('roll: --stack-underflow--');
}
if (!c) {
return;
}
if (c < 0) {
var t = $k.splice($j - n, -c);
} else {
var t = $k.splice($j - n, n - c);
}
$k.splice.apply($k, [$j - t.length, 0].concat(t));
}
// Primarily designed to convert uint8-string to string, but will call the
// the toString() method on any value.
function $z(s) {
if (s instanceof Uint8Array) {
return String.fromCharCode.apply(null, s);
}
return '' + s;
}
// Copies source to dest and returns a view of just the copied characters
function $strcpy(dst, src) {
if (typeof dst === 'string') {
dst = $s(dst);
}
if (src instanceof Uint8Array) {
for (var i = 0, l = src.length; i < l; i++) {
dst[i] = src[i];
}
} else {
for (var i = 0, l = src.length; i < l; i++) {
dst[i] = src.charCodeAt(i);
}
}
return src.length < dst.length ? dst.subarray(0, src.length) : dst;
}
// Copies source to dest and should (but doesn't) return a view of just the copied elements
function $arrcpy(dst, src) {
for (var i = 0, l = src.length; i < l; i++) {
dst[i] = src[i];
}
dst.length = src.length;
return dst;
}
// cvs operator - convert a value to its string representation
// s : string to store into
// v : any value
function $cvs(s, v) {
var t = typeof v;
if (t == 'number' || t == 'boolean' || v === null) {
v = '' + v;
} else if (t !== 'string') {
v = '--nostringval--';
}
for (var i = 0, l = v.length; i < l; i++) {
s[i] = v.charCodeAt(i);
}
$k[$j++] = i < s.length ? s.subarray(0, i) : s;
}
// cvi operator - converts a numeric string value to integer.
function $cvi(s) {
if (s instanceof Uint8Array) {
// nul-chars on the end of a string are ignored by postscript but cause javascript
// to return a zero result.
return String.fromCharCode.apply(null, s).replace(/\0+$/, '') | 0;
}
return ('' + s) | 0;
}
// cvrs operator - convert a number to a radix string
// s : string to store into
// n : number
// r : radix
function $cvrs(s, n, r) {
return $strcpy(s, (~~n).toString(r).toUpperCase());
}
// cvx - convert to executable.
// This is only used by BWIPP to convert <XX> string literals.
function $cvx(s) {
s = $z(s)
var m = /^\s*<((?:[0-9a-fA-F]{2})+)>\s*$/.exec(s);
if (!m) {
throw new Error('cvx: not a <HH> hex string literal');
}
var h = m[1];
var l = h.length >> 1;
var u = new Uint8Array(l);
for (var i = 0, j = 0; i < l; i++) {
var c0 = h.charCodeAt(j++);
var c1 = h.charCodeAt(j++);
u[i] = ((c0 < 58 ? c0 - 48 : (c0 & 15) + 9) << 4) +
(c1 < 58 ? c1 - 48 : (c1 & 15) + 9);
}
return u;
}
// get operator
// s : source
// k : key
function $get(s, k) {
if (s instanceof Uint8Array) {
return s[k];
}
if (typeof s === 'string') {
return s.charCodeAt(k);
}
if (s instanceof Array) {
return s.b[s.o + k];
}
if (k instanceof Uint8Array) {
return s.get($z(k));
}
return s.get(k);
}
// put operator
// d : dest
// k : key
// v : value
function $put(d, k, v) {
if (d instanceof Uint8Array) {
d[k] = v;
} else if (d instanceof Array) {
d.b[d.o + k] = v;
} else if (typeof d == 'object') {
if (k instanceof Uint8Array) {
d.set($z(k), v);
} else {
d.set(k, v);
}
} else {
throw new Error('put-not-writable-' + (typeof d));
}
}
// getinterval operator
// s : src
// o : offset
// l : length
function $geti(s, o, l) {
if (s instanceof Uint8Array) {
return s.subarray(o, o + l);
}
if (s instanceof Array) {
var a = new Array(l);
a.b = s.b; // base array
a.o = s.o + o; // offset into base
return a;
}
// Must be a string
return s.substr(o, l);
}
// putinterval operator
// d : dst
// o : offset
// s : src
function $puti(d, o, s) {
if (d instanceof Uint8Array) {
if (typeof s == 'string') {
for (var i = 0, l = s.length; i < l; i++) {
d[o + i] = s.charCodeAt(i);
}
} else {
// When both d and s are the same, we want to copy
// backwards, which works for the general case as well.
for (var i = s.length - 1; i >= 0; i--) {
d[o + i] = s[i];
}
}
} else if (d instanceof Array) {
// Operate on the base arrays
var darr = d.b;
var doff = o + d.o;
var sarr = s.b;
var soff = s.o;
for (var i = 0, l = s.length; i < l; i++) {
darr[doff + i] = sarr[soff + i];
}
} else {
throw new Error('putinterval-not-writable-' + (typeof d));
}
}
// type operator
function $type(v) {
// null can be mis-typed - get it out of the way
if (v == null) {
return 'nulltype';
}
var t = typeof v;
if (t == 'number') {
return v % 1 ? 'realtype' : 'integertype';
}
if (t == 'boolean') {
return 'booleantype';
}
if (t == 'string' || v instanceof Uint8Array) {
return 'stringtype';
}
if (t == 'function') {
return 'operatortype';
}
if (v instanceof Array) {
return 'arraytype';
}
return 'dicttype';
// filetype
// fonttype
// gstatetype
// marktype (v === Infinity)
// nametype
// savetype
}
// anchorsearch operator
// string seek anchorsearch suffix seek true %if-found
// string false %if-not-found
function $anchorsearch(str, seek) {
if (!(str instanceof Uint8Array)) {
str = $s(str);
}
var i = 0,
ls = str.length,
lk = seek.length;
// Optimize for single characters.
if (lk == 1) {
var cd = seek instanceof Uint8Array ? seek[0] : seek.charCodeAt(0);
i = str[0] == cd ? 1 : ls;
} else if (seek.length <= ls) {
// Slow path,
if (!(seek instanceof Uint8Array)) {
seek = $s(seek);
}
for (; i < lk && str[i] == seek[i]; i++);
}
if (i == lk) {
$k[$j++] = str.subarray(lk);
$k[$j++] = str.subarray(0, lk);
$k[$j++] = true;
} else {
$k[$j++] = str;
$k[$j++] = false;
}
}
// search operator
// string seek search suffix match prefix true %if-found
// string false %if-not-found
function $search(str, seek) {
if (!(str instanceof Uint8Array)) {
str = $s(str);
}
var ls = str.length;
// Virtually all uses of search in BWIPP are for single-characters.
// Optimize for that case.
if (seek.length == 1) {
var lk = 1;
var cd = seek instanceof Uint8Array ? seek[0] : seek.charCodeAt(0);
for (var i = 0; i < ls && str[i] != cd; i++);
} else {
// Slow path,
if (!(seek instanceof Uint8Array)) {
seek = $s(seek);
}
var lk = seek.length;
var cd = seek[0];
for (var i = 0; i < ls && str[i] != cd; i++);
while (i < ls) {
for (var j = 1; j < lk && str[i + j] === seek[j]; j++);
if (j === lk) {
break;
}
for (i++; i < ls && str[i] != cd; i++);
}
}
if (i < ls) {
$k[$j++] = str.subarray(i + lk);
$k[$j++] = str.subarray(i, i + lk);
$k[$j++] = str.subarray(0, i);
$k[$j++] = true;
} else {
$k[$j++] = str;
$k[$j++] = false;
}
}
// The callback is omitted when forall is being used just to push onto the
// stack. The callback normally returns undefined. A return of true means break.
function $forall(o, cb) {
if (o instanceof Uint8Array) {
for (var i = 0, l = o.length; i < l; i++) {
$k[$j++] = o[i];
if (cb && cb()) break;
}
} else if (o instanceof Array) {
// The array may be a view.
for (var a = o.b, i = o.o, l = o.o + o.length; i < l; i++) {
$k[$j++] = a[i];
if (cb && cb()) break;
}
} else if (typeof o === 'string') {
for (var i = 0, l = o.length; i < l; i++) {
$k[$j++] = o.charCodeAt(i);
if (cb && cb()) break;
}
} else if (o instanceof Map) {
for (var keys = o.keys(), i = 0, l = o.size; i < l; i++) {
var id = keys.next().value;
$k[$j++] = id;
$k[$j++] = o.get(id);
if (cb && cb()) break;
}
} else {
for (var id in o) {
$k[$j++] = id;
$k[$j++] = o[id];
if (cb && cb()) break;
}
}
}
function $cleartomark() {
while ($j > 0 && $k[--$j] !== Infinity);
}
function $counttomark() {
for (var i = $j - 1; i >= 0 && $k[i] !== Infinity; i--);
return $j - i - 1;
}
function $aload(a) {
for (var i = 0, l = a.length, b = a.b, o = a.o; i < l; i++) {
$k[$j++] = b[o + i];
}
// This push has been optimized out. See $.aload() in psc.js.
//$k[$j++] = a;
}
function $astore(a) {
for (var i = 0, l = a.length, b = a.b, o = a.o + l - 1; i < l; i++) {
b[o - i] = $k[--$j];
}
$k[$j++] = a;
}
function $eq(a, b) {
if (typeof a === 'string' && typeof b === 'string') {
return a == b;
}
if (a instanceof Uint8Array && b instanceof Uint8Array) {
if (a.length != b.length) {
return false;
}
for (var i = 0, l = a.length; i < l; i++) {
if (a[i] != b[i]) {
return false;
}
}
return true;
}
if (a instanceof Uint8Array && typeof b === 'string' ||
b instanceof Uint8Array && typeof a === 'string') {
if (a instanceof Uint8Array) {
a = $z(a);
} else {
b = $z(b);
}
return a == b;
}
return a == b;
}
function $ne(a, b) {
return !$eq(a, b);
}
function $lt(a, b) {
if (a instanceof Uint8Array) {
a = $z(a);
}
if (b instanceof Uint8Array) {
b = $z(b);
}
return a < b;
}
function $le(a, b) {
if (a instanceof Uint8Array) {
a = $z(a);
}
if (b instanceof Uint8Array) {
b = $z(b);
}
return a <= b;
}
function $gt(a, b) {
if (a instanceof Uint8Array) {
a = $z(a);
}
if (b instanceof Uint8Array) {
b = $z(b);
}
return a > b;
}
function $ge(a, b) {
if (a instanceof Uint8Array) {
a = $z(a);
}
if (b instanceof Uint8Array) {
b = $z(b);
}
return a >= b;
}
function $an(a, b) { // and
return (typeof a === 'boolean') ? a && b : a & b;
}
function $or(a, b) { // or
return (typeof a === 'boolean') ? a || b : a | b;
}
function $xo(a, b) { // xor
return (typeof a === 'boolean') ? !a && b || a && !b : a ^ b;
}
function $nt(a) {
return typeof a == 'boolean' ? !a : ~a;
}
// emulate single-precision floating-point (pseudo-polyfill for Math.fround)
var $f = (function(fa) {
return function(v) {
return Number.isInteger(v) ? v : (fa[0] = v, fa[0]);
};
})(new Float32Array(1));
// This is a replacement for the BWIPP raiseerror function.
function bwipp_raiseerror() {
var info = $k[--$j];
var name = $k[--$j];
throw new Error($z(name) + ": " + $z(info));
}
// This is a replacement for the BWIPP processoptions function.
// We cannot use the BWIPP version due to two reasons:
// - legacy code allows strings to be numbers and numbers to be strings
// - in javascript, there is no way to tell the difference between a real
// number that is an integer, and an actual integer.
//
// options currentdict processoptions exec -> options
function bwipp_processoptions() {
var dict = $k[--$j];
var opts = $k[$j - 1];
var map = opts instanceof Map;
for (var id in dict) {
var val;
if (map) {
if (!opts.has(id)) {
continue;
}
val = opts.get(id);
} else {
if (!opts.hasOwnProperty(id)) {
continue;
}
val = opts[id];
}
var def = dict[id];
var typ = typeof def;
// null is a placeholder for realtype
if (def == null || typ == 'number') {
// This allows for numeric strings
if (!isFinite(+val)) {
throw new Error('bwipp.invalidOptionType: ' + id +
': not a realtype: ' + val);
}
if (typeof val == 'string') {
val = +val;
map ? opts.set(id, val) : (opts[id] = val);
}
} else if (typ == 'boolean') {
if (val !== true && val !== false) {
// In keeping with the ethos of javascript, allow a more relaxed
// interpretation of boolean.
if (val == null || (val | 0) === val) {
val = !!val;
} else if (val == 'true') {
val = true;
} else if (val == 'false') {
val = false;
} else {
throw new Error('bwipp.invalidOptionType: ' + id +
': not a booleantype: ' + val);
}
map ? opts.set(id, val) : (opts[id] = val);
}
} else if (typ == 'string' || def instanceof Uint8Array) {
// This allows numbers to be strings
if (typeof val == 'number') {
val = '' + val;
map ? opts.set(id, val) : (opts[id] = val);
} else if (typeof val != 'string' && !(val instanceof Uint8Array)) {
throw new Error('bwipp.invalidOptionType: ' + id +
': not a stringtype: ' + val);
}
}
// Set the option into the dictionary
dict[id] = val;
}
}
// Replacement for loadctx which contains complex postscript operations
// that we don't implement correctly.
// f is a reference to the enclosing function.
function bwipp_loadctx(f) {
if (!f.$ctx) {
f.$ctx = {};
}
var next = Object.getPrototypeOf($_);
Object.setPrototypeOf(f.$ctx, next);
Object.setPrototypeOf($_, f.$ctx);
}
function bwipp_parseinput() {
$_ = Object.create($_); //#200
bwipp_loadctx(bwipp_parseinput) //#202
$_.fncvals = $k[--$j]; //#204
$_.barcode = $k[--$j]; //#205
var _2 = 'parse'; //#207
$_[_2] = $get($_.fncvals, _2); //#207
delete $_.fncvals[_2]; //#207
var _6 = 'parsefnc'; //#208
$_[_6] = $get($_.fncvals, _6); //#208
delete $_.fncvals[_6]; //#208
var _A = 'parseonly'; //#209
var _C = $get($_.fncvals, _A) !== undefined; //#209
$_[_A] = _C; //#209
delete $_.fncvals[_A]; //#209
var _E = 'eci'; //#210
var _G = $get($_.fncvals, _E) !== undefined; //#210
$_[_E] = _G; //#210
delete $_.fncvals[_E]; //#210
if (!bwipp_parseinput.__225__) { //#225
$_ = Object.create($_); //#225
$k[$j++] = Infinity; //#214
var _I = $a(['NUL', 'SOH', 'STX', 'ETX', 'EOT', 'ENQ', 'ACK', 'BEL', 'BS', 'TAB', 'LF', 'VT', 'FF', 'CR', "", "", 'DLE', 'DC1', 'DC2', 'DC3', 'DC4', 'NAK', 'SYN', 'ETB', 'CAN', 'EM', 'SUB', 'ESC', 'FS', 'GS', 'RS', 'US']); //#219
$k[$j++] = 0; //#223
for (var _J = 0, _K = _I.length; _J < _K; _J++) { //#223
var _M = $k[--$j]; //#222
$k[$j++] = $get(_I, _J); //#222
$k[$j++] = _M; //#222
$k[$j++] = $f(_M + 1); //#222
} //#222
$j--; //#223
$_.ctrl = $d(); //#224
for (var id in $_) $_.hasOwnProperty(id) && (bwipp_parseinput.$ctx[id] = $_[id]); //#224
bwipp_parseinput.__225__ = 1; //#224
$_ = Object.getPrototypeOf($_); //#224
} //#224
$_.msg = $a($_.barcode.length); //#227
$_.j = 0; //#228
$k[$j++] = $_.barcode; //#347
for (;;) { //#347
$search($k[--$j], "^"); //#230
var _T = $k[--$j]; //#230
var _U = $k[--$j]; //#230
$k[$j++] = _T; //#233
$k[$j++] = _U.length; //#233
$k[$j++] = $_.msg; //#233
$k[$j++] = $_.j; //#233
$k[$j++] = _U; //#233
$k[$j++] = Infinity; //#233
var _X = $k[--$j]; //#233
var _Y = $k[--$j]; //#233
$k[$j++] = _X; //#233
$forall(_Y); //#233
var _Z = $a(); //#233
var _a = $k[--$j]; //#233
$puti($k[--$j], _a, _Z); //#233
$_.j = $f($k[--$j] + $_.j); //#234
if ($k[--$j]) { //#345
$j--; //#236
for (var _f = 0, _g = 1; _f < _g; _f++) { //#343
if ($an($nt($_.parse), $nt($_.parsefnc))) { //#243
$put($_.msg, $_.j, 94); //#240
$_.j = $f($_.j + 1); //#241
break; //#242
} //#242
$put($_.msg, $_.j, 94); //#246
$_.j = $f($_.j + 1); //#247
if ($_.parse) { //#290
var _q = $k[--$j]; //#251
$k[$j++] = _q; //#262
if (_q.length >= 3) { //#262
var _r = $k[--$j]; //#252
var _s = $geti(_r, 0, 3); //#252
var _t = $_.ctrl; //#252
var _u = $get(_t, _s) !== undefined; //#253
$k[$j++] = _r; //#261
$k[$j++] = _t; //#261
$k[$j++] = _s; //#261
if (_u) { //#260
$_.j = $f($_.j - 1); //#254
var _w = $k[--$j]; //#255
$put($_.msg, $_.j, $get($k[--$j], _w)); //#255
$_.j = $f($_.j + 1); //#256
var _12 = $k[--$j]; //#257
$k[$j++] = $geti(_12, 3, _12.length - 3); //#258
break; //#258
} else { //#260
$j -= 2; //#260
} //#260
} //#260
var _14 = $k[--$j]; //#263
$k[$j++] = _14; //#274
if (_14.length >= 2) { //#274
var _15 = $k[--$j]; //#264
var _16 = $geti(_15, 0, 2); //#264
var _17 = $_.ctrl; //#264
var _18 = $get(_17, _16) !== undefined; //#265
$k[$j++] = _15; //#273
$k[$j++] = _17; //#273
$k[$j++] = _16; //#273
if (_18) { //#272
$_.j = $f($_.j - 1); //#266
var _1A = $k[--$j]; //#267
$put($_.msg, $_.j, $get($k[--$j], _1A)); //#267
$_.j = $f($_.j + 1); //#268
var _1G = $k[--$j]; //#269
$k[$j++] = $geti(_1G, 2, _1G.length - 2); //#270
break; //#270
} else { //#272
$j -= 2; //#272
} //#272
} //#272
var _1I = $k[--$j]; //#275
$k[$j++] = _1I; //#289
if (_1I.length >= 3) { //#289
var _1J = $k[--$j]; //#276
var _1K = $geti(_1J, 0, 3); //#276
$k[$j++] = _1J; //#278
$k[$j++] = true; //#278
for (var _1L = 0, _1M = _1K.length; _1L < _1M; _1L++) { //#278
var _1N = $get(_1K, _1L); //#278
if ((_1N < 48) || (_1N > 57)) { //#277
$j--; //#277
$k[$j++] = false; //#277
} //#277
} //#277
if ($k[--$j]) { //#288
var _1P = $k[--$j]; //#280
var _1R = $cvi($geti(_1P, 0, 3)); //#280
$k[$j++] = _1P; //#283
$k[$j++] = _1R; //#283
if (_1R > 255) { //#283
$j -= 2; //#281
$k[$j++] = 'bwipp.invalidOrdinal#282'; //#282
$k[$j++] = "Ordinal must be 000 to 255"; //#282
bwipp_raiseerror(); //#282
} //#282
$_.j = $f($_.j - 1); //#284
$put($_.msg, $_.j, $k[--$j]); //#285
$_.j = $f($_.j + 1); //#286
var _1X = $k[--$j]; //#287
$k[$j++] = $geti(_1X, 3, _1X.length - 3); //#287
} //#287
} //#287
} //#287
if (($or($_.parseonly, $nt($_.parsefnc))) || ($get($_.msg, $f($_.j - 1)) != 94)) { //#295
break; //#295
} //#295
$_.j = $f($_.j - 1); //#298
var _1f = $k[--$j]; //#299
$k[$j++] = _1f; //#302
if (_1f.length < 3) { //#302
$j--; //#300
$k[$j++] = 'bwipp.truncatedFNC#301'; //#301
$k[$j++] = "Function character truncated"; //#301
bwipp_raiseerror(); //#301
} //#301
var _1g = $k[--$j]; //#303
$k[$j++] = _1g; //#308
if ($get(_1g, 0) == 94) { //#308
$put($_.msg, $_.j, 94); //#304
$_.j = $f($_.j + 1); //#305
var _1l = $k[--$j]; //#306
$k[$j++] = $geti(_1l, 1, _1l.length - 1); //#307
break; //#307
} //#307
var _1n = $k[--$j]; //#309
$k[$j++] = _1n; //#326
if ($eq($geti(_1n, 0, 3), "ECI") && $_.eci) { //#326
var _1q = $k[--$j]; //#310
$k[$j++] = _1q; //#313
if (_1q.length < 9) { //#313
$j--; //#311
$k[$j++] = 'bwipp.truncatedECI#312'; //#312
$k[$j++] = "ECI truncated"; //#312
bwipp_raiseerror(); //#312
} //#312
var _1r = $k[--$j]; //#314
var _1s = $geti(_1r, 3, 6); //#314
$k[$j++] = _1r; //#320
$k[$j++] = _1s; //#320
for (var _1t = 0, _1u = _1s.length; _1t < _1u; _1t++) { //#320
var _1v = $get(_1s, _1t); //#320
if ((_1v < 48) || (_1v > 57)) { //#319
$j -= 2; //#317
$k[$j++] = 'bwipp.invalidECI#318'; //#318
$k[$j++] = "ECI must be 000000 to 999999"; //#318
bwipp_raiseerror(); //#318
} //#318
} //#318
var _1w = $k[--$j]; //#321
$k[$j++] = 0; //#321
$forall(_1w, function() { //#321
var _1x = $k[--$j]; //#321
var _1y = $k[--$j]; //#321
$k[$j++] = ($f(_1y - $f(_1x - 48))) * 10; //#321
}); //#321
$put($_.msg, $_.j, (~~($k[--$j] / 10)) - 1000000); //#322
$_.j = $f($_.j + 1); //#323
var _23 = $k[--$j]; //#324
$k[$j++] = $geti(_23, 9, _23.length - 9); //#325
break; //#325
} //#325
var _25 = $k[--$j]; //#327
$k[$j++] = _25; //#330
if (_25.length < 4) { //#330
$j--; //#328
$k[$j++] = 'bwipp.truncatedFNC#329'; //#329
$k[$j++] = "Function character truncated"; //#329
bwipp_raiseerror(); //#329
} //#329
var _26 = $k[--$j]; //#331
var _27 = $geti(_26, 0, 4); //#331
var _29 = $get($_.fncvals, _27) !== undefined; //#331
$k[$j++] = _26; //#336
$k[$j++] = _27; //#336
if (!_29) { //#336
var _2A = $k[--$j]; //#332
var _2B = $s(_2A.length + 28); //#332
$puti(_2B, 28, _2A); //#332
$puti(_2B, 0, "Unknown function character: "); //#333
var _2C = $k[--$j]; //#334
$k[$j++] = _2B; //#334
$k[$j++] = _2C; //#334
$j--; //#334
var _2D = $k[--$j]; //#335
$k[$j++] = 'bwipp.unknownFNC#335'; //#335
$k[$j++] = _2D; //#335
bwipp_raiseerror(); //#335
} //#335
$put($_.msg, $_.j, $get($_.fncvals, $k[--$j])); //#338
$_.j = $f($_.j + 1); //#339
var _2K = $k[--$j]; //#340
$k[$j++] = $geti(_2K, 4, _2K.length - 4); //#341
break; //#341
} //#341
} else { //#345
break; //#345
} //#345
} //#345
if ($nt($_.parseonly)) { //#353
$k[$j++] = $geti($_.msg, 0, $_.j); //#350
} else { //#353
$k[$j++] = $s($_.j); //#353
for (var _2U = 0, _2T = $f($_.j - 1); _2U <= _2T; _2U += 1) { //#353
var _2V = $k[--$j]; //#353
$put(_2V, _2U, $get($_.msg, _2U)); //#353
$k[$j++] = _2V; //#353
} //#353
} //#353
$_ = Object.getPrototypeOf($_); //#356
$_ = Object.getPrototypeOf($_); //#358
} //bwipp_parseinput
function bwipp_gs1process() {
$_ = Object.create($_); //#383
bwipp_loadctx(bwipp_gs1process) //#385
if (!bwipp_gs1process.__2469__) { //#2469
$_ = Object.create($_); //#2469
var _1 = new Map([
["cset", 'N'],
["min", 18],
["max", 18],
["opt", false],
["linters", $a(['lintcsum', 'lintkey'])]
]); //#393
var _2 = $a([_1]); //#393
var _3 = $a([]); //#395
var _4 = new Map([
["parts", _2],
["dlpkey", _3]
]); //#395
var _5 = $a(['lintcsum', 'lintkey']); //#402
var _6 = new Map([
["cset", 'N'],
["min", 14],
["max", 14],
["opt", false],
["linters", _5]
]); //#402
var _7 = $a([_6]); //#402
var _8 = $a(["255", "37"]); //#404
var _9 = $a(["22", "10", "21"]); //#405
var _A = $a(["235"]); //#405
var _B = $a([_9, _A]); //#405
var _C = new Map([
["parts", _7],
["ex", _8],
["dlpkey", _B]
]); //#405
var _D = $a(['lintcsum', 'lintkey']); //#412
var _E = new Map([
["cset", 'N'],
["min", 14],
["max", 14],
["opt", false],
["linters", _D]
]); //#412
var _F = $a([_E]); //#412
var _G = $a(["01", "03"]); //#414
var _H = $a(["37"]); //#415
var _I = $a([_H]); //#415
var _J = $a([_I]); //#415
var _K = new Map([
["parts", _F],
["ex", _G],
["req", _J]
]); //#415
var _L = $a(['lintcsum', 'lintkey']); //#422
var _M = new Map([
["cset", 'N'],
["min", 14],
["max", 14],
["opt", false],
["linters", _L]
]); //#422
var _N = $a([_M]); //#422
var _P = new Map([
["parts", _N],
["ex", $a(["01", "02", "37"])],
["dlattr", false]
]); //#425
var _R = new Map([
["cset", 'X'],
["min", 1],
["max", 20],
["opt", false],
["linters", $a([])]
]); //#432
var _a = new Map([
["parts", $a([_R])],
["req", $a([$a([$a(["01"]), $a(["02"]), $a(["03"]), $a(["8006"]), $a(["8026"])])])]
]); //#434
var _c = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a(['lintyymmd0'])]
]); //#441
var _k = new Map([
["parts", $a([_c])],
["req", $a([$a([$a(["01"]), $a(["02"]), $a(["8006"]), $a(["8026"])])])]
]); //#443
var _m = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a(['lintyymmd0'])]
]); //#450
var _r = new Map([
["parts", $a([_m])],
["req", $a([$a([$a(["8020"])])])]
]); //#452
var _t = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a(['lintyymmd0'])]
]); //#459
var _11 = new Map([
["parts", $a([_t])],
["req", $a([$a([$a(["01"]), $a(["02"]), $a(["8006"]), $a(["8026"])])])]
]); //#461
var _13 = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a(['lintyymmd0'])]
]); //#470
var _1C = new Map([
["parts", $a([_13])],
["req", $a([$a([$a(["01"]), $a(["02"]), $a(["255"]), $a(["8006"]), $a(["8026"])])])]
]); //#472
var _1E = new Map([
["cset", 'N'],
["min", 2],
["max", 2],
["opt", false],
["linters", $a([])]
]); //#479
var _1M = new Map([
["parts", $a([_1E])],
["req", $a([$a([$a(["01"]), $a(["02"]), $a(["8006"]), $a(["8026"])])])]
]); //#481
var _1O = new Map([
["cset", 'X'],
["min", 1],
["max", 20],
["opt", false],
["linters", $a([])]
]); //#488
var _1W = new Map([
["parts", $a([_1O])],
["ex", $a(["235"])],
["req", $a([$a([$a(["01"]), $a(["03"]), $a(["8006"])])])],
["dlattr", false]
]); //#492
var _1Y = new Map([
["cset", 'X'],
["min", 1],
["max", 20],
["opt", false],
["linters", $a([])]
]); //#499
var _1d = new Map([
["parts", $a([_1Y])],
["req", $a([$a([$a(["01"])])])],
["dlattr", false]
]); //#502
var _1f = new Map([
["cset", 'X'],
["min", 1],
["max", 28],
["opt", false],
["linters", $a([])]
]); //#509
var _1k = new Map([
["parts", $a([_1f])],
["req", $a([$a([$a(["01"])])])],
["dlattr", false]
]); //#512
var _1m = new Map([
["cset", 'X'],
["min", 1],
["max", 30],
["opt", false],
["linters", $a([])]
]); //#519
var _1u = new Map([
["parts", $a([_1m])],
["req", $a([$a([$a(["01"]), $a(["02"]), $a(["8006"]), $a(["8026"])])])]
]); //#521
var _1w = new Map([
["cset", 'N'],
["min", 1],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#529
var _24 = $a([$a([$a(["01"]), $a(["02"]), $a(["03"]), $a(["8006"]), $a(["8026"])])]); //#531
var _25 = new Map([
["parts", $a([_1w])],
["req", _24]
]); //#531
var _27 = new Map([
["cset", 'X'],
["min", 1],
["max", 20],
["opt", false],
["linters", $a([])]
]); //#538
var _2C = new Map([
["parts", $a([_27])],
["req", $a([$a([$a(["01"])])])]
]); //#540
var _2E = new Map([
["cset", 'X'],
["min", 1],
["max", 30],
["opt", false],
["linters", $a([])]
]); //#547
var _2M = new Map([
["parts", $a([_2E])],
["req", $a([$a([$a(["01"]), $a(["8006"])]), $a([$a(["21"])])])]
]); //#549
var _2O = new Map([
["cset", 'X'],
["min", 1],
["max", 30],
["opt", false],
["linters", $a([])]
]); //#556
var _2U = new Map([
["parts", $a([_2O])],
["req", $a([$a([$a(["01"]), $a(["8006"])])])]
]); //#558
var _2W = new Map([
["cset", 'N'],
["min", 13],
["max", 13],
["opt", false],
["linters", $a(['lintcsum', 'lintkey'])]
]); //#565
var _2Y = new Map([
["cset", 'X'],
["min", 1],
["max", 17],
["opt", true],
["linters", $a([])]
]); //#566
var _2b = new Map([
["parts", $a([_2W, _2Y])],
["dlpkey", $a([])]
]); //#568
var _2d = new Map([
["cset", 'X'],
["min", 1],
["max", 20],
["opt", false],
["linters", $a([])]
]); //#575
var _2i = new Map([
["parts", $a([_2d])],
["req", $a([$a([$a(["414"])])])],
["dlattr", false]
]); //#578
var _2k = new Map([
["cset", 'N'],
["min", 13],
["max", 13],
["opt", false],
["linters", $a(['lintcsum', 'lintkey'])]
]); //#585
var _2m = new Map([
["cset", 'N'],
["min", 1],
["max", 12],
["opt", true],
["linters", $a([])]
]); //#586
var _2q = new Map([
["parts", $a([_2k, _2m])],
["ex", $a(["01", "02", "415", "8006", "8020", "8026"])],
["dlpkey", $a([])]
]); //#589
var _2s = new Map([
["cset", 'N'],
["min", 1],
["max", 8],
["opt", false],
["linters", $a([])]
]); //#596
var _2y = new Map([
["parts", $a([_2s])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#598
var _30 = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#605
var _37 = new Map([
["parts", $a([_30])],
["ex", $a(["310n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#608
var _39 = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#620
var _3G = new Map([
["parts", $a([_39])],
["ex", $a(["311n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#623
var _3I = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#635
var _3P = new Map([
["parts", $a([_3I])],
["ex", $a(["312n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#638
var _3R = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#650
var _3Y = new Map([
["parts", $a([_3R])],
["ex", $a(["313n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#653
var _3a = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#665
var _3h = new Map([
["parts", $a([_3a])],
["ex", $a(["314n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#668
var _3j = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#680
var _3q = new Map([
["parts", $a([_3j])],
["ex", $a(["315n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#683
var _3s = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#695
var _3z = new Map([
["parts", $a([_3s])],
["ex", $a(["316n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#698
var _41 = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#710
var _48 = new Map([
["parts", $a([_41])],
["ex", $a(["320n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#713
var _4A = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#725
var _4H = new Map([
["parts", $a([_4A])],
["ex", $a(["321n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#728
var _4J = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#740
var _4Q = new Map([
["parts", $a([_4J])],
["ex", $a(["322n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#743
var _4S = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#755
var _4Z = new Map([
["parts", $a([_4S])],
["ex", $a(["323n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#758
var _4b = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#770
var _4i = new Map([
["parts", $a([_4b])],
["ex", $a(["324n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#773
var _4k = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#785
var _4r = new Map([
["parts", $a([_4k])],
["ex", $a(["325n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#788
var _4t = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#800
var _50 = new Map([
["parts", $a([_4t])],
["ex", $a(["326n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#803
var _52 = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#815
var _59 = new Map([
["parts", $a([_52])],
["ex", $a(["327n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#818
var _5B = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#830
var _5I = new Map([
["parts", $a([_5B])],
["ex", $a(["328n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#833
var _5K = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#845
var _5R = new Map([
["parts", $a([_5K])],
["ex", $a(["329n"])],
["req", $a([$a([$a(["01"]), $a(["02"])])])]
]); //#848
var _5T = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#860
var _5a = new Map([
["parts", $a([_5T])],
["ex", $a(["330n"])],
["req", $a([$a([$a(["00"]), $a(["01"])])])]
]); //#863
var _5c = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#875
var _5j = new Map([
["parts", $a([_5c])],
["ex", $a(["331n"])],
["req", $a([$a([$a(["00"]), $a(["01"])])])]
]); //#878
var _5l = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#890
var _5s = new Map([
["parts", $a([_5l])],
["ex", $a(["332n"])],
["req", $a([$a([$a(["00"]), $a(["01"])])])]
]); //#893
var _5u = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#905
var _61 = new Map([
["parts", $a([_5u])],
["ex", $a(["333n"])],
["req", $a([$a([$a(["00"]), $a(["01"])])])]
]); //#908
var _63 = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#920
var _6A = new Map([
["parts", $a([_63])],
["ex", $a(["334n"])],
["req", $a([$a([$a(["00"]), $a(["01"])])])]
]); //#923
var _6C = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#935
var _6J = new Map([
["parts", $a([_6C])],
["ex", $a(["335n"])],
["req", $a([$a([$a(["00"]), $a(["01"])])])]
]); //#938
var _6L = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#950
var _6S = new Map([
["parts", $a([_6L])],
["ex", $a(["336n"])],
["req", $a([$a([$a(["00"]), $a(["01"])])])]
]); //#953
var _6U = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#965
var _6a = new Map([
["parts", $a([_6U])],
["ex", $a(["337n"])],
["req", $a([$a([$a(["01"])])])]
]); //#968
var _6c = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#980
var _6j = new Map([
["parts", $a([_6c])],
["ex", $a(["340n"])],
["req", $a([$a([$a(["00"]), $a(["01"])])])]
]); //#983
var _6l = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#995
var _6s = new Map([
["parts", $a([_6l])],
["ex", $a(["341n"])],
["req", $a([$a([$a(["00"]), $a(["01"])])])]
]); //#998
var _6u = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#1010
var _71 = new Map([
["parts", $a([_6u])],
["ex", $a(["342n"])],
["req", $a([$a([$a(["00"]), $a(["01"])])])]
]); //#1013
var _73 = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#1025
var _7A = new Map([
["parts", $a([_73])],
["ex", $a(["343n"])],
["req", $a([$a([$a(["00"]), $a(["01"])])])]
]); //#1028
var _7C = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#1040
var _7J = new Map([
["parts", $a([_7C])],
["ex", $a(["344n"])],
["req", $a([$a([$a(["00"]), $a(["01"])])])]
]); //#1043
var _7L = new Map([
["cset", 'N'],
["min", 6],
["max", 6],
["opt", false],
["linters", $a([])]
]); //#1055
var _7S = new Map([
["parts", $a([_7L])],
["ex", $a(["345n"])],
["req", $a([$a(