{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/html5-qrcode/third_party/zxing-js.umd.js","webpack:///./node_modules/vuelidate/lib/validators/common.js","webpack:///./node_modules/xmlbuilder/lib/NodeType.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/vuelidate/lib/validators/index.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/xmlbuilder/lib/XMLNode.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/process/browser.js","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/forms/required-field-explanation.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/forms/required-field-explanation.vue?3871","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/forms/required-field-explanation.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/forms/required-field-explanation.vue?4fbe","webpack:///./node_modules/xmlbuilder/lib/Utility.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///./node_modules/vuex/dist/vuex.esm.js","webpack:///./node_modules/xmlbuilder/lib/XMLCharacterData.js","webpack:///./node_modules/xmlbuilder/lib/WriterState.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/es-errors/type.js","webpack:///./node_modules/pako/lib/utils/common.js","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-personalinfo-nl.vue","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-personalinfo-be.vue","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/xml2js/lib/defaults.js","webpack:///./node_modules/xmlbuilder/lib/XMLElement.js","webpack:///./node_modules/xmlbuilder/lib/XMLNamedNodeMap.js","webpack:///./node_modules/xmlbuilder/lib/XMLCData.js","webpack:///./node_modules/xmlbuilder/lib/XMLComment.js","webpack:///./node_modules/xmlbuilder/lib/XMLDeclaration.js","webpack:///./node_modules/xmlbuilder/lib/XMLDocType.js","webpack:///./node_modules/xmlbuilder/lib/XMLDTDAttList.js","webpack:///./node_modules/xmlbuilder/lib/XMLDTDEntity.js","webpack:///./node_modules/xmlbuilder/lib/XMLDTDElement.js","webpack:///./node_modules/xmlbuilder/lib/XMLDTDNotation.js","webpack:///./node_modules/xmlbuilder/lib/XMLRaw.js","webpack:///./node_modules/xmlbuilder/lib/XMLText.js","webpack:///./node_modules/xmlbuilder/lib/XMLProcessingInstruction.js","webpack:///./node_modules/xmlbuilder/lib/XMLStringWriter.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/es-define-property/index.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/xml2js/lib/xml2js.js","webpack:///./node_modules/xmlbuilder/lib/XMLDOMImplementation.js","webpack:///./node_modules/xmlbuilder/lib/XMLDocument.js","webpack:///./node_modules/xmlbuilder/lib/XMLAttribute.js","webpack:///./node_modules/xmlbuilder/lib/XMLDummy.js","webpack:///./node_modules/xmlbuilder/lib/XMLStringifier.js","webpack:///./node_modules/xmlbuilder/lib/XMLWriterBase.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/xml2js/lib/processors.js","webpack:///./node_modules/assert/assert.js","webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/es-errors/syntax.js","webpack:///./node_modules/gopd/index.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/pako/lib/zlib/adler32.js","webpack:///./node_modules/pako/lib/zlib/crc32.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-SG.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/vuelidate/lib/params.js","webpack:///./node_modules/vue2-autocomplete-js/dist/vue2-autocomplete.js","webpack:///./node_modules/vuelidate/lib/index.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/xml2js/lib/builder.js","webpack:///./node_modules/xmlbuilder/lib/index.js","webpack:///./node_modules/xmlbuilder/lib/XMLDOMConfiguration.js","webpack:///./node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js","webpack:///./node_modules/xmlbuilder/lib/XMLDOMStringList.js","webpack:///./node_modules/xmlbuilder/lib/XMLNodeList.js","webpack:///./node_modules/xmlbuilder/lib/DocumentPosition.js","webpack:///./node_modules/xmlbuilder/lib/XMLDocumentCB.js","webpack:///./node_modules/xmlbuilder/lib/XMLStreamWriter.js","webpack:///./node_modules/xml2js/lib/parser.js","webpack:///./node_modules/sax/lib/sax.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/string_decoder/node_modules/safe-buffer/index.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/transform.js","webpack:///./node_modules/stream-browserify/node_modules/readable-stream/passthrough.js","webpack:///./node_modules/xml2js/lib/bom.js","webpack:///./node_modules/qr-image/lib/qr.js","webpack:///./node_modules/qr-image/lib/qr-base.js","webpack:///./node_modules/qr-image/lib/encode.js","webpack:///./node_modules/qr-image/lib/errorcode.js","webpack:///./node_modules/qr-image/lib/matrix.js","webpack:///./node_modules/qr-image/lib/png.js","webpack:///./node_modules/browserify-zlib/lib/index.js","webpack:///./node_modules/browserify-zlib/lib/binding.js","webpack:///./node_modules/assert/node_modules/object.assign/polyfill.js","webpack:///./node_modules/assert/node_modules/object.assign/implementation.js","webpack:///./node_modules/object-keys/index.js","webpack:///./node_modules/object-keys/implementation.js","webpack:///./node_modules/assert/node_modules/has-symbols/shams.js","webpack:///./node_modules/call-bind/callBound.js","webpack:///./node_modules/es-errors/index.js","webpack:///./node_modules/es-errors/eval.js","webpack:///./node_modules/es-errors/range.js","webpack:///./node_modules/es-errors/ref.js","webpack:///./node_modules/es-errors/uri.js","webpack:///./node_modules/get-intrinsic/node_modules/has-symbols/index.js","webpack:///./node_modules/get-intrinsic/node_modules/has-symbols/shams.js","webpack:///./node_modules/has-proto/index.js","webpack:///./node_modules/get-intrinsic/node_modules/function-bind/index.js","webpack:///./node_modules/get-intrinsic/node_modules/function-bind/implementation.js","webpack:///./node_modules/hasown/index.js","webpack:///./node_modules/hasown/node_modules/function-bind/index.js","webpack:///./node_modules/hasown/node_modules/function-bind/implementation.js","webpack:///./node_modules/call-bind/index.js","webpack:///./node_modules/call-bind/node_modules/function-bind/index.js","webpack:///./node_modules/call-bind/node_modules/function-bind/implementation.js","webpack:///./node_modules/set-function-length/index.js","webpack:///./node_modules/define-data-property/index.js","webpack:///./node_modules/has-property-descriptors/index.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/pako/lib/zlib/zstream.js","webpack:///./node_modules/pako/lib/zlib/deflate.js","webpack:///./node_modules/pako/lib/zlib/trees.js","webpack:///./node_modules/pako/lib/zlib/messages.js","webpack:///./node_modules/pako/lib/zlib/inflate.js","webpack:///./node_modules/pako/lib/zlib/inffast.js","webpack:///./node_modules/pako/lib/zlib/inftrees.js","webpack:///./node_modules/pako/lib/zlib/constants.js","webpack:///./node_modules/qr-image/lib/crc32.js","webpack:///./node_modules/qr-image/lib/crc32buffer.js","webpack:///./node_modules/qr-image/lib/vector.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./node_modules/vuelidate/lib/validators/alpha.js","webpack:///./node_modules/vuelidate/lib/withParams.js","webpack:///./node_modules/vuelidate/lib/withParamsBrowser.js","webpack:///./node_modules/vuelidate/lib/validators/alphaNum.js","webpack:///./node_modules/vuelidate/lib/validators/numeric.js","webpack:///./node_modules/vuelidate/lib/validators/between.js","webpack:///./node_modules/vuelidate/lib/validators/email.js","webpack:///./node_modules/vuelidate/lib/validators/ipAddress.js","webpack:///./node_modules/vuelidate/lib/validators/macAddress.js","webpack:///./node_modules/vuelidate/lib/validators/maxLength.js","webpack:///./node_modules/vuelidate/lib/validators/minLength.js","webpack:///./node_modules/vuelidate/lib/validators/required.js","webpack:///./node_modules/vuelidate/lib/validators/requiredIf.js","webpack:///./node_modules/vuelidate/lib/validators/requiredUnless.js","webpack:///./node_modules/vuelidate/lib/validators/sameAs.js","webpack:///./node_modules/vuelidate/lib/validators/url.js","webpack:///./node_modules/vuelidate/lib/validators/or.js","webpack:///./node_modules/vuelidate/lib/validators/and.js","webpack:///./node_modules/vuelidate/lib/validators/not.js","webpack:///./node_modules/vuelidate/lib/validators/minValue.js","webpack:///./node_modules/vuelidate/lib/validators/maxValue.js","webpack:///./node_modules/vuelidate/lib/validators/integer.js","webpack:///./node_modules/vuelidate/lib/validators/decimal.js","webpack:///./node_modules/vuelidate/lib/vval.js","webpack:///./node_modules/vue-moment/dist/vue-moment.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/store/mutations.js","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/store/actions.js","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/store/index.js","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-personalinfo-nl.vue?24c5","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-personalinfo-nl.vue?f863","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-personalinfo-nl.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-personalinfo-be.vue?85c5","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-personalinfo-be.vue?3e10","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-personalinfo-be.vue","webpack:///./node_modules/date-format-parse/es/util.js","webpack:///./node_modules/date-format-parse/es/locale/en.js","webpack:///./node_modules/date-format-parse/es/format.js","webpack:///./node_modules/date-format-parse/es/parse.js","webpack:///./node_modules/vue2-datepicker/index.esm.js","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-purchaselocation.vue?02b0","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-purchaselocation.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-purchaselocation.vue?fae6","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-purchaselocation.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-promotionfields.vue?e307","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-promotionfields.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-promotionfields.vue?3d27","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-promotionfields.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-promotion-reminder.vue?ba81","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-promotion-reminder.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-promotion-reminder.vue?8486","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-promotion-reminder.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/util/articleHelper.js","webpack:///./node_modules/html5-qrcode/esm/core.js","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/device.vue?9a04","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/device.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/device.vue?6c95","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/device.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-devices.vue?fff5","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-devices.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-devices.vue?2cda","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-devices.vue","webpack:///./node_modules/html5-qrcode/esm/strings.js","webpack:///./node_modules/html5-qrcode/esm/camera/core-impl.js","webpack:///./node_modules/html5-qrcode/esm/state-manager.js","webpack:///./node_modules/html5-qrcode/esm/utils.js","webpack:///./node_modules/html5-qrcode/esm/zxing-html5-qrcode-decoder.js","webpack:///./node_modules/html5-qrcode/esm/native-bar-code-detector.js","webpack:///./node_modules/html5-qrcode/esm/code-decoder.js","webpack:///./node_modules/html5-qrcode/esm/camera/factories.js","webpack:///./node_modules/html5-qrcode/esm/camera/retriever.js","webpack:///./node_modules/html5-qrcode/esm/html5-qrcode-scanner.js","webpack:///./node_modules/html5-qrcode/esm/html5-qrcode.js","webpack:///./node_modules/html5-qrcode/esm/image-assets.js","webpack:///./node_modules/html5-qrcode/esm/storage.js","webpack:///./node_modules/html5-qrcode/esm/ui.js","webpack:///./node_modules/html5-qrcode/esm/camera/permissions.js","webpack:///./node_modules/html5-qrcode/esm/ui/scanner/scan-type-selector.js","webpack:///./node_modules/html5-qrcode/esm/ui/scanner/base.js","webpack:///./node_modules/html5-qrcode/esm/ui/scanner/torch-button.js","webpack:///./node_modules/html5-qrcode/esm/ui/scanner/file-selection-ui.js","webpack:///./node_modules/html5-qrcode/esm/ui/scanner/camera-selection-ui.js","webpack:///./node_modules/html5-qrcode/esm/ui/scanner/camera-zoom-ui.js","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-add-devices.vue?7259","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-add-devices.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-add-devices.vue?9053","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-add-devices.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/forms/formfield.vue?6826","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/forms/formfield.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-confirm.vue?4b1c","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-confirm.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/forms/formfield.vue?0477","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/forms/formfield.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-confirm.vue?f0c1","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/step-confirm.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/set-language.vue?c1d7","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/set-language.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/set-language.vue?0078","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/set-language.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-footer.vue?2160","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-footer.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-footer.vue?cb75","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-footer.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-steps.vue?61d2","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-steps.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-steps.vue?9251","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-steps.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-buttons-wrapper.vue?7fef","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-buttons-wrapper.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-buttons-wrapper.vue?eea4","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-buttons-wrapper.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-title.vue?af0d","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-title.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-title.vue?4541","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/wizard-title.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/linkbuttons.vue?6766","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/linkbuttons.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/linkbuttons.vue?2a4e","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/linkbuttons.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/footnote.vue?4fd8","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/footnote.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/footnote.vue?788a","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/footnote.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-asko.vue?4099","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-asko.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-asko.vue?2745","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-asko.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-atag.vue?80df","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-atag.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-atag.vue?8278","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-atag.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-etna.vue?be4a","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-etna.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-etna.vue?2724","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-etna.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-hisense.vue?9317","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-hisense.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-hisense.vue?0de7","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-hisense.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-pelgrim.vue?4fd5","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-pelgrim.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-pelgrim.vue?9d34","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-pelgrim.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/general/balloons.vue?e45f","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/general/balloons.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-title.vue?9519","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-title.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/general/balloons.vue?6296","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/general/balloons.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-title.vue?09c5","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/resultpage/resultpage-title.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-asko.vue?5ea1","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-asko.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-asko.vue?42fa","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-asko.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-atag.vue?b4f7","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-atag.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-atag.vue?f009","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-atag.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-etna.vue?7f11","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-etna.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-etna.vue?2190","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-etna.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-hisense.vue?ee54","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-hisense.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-hisense.vue?49c5","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-hisense.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-pelgrim.vue?7018","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-pelgrim.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-pelgrim.vue?45ef","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/components/intropage/intropage-pelgrim.vue","webpack:///ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/garantiekaart.vue","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/garantiekaart.vue?b1f2","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/garantiekaart.vue?b77f","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/modules/forms/garantiekaart.vue","webpack:///./node_modules/vuex-i18n/dist/vuex-i18n.es.js","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/components.js","webpack:///./ATAG.Garantiekaart.Web/wwwroot/Scripts/main.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","hookCallback","some","hooks","apply","arguments","isArray","input","Array","toString","isObject","isUndefined","isNumber","isDate","Date","map","arr","fn","res","length","push","hasOwnProp","a","b","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","this","len","momentProperties","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","config","updateOffset","isMoment","obj","absFloor","number","Math","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","min","lengthDiff","abs","diffs","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","args","slice","join","Error","stack","keys","deprecations","deprecateSimple","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","zeroFill","targetLength","forceSign","absNumber","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","array","match","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInYear","year","isLeapYear","y","parseTwoDigitYear","parseInt","indexOf","getSetYear","makeGetSet","keepTime","set$1","month","date","daysInMonth","x","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","defaultLocaleMonths","split","defaultLocaleMonthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","defaultMonthsShortRegex","defaultMonthsRegex","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","h","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","_config","parentLocale","forEach","names","j","next","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","defaults","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","w","weekYear","temp","weekdayOverflow","GG","W","E","createLocal","_week","curWeek","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","getDay","setUTCMinutes","getUTCMinutes","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","string","exec","configFromStringAndFormat","untruncateYear","yearStr","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromRFC2822","monthStr","dayStr","hourStr","minuteStr","secondStr","result","parsedArray","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromStringAndArray","createFromInputFallback","configFromString","minute","second","millisecond","configFromObject","configFromInput","isUTC","getOwnPropertyNames","k","isObjectEmpty","add","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","matches","parts","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","base","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","proto","preParsePostFormat","time","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toDate","toISOString","keepOffset","inspect","zone","isLocal","prefix","suffix","toJSON","unix","creationData","isoWeeks","weekInfo","isoWeeksInYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","source","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","Y","D","toFixed","total","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","withSuffix","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","factory","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","isNullOrUndefined","DecodeHintType","extendStatics","setPrototypeOf","__proto__","CustomError","_super","message","target","_newTarget","constructor","_this","captureStackTrace","fixStack","__","__extends","Exception","super","kind","ArgumentException","IllegalArgumentException","BinaryBitmap","binarizer","getWidth","getHeight","row","getBlackRow","matrix","getBlackMatrix","getLuminanceSource","isCropSupported","left","top","width","height","newSource","crop","createBinarizer","isRotateSupported","rotateCounterClockwise","rotateCounterClockwise45","ChecksumException","Binarizer","System","src","srcPos","dest","destPos","IndexOutOfBoundsException","ArrayIndexOutOfBoundsException","Arrays","fromIndex","toIndex","rangeCheck","arrayLength","rows","cols","fill","Int32Array","first","element","original","newLength","newArray","Uint8Array","copy","arraycopy","ar","el","comparator","numberComparator","cmp","Integer","intNumber","String","trunc","num","radix","MIN_VALUE_32_BITS","MAX_VALUE","Number","MAX_SAFE_INTEGER","BitArray","size","bits","makeArray","newBits","bitsOffset","currentBits","numberOfTrailingZeros","start","end","firstInt","lastInt","mask","bit","ensureCapacity","numBits","numBitsLeft","appendBit","otherSize","bitOffset","numBytes","theByte","oldBitsLen","leftOffset","currentInt","nextInt","equals","hashCode","CharacterSetValueIdentifiers","DecodeHintType$1","FormatException","CharacterSetECI","valueIdentifier","valuesParam","otherEncodingNames","VALUE_IDENTIFIER_TO_ECI","NAME_TO_ECI","v","VALUES_TO_ECI","otherName","characterSet","getName","Map","Cp437","ISO8859_1","ISO8859_2","ISO8859_3","ISO8859_4","ISO8859_5","ISO8859_6","ISO8859_7","ISO8859_8","ISO8859_9","ISO8859_10","ISO8859_11","ISO8859_13","ISO8859_14","ISO8859_15","ISO8859_16","SJIS","Cp1250","Cp1251","Cp1252","Cp1256","UnicodeBigUnmarked","UTF8","ASCII","Big5","GB18030","EUC_KR","UnsupportedOperationException","StringEncoding","bytes","encoding","encodingName","customDecoder","TextDecoder","shouldDecodeOnFallback","decodeFallback","decode","isBrowser","customEncoder","TextEncoder","encodeFallback","encode","window","getCharacterSetECIByName","encodingCharacterSet","isDecodeFallbackSupported","decodeURIComponent","fromCharCode","Uint16Array","buffer","charList","btoa","unescape","encodeURIComponent","uintArray","charCodeAt","StringUtils","code","ISO88591","hints","CHARACTER_SET","canBeISO88591","canBeShiftJIS","canBeUTF8","utf8BytesLeft","utf2BytesChars","utf3BytesChars","utf4BytesChars","sjisBytesLeft","sjisKatakanaChars","sjisCurKatakanaWordLength","sjisCurDoubleBytesWordLength","sjisMaxKatakanaWordLength","sjisMaxDoubleBytesWordLength","isoHighOther","utf8bom","ASSUME_SHIFT_JIS","SHIFT_JIS","PLATFORM_DEFAULT_ENCODING","append","exp","p0","toPrecision","toExponential","JSON","stringify","ch","str","charCode","GB2312","EUC_JP","StringBuilder","castAsNonUtf8Char","substring","BitMatrix","rowSize","image","imageI","stringRepresentation","setString","unsetString","bitsPos","rowStartPos","rowLength","nRows","getRowSize","rowArray","getRow","getBitArray","right","bottom","getSize","clear","setBulk","topRow","bottomRow","reverse","setRow","x32","theBits","hash","lineSeparator","buildToString","NotFoundException","GlobalHistogramBinarizer","luminances","EMPTY","buckets","LUMINANCE_BUCKETS","initArrays","localLuminances","localBuckets","LUMINANCE_SHIFT","blackPoint","estimateBlackPoint","center","getMatrix","luminanceSize","Uint8ClampedArray","numBuckets","maxBucketCount","firstPeak","firstPeakSize","secondPeak","secondPeakScore","distanceToBiggest","bestValley","bestValleyScore","fromFirst","LUMINANCE_BITS","HybridBinarizer","MINIMUM_DIMENSION","subWidth","BLOCK_SIZE_POWER","BLOCK_SIZE_MASK","subHeight","blackPoints","calculateBlackPoints","newMatrix","calculateThresholdForBlock","maxYOffset","BLOCK_SIZE","maxXOffset","yoffset","cap","xoffset","sum","z","blackRow","average","thresholdBlock","stride","xx","pixel","MIN_DYNAMIC_RANGE","averageNeighborBlackPoint","LuminanceSource","sourceRow","luminance","InvertedLuminanceSource","delegate","invertedMatrix","HTMLCanvasElementLuminanceSource","canvas","tempCanvasElement","makeBufferFromCanvasImageData","imageData","getContext","getImageData","toGrayscaleBuffer","imageBuffer","grayscaleBuffer","gray","rotate","ownerDocument","createElement","angle","getTempCanvasElement","tempContext","angleRadians","DEGREE_TO_RADIANS","newWidth","cos","sin","newHeight","translate","drawImage","PI","VideoInputDevice","deviceId","label","groupId","BarcodeFormat","__awaiter","globalThis","global","self","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","rejected","done","then","BrowserCodeReader","reader","timeBetweenScansMillis","_hints","_stopContinuousDecode","_stopAsyncDecode","_timeBetweenDecodingAttempts","navigator","hasNavigator","mediaDevices","isMediaDevicesSuported","enumerateDevices","millis","canEnumerateDevices","devices","videoDevices","device","videoDevice","id","listVideoInputDevices","find","videoSource","decodeOnceFromVideoDevice","videoConstraints","reset","exact","facingMode","constraints","video","decodeOnceFromConstraints","stream","getUserMedia","decodeOnceFromStream","attachStreamToVideo","decodeOnce","callbackFn","decodeFromVideoDevice","decodeFromConstraints","decodeFromStream","decodeContinuously","videoElement","prepareVideoElement","addVideoSource","playVideoOnLoadAsync","playVideoOnLoad","videoEndedListener","stopStreams","videoCanPlayListener","tryPlayVideo","addEventListener","currentTime","paused","ended","readyState","isVideoPlaying","play","mediaElementId","type","mediaElement","document","getElementById","nodeName","url","decodeFromImageUrl","decodeFromImageElement","decodeFromVideoUrl","decodeFromVideoElement","decodeFromVideoUrlContinuously","decodeFromVideoElementContinuously","prepareImageElement","task","imageElement","isImageLoaded","_decodeOnLoadImage","_decodeFromVideoElementSetup","_decodeOnLoadVideo","_decodeOnLoadVideoContinuously","decodeTask","imageLoadedListener","img","complete","naturalWidth","imageSource","getMediaElement","HTMLImageElement","HTMLVideoElement","setAttribute","retryIfNotFound","retryIfChecksumOrFormatError","loop","ifChecksumOrFormat","setTimeout","isNotFound","binaryBitmap","createBinaryBitmap","decodeBitmap","videoWidth","srcElement","dimensions","canvasElementContext","sx","sy","sWidth","sHeight","videoHeight","dx","dy","dWidth","dHeight","captureCanvasContext","naturalHeight","getCaptureCanvasContext","_isHTMLVideoElement","drawFrameOnCanvas","drawImageOnCanvas","getCaptureCanvas","luminanceSource","hybridBinarizer","ctx","captureCanvas","elem","createCaptureCanvas","_destroyCaptureCanvas","canvasElement","style","getVideoTracks","stop","stopAsyncDecode","stopContinuousDecode","_destroyVideoElement","_destroyImageElement","removeEventListener","videoPlayingEventListener","cleanVideoSource","removeAttribute","srcObject","err","URL","createObjectURL","Result","text","rawBytes","resultPoints","timestamp","currentTimeMillis","resultMetadata","metadata","newPoints","oldPoints","allPoints","ResultMetadataType","BarcodeFormat$1","Table","Mode","ErrorCorrectionLevelValues","DataMaskValues","ModeValues","Mode$2","ResultMetadataType$1","DecoderResult","byteSegments","ecLevel","structuredAppendSequenceNumber","structuredAppendParity","errorsCorrected","erasures","AbstractGenericGF","expTable","logTable","GenericGFPoly","coefficients","coefficientsLength","firstNonZero","degree","getCoefficient","coefficient","addOrSubtract","multiply","isZero","smallerCoefficients","largerCoefficients","sumDiff","getZero","aCoefficients","aLength","bCoefficients","bLength","product","aCoeff","scalar","quotient","remainder","denominatorLeadingTerm","getDegree","inverseDenominatorLeadingTerm","inverse","degreeDifference","scale","term","multiplyByMonomial","iterationQuotient","buildMonomial","alphaPower","log","ArithmeticException","GenericGF","primitive","generatorBase","zero","one","toHexString","AZTEC_DATA_12","AZTEC_DATA_10","AZTEC_DATA_6","AZTEC_PARAM","QR_CODE_FIELD_256","DATA_MATRIX_FIELD_256","AZTEC_DATA_8","MAXICODE_FIELD_64","ReedSolomonException","IllegalStateException","ReedSolomonDecoder","received","twoS","poly","syndromeCoefficients","noError","evalResult","evaluateAt","getGeneratorBase","syndrome","sigmaOmega","runEuclideanAlgorithm","sigma","omega","errorLocations","findErrorLocations","errorMagnitudes","findErrorMagnitudes","position","R","rLast","tLast","getOne","rLastLast","tLastLast","q","dltInverse","degreeDiff","sigmaTildeAtZero","multiplyScalar","errorLocator","numErrors","errorEvaluator","xiInverse","denominator","termPlus1","Decoder","detectorResult","ddata","getBits","rawbits","extractBits","correctedBits","correctBits","convertBoolArrayToByteArray","getEncodedData","decoderResult","setNumBits","endIndex","latchTable","UPPER","shiftTable","BINARY","readCode","charCount","DIGIT","getCharacter","startsWith","getTable","LOWER","PUNCT","MIXED","table","UPPER_TABLE","LOWER_TABLE","MIXED_TABLE","PUNCT_TABLE","DIGIT_TABLE","gf","codewordSize","getNbLayers","numDataCodewords","getNbDatablocks","numCodewords","dataWords","ex","stuffedBits","dataWord","compact","isCompact","layers","baseMatrixSize","alignmentMap","totalBitsInLayer","matrixSize","truncDivision","origCenter","newOffset","rowOffset","low","high","columnOffset","startIndex","boolArr","byteArr","readByte","MathUtils","MIN_SAFE_INTEGER","aX","aY","bX","bY","xDiff","yDiff","sqrt","count","Float","f","ResultPoint","otherPoint","floatToIntBits","patterns","zeroOneDistance","distance","oneTwoDistance","zeroTwoDistance","pointA","pointB","pointC","crossProductZ","pattern1","pattern2","DetectorResult","points","AztecDetectorResult","nbDatablocks","nbLayers","WhiteRectangleDetector","initSize","INIT_SIZE","halfsize","leftInit","rightInit","upInit","downInit","up","down","sizeExceeded","aBlackPointFoundOnBorder","atLeastOneBlackPointFoundOnBorder","atLeastOneBlackPointFoundOnRight","atLeastOneBlackPointFoundOnBottom","atLeastOneBlackPointFoundOnLeft","atLeastOneBlackPointFoundOnTop","rightBorderNotWhite","containsBlackPoint","bottomBorderNotWhite","leftBorderNotWhite","topBorderNotWhite","maxSize","getBlackPointOnSegment","centerEdges","dist","xStep","yStep","yi","getX","yj","getY","zi","zj","xi","xj","ti","tj","CORR","fixed","horizontal","GridSampler","nudged","PerspectiveTransform","a11","a21","a31","a12","a22","a32","a13","a23","a33","x0","y0","x1","y1","x2","y2","x3","y3","x0p","y0p","x1p","y1p","x2p","y2p","x3p","y3p","qToS","quadrilateralToSquare","squareToQuadrilateral","times","xValues","yValues","dx3","dy3","dx1","dx2","dy1","dy2","buildAdjoint","DefaultGridSampler","dimensionX","dimensionY","p1ToX","p1ToY","p2ToX","p2ToY","p3ToX","p3ToY","p4ToX","p4ToY","p1FromX","p1FromY","p2FromX","p2FromY","p3FromX","p3FromY","p4FromX","p4FromY","transform","quadrilateralToQuadrilateral","sampleGridWithTransform","Float32Array","iValue","transformPoints","checkAndNudgePoints","aioobe","GridSamplerInstance","newGridSampler","gridSampler","Point","Detector","EXPECTED_CORNER_BITS","detectMirror","isMirror","pCenter","getMatrixCenter","bullsEyeCorners","getBullsEyeCorners","extractParameters","sampleGrid","corners","getMatrixCornerPoints","nbDataBlocks","isValidPoint","nbCenterLayers","sides","sampleLine","getRotation","parameterData","side","correctedData","getCorrectedParameterData","cornerBits","idx","bitCount","numECCodewords","parameterWords","ignored","pina","pinb","pinc","pind","color","pouta","getFirstDifferent","poutb","poutc","poutd","distancePoint","isWhiteOrBlackRectangle","pinax","pinbx","pincx","pindx","expandSquare","pointD","cornerPoints","detect","cx","cy","toResultPoint","getDimension","topLeft","topRight","bottomRight","bottomLeft","sampler","getInstance","dimension","distanceResultPoint","moduleSize","px","py","cInit","getColor","error","colorModel","iMax","errRatio","init","oldSide","newSide","ratio","centerx","centery","result0","result2","point","AztecReader","exception","detector","getPoints","reportFoundResultPoints","getText","getRawBytes","getNumBits","AZTEC","getByteSegments","putMetadata","BYTE_SEGMENTS","getECLevel","ERROR_CORRECTION_LEVEL","rpcb","NEED_RESULT_POINT_CALLBACK","foundPossibleResultPoint","OneDReader","doDecode","nfe","TRY_HARDER","rotatedImage","getResultMetadata","orientation","ORIENTATION","getResultPoints","tryHarder","rowStep","maxLines","middle","rowStepsAboveOrBelow","rowNumber","attempt","newHints","hint","delete","decodeRow","re","counters","numCounters","isWhite","counterPosition","numTransitionsLeft","last","recordPattern","pattern","maxIndividualVariance","patternLength","POSITIVE_INFINITY","unitBarWidth","totalVariance","counter","scaledPattern","variance","Code128Reader","getNextSet","patternStart","bestVariance","MAX_AVG_VARIANCE","bestMatch","startCode","CODE_START_A","CODE_START_C","patternMatchVariance","CODE_PATTERNS","MAX_INDIVIDUAL_VARIANCE","isRange","convertFNC1","ASSUME_GS1","startPatternInfo","findStartPattern","currentRawCodesIndex","rawCodes","codeSet","CODE_CODE_A","CODE_START_B","CODE_CODE_B","CODE_CODE_C","isNextShifted","lastStart","nextStart","lastCode","checksumTotal","multiplier","lastCharacterWasPrintable","upperMode","shiftUpperMode","unshift","decodeCode","CODE_STOP","reduce","previous","current","CODE_FNC_1","CODE_FNC_2","CODE_FNC_3","CODE_FNC_4_A","CODE_SHIFT","CODE_FNC_4_B","lastPatternSize","getNextUnset","resultLength","rawCodesSize","CODE_128","Code39Reader","usingCheckDigit","extendedMode","decodeRowResult","theCounters","decodedChar","findAsteriskPattern","toNarrowWidePattern","patternToChar","resultString","ALPHABET_STRING","decodeExtended","CODE_39","ASTERISK_ENCODING","copyWithin","wideCounters","maxNarrowCounter","minCounter","totalWideCountersWidth","CHARACTER_ENCODINGS","encoded","decoded","ITFReader","narrowLineWidth","startRange","decodeStart","endRange","decodeEnd","decodeMiddle","allowedLengths","ALLOWED_LENGTHS","DEFAULT_ALLOWED_LENGTHS","lengthOK","maxAllowedLength","ITF","payloadStart","payloadEnd","counterDigitPair","counterBlack","counterWhite","twoK","decodeDigit","counterDigit","endStart","skipWhiteSpace","startPattern","findGuardPattern","START_PATTERN","validateQuietZone","quietCount","endPattern","END_PATTERN_REVERSED","PATTERNS","AbstractUPCEANReader","decodeRowStringBuffer","foundStart","START_END_PATTERN","quietStart","checkStandardUPCEANChecksum","check","getStandardUPCEANChecksum","digit","whiteFirst","MIDDLE_PATTERN","END_PATTERN","L_PATTERNS","UPCEANExtension5Support","CHECK_DIGIT_ENCODINGS","decodeMiddleCounters","extensionStartRange","extensionData","parseExtensionString","extensionResult","UPC_EAN_EXTENSION","putAllMetadata","lgPatternFound","L_AND_G_PATTERNS","checkDigit","determineCheckDigit","extensionChecksum","raw","parseExtension5String","SUGGESTED_PRICE","currency","rawAmount","hundredths","UPCEANExtension2Support","checkParity","ISSUE_NUMBER","UPCEANExtensionSupport","EXTENSION_START_PATTERN","UPCEANReader","widths","reversedWidths","startGuardRange","findStartGuardPattern","resultPointCallback","resultPoint","budello","quietEnd","checkChecksum","getBarcodeFormat","decodeResult","extensionLength","addResultPoints","ignoreError","allowedExtensions","ALLOWED_EAN_EXTENSIONS","valid","EAN13Reader","determineFirstDigit","EAN_13","FIRST_DIGIT_ENCODINGS","EAN8Reader","EAN_8","UPCAReader","ean13Reader","UPC_A","maybeReturnResult","upcaResult","UPCEReader","determineNumSysAndCheckDigit","findGuardPatternWithoutCounters","MIDDLE_END_PATTERN","convertUPCEtoUPCA","numSys","NUMSYS_AND_CHECK_DIGIT_PATTERNS","getNotFoundInstance","UPC_E","upce","upceChars","lastChar","appendChars","MultiFormatUPCEANReader","possibleFormats","POSSIBLE_FORMATS","readers","ean13MayBeUPCA","canReturnUPCA","includes","resultUPCA","AbstractRSSReader","decodeFinderCounters","dataCharacterCounters","oddRoundingErrors","evenRoundingErrors","oddCounts","evenCounts","finderPatterns","errors","biggestError","firstTwoSum","MIN_FINDER_PATTERN_RATIO","MAX_FINDER_PATTERN_RATIO","maxCounter","DataCharacter","checksumPortion","FinderPattern","startEnd","RSSUtils","maxWidth","noNarrow","narrowMask","elements","bar","elmWidth","subVal","combins","lessVal","mxwElement","maxDenom","minDenom","BlockParsedResult","finished","decodedInformation","DecodedObject","newPosition","DecodedChar","FNC1","DecodedInformation","newString","remainingValue","remaining","DecodedNumeric","firstDigit","secondDigit","FieldParser","rawInformation","firstTwoDigits","dataLength","TWO_DIGIT_DATA_LENGTH","VARIABLE_LENGTH","processVariableAI","processFixedAI","firstThreeDigits","THREE_DIGIT_DATA_LENGTH","THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH","firstFourDigits","FOUR_DIGIT_DATA_LENGTH","aiSize","fieldSize","ai","parsedAI","parseFieldsInGeneralPurpose","variableFieldSize","GeneralAppIdDecoder","information","buff","initialPosition","currentPosition","info","decodeGeneralPurposeField","parsedFields","getNewString","isRemaining","getRemainingValue","getNewPosition","numeric","extractNumericValueFromBitArray","setLengthToZero","setPosition","lastDecoded","parseBlocks","getPosition","isFinished","isAlpha","parseAlphaBlock","isIsoIec646","parseIsoIec646Block","parseNumericBlock","getDecodedInformation","isStillNumeric","decodeNumeric","isFirstDigitFNC1","isSecondDigitFNC1","getSecondDigit","getFirstDigit","isNumericToAlphaNumericLatch","setAlpha","incrementPosition","isStillIsoIec646","decodeIsoIec646","isFNC1","getValue","isAlphaOr646ToNumericLatch","setNumeric","isAlphaTo646ToAlphaLatch","isStillAlpha","alpha","decodeAlphanumeric","setIsoIec646","fiveBitValue","sevenBitValue","eightBitValue","sixBitValue","AbstractExpandedDecoder","generalDecoder","AI01decoder","buf","currentPos","encodeCompressedGtinWithoutAI","initialBufferPosition","currentBlock","getGeneralDecoder","appendCheckDigit","GTIN_SIZE","AI01AndOtherAIs","initialGtinPosition","firstGtinDigit","HEADER_SIZE","decodeAllCodes","AnyAIDecoder","AI01weightDecoder","weightSize","originalWeightNumeric","addWeightCode","weightNumeric","checkWeight","currentDivisor","AI013x0xDecoder","getInformation","WEIGHT_SIZE","encodeCompressedGtin","encodeCompressedWeight","AI013103decoder","weight","AI01320xDecoder","AI01392xDecoder","lastAIdigit","LAST_DIGIT_SIZE","AI01393xDecoder","FIRST_THREE_DIGITS_SIZE","generalInformation","AI013x0x1xDecoder","firstAIdigits","dateCode","DATE_SIZE","encodeCompressedDate","numericDate","createDecoder","ExpandedPair","leftChar","rightChar","finderPatter","mayBeLast","leftchar","rightchar","finderpattern","maybeLast","o1","o2","equalsOrNull","ExpandedRow","pairs","wasReversed","otherPairs","checkEqualitity","pair1","pair2","e1","e2","getLeftChar","getRightChar","getFinderPatter","RSSExpandedReader","verbose","MAX_PAIRS","startFromEven","constructResult","decodeRow2pairs","tryStackedDecode","retrieveNextPair","storeRow","ps","checkRowsBoolean","checkRows","collectedRows","currentRow","collectedRow","getPairs","isValidSequence","rs","sequence","FINDER_PATTERN_SEQUENCES","getFinderPattern","insertPos","prevIsSame","nextIsSame","erow","getRowNumber","isEquivalent","isPartialRow","removePartialRows","pp","allFound","found","resultingString","charNumber","binary","accPos","firstValue","currentPair","leftValue","rightValue","buildBitArray","parseInformation","firstPoints","lastPoints","RSS_EXPANDED","firstPair","checkCharacter","firstCharacter","checksum","getChecksumPortion","currentRightChar","initialPos","previousPairs","isOddPattern","keepFinding","forcedOffset","findNextPair","parseFoundFinderPattern","getNextSecondBar","decodeDataCharacter","isEmptyPair","mustBeLast","getDecodeFinderCounters","getStartEnd","searchingEvenPair","reverseCounters","isFinderPattern","oddPattern","firstCounter","firstElementStart","parseFinderValue","FINDER_PATTERNS","getDataCharacterCounters","recordPatternInReverse","elementWidth","expectedElementWidth","getOddCounts","getEvenCounts","getOddRoundingErrors","getEvenRoundingErrors","adjustOddEvenCounts","weightRowNumber","oddSum","oddChecksumPortion","isNotA1left","WEIGHTS","evenChecksumPortion","group","oddWidest","SYMBOL_WIDEST","evenWidest","vOdd","getRSSvalue","vEven","tEven","EVEN_TOTAL_SUBSET","gSum","GSUM","numModules","evenSum","incrementOdd","decrementOdd","incrementEven","decrementEven","mismatch","oddParityBad","evenParityBad","increment","decrement","FINDER_PAT_A","FINDER_PAT_B","FINDER_PAT_C","FINDER_PAT_D","FINDER_PAT_E","FINDER_PAT_F","Pair","finderPattern","RSS14Reader","possibleLeftPairs","possibleRightPairs","leftPair","decodePair","addOrTally","rightPair","getCount","possiblePairs","pair","incrementCount","symbolValue","leftPoints","rightPoints","RSS_14","checkValue","targetCheckValue","findFinderPattern","outside","inside","outsideChar","OUTSIDE_ODD_WIDEST","OUTSIDE_EVEN_TOTAL_SUBSET","OUTSIDE_GSUM","INSIDE_ODD_WIDEST","tOdd","INSIDE_ODD_TOTAL_SUBSET","INSIDE_GSUM","rightFinderPattern","firstIsBlack","MultiFormatOneDReader","useCode39CheckDigit","ASSUME_CODE_39_CHECK_DIGIT","ECBlocks","ecCodewords","ecBlocks1","ecBlocks2","ecBlocks","ECB","dataCodewords","Version","versionNumber","symbolSizeRows","symbolSizeColumns","dataRegionSizeRows","dataRegionSizeColumns","getECCodewords","ecbArray","getECBlocks","ecBlock","getDataCodewords","totalCodewords","numRows","numColumns","VERSIONS","buildVersions","BitMatrixParser","bitMatrix","readVersion","mappingBitMatrix","extractDataRegion","readMappingMatrix","getVersionForDimensions","Int8Array","getTotalCodewords","resultOffset","column","corner1Read","corner2Read","corner3Read","corner4Read","readUtah","readCorner4","readCorner3","readCorner2","readCorner1","currentByte","readModule","getSymbolSizeRows","getSymbolSizeColumns","getDataRegionSizeRows","getDataRegionSizeColumns","numDataRegionsRow","numDataRegionsColumn","bitMatrixWithoutAlignment","dataRegionRow","dataRegionRowOffset","dataRegionColumn","dataRegionColumnOffset","readRowOffset","writeRowOffset","readColumnOffset","writeColumnOffset","DataBlock","codewords","rawCodewords","totalBlocks","ecBlockArray","numResultBlocks","numBlockCodewords","longerBlocksNumDataCodewords","shorterBlocksNumDataCodewords","rawCodewordsOffset","specialVersion","getVersionNumber","numLongerBlocks","jOffset","iOffset","BitSource","byteOffset","available","bitsLeft","toRead","bitsToNotRead","DecodedBitStreamParser","resultTrailer","ASCII_ENCODE","decodeAsciiSegment","C40_ENCODE","decodeC40Segment","TEXT_ENCODE","decodeTextSegment","ANSIX12_ENCODE","decodeAnsiX12Segment","EDIFACT_ENCODE","decodeEdifactSegment","BASE256_ENCODE","decodeBase256Segment","PAD_ENCODE","upperShift","oneByte","readBits","insert","cValues","firstByte","parseTwoBytes","cValue","C40_BASIC_SET_CHARS","c40char","C40_SHIFT2_SET_CHARS","TEXT_BASIC_SET_CHARS","textChar","TEXT_SHIFT2_SET_CHARS","TEXT_SHIFT3_SET_CHARS","secondByte","fullBitValue","edifactValue","getBitOffset","codewordPosition","getByteOffset","d1","unrandomize255State","uee","randomizedBase256Codeword","base256CodewordPosition","tempVariable","Decoder$1","rsDecoder","parser","getVersion","readCodewords","dataBlocks","getDataBlocks","totalBytes","db","getNumDataCodewords","resultBytes","dataBlocksCount","dataBlock","codewordBytes","getCodewords","correctErrors","codewordsInts","Detector$1","rectangleDetector","detectSolid1","detectSolid2","correctTopRight","shiftToModuleCenter","dimensionTop","transitionsBetween","dimensionRight","div","fromX","fromY","trAB","trBC","trCD","trDA","tr","pointBs","shiftPoint","pointCs","trTop","trRight","pointAs","candidate1","candidate2","dimH","dimV","pointDs","centerX","centerY","moveAway","toX","toY","steep","ystep","xstep","transitions","inBlack","isBlack","DataMatrixReader","decoder","has","PURE_BARCODE","extractPureBits","NO_POINTS","DATA_MATRIX","leftTopBlack","getTopLeftOnBit","rightBottomBlack","getBottomRightOnBit","matrixWidth","matrixHeight","nudge","ErrorCorrectionLevel","stringValue","FOR_BITS","FOR_VALUE","Q","H","FormatInformation","formatInfo","errorCorrectionLevel","forBits","dataMask","maskedFormatInfo1","maskedFormatInfo2","doDecodeFormatInformation","FORMAT_INFO_MASK_QR","bestDifference","bestFormatInfo","decodeInfo","FORMAT_INFO_DECODE_LOOKUP","targetInfo","bitsDifference","numBitsDiffering","ECBlocks$1","ecCodewordsPerBlock","getNumBlocks","ECB$1","Version$1","alignmentPatternCenters","getECCodewordsPerBlock","getVersionForNumber","versionBits","bestVersion","VERSION_DECODE_INFO","targetVersion","getDimensionForVersion","setRegion","DataMask","isMasked","flip","DATA_MASK_000","DATA_MASK_001","DATA_MASK_010","DATA_MASK_011","DATA_MASK_100","DATA_MASK_101","DATA_MASK_110","DATA_MASK_111","BitMatrixParser$1","parsedFormatInfo","formatInfoBits1","copyBit","formatInfoBits2","jMin","decodeFormatInformation","parsedVersion","provisionalVersion","ijMin","theParsedVersion","decodeVersionInformation","readFormatInformation","getDataMask","unmaskBitMatrix","functionPattern","buildFunctionPattern","readingUp","bitsRead","col","DataBlock$1","getECBlocksForLevel","shorterBlocksTotalCodewords","longerBlocksStartAt","Mode$1","characterCountBitsForVersions","TERMINATOR","NUMERIC","ALPHANUMERIC","STRUCTURED_APPEND","BYTE","ECI","KANJI","FNC1_FIRST_POSITION","FNC1_SECOND_POSITION","HANZI","DecodedBitStreamParser$1","symbolSequence","parityData","currentCharacterSetECI","fc1InEffect","modeBits","parseECIValue","getCharacterSetECIByValue","subset","countHanzi","getCharacterCountBits","GB2312_SUBSET","decodeHanziSegment","decodeNumericSegment","decodeAlphanumericSegment","decodeByteSegment","decodeKanjiSegment","iae","twoBytes","assembledTwoBytes","readBytes","guessEncoding","ALPHANUMERIC_CHARS","nextTwoCharsBits","toAlphaNumericChar","deleteCharAt","setCharAt","threeDigitsBits","twoDigitsBits","digitBits","QRCodeDecoderMetaData","mirrored","Decoder$2","decodeBitMatrix","parseFromBooleanArray","decodeBitMatrixParser","remask","setMirror","mirror","setOther","getErrorCorrectionLevel","AlignmentPattern","posX","posY","estimatedModuleSize","moduleSizeDiff","newModuleSize","combinedX","combinedY","combinedModuleSize","AlignmentPatternFinder","startX","startY","possibleCenters","crossCheckStateCount","maxJ","middleI","stateCount","iGen","currentState","foundPatternCross","confirmed","handlePossibleCenter","maxVariance","startI","centerJ","maxCount","originalStateCountTotal","maxI","stateCountTotal","centerFromEnd","centerI","crossCheckVertical","aboutEquals","combineEstimate","FinderPattern$1","combinedCount","FinderPatternInfo","patternCenters","FinderPatternFinder","pureBarcode","iSkip","MAX_MODULES","MIN_SKIP","hasSkipped","haveMultiplyConfirmedCenters","rowSkip","findRowSkip","patternInfo","selectBestPatterns","orderBestPatterns","totalModuleSize","getCrossCheckStateCount","startJ","crossCheckHorizontal","crossCheckDiagonal","firstConfirmedCenter","CENTER_QUORUM","confirmedCount","getEstimatedModuleSize","totalDeviation","startSize","square","stdDev","center1","center2","dA","dB","splice","possibleCenter","Detector$2","processFinderPatternInfo","getTopLeft","getTopRight","getBottomLeft","calculateModuleSize","computeDimension","getProvisionalVersionForDimension","modulesBetweenFPCenters","alignmentPattern","getAlignmentPatternCenters","bottomRightX","bottomRightY","correctionToTopLeft","estAlignmentX","estAlignmentY","findAlignmentInRegion","createTransform","dimMinusThree","sourceBottomRightX","sourceBottomRightY","tltrCentersDimension","tlblCentersDimension","calculateModuleSizeOneWay","otherPattern","moduleSizeEst1","sizeOfBlackWhiteBlackRunBothWays","moduleSizeEst2","sizeOfBlackWhiteBlackRun","otherToX","otherToY","state","xLimit","realX","realY","overallEstModuleSize","allowanceFactor","allowance","alignmentAreaLeftX","alignmentAreaRightX","alignmentAreaTopY","alignmentAreaBottomY","QRCodeReader","getOther","applyMirroredCorrection","QR_CODE","hasStructuredAppend","STRUCTURED_APPEND_SEQUENCE","getStructuredAppendSequenceNumber","STRUCTURED_APPEND_PARITY","getStructuredAppendParity","nudgedTooFarRight","nudgedTooFarDown","PDF417Common","moduleBitCount","list","EMPTY_INT_ARRAY","integer","symbol","binarySearch","SYMBOL_TABLE","CODEWORD_TABLE","NUMBER_OF_CODEWORDS","MAX_CODEWORDS_IN_BARCODE","MIN_ROWS_IN_BARCODE","MAX_ROWS_IN_BARCODE","MODULES_IN_CODEWORD","MODULES_IN_STOP_PATTERN","BARS_IN_MODULE","PDF417DetectorResult","Detector$3","multiple","barcodeCoordinates","rotate180","foundBarcodeInRow","vertices","findVertices","barcodeCoordinate","ROW_STEP","startRow","startColumn","copyToResult","findRowsWithPattern","INDEXES_START_PATTERN","STOP_PATTERN","INDEXES_STOP_PATTERN","tmpResult","destinationIndexes","loc","previousRowLoc","stopRow","skippedRowCount","MAX_PATTERN_DRIFT","SKIPPED_ROW_COUNT_MAX","BARCODE_MIN_HEIGHT","fillWithin","pixelDrift","MAX_PIXEL_DRIFT","Infinity","ModulusPoly","negative","multiplyOther","negativeCoefficients","ModulusGF","modulus","PDF417_GF","ErrorCorrection","S","evaluation","knownErrors","erasure","getChecksumInstance","errorLocatorDegree","formalDerivativeCoefficients","formalDerivative","numerator","BoundingBox","constructor_2","constructor_1","leftUnspecified","rightUnspecified","minX","maxX","minY","maxY","boundingBox","getBottomRight","getMinX","getMaxX","getMinY","getMaxY","leftBox","rightBox","missingStartRows","missingEndRows","isLeft","newTopLeft","newBottomLeft","newTopRight","newBottomRight","newMinY","newTop","newMaxY","newBottom","BarcodeMetadata","columnCount","rowCountUpperPart","rowCountLowerPart","rowCount","Formatter","form","DetectionResultColumn","imageRow","codeword","getCodeword","MAX_NEARBY_DISTANCE","nearImageRow","imageRowToCodewordIndex","formatter","BarcodeValue","confidence","maxConfidence","entries","entry","getKey","toIntArray","DetectionResultRowIndicatorColumn","_isLeft","setRowNumberAsRowIndicatorColumn","barcodeMetadata","setRowNumbers","removeIncorrectCodewords","getBoundingBox","firstRow","lastRow","barcodeRow","maxRowHeight","currentRowHeight","codewordsRow","rowDifference","getRowCount","checkedRows","closePreviousCodewordFound","getBarcodeMetadata","adjustIncompleteIndicatorColumnRowNumbers","barcodeColumnCount","barcodeRowCountUpperPart","barcodeRowCountLowerPart","barcodeECLevel","rowIndicatorValue","codewordRowNumber","setValue","codewordRow","getRowCountUpperPart","getRowCountLowerPart","getColumnCount","DetectionResult","ADJUST_ROW_NUMBER_SKIP","detectionResultColumns","adjustIndicatorColumnRowNumbers","previousUnadjustedCount","unadjustedCodewordCount","adjustRowNumbersAndGetCount","detectionResultColumn","adjustCompleteIndicatorColumnRowNumbers","unadjustedCount","adjustRowNumbersByRow","barcodeColumn","hasValidRowNumber","adjustRowNumbers","adjustRowNumbersFromBothRI","adjustRowNumbersFromLRI","adjustRowNumbersFromRRI","LRIcodewords","RRIcodewords","setRowNumber","rowIndicatorRowNumber","invalidRowCounts","adjustRowNumberIfValid","isValidRowNumber","previousColumnCodewords","nextColumnCodewords","otherCodewords","otherCodeword","adjustRowNumber","getBucket","rowIndicatorColumn","Codeword","endX","bucket","BARCODE_ROW_UNKNOWN","PDF417CodewordDecoder","currentSymbol","currentBit","RATIOS_TABLE","fround","bSymbolTableReady","decodedValue","getDecodedCodewordValue","sampleBitCounts","getClosestDecodedValue","bitCountSum","bitCountIndex","sumPreviousBits","sampleIndex","getBitValue","bitCountRatios","bestMatchError","initialize","ratioTableRow","PDF417ResultMetadata","segmentCount","fileSize","segmentIndex","fileId","optionalData","lastSegment","sender","addressee","fileName","Long","NullPointerException","OutOfMemoryError","ByteArrayOutputStream","writeBytesOffset","off","write","minCapacity","grow","newCapacity","copyOfUint8Array","param","toString_string","toString_number","toString_void","charsetName","hibyte","getBigIntConstructor","BigInteger","createBigInt","DecodedBitStreamParser$2","enableDecoding","codeIndex","TEXT_COMPACTION_MODE_LATCH","textCompaction","BYTE_COMPACTION_MODE_LATCH","BYTE_COMPACTION_MODE_LATCH_6","byteCompaction","MODE_SHIFT_TO_BYTE_COMPACTION_MODE","NUMERIC_COMPACTION_MODE_LATCH","numericCompaction","ECI_CHARSET","ECI_GENERAL_PURPOSE","ECI_USER_DEFINED","BEGIN_MACRO_PDF417_CONTROL_BLOCK","decodeMacroBlock","BEGIN_MACRO_PDF417_OPTIONAL_FIELD","MACRO_PDF417_TERMINATOR","getFormatInstance","NUMBER_OF_SEQUENCE_CODEWORDS","segmentIndexArray","setSegmentIndex","decodeBase900toBase10","setFileId","optionalFieldsStart","MACRO_PDF417_OPTIONAL_FIELD_FILE_NAME","setFileName","MACRO_PDF417_OPTIONAL_FIELD_SENDER","setSender","MACRO_PDF417_OPTIONAL_FIELD_ADDRESSEE","setAddressee","MACRO_PDF417_OPTIONAL_FIELD_SEGMENT_COUNT","setSegmentCount","MACRO_PDF417_OPTIONAL_FIELD_TIME_STAMP","setTimestamp","parseLong","MACRO_PDF417_OPTIONAL_FIELD_CHECKSUM","setChecksum","MACRO_PDF417_OPTIONAL_FIELD_FILE_SIZE","setFileSize","setLastSegment","optionalFieldsLength","isLastSegment","setOptionalData","copyOfRange","textCompactionData","byteCompactionData","decodeTextCompaction","subMode","ALPHA","priorToShiftMode","subModeCh","ML","PS","PUNCT_SHIFT","AS","ALPHA_SHIFT","PL","MIXED_CHARS","AL","PAL","PUNCT_CHARS","decodedBytes","byteCompactedCodewords","nextCode","toByteArray","numericCodewords","MAX_NUMERIC_CODEWORDS","EXP900","nineHundred","getEXP900","PDF417ScanningDecoder","imageTopLeft","imageBottomLeft","imageTopRight","imageBottomRight","minCodewordWidth","maxCodewordWidth","detectionResult","leftRowIndicatorColumn","rightRowIndicatorColumn","firstPass","getRowIndicatorColumn","merge","resultBox","setBoundingBox","maxBarcodeColumn","getBarcodeColumnCount","setDetectionResultColumn","leftToRight","getDetectionResultColumn","previousStartColumn","getStartColumn","detectCodeword","setCodeword","createDecoderResult","adjustBoundingBox","rowHeights","getRowHeights","getMax","rowHeight","addMissingRows","maxValue","leftBarcodeMetadata","rightBarcodeMetadata","startPoint","getStartX","getEndX","barcodeMatrix","barcodeMatrix01","numberOfCodewords","calculatedNumberOfCodewords","getBarcodeRowCount","getNumberOfECCodeWords","getBarcodeECLevel","createBarcodeMatrix","adjustCodewordCount","ambiguousIndexValuesList","ambiguousIndexesList","codewordIndex","ambiguousIndexValues","createDecoderResultFromAmbiguousValues","erasureArray","ambiguousIndexes","ambiguousIndexCount","tries","decodeCodewords","getDetectionResultColumns","isValidBarcodeColumn","getCodewordNearby","skippedColumns","previousRowCodeword","minColumn","maxColumn","adjustCodewordStartColumn","endColumn","getModuleBitCount","codewordBitCount","tmpCount","checkCodewordSkew","getDecodedValue","getCodewordBucketNumber","imageColumn","moduleNumber","previousPixelValue","codewordStartColumn","correctedStartColumn","CODEWORD_SKEW_SIZE","correctedErrorsCount","verifyCodewordCount","setErrorsCorrected","setErasures","MAX_ERRORS","MAX_EC_CODEWORDS","errorCorrection","previousValue","getCodewordBucketNumber_Int32Array","getCodewordBucketNumber_number","getBitCountForCodeword","barcodeValue","getConfidence","PDF417Reader","results","detectMultiple","getMinCodewordWidth","getMaxCodewordWidth","PDF_417","pdf417ResultMetadata","PDF417_EXTRA_METADATA","getMaxWidth","getMinWidth","ReaderException","MultiFormatReader","setHints","decodeInternal","addOneDReader","CODABAR","CODE_93","EncodeHintType","EncodeHintType$1","ReedSolomonEncoder","cachedGenerators","lastGenerator","nextGenerator","toEncode","ecBytes","dataBytes","buildGenerator","infoCoefficients","divide","getCoefficients","numZeroCoefficients","MaskUtil","applyMaskPenaltyRule1Internal","penalty","getArray","arrayY","N2","numPenalties","isWhiteHorizontal","isWhiteVertical","N3","numDarkCells","numTotalCells","N4","maskPattern","intermediate","isHorizontal","iLimit","jLimit","numSameBitCells","prevBit","N1","ByteMatrix","aByte","bytesY","otherBytesY","QRCode","NUM_MASK_PATTERNS","WriterException","MatrixUtil","dataBits","clearMatrix","embedBasicPatterns","embedTypeInfo","maybeEmbedVersionInfo","embedDataBits","embedPositionDetectionPatternsAndSeparators","embedDarkDotAtLeftBottomCorner","maybeEmbedPositionAdjustmentPatterns","embedTimingPatterns","typeInfoBits","makeTypeInfoBits","coordinates","TYPE_INFO_COORDINATES","setBoolean","versionInfoBits","makeVersionInfoBits","bitIndex","isEmpty","getDataMaskBit","numberOfLeadingZeros","msbSetInPoly","findMSBSet","isValidMaskPattern","typeInfo","appendBits","bchCode","calculateBCHCode","TYPE_INFO_POLY","maskBits","TYPE_INFO_MASK_PATTERN","xor","VERSION_INFO_POLY","setNumber","xStart","yStart","patternY","POSITION_ADJUSTMENT_PATTERN","POSITION_DETECTION_PATTERN","pdpWidth","embedPositionDetectionPattern","embedHorizontalSeparationPattern","hspWidth","embedVerticalSeparationPattern","POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE","embedPositionAdjustmentPattern","BlockPair","errorCorrectionBytes","Encoder","applyMaskPenaltyRule1","applyMaskPenaltyRule2","applyMaskPenaltyRule3","applyMaskPenaltyRule4","content","DEFAULT_BYTE_MODE_ENCODING","hasEncodingHint","chooseMode","headerBits","eci","appendECI","appendModeInfo","appendBytes","QR_VERSION","bitsNeeded","calculateBitsNeeded","willFit","recommendVersion","headerAndDataBits","appendBitArray","numLetters","getSizeInBytes","appendLengthInfo","numDataBytes","getTotalECCodewords","terminateBits","finalBits","interleaveWithECBytes","qrCode","setECLevel","setMode","setVersion","chooseMaskPattern","setMaskPattern","buildMatrix","setMatrix","provisionalBitsNeeded","chooseVersion","ALPHANUMERIC_TABLE","isOnlyDoubleByteKanji","hasNumeric","hasAlphanumeric","isDigit","getAlphanumericCode","byte1","minPenalty","bestMaskPattern","calculateMaskPenalty","numInputBits","versionNum","capacity","numBitsInLastByte","numPaddingBytes","numTotalBytes","numRSBlocks","blockID","numDataBytesInBlock","numECBytesInBlock","numRsBlocksInGroup2","numRsBlocksInGroup1","numTotalBytesInGroup1","numTotalBytesInGroup2","numDataBytesInGroup1","numDataBytesInGroup2","numEcBytesInGroup1","numEcBytesInGroup2","dataBytesOffset","maxNumDataBytes","maxNumEcBytes","blocks","numEcBytesInBlock","getNumDataBytesAndNumECBytesForBlockID","toBytes","generateECBytes","block","getDataBytes","getErrorCorrectionBytes","appendNumericBytes","appendAlphanumericBytes","append8BitBytes","appendKanjiBytes","singleCharacter","cn","getDigit","num1","num2","num3","code1","code2","subtracted","BrowserQRCodeSvgWriter","contents","quietZone","QUIET_ZONE_SIZE","ERROR_CORRECTION","fromString","MARGIN","renderResult","containerElement","querySelector","svgElement","appendChild","inputWidth","inputHeight","qrWidth","qrHeight","outputWidth","outputHeight","leftPadding","topPadding","createSVGElement","inputY","outputY","inputX","outputX","svgRectElement","createSvgRectElement","createElementNS","SVG_NS","setAttributeNS","rect","QRCodeWriter","PlanarYUVLuminanceSource","yuvData","dataWidth","dataHeight","reverseHorizontal","area","inputOffset","outputOffset","THUMBNAIL_SCALE_FACTOR","pixels","yuv","grey","rowStart","RGBLuminanceSource","BYTES_PER_ELEMENT","luminancesUint8Array","g2","Charset","StandardCharsets","ISO_8859_1","AztecCode","codeWords","Collections","item","collection","SimpleToken","bitArray","byteCount","toBinaryString","BinaryShiftToken","binaryShiftStart","binaryShiftByteCount","MODE_NAMES","EMPTY_TOKEN","LATCH_TABLE","SHIFT_TABLE","static_SHIFT_TABLE","createInt32Array","State","binaryBytes","latch","latchModeBitCount","thisModeBitCount","deltaBitCount","endBinaryShift","addBinaryShift","newModeBitCount","calculateBinaryShiftCost","symbols","getPrevious","appendTo","INITIAL_STATE","CHAR_MAP","spaceCharCode","getCharCode","pointCharCode","commaCharCode","zUpperCharCode","aUpperCharCode","zLowerCharCode","aLowerCharCode","nineCharCode","zeroCharCode","mixedTable","punctTable","static_CHAR_MAP","HighLevelEncoder","lineBreakCharCode","states","singletonList","pairCode","nextChar","updateStateListForPair","updateStateListForChar","getBitCount","toBitArray","updateStateForChar","simplifyStates","charInCurrentTable","getMode","stateNoBinary","charInMode","latchState","latchAndAppend","shiftState","shiftAndAppend","getBinaryShiftByteCount","binaryState","addBinaryShiftChar","updateStateForPair","digitState","newState","oldState","isBetterThanOrEqualTo","filter","Encoder$1","DEFAULT_EC_PERCENT","DEFAULT_AZTEC_LAYERS","minECCPercent","userSpecifiedLayers","wordSize","eccBits","totalSizeBits","MAX_NB_BITS_COMPACT","MAX_NB_BITS","WORD_SIZE","usableBitsInLayers","stuffBits","messageBits","generateCheckWords","messageSizeInWords","modeMessage","generateModeMessage","drawModeMessage","drawBullsEye","aztec","setCompact","setSize","setLayers","setCodeWords","totalBits","getGF","totalWords","messageWords","bitsToWords","startPad","messageWord","word","AztecWriter","encodeWithHints","charset","eccPercent","forName","AZTEC_LAYERS","encodeLayers","getBytes","AztecCodeReader","AztecCodeWriter","AztecDecoder","AztecDetector","AztecEncoder","AztecHighLevelEncoder","AztecPoint","BrowserAztecCodeReader","BrowserBarcodeReader","BrowserDatamatrixCodeReader","BrowserMultiFormatReader","decodeWithState","BrowserPDF417Reader","BrowserQRCodeReader","DataMatrixDecodedBitStreamParser","MultiFormatWriter","writer","PDF417DecodedBitStreamParser","PDF417DecoderErrorCorrection","QRCodeByteMatrix","QRCodeDataMask","QRCodeDecodedBitStreamParser","QRCodeDecoderErrorCorrectionLevel","QRCodeDecoderFormatInformation","QRCodeEncoder","QRCodeEncoderQRCode","QRCodeMaskUtil","QRCodeMatrixUtil","QRCodeMode","QRCodeVersion","ZXingArrays","ZXingCharset","ZXingInteger","ZXingStandardCharsets","ZXingStringBuilder","ZXingStringEncoding","ZXingSystem","createAbstractExpandedDecoder","req","ref","_withParams","default","_typeof","iterator","_","reference","vm","parentVm","expr","Element","Attribute","Text","CData","EntityReference","EntityDeclaration","ProcessingInstruction","Comment","Document","DocType","DocumentFragment","NotationDeclaration","Declaration","Raw","AttributeDeclaration","ElementDeclaration","Dummy","base64","ieee754","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","allocUnsafe","TypeError","ArrayBuffer","byteLength","fromArrayLike","fromArrayBuffer","isEncoding","actual","isBuffer","checked","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","hi","lo","utf16leToBytes","fromByteArray","thirdByte","fourthByte","tempCodePoint","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","configurable","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","_arr","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","trim","stringtrim","base64clean","dst","_alpha","_alphaNum","_and","_between","_decimal","_email","helpers","_integer","_ipAddress","_macAddress","_maxLength","_maxValue","_minLength","_minValue","_not","_numeric","_or","_required","_requiredIf","_requiredUnless","_sameAs","_url","_interopRequireDefault","nodeInterop","cache","_getRequireWildcardCache","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","_interopRequireWildcard","WeakMap","cacheBabelInterop","cacheNodeInterop","isArrayBuffer","isFormData","FormData","isArrayBufferView","isString","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","assignValue","deepMerge","g","DocumentPosition","NodeType","XMLCData","XMLComment","XMLDeclaration","XMLDocType","XMLDummy","XMLElement","XMLNodeList","XMLProcessingInstruction","XMLRaw","XMLText","ref1","hasProp","XMLNode","parent1","children","baseURI","childNodeList","nodes","child","ref2","nodeType","textContent","debugInfo","setParent","attributes","childNode","lastChild","len1","ref3","ignoreDecorators","convertAttKey","attribute","separateArrayItems","dummy","keepNullNodes","convertTextKey","convertCDataKey","cdata","convertCommentKey","comment","convertRawKey","convertPIKey","instruction","node","insertBefore","newChild","refChild","removed","isRoot","insertAfter","remove","commentBefore","commentAfter","insTarget","insValue","instructionBefore","instructionAfter","declaration","standalone","doc","xmldec","root","dtd","pubID","sysID","doctype","rootObject","prev","importDocument","clonedRoot","ele","nod","txt","dat","com","ins","dec","importXMLBuilder","replaceChild","oldChild","removeChild","hasChildNodes","cloneNode","deep","normalize","isSupported","feature","hasAttributes","attribs","compareDocumentPosition","Disconnected","ImplementationSpecific","random","Preceding","Following","isAncestor","Contains","isDescendant","isPreceding","isSameNode","lookupPrefix","namespaceURI","isDefaultNamespace","lookupNamespaceURI","isEqualNode","getFeature","setUserData","handler","getUserData","contains","nodePos","thisPos","treePosition","isFollowing","foreachTreeNode","emptyObject","freeze","isUndef","isDef","isTrue","isPrimitive","_toString","isPlainObject","isRegExp","isValidArrayIndex","isPromise","catch","replacer","_key","__v_isRef","toNumber","makeMap","expectsLowerCase","isReservedAttribute","remove$2","hasOwn","cached","camelizeRE","camelize","capitalize","hyphenateRE","hyphenate","boundFn","_length","_from","noop","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","keysA","keysB","looseIndexOf","once","called","hasChanged","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","def","writable","bailRE","hasProto","inBrowser","UA","userAgent","isIE","isIE9","isEdge","isIOS","_isServer","isFF","nativeWatch","watch","supportsPassive","opts","isServerRendering","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Reflect","ownKeys","Set","currentInstance","setCurrentInstance","_scope","on","VNode","tag","elm","componentOptions","asyncFactory","fnContext","fnOptions","fnScopeId","componentInstance","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","SuppressedError","uid$2","pendingCleanupDeps","Dep","_pending","subs","addSub","removeSub","depend","addDep","notify","update","targetStack","pushTarget","popTarget","pop","arrayProto","arrayMethods","method","inserted","ob","__ob__","observeArray","dep","arrayKeys","NO_INITIAL_VALUE","shouldObserve","toggleObserving","mockDep","Observer","shallow","mock","vmCount","defineReactive","observe","ssrMockReactivity","isExtensible","__v_skip","isRef","customSetter","observeEvenIfShallow","childOb","dependArray","newVal","isReadonly","_isVue","del","shallowReactive","makeReactive","__v_isReadonly","proxyWithRefUnwrap","oldValue","activeEffectScope","EffectScope","detached","active","effects","cleanups","scopes","run","currentEffectScope","fromParent","teardown","resolveProvided","_provided","parentProvides","$parent","normalizeEvent","passive","capture","createFnInvoker","fns","invoker","invokeWithErrorHandling","updateListeners","oldOn","createOnceHandler","cur","old","event","params","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","checkProp","altKey","preserve","normalizeChildren","normalizeArrayChildren","nestedIndex","isTextNode","_isVList","renderList","renderSlot","fallbackRender","props","bindObject","scopedSlotFn","$scopedSlots","$slots","slot","$createElement","resolveFilter","resolveAsset","isKeyNotMatch","expect","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","_loop_1","attrs","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","markStatic","_renderProxy","_c","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","$stable","proxy","$key","bindDynamicKeys","baseObj","prependModifier","installRenderHelpers","_o","_n","_s","_t","_q","_m","_k","_b","_v","_e","_u","_g","_p","resolveSlots","slots","name_1","name_2","isWhitespace","normalizeScopedSlots","ownerVm","scopedSlots","normalSlots","prevScopedSlots","hasNormalSlots","isStable","_normalized","$hasNormal","key_1","normalizeScopedSlot","key_2","proxyNormalSlot","normalized","createSetupContext","_attrsProxy","syncSetupProxy","$attrs","_listenersProxy","$listeners","_slotsProxy","syncSetupSlots","initSlotsProxy","emit","$emit","expose","exposed","instance","changed","defineProxyAttr","currentRenderingInstance","ensureCtor","comp","getFirstComponentChild","createElement$1","normalizationType","alwaysNormalize","is","simpleNormalizeChildren","pre","createComponent","applyNS","force","traverse","class","registerDeepBindings","_createElement","handleError","errorCaptured","globalHandleError","_handled","logError","timerFunc","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","p_1","MutationObserver","setImmediate","counter_1","observer","textNode_1","createTextNode","characterData","nextTick","cb","_resolve","createLifeCycle","hookName","mergeLifecycleHook","injectHook","seenObjects","_traverse","seen","isA","depId","target$1","uid$1","Watcher","expOrFn","isRenderWatcher","effect","scope","_vm","_watcher","user","lazy","sync","before","post","dirty","deps","newDeps","depIds","newDepIds","expression","path","segments","parsePath","cleanupDeps","queueWatcher","evaluate","_isBeingDestroyed","onStop","add$1","$on","remove$1","$off","createOnceHandler$1","_target","onceHandler","updateComponentListeners","listeners","oldListeners","activeInstance","setActiveInstance","prevActiveInstance","isInInactiveTree","_inactive","activateChildComponent","direct","_directInactive","$children","callHook$1","setContext","prevInst","prevScope","handlers","_hasHookEvent","queue","activatedChildren","waiting","flushing","currentFlushTimestamp","getNow","performance_1","createEvent","timeStamp","sortCompareFn","flushSchedulerQueue","watcher","activatedQueue","updatedQueue","callActivatedHooks","_isMounted","_isDestroyed","callUpdatedHooks","noRecurse","resolveInject","inject","provideKey","provideDefault","FunctionalRenderContext","contextVm","_original","isCompiled","needNormalization","injections","cloneAndMarkFunctionalResult","renderContext","mergeProps","getComponentName","__name","_componentTag","componentVNodeHooks","hydrating","keepAlive","mountedNode","prepatch","_isComponent","_parentVnode","inlineTemplate","createComponentInstanceForVnode","$mount","oldVnode","propsData","parentVnode","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","_renderChildren","prevVNode","_vnode","prevListeners","_parentListeners","_props","propKeys","_propKeys","propOptions","validateProp","$forceUpdate","updateChildComponent","destroy","deactivateChildComponent","$destroy","hooksToMerge","baseCtor","_base","cid","errorComp","resolved","owner","owners","loading","loadingComp","owners_1","sync_1","timerLoading_1","timerTimeout_1","forceRender_1","renderCompleted","clearTimeout","reject_1","reason","res_1","component","delay","timeout","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","extractPropsFromVNodeData","vnodes","createFunctionalComponent","nativeOn","abstract","toMerge","_merged","mergeHook","installComponentHooks","f1","f2","strats","mergeData","recursive","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","dedupeHooks","mergeAssets","parent_1","methods","computed","provide","defaultStrat","mergeOptions","normalizeProps","normalizeInject","dirs","directives","normalizeDirectives$1","extends","mixins","mergeField","strat","warnMissing","assets","camelizedId","PascalCaseId","absent","booleanIndex","getTypeIndex","Boolean","stringIndex","getType","getPropDefaultValue","prevShouldObserve","functionTypeCheckRE","isSameType","expectedTypes","sharedPropertyDefinition","sourceKey","initState","propsOptions","initProps$1","setup","_setupContext","setupResult","_setupState","__sfc","_setupProxy","initSetup","initMethods","getData","initData","watchers","_computedWatchers","isSSR","userDef","computedWatcherOptions","defineComputed","initComputed$1","createWatcher","initWatch","shouldCache","createComputedGetter","createGetterInvoker","$watch","uid","superOptions","modifiedOptions","modified","latest","sealed","sealedOptions","resolveModifiedOptions","extendOptions","components","Vue","_init","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","Comp","initProps","initComputed","mixin","use","_getComponentName","pruneCache","keepAliveInstance","pruneCacheEntry","_uid","vnodeComponentOptions","initInternalComponent","_self","$refs","initLifecycle","_events","initEvents","parentData","initRender","initInjections","provideOption","provided","initProvide","initMixin$1","dataDef","propsDef","$set","$delete","immediate","stateMixin","hookRE","$once","i_1","cbs","eventsMixin","_update","prevEl","$el","prevVnode","restoreActiveInstance","__patch__","__vue__","wrapper","lifecycleMixin","$nextTick","_render","prevRenderInst","renderMixin","patternTypes","builtInComponents","KeepAlive","include","exclude","cacheVNode","vnodeToCache","keyToCache","created","destroyed","mounted","updated","configDef","util","observable","plugin","installedPlugins","_installedPlugins","install","initUse","initMixin","definition","initAssetRegisters","initGlobalAPI","acceptValue","isEnumeratedAttr","isValidContentEditableValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","isFalsyAttrValue","genClassForVnode","parentNode","mergeClassData","staticClass","dynamicClass","stringifyClass","renderClass","stringified","stringifyArray","stringifyObject","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","isTextInputType","nodeOps","tagName","namespace","createComment","newNode","referenceNode","nextSibling","setTextContent","setStyleScope","registerRef","isRemoval","refValue","$refsValue","isFor","refInFor","_isString","_isRef","refs","setSetupRef","emptyNode","sameVnode","typeA","typeB","sameInputType","createKeyToOldIdx","beginIdx","endIdx","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","setupDef","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","_v_attr_proxy","setAttr","removeAttributeNS","isInPre","baseSetAttr","convertEnumeratedValue","__ieph","blocker_1","stopImmediatePropagation","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","klass","useMicrotaskFix","attachedTimestamp_1","original_1","_wrapper","currentTarget","updateDOMListeners","event_1","change","normalizeEvents","svgContainer","events","updateDOMProps","oldProps","childNodes","_value","strCur","shouldUpdateValue","innerHTML","firstChild","checkVal","composing","notInFocus","activeElement","isNotInFocusAndDirty","_vModifiers","isDirtyWithModifiers","parseStyleText","cssText","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","checkChild","styleData","getStyle","whitespaceRE","addClass","classList","getAttribute","removeClass","tar","resolveTransition","css","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","onEnd","transformRE","styles","getComputedStyle","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","_leaveCb","cancelled","transition","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","isValidDuration","leave","rm","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","patch","backend","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","isReactivated","initComponent","innerNode","activate","reactivateComponent","setScope","createChildren","invokeCreateHooks","pendingInsert","isPatchable","i_2","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","i_3","childElm","createRmCb","findIdxInOld","oldCh","i_5","patchVnode","removeOnly","hydrate","newCh","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","updateChildren","postpatch","invokeInsertHook","initial","i_6","isRenderedModule","inVPre","childrenMatch","i_7","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","patchable","i_8","i_9","insert_1","i_10","createPatchFunction","vmodel","trigger","directive","binding","_vOptions","setSelected","onCompositionStart","onCompositionEnd","prevOptions_1","curOptions_1","hasNoMatchingOption","actuallySetSelected","isMultiple","selected","option","selectedIndex","initEvent","dispatchEvent","locateNode","platformDirectives","originalDisplay","__vOriginalDisplay","display","unbind","transitionProps","getRealChild","compOptions","extractTransitionData","placeholder","rawChild","isNotTextNode","isVShowDirective","Transition","hasParentTransition","_leaving","oldRawChild","isSameChild","delayedLeave_1","moveClass","callPendingCbs","_moveCb","recordPosition","newPos","getBoundingClientRect","applyTranslation","oldPos","moved","WebkitTransform","transitionDuration","platformComponents","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","hasMove","_reflow","body","offsetHeight","el_1","propertyName","_hasMove","attr","HTMLUnknownElement","HTMLElement","updateComponent","preWatchers","_preWatchers","mountComponent","query","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","title","browser","argv","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","$tr","assign","sources","ctor","getPrototypeOf","pna","objectKeys","Duplex","inherits","Readable","Writable","readable","allowHalfOpen","onend","_writableState","onEndNT","highWaterMark","_readableState","_destroy","superCtor","super_","TempCtor","objectToString","isBoolean","isNull","isSymbol","isError","$Error","$EvalError","$RangeError","$ReferenceError","$SyntaxError","$TypeError","$URIError","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt","BigInt64Array","BigUint64Array","DataView","decodeURI","encodeURI","eval","Float64Array","FinalizationRegistry","Int16Array","Proxy","SharedArrayBuffer","Uint32Array","WeakRef","WeakSet","errorProto","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","stringToPath","quote","subString","getBaseIntrinsic","allowMissing","intrinsicName","doEval","gen","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","devtoolHook","deepCopy","hit","forEachValue","Module","rawModule","runtime","_children","_rawModule","rawState","prototypeAccessors","namespaced","addChild","getChild","hasChild","actions","mutations","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","defineProperties","ModuleCollection","rawRootModule","register","getNamespace","targetModule","newModule","this$1","rawChildModule","unregister","isRegistered","Store","plugins","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","store","dispatch","commit","payload","installModule","resetStoreVM","_devtoolHook","targetState","replaceState","subscribe","mutation","prepend","subscribeAction","action","devtoolPlugin","prototypeAccessors$1","genericSubscribe","resetStore","hot","oldVm","wrappedGetters","partial","$$state","enableStrictMode","_withCommit","rootState","parentState","getNestedState","moduleName","noNamespace","_type","_payload","_options","unifyObjectStyle","gettersProxy","splitPos","localType","makeLocalGetters","makeLocalContext","registerMutation","rootGetters","registerAction","rawGetter","registerGetter","_Vue","vuexInit","$store","applyMixin","all","after","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","isValidMap","helper","startMessage","logger","collapsed","groupCollapsed","endMessage","groupEnd","getFormattedTime","pad","getHours","getMinutes","getSeconds","getMilliseconds","maxLength","createNamespacedHelpers","createLogger","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","prevState","nextState","formattedTime","formattedMutation","formattedAction","superClass","XMLCharacterData","__super__","substringData","appendData","insertData","deleteData","replaceData","None","OpenTag","InsideTag","CloseTag","ReflectOwnKeys","ReflectApply","receiver","getOwnPropertySymbols","NumberIsNaN","EventEmitter","emitter","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","warning","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","setMaxListeners","getMaxListeners","doError","er","originalListener","spliceOne","rawListeners","eventNames","arg1","arg2","arg3","TYPED_OK","_has","shrinkBuf","fnTyped","arraySet","src_offs","dest_offs","flattenChunks","chunks","chunk","fnUntyped","setTyped","Buf8","Buf16","Buf32","parseString","require","invalidAdress","phonenumber","isMobielNummer","userData","required","brand","serviceUrl","RequiredFieldExplanation","getLanguageCode","language","country","returnPartialPhoneNumber","matchResult","dashPosition","acceptPhoneNumber","vast1","vast2","mobiel","partialVast1","partialVast2","partialMobiel","location","hostname","prefillform","sexe","zipcode","housenumber","emailaddress","installationdate","ordernumber","getCityAndStreet","xmls","axios","headers","Authorization","ATAGPostalCodeCheck","Street","City","city","street","cities","busnumber","housenumberadd","getCities","Cities","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","close","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","explicitCharkey","normalizeTags","attrkey","charkey","explicitArray","ignoreAttrs","mergeAttrs","explicitRoot","validator","xmlns","explicitChildren","childkey","charsAsChildren","includeWhiteChars","attrNameProcessors","attrValueProcessors","tagNameProcessors","valueProcessors","emptyTag","preserveChildrenOrder","rootName","renderOpts","headless","chunkSize","XMLAttribute","XMLNamedNodeMap","schemaTypeInfo","documentObject","attributeMap","att","attName","clonedSelf","clonedChild","attValue","keepNullAttributes","filterOptions","getAttributeNode","setAttributeNode","newAttr","removeAttributeNode","oldAttr","getElementsByTagName","getAttributeNS","localName","qualifiedName","getAttributeNodeNS","setAttributeNodeNS","getElementsByTagNameNS","hasAttributeNS","setIdAttribute","isId","setIdAttributeNS","setIdAttributeNode","idAttr","tagname","getElementsByClassName","classNames","getNamedItem","setNamedItem","oldNode","removeNamedItem","getNamedItemNS","setNamedItemNS","removeNamedItemNS","xmlVersion","xmlEncoding","xmlStandalone","XMLDTDAttList","XMLDTDElement","XMLDTDEntity","XMLDTDNotation","dtdPubID","dtdSysID","pe","attList","elementName","attributeName","attributeType","defaultValueType","defaultValue","entity","pEntity","notation","docType","ent","pent","not","publicId","systemId","dtdAttType","dtdAttDefault","dtdAttList","internal","nData","dtdNData","dtdEntityValue","dtdEntity","dtdElementValue","dtdElement","dtdNotation","previousSibling","splitText","replaceWholeText","processingInstruction","XMLWriterBase","XMLStringWriter","writeChildNode","pretty","newline","Stream","EE","Transform","PassThrough","ondata","pause","ondrain","resume","_isStdio","onclose","didOnEnd","onerror","cleanup","copyProps","SafeBuffer","CorkedRequest","finish","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","WritableState","internalUtil","OurUint8Array","realHasInstance","destroyImpl","nop","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","finalCalled","needDrain","ending","noDecode","decodeStrings","defaultEncoding","writing","corked","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","final","_final","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","getBuffer","hasInstance","_uint8ArrayToBuffer","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","undestroy","StringDecoder","nb","enc","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","utf8CheckByte","byte","utf8CheckExtraBytes","utf8CheckIncomplete","$defineProperty","GetIntrinsic","utils","paramsSerializer","serializedParams","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","adapter","XMLHttpRequest","transformRequest","transformResponse","parse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","request","auth","username","password","fullPath","baseURL","open","onreadystatechange","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","ontimeout","timeoutErrorMessage","cookies","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","promise","cancel","abort","send","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","axiosKeys","otherKeys","Cancel","builder","processors","ValidationError","Builder","Parser","parseStringPromise","XMLDOMImplementation","hasFeature","createDocumentType","createDocument","createHTMLDocument","XMLDOMConfiguration","XMLStringifier","XMLDocument","documentURI","domConfig","writerOptions","createDocumentFragment","createCDATASection","createProcessingInstruction","createAttribute","createEntityReference","importNode","importedNode","createAttributeNS","elementId","adoptNode","normalizeDocument","renameNode","eventInterface","createRange","createNodeIterator","whatToShow","createTreeWalker","me","assertLegalName","assertLegalChar","noValidation","textEscape","attEscape","ampregex","noDoubleEncoding","WriterState","filteredOptions","ref4","ref5","ref6","allowEmpty","indent","dontPrettyTextNodes","dontprettytextnodes","spaceBeforeSlash","spacebeforeslash","suppressPrettyCount","level","indentLevel","endline","openAttribute","closeAttribute","openNode","closeNode","childNodeCount","firstChildNode","prettySuppressed","ReadableState","EElistenerCount","debugUtil","debug","debuglog","BufferList","kProxyEvents","readableObjectMode","readableHwm","readableHighWaterMark","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","awaitDrain","readingMore","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","onEofChunk","chunkInvalid","addChunk","maybeReadMore","needMoreData","isPaused","setEncoding","howMuchToRead","head","computeNewHighWaterMark","emitReadable_","flow","maybeReadMore_","nReadingNextTick","resume_","fromList","hasStrings","tail","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onfinish","cleanedUp","pipeOnDrain","increasedAwaitDrain","dests","ev","wrap","_fromList","emitErrorNT","readableDestroyed","writableDestroyed","afterTransform","ts","_transformState","transforming","writechunk","needTransform","writeencoding","_transform","flush","_flush","_this2","err2","prefixMatch","firstCharLowerCase","stripPrefix","parseNumbers","parseBooleans","objectAssign","pSlice","functionsHaveNames","pToString","arrbuf","assert","ok","truncate","something","rawname","fail","expected","operator","stackStartFunction","AssertionError","_deepEqual","memos","multiline","ignoreCase","actualIndex","actualVisitedObjects","aIsArgs","isArguments","bIsArgs","ka","kb","objEquiv","expectedException","isPrototypeOf","_throws","shouldThrow","_tryBlock","userProvidedMessage","isUnexpectedException","generatedMessage","getMessage","fn_name","next_line","equal","notEqual","deepEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","toStr","isArgs","callee","SyntaxError","getOwnPropertyDescriptors","descriptors","formatRegExp","objects","noDeprecation","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","stylize","stylizeNoColor","depth","colors","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","recurseTimes","simple","formatPrimitive","visibleKeys","arrayToHash","formatError","braces","toUTCString","formatProperty","formatArray","numLinesEst","reduceToSingleString","line","NODE_DEBUG","pid","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","promiseResolve","promiseReject","custom","callbackify","callbackified","maybeCb","rej","adler","s1","s2","crcTable","makeTable","crc","moment","symbolMap","numberMap","pluralForm","plurals","pluralize","weekdaysParseExact","suffixes","1","5","8","70","80","2","7","20","50","3","4","100","6","9","10","30","60","90","relativeTimeWithPlural","forms","lastDigit","last2Digits","relativeTimeWithMutation","mutationTable","softMutation","lastNumber","monthsParseExact","ll","lll","llll","plural","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","0","40","isUpper","eifelerRegelAppliesToNumber","translateSingular","special","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","12","13","numbersNouns","numberNoun","hundred","ten","numberAsNoun","processHoursFunction","enumerableOnly","sym","_objectSpread","_defineProperty","_setTarget","popParams","pushParams","withParams","paramsOrClosure","maybeValidator","withParamsClosure","_len","lastTarget","newTarget","$sub","addParams","closure","_len2","_key2","__webpack_exports__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_vue_autocomplete_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_e47ae2be_hasScoped_false_node_modules_vue_loader_lib_selector_type_template_index_0_vue_autocomplete_vue__","Component","__file","esModule","className","classes","initValue","filterByAnchor","debounce","encodeParams","customParams","customHeaders","onShouldRenderChild","onInput","onShow","onBlur","onHide","onFocus","onSelect","onBeforeAjax","onAjaxProgress","onAjaxLoaded","onShouldGetData","showList","json","focusList","debounceTask","oldVal","filtered","search","getClassName","clearInput","cleanUp","handleInput","handleKeyDown","keyCode","preventDefault","selectList","listLength","outOfRangeBottom","outOfRangeTop","bottomItemIndex","nextFocusList","handleDoubleClick","handleBlur","handleFocus","mousemove","clean","deepValue","arrayPath","composeParams","_this3","composeHeader","ajax","_this4","doAjax","_this5","lengthComputable","manualGetData","_this6","__WEBPACK_IMPORTED_MODULE_0__components_vue_autocomplete_vue__","rawScriptExports","compiledTemplate","_h","_withStripped","esExports","Vuelidate","validationMixin","_params","_vval","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","arr2","NIL","buildFromKeys","keyFn","build","getPath","fallback","validationGetters","$invalid","nestedKeys","refProxy","ruleKeys","rule","$dirty","$anyDirty","$error","$pending","$anyError","getRef","$params","vals","validations","setDirtyRecursive","validationMethods","$touch","$reset","$flattenParams","isNested","childParams","getterNames","methodNames","_cachedComponent","getComponent","VBase","oldVval","patchChildren","beforeDestroy","getModel","lazyModel","getModelKey","hasIter","ValidationRule","lazyParentModel","rootModel","runRule","rawOutput","asyncVm","makePendingAsyncVm","rawParams","_this7","arrayDep","_indirectWatcher","_lastModel","Validation","_this8","_this9","keyDefs","getterDefs","methodDefs","iterDefs","$iter","$model","_this10","renderNested","renderRule","GroupValidation","EachValidation","tracker","_this11","trackBy","$trackBy","getModelLazy","_this12","_this13","usedTracks","track","refVals","$v","_cachedVue","validateModel","rootVm","getVue","_getComponent","_vuelidate","_default","Axios","mergeConfig","createInstance","defaultConfig","instanceConfig","CancelToken","isCancel","promises","spread","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","getUri","eject","transformData","throwIfCancellationRequested","throwIfRequested","isAxiosError","description","lineNumber","columnNumber","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","href","protocol","host","port","pathname","requestURL","expires","domain","secure","cookie","toGMTString","executor","resolvePromise","registerImmediate","html","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","handle","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","documentElement","script","attachEvent","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","escapeCDATA","requiresCDATA","wrapCDATA","buildObject","rootObj","rootElement","allowSurrogateChars","XMLDocumentCB","XMLStreamWriter","begin","onData","stringWriter","streamWriter","implementation","writerState","XMLDOMErrorHandler","XMLDOMStringList","defaultParams","getParameter","canSetParameter","setParameter","ContainedBy","onDataCallback","onEndCallback","currentNode","currentLevel","openTags","documentStarted","documentCompleted","createChildNode","openCurrent","oldValidationFlag","rootNodeName","isOpen","isClosed","isLastRootNode","bom","processItem","sax","thing","assignOrPush","processAsync","xmlnskey","saxParser","error1","errThrown","newValue","ontext","resultObject","EXPLICIT_CHARKEY","onopentag","processedKey","uri","onclosetag","emptyStr","objClone","xpath","charChild","oncdata","stripBOM","opt","SAXParser","SAXStream","createStream","MAX_BUFFER_LENGTH","buffers","clearBuffers","bufferCheckPosition","lowercasetags","looseCase","tags","closed","closedRoot","sawRoot","noscript","BEGIN","strictEntities","ENTITIES","XML_ENTITIES","attribList","rootNS","trackPosition","EVENTS","F","BEGIN_WHITESPACE","beginWhiteSpace","TEXT","starti","textNode","strictFail","TEXT_ENTITY","OPEN_WAKA","startTagPosition","SCRIPT","SCRIPT_ENDING","CLOSE_TAG","SGML_DECL","sgmlDecl","isMatch","nameStart","OPEN_TAG","PROC_INST","procInstName","procInstBody","emitNode","CDATA","COMMENT","DOCTYPE","isQuote","SGML_DECL_QUOTED","DOCTYPE_DTD","DOCTYPE_QUOTED","DOCTYPE_DTD_QUOTED","COMMENT_ENDING","COMMENT_ENDED","textopts","CDATA_ENDING","CDATA_ENDING_2","PROC_INST_ENDING","PROC_INST_BODY","nameBody","newTag","openTag","OPEN_TAG_SLASH","ATTRIB","closeTag","attribName","attribValue","ATTRIB_NAME","ATTRIB_VALUE","attrib","ATTRIB_NAME_SAW_WHITE","ATTRIB_VALUE_QUOTED","ATTRIB_VALUE_UNQUOTED","ATTRIB_VALUE_ENTITY_Q","ATTRIB_VALUE_CLOSED","isAttribEnd","ATTRIB_VALUE_ENTITY_U","CLOSE_TAG_SAW_WHITE","notMatch","returnState","parseEntity","entityBody","entityStart","maxAllowed","maxActual","closeText","checkBufferLength","streamWraps","_parser","_decoder","SD","XML_NAMESPACE","xml","stringFromCharCode","fromCodePoint","STATE","COMMENT_STARTING","qname","qualName","qn","selfClosing","nv","isSelfClosing","closeTo","entityLC","numStr","highSurrogate","lowSurrogate","MAX_SIZE","codeUnits","Constructor","_classCallCheck","localStorage","QR","png","vector","fn_noop","BITMAP_OPTIONS","parse_url","ec_level","margin","customize","VECTOR_OPTIONS","get_options","force_type","svg_object","bitmap","imageSync","svgObject","calculateEC","_deepCopy","EC_LEVELS","getTemplate","data1","data_len","data10","data27","fillTemplate","template","ec","ec_len","num_template","pushBits","ALPHANUM","encode_numeric","encode_alphanum","slash","path_res","encode_url","encode_8bit","EXP_TABLE","LOG_TABLE","POLYNOMIALS","generatorPolynomial","log_k","N","zeros","fillFinders","fillAlignAndTiming","delta","fillStub","MASK_FUNCTIONS","fillReserved","FORMATS","fillData","mask_fn","put","calculatePenalty","I","J","numDark","bestMask","cell","zlib","crc32","PNG_HEAD","PNG_IHDR","PNG_IDAT","PNG_IEND","X","IHDR","IDAT","deflateSync","kRangeErrorMessage","Z_MIN_WINDOWBITS","Z_MAX_WINDOWBITS","Z_DEFAULT_WINDOWBITS","Z_MIN_CHUNK","Z_MAX_CHUNK","Z_DEFAULT_CHUNK","Z_MIN_MEMLEVEL","Z_MAX_MEMLEVEL","Z_DEFAULT_MEMLEVEL","Z_MIN_LEVEL","Z_MAX_LEVEL","Z_DEFAULT_LEVEL","Z_DEFAULT_COMPRESSION","bkeys","bk","bkey","codes","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_VERSION_ERROR","ckeys","ck","ckey","zlibBuffer","engine","nread","zlibBufferSync","flushFlag","_finishFlushFlag","_processChunk","Deflate","Zlib","DEFLATE","Inflate","INFLATE","Gzip","GZIP","Gunzip","GUNZIP","DeflateRaw","DEFLATERAW","InflateRaw","INFLATERAW","Unzip","UNZIP","isValidFlushFlag","flag","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","_opts","_chunkSize","finishFlush","_flushFlag","windowBits","memLevel","strategy","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","dictionary","_handle","_hadError","errno","_close","_buffer","_level","_strategy","emitCloseNT","createDeflate","createInflate","createDeflateRaw","createInflateRaw","createGzip","createGunzip","createUnzip","deflate","gzip","gzipSync","deflateRaw","deflateRawSync","unzip","unzipSync","inflate","inflateSync","gunzip","gunzipSync","inflateRaw","inflateRawSync","availInBefore","availOutBefore","inOff","writeSync","availInAfter","availOutAfter","have","newReq","Zstream","zlib_deflate","zlib_inflate","constants","NONE","init_done","write_in_progress","pending_close","gzip_id_bytes_read","deflateEnd","strm","inflateEnd","in_off","in_len","out_off","out_len","avail_in","next_in","avail_out","next_out","_process","_checkError","_afterSync","_after","next_expected_header_byte","inflateSetDictionary","_error","_setDictionary","_reset","deflateInit2","Z_DEFLATED","inflateInit2","deflateSetDictionary","deflateReset","inflateReset","letters","lacksProperEnumerationOrder","preventExtensions","thrower","assignHasPendingExceptions","callBound","$push","$propIsEnumerable","originalGetSymbols","source1","getSymbols","syms","nextKey","propValue","origKeys","keysShim","originalKeys","shim","isEnumerable","propertyIsEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","symObj","descriptor","callBind","$indexOf","EvalError","ReferenceError","URIError","origSymbol","hasSymbolSham","ERROR_MESSAGE","concatty","slicy","arrLike","joiny","joiner","bound","binder","boundLength","boundArgs","Empty","$hasOwn","setFunctionLength","$apply","$call","$reflectApply","$max","originalFunction","applyBind","define","hasDescriptors","gOPD","$floor","loose","functionLengthIsConfigurable","functionLengthIsWritable","gopd","nonEnumerable","nonWritable","nonConfigurable","hasPropertyDescriptors","hasArrayLengthDefineBug","total_in","total_out","data_type","configuration_table","trees","adler32","errorCode","rank","flush_pending","pending_buf","pending_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","MIN_MATCH","last_lit","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","MAX_BITS","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","_tr_init","max_block_size","max_start","deflateInit","deflateSetHeader","old_flush","beg","hcrc","extra","os","header","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","avail","tmpDict","dictLength","deflateInfo","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","D_CODES","_dist_code","_length_code","MAX_MATCH","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","bi_reverse","gen_codes","next_code","init_block","LITERALS","END_BLOCK","bi_windup","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lc","lx","build_tree","stree","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","stored_len","copy_block","LENGTH_CODES","L_CODES","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","BL_CODES","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","inflate_fast","inflate_table","zswap32","InflateState","havedict","dmax","wbits","wsize","whave","wnext","hold","lencode","distcode","lenbits","distbits","ncode","nlen","ndist","work","lendyn","distdyn","sane","back","was","inflateResetKeep","inflateReset2","lenfix","distfix","virgin","fixedtables","updatewindow","inflateInit","_in","_out","from_source","here_bits","here_op","here_val","last_bits","last_op","last_val","here","hbuf","order","inf_leave","xflags","extra_len","inflateGetHeader","inflateInfo","s_window","lcode","dcode","lmask","dmask","op","dolen","dodist","lbase","lext","dbase","dext","lens_index","table_index","incr","curr","drop","used","huff","base_index","MAXBITS","offs","extra_index","Z_TREES","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_BINARY","Z_TEXT","Z_UNKNOWN","arch","crc_table","b0","b1","b2","b3","matrix2path","filled","isDark","plot","row0","col0","pushSVGPath","subpath","XY","eps","pdf","xref","webpackPolyfill","paths","webpackContext","webpackContextResolve","BUILD","vuelidate","_common","nibbles","nibbleValid","nibble","hexValid","hex","equalTo","eq","validators","sameVval","vval","createVm","Vm","addVvals","vvals","removeVvals","patchVval","updateVval","elmToMove","oldStartVval","oldEndVval","newStartVval","newEndVval","commonjsGlobal","commonjsRequire","createCommonjsModule","vueMoment","moment$$1","$moment","arguments$1","addends","addend","subtrahends","_obj","subtrahend","removeSuffix","referenceTime","float","_referenceTime","tz","_len3","_key3","durationChange","_duration","vueMoment_1","encodeReserveRE","encodeReserveReplacer","commaRE","castQueryParamValue","parseQuery","stringifyQuery","val2","trailingSlashRE","createRoute","record","redirectedFrom","router","route","meta","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","bKeys","aVal","bVal","handleRouteEntered","instances","enteredCbs","i$1","View","routerView","$route","_routerViewCache","inactive","_routerRoot","vnodeData","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","registerRouteInstance","propsToPass","resolveProps","resolvePath","relative","firstChar","segment","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","tokensToFunction","tokensToFunction_1","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","modifier","asterisk","repeat","optional","escapeGroup","escapeString","encodeURIComponentPretty","attachKeys","sensitive","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","compile","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","params$1","rawPath","parsedPath","hashIndex","queryIndex","basePath","extraQuery","_parseQuery","parsedQuery","resolveQuery","Link","exactPath","exactActiveClass","ariaCurrentValue","this$1$1","$router","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","queryIncludes","isIncludedRoute","guardEvent","click","scopedSlot","navigate","isActive","isExactActive","findAnchor","aData","handler$1","event$1","aAttrs","metaKey","ctrlKey","shiftKey","defaultPrevented","button","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","compileRouteRegex","redirect","childMatchAs","aliasRoute","createMatcher","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","aliasedMatch","aliasedRecord","addRoute","parentOrRoute","getRoutes","addRoutes","Time","genStateKey","getStateKey","setStateKey","positionStore","setupScroll","history","scrollRestoration","protocolAndPath","absolutePath","stateCopy","handlePopState","handleScroll","isPop","app","behavior","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","pageXOffset","pageYOffset","isValidPosition","normalizePosition","hashStartsWithNumberRE","selector","docRect","elRect","getElementPosition","scrollTo","ua","supportsPushState","pushState","NavigationFailureType","redirected","aborted","duplicated","createNavigationRedirectedError","createRouterError","propertiesToLog","createNavigationCancelledError","_isRouter","isNavigationFailure","errorType","runQueue","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","flatten","History","baseEl","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","extractGuards","records","guards","guard","extractGuard","bindGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","lastRouteIndex","lastCurrentIndex","activated","deactivated","resolveQueue","extractLeaveGuards","beforeHooks","extractUpdateHooks","createNavigationAbortedError","bindEnterGuard","extractEnterGuards","resolveHooks","setupListeners","cleanupListener","HTML5History","_startLocation","getLocation","expectScroll","supportsScroll","handleRoutingEvent","go","fromRoute","getCurrentLocation","pathLowerCase","baseLowerCase","HashHistory","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","routeOrError","handleInitialScroll","_route","beforeEach","registerHook","beforeResolve","afterEach","forward","getMatchedComponents","createHref","normalizedTo","VueRouter$1","installed","registerInstance","callVal","_router","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","START_LOCATION","setLanguage","i18n","translations","baseLocaleLoaded","setTranslation","setBrand","payloadLocale","splitPayload","setTranslationForKey","Vuex","langKeysSearching","$$selectedVal","alphaNum","email","isValidDate","startOfWeek","setDate","setHours","startOfWeekYear","_ref","_ref$firstDayOfWeek","_ref$firstWeekContain","firstWeekContainsDate","firstDateOfFirstWeek","getWeek","_ref2","_ref2$firstDayOfWeek","_ref2$firstWeekContai","firstDateOfThisWeek","REGEX_FORMAT","getOffset","formatTimezone","delimeter","absOffset","isLowercase","formatFlags","YY","YYYY","MMM","MMMM","DD","HH","SS","SSS","ddd","dddd","A","Z","ZZ","ww","formatStr","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","parseFlags","addParseFlag","escapeStringRegExp","matchWordRegExp","localeKey","matchWordCallback","to24hour","getFullInputArray","backupDate","backupArr","useBackup","makeParser","dateString","mark","parseTo","_extends","_objectSpread2","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","_extends$1","cent","defaultIsPM","_ref9","normalMerge","toArrayMerge","functionalMerge","mergeFn","isValidRangeDate","getValidDate","backup","startOfYear","startOfMonth","startOfDay","dirtyDate","dirtyMonth","setYear","dirtyYear","assignTime","pick","formatLocale","yearFormat","monthFormat","monthBeforeYear","defaultLocale","getScrollParent","until","getPropertyValue","scroll","isFunctionalTemplate","createInjector","createInjectorSSR","createInjectorShadow","scrollBarWidth","__vue_component__","prefixClass","visible","appendToBody","displayPopup","_clickoutEvent","handleClickOutside","isRunning","relativeElement","_displayPopup","_scrollParent","evt","popup","_popupRect","originalVisibility","visibility","offsetWidth","marginLeft","marginRight","marginTop","marginBottom","getPopupElementSize","_this$_popupRect","_getRelativePosition","targetWidth","targetHeight","offsetX","offsetY","relativeRect","dw","clientWidth","dh","clientHeight","getRelativePosition","__vue_component__$1","__vue_component__$2","__vue_component__$3","__vue_component__$4","disabled","__vue_component__$5","isDisabledArrows","handleIconDoubleLeftClick","handleIconLeftClick","handleIconDoubleRightClick","handleIconRightClick","yearMonth","panel","handlePanelChange","showWeekNumber","handleCellClick","getRowClasses","getWeekNumber","getCellClasses","getCellTitle","handleMouseEnter","handleMouseLeave","IconButton","onDateMouseEnter","onDateMouseLeave","disabledCalendarChanger","titleFormat","_this$getLocale","_this$getLocale$month","yearLabel","formatDate","monthLabel","lastDayInLastMonth","firstDayInLastMonth","lastDayInCurrentMonth","nextMonthLength","_i2","getCalendar","_index$split$map2","fmt","__vue_component__$6","calendarYear","handleClick","__vue_component__$7","firstYear","lastYear","getYearPanel","getYears","CalendarPanel","dispatchDatePicker","defaultPanel","disabledDate","getClasses","partialUpdate","panels","innerCalendar","innerValue","calendarMonth","initCalendar","calendarDate","isDisabled","emitDate","handleCalendarChange","oldCalendar","handelPanelChange","oldPanel","handleSelectYear","getYearCellDate","_date","handleSelectMonth","getMonthCellDate","_date2","handleSelectDate","getDateClasses","cellDate","notCurrentMonth","getStateClass","getMonthClasses","_cellDate","getYearClasses","_cellDate2","getWeekState","CalendarRange","calendars","hoveredValue","calendarMinDiff","calendarMaxDiff","defaultValues","updateCalendars","handleSelect","_this$innerValue","startValue","endValue","updateStartCalendar","updateEndCalendar","adjustIndex","gap","getCalendarGap","_calendars","calendarLeft","calendarRight","getRangeClasses","currentDates","classnames","inRange","range","_range$map","_range$map2","calendarRange","$props","select","__vue_component__$8","scrollbarWidth","thumbHeight","thumbTop","handleDragstart","outer","inner","getScrollbarWidth","handleDragend","getThumbSize","heightPercentage","scrollHeight","scrollTop","_draggable","offsetTop","thumb","_prevY","clientY","handleDraging","padNumber","generateOptions","difference","tick","__vue_component__$9","columns","ScrollbarVertical","scrollDuration","hourOptions","minuteOptions","secondOptions","showHour","showMinute","showSecond","hourStep","minuteStep","secondStep","use12h","getHoursList","getMinutesList","getSecondsList","getAMPMList","scrollToSelected","setMinutes","setSeconds","querySelectorAll","scrollElement","colIndex","cellIndex","parseOption","__vue_component__$a","startMinutes","endMinutes","stepMinutes","timeMinutes","scrollTo$1","__vue_component__$b","showTimeHeader","handleClickTitle","timePickerOptions","innerForamt","ShowHourMinuteSecondAMPM","ListColumns","ListOptions","timeTitleFormat","disabledTime","defaultProps","isDisabledTime","isDisabledHour","isDisabledMinute","isDisabledAMPM","minHour","maxHour","TimeRange","_this$value","emitChange","handleSelectStart","handleSelectEnd","disabledStartTime","disabledEndTime","DatetimePanel","emits","showTimePanel","defaultTimeVisible","currentValue","timeVisible","closeTimePanel","openTimePanel","datetime","calendarProps","timeProps","clicktitle","DatetimeRange","datetimes","componentMap","componentRangeMap","DatePicker","valueType","rangeSeparator","editable","clearable","inputClass","inputAttr","popupClass","popupStyle","inline","confirm","confirmText","renderInputText","shortcuts","onClick","userInput","defaultOpen","mouseInInput","popupVisible","innerRangeSeparator","innerFormat","validMultipleType","value2date","isValidValue","showClearIcon","mergeDeep","handleClickOutSide","closePopup","getFormatter","parseDate","_options$locale","_options$backupDate","parseResult","parsedDate","inputArray","firstDate","date2value","emitValue","isValidValueAndNotDisabled","handleMultipleDates","nextDates","handleClear","stopPropagation","handleConfirmDate","handleSelectShortcut","openPopup","blur","focus","handleInputChange","handleInputInput","handleInputKeydown","handleInputBlur","handleInputFocus","hasSlot","slotFn","renderInput","autocomplete","readonly","keydown","calendarIcon","renderContent","renderSidebar","renderHeader","renderFooter","_class","sidedar","TimePanel","lastOtherCompany","otherCompany","isOnlineStore","promotionFoundInUrl","promotionUrl","autocompletePlaceholder","company","computedPromotionUrl","articleListOrDealerChanged","beforeDateExclude","dNow","accountnaam","otherCompanyData","clearAC","companies","otherCompanyDataSelected","getProductsForOrder","article","articlenumber","productId","batchNumber","sapMaterial","serialnumber","sapBatch","batches","articlelist","$$a","$$el","$$c","$$i","$$v","dateIsInFuture","dateTooOld","promotions","promotionIndex","isImageFile","filename","isPdfFile","formatInput","vField","handleFieldFileUpload","vfield","files","resetPhoto","getBlobUrl","uploadedFile","getPromotionInfoText","promotionfieldvalues","$each","labelKey_PromotionText","v_field","label_info","label_name","mandatory","inputType","checkCheckboxValue","IBAN","StepPromotionFields","promotionDtos","GetPromotionDescriptionText","promotion","typeNumbers","PromotionIsFromDealer","typenummersPlaceholder","labelKey_IntroText","Html5QrcodeSupportedFormats","toReadableModelNumber","modelNumber","toReadableArticleNumber","articleNumber","hideImage","imageRight","checkDuplicates","checkForDuplicates","setBodyClass","disableDuplicateCheck","serialnumberRequired","productGroupCode","altImageUrl","reformatArticleNumber","articleHelper","reformatModelNumber","deleteArticle","clickAddDuplicate","clickRemoveDuplicate","bool","batch","requiredIf","validSerialnumber","products","selectedBatch","productNotFound","Device","productsAdded","DecodedTextType","Html5QrcodeScanType","html5QrcodeSupportedFormatsTextMap","MAXICODE","isValidHtml5QrcodeSupportedFormats","Html5QrcodeErrorTypes","Html5QrcodeConstants","GITHUB_PROJECT_URL","SCAN_DEFAULT_FPS","DEFAULT_DISABLE_FLIP","DEFAULT_REMEMBER_LAST_CAMERA_USED","DEFAULT_SUPPORTED_SCAN_TYPE","SCAN_TYPE_CAMERA","SCAN_TYPE_FILE","QrcodeResultFormat","formatName","Html5QrcodeResultFactory","createFromText","decodedText","createFromQrcodeResult","qrcodeResult","Html5QrcodeErrorFactory","createFrom","errorMessage","UNKWOWN_ERROR","BaseLoggger","isExperimental","logErrors","Html5QrcodeScannerState","Html5QrcodeStrings","codeParseError","errorGettingUserMedia","onlyDeviceSupportedError","cameraStreamingNotSupported","unableToQuerySupportedDevices","insecureContextCameraQueryError","scannerPaused","Html5QrcodeScannerStrings","scanningStatus","idleStatus","errorStatus","permissionStatus","noCameraFoundErrorStatus","lastMatch","codeScannerTitle","cameraPermissionTitle","cameraPermissionRequesting","noCameraFound","scanButtonStopScanningText","scanButtonStartScanningText","torchOnButton","torchOffButton","torchOnFailedMessage","torchOffFailedMessage","scanButtonScanningStarting","textIfCameraScanSelected","textIfFileScanSelected","selectCamera","fileSelectionChooseImage","fileSelectionChooseAnother","fileSelectionNoImageSelected","anonymousCameraPrefix","dragAndDropMessage","dragAndDropMessageOnlyImages","zoom","loadingImage","cameraScanAltText","fileScanAltText","LibraryInfoStrings","poweredBy","reportIssues","VideoConstraintsUtil","isMediaStreamConstraintsValid","typeofVideoConstraints","bannedkeysSet","keysInVideoConstraints_1","ZXingHtml5QrcodeDecoder","requestedFormats","formatMap","reverseFormatMap","createReverseFormatMap","createZXingFormats","decodeAsync","zxingDecoder","toHtml5QrcodeSupportedFormats","debugData","createDebugData","zxingFormat","zxingFormats","requestedFormats_1","requestedFormat","decoderName","__generator","sent","trys","ops","verb","BarcodeDetectorDelegate","createBarcodeDetectorFormats","BarcodeDetector","barcodes","largestBarcode","selectLargestBarcode","rawValue","maxArea","barcodes_1","barcode","barcodeDetectorFormat","Html5QrcodeShim","useBarCodeDetectorIfSupported","EXECUTIONS_TO_REPORT_PERFORMANCE","executions","executionResults","wasPrimaryDecoderUsedInLastDecode","primaryDecoder","secondaryDecoder","startTime","getDecoder","possiblyLogPerformance","decodeRobustlyAsync","error_1","executionTime","possiblyFlushPerformanceReport","mean","AbstractCameraCapability","getCapabilities","constraint","advanced","applyConstraints","settings","getSettings","ZoomFeatureImpl","AbstractRangeCameraCapability","failIfNotSupported","capability","TorchFeatureImpl","CameraCapabilitiesImpl","zoomFeature","torchFeature","RenderedCameraImpl","parentElement","mediaStream","surface","createVideoElement","muted","playsInline","setupSurface","onVideoStart","onRenderSurfaceReady","renderedCamera","aspectRatioConstraint","aspectRatio","getFirstTrackOrFail","failIfClosed","onResumeCallback","$this","onVideoResume","getSurface","getRunningTrackCapabilities","getRunningTrackSettings","applyVideoConstraints","tracksToClose","tracksClosed","videoTrack","removeTrack","CameraImpl","audio","CameraFactory","CameraRetriever","retrieve","getCamerasFromMediaDevices","mst","MediaStreamTrack","getSources","getCamerasFromMediaStreamTrack","rejectWithError","isHttpsOrLocalhost","closeActiveStreams","devices_1","tracks_1","enabled","sourceInfos","sourceInfos_1","sourceInfo","Html5QrcodeScannerStatus","StateManagerImpl","NOT_STARTED","onGoingTransactionNewState","UNKNOWN","directTransition","failIfTransitionOngoing","validateTransition","startTransition","execute","tempNewState","getState","failIfNewStateIs","PAUSED","SCANNING","disallowedStatesToTransition","disallowedStatesToTransition_1","StateManagerProxy","stateManager","canScanFile","isScanning","isStrictlyScanning","StateManagerFactory","Constants","DEFAULT_WIDTH","DEFAULT_WIDTH_OFFSET","FILE_SCAN_MIN_HEIGHT","FILE_SCAN_HIDDEN_CANVAS_PADDING","MIN_QR_BOX_SIZE","SHADED_LEFT","SHADED_RIGHT","SHADED_TOP","SHADED_BOTTOM","SHADED_REGION_ELEMENT_ID","VERBOSE","BORDER_SHADER_DEFAULT_COLOR","BORDER_SHADER_MATCH_COLOR","InternalHtml5QrcodeConfig","fps","disableFlip","qrbox","isShadedBoxEnabled","Html5Qrcode","configOrVerbosityFlag","scannerPausedUiElement","hasBorderShaders","borderShaders","qrMatch","qrRegion","lastScanImageFile","configObject","experimentalFeatures","qrcode","getSupportedFormats","getUseBarCodeDetectorIfSupported","foreverScanTimeout","shouldScan","stateManagerProxy","cameraIdOrConfig","configuration","qrCodeSuccessCallback","qrCodeErrorCallback","qrCodeErrorCallbackInternal","internalConfig","clearElement","videoConstraintsAvailableAndValid","areVideoConstraintsEnabled","toScanningStateChangeTransaction","createVideoConstraints","cameraRenderingOptions","renderingCallbacks","viewfinderWidth","viewfinderHeight","setupUi","foreverScan","camera","shouldPauseVideo","showPausedState","transitionToScanning","hidePausedState","toStoppedStateTransaction","childElement","removeQrRegion","scanFile","imageFile","showImage","scanFileV2","html5qrcodeResult","File","possiblyCloseLastScanImageFile","inputImage","Image","onload","imageWidth","imageHeight","containerWidth","containerHeight","computeCanvasDrawConfig","visibleCanvas","createCanvasElement","context_1","padding","hiddenImageWidth","hiddenImageHeight","hiddenCanvasWidth","hiddenCanvasHeight","hiddenCanvas","onstalled","onsuspend","getCameras","getRenderedCameraOrFail","getRunningTrackCameraCapabilities","videoConstaints","allFormats","formatsToSupport","supportedFormats","validateQrboxSize","qrboxSize","validateQrboxConfig","configWidth","qrDimensions","toQrdimensions","validateMinSize","shouldShadingBeApplied","defaultQrRegion","getShadedRegionBounds","willReadFrequently","possiblyInsertShadingElement","createScannerPausedUiElement","innerText","zIndex","background","textAlign","scanContext","possiblyUpdateShaders","widthRatio","heightRatio","sWidthOffset","sHeightOffset","sxOffset","syOffset","triggerNextScan","getTimeoutFps","isSuccessfull","finally","allowedFacingModeValues_1","isValidFacingModeValue","formerImageWidth","formerImageHeight","shader","backgroundColor","revokeObjectURL","customId","canvasWidth","canvasHeight","shadingElement","rightLeftBorderSize","topBottomBorderSize","borderLeft","borderRight","borderTop","borderBottom","boxSizing","insertShaderBorders","largeSize","shaderElem","ASSET_INFO_ICON_16PX","SVG_XML_PREFIX","PersistedDataFactory","createDefault","hasPermission","lastUsedCameraId","PersistedDataManager","getItem","LOCAL_STORAGE_KEY","hasCameraPermissions","getLastUsedCameraId","setHasPermission","setLastUsedCameraId","resetLastUsedCameraId","setItem","LibraryInfoDiv","infoDiv","renderInto","border","fontSize","borderRadius","fontWeight","projectLink","breakElemFirst","breakElemSecond","reportIssueLink","hide","LibraryInfoIcon","onTapIn","onTapOut","isShowingInfoIcon","infoIcon","alt","opacity","cursor","onmouseover","onHoverIn","onmouseout","onHoverOut","onclick","LibraryInfoContainer","CameraPermissions","hasPermissions","ScanTypeSelector","supportedScanTypes","validateAndReturnScanTypes","getDefaultScanType","hasMoreThanOneScanType","isCameraScanRequired","scanType","isCameraScanType","isFileScanType","maxExpectedValues","supportedScanTypes_1","PublicUiElementIdAndClasses","ALL_ELEMENT_CLASS","CAMERA_PERMISSION_BUTTON_ID","CAMERA_START_BUTTON_ID","CAMERA_STOP_BUTTON_ID","TORCH_BUTTON_ID","CAMERA_SELECTION_SELECT_ID","FILE_SELECTION_BUTTON_ID","ZOOM_SLIDER_ID","SCAN_TYPE_CHANGE_ANCHOR_ID","TORCH_BUTTON_CLASS_TORCH_ON","TORCH_BUTTON_CLASS_TORCH_OFF","BaseUiElementFactory","elementType","TorchController","torchCapability","buttonController","onTorchActionFailureCallback","isTorchOn","isTorchEnabled","flipState","isTorchOnExpected","disable","updateUiBasedOnLatestSettings","propagateFailure","enable","setText","TorchButton","torchButton","torchController","torchButtonOptions","updateTorchCapability","getTorchButton","FileSelectionUi","showOnRender","onFileSelected","fileBasedScanRegion","createFileBasedScanRegion","fileScanLabel","getFileScanInputId","fileSelectionButton","setInitialValueToButton","fileScanInput","accept","file","setImageNameToButton","createDragAndDropMessage","fileBasedScanRegionActiveBorder","fileBasedScanRegionDefaultBorder","dataTransfer","isAnyFileImage","isShowing","resetValue","imageFileName","start8Chars","length_1","last8Chars","newText","initialText","CameraSelectionUi","cameras","selectElement","cameraSelectionContainer","numCameras","selectCameraString","anonymousCameraId","hasValue","hasSingleItem","cameraSelectUi","CameraZoomUi","onChangeCallback","zoomElementContainer","rangeInput","rangeText","renderOnCreate","outline","zoomString","onValueChange","setValues","minValue","setOnCameraZoomValueChangeCallback","removeOnCameraZoomValueChangeCallback","cameraZoomUi","Html5QrcodeScanner","lastMatchFound","cameraScanImage","fileScanImage","fileSelectionUi","createConfig","scanTypeSelector","currentScanType","sectionSwapAllowed","persistedDataManager","rememberLastUsedCamera","setHeaderMessage","STATUS_SUCCESS","container","createBasicLayout","html5Qrcode","getScanRegionId","getHtml5QrcodeOrFail","emptyHtmlContainer","mainContainer","resetBasicLayout","createHeader","qrCodeScanRegion","scanRegionId","minHeight","insertCameraScanImageToScanRegion","insertFileScanImageToScanRegion","qrCodeDashboard","dashboardId","getDashboardId","setupInitialDashboard","dashboard","createSection","createSectionControlPanel","createSectionSwap","headerMessageContainer","getHeaderMessageContainerId","section","getDashboardSectionId","createCameraListUi","scpCameraScanRegion","requestPermissionContainer","requestPermissionButton","showHideScanTypeSwapLink","createPermissionButtonIfNotExists","createPermissionButton","resetHeaderMessage","renderCameraSelection","STATUS_WARNING","getCameraPermissionButtonId","createPermissionsUi","sectionControlPanel","getDashboardSectionCameraScanRegionId","renderFileScanUi","cameraActionContainer","cameraActionStartButton","cameraActionStopButton","resetCameraActionStartButton","shouldShow","cameraId","cameraCapabilities","showTorchButtonIfSupported","createAndShowTorchButtonIfSupported","showZoomSliderIfSupported","zoomCapability","zoomValue","defaultZoom","defaultZoomValueIfSupported","renderCameraZoomUiIfSupported","TEXT_IF_CAMERA_SCAN_SELECTED","TEXT_IF_FILE_SCAN_SELECTED","switchContainer","switchScanTypeLink","getDashboardSectionSwapLinkId","textDecoration","clearScanRegion","getCameraScanRegion","startCameraScanIfPermissionExistsOnSwap","permissionButton","messageText","scannerStatus","STATUS_DEFAULT","messageDiv","getHeaderMessageDiv","shouldDisplay","getDashboardSectionSwapLink","isLoading","categories","selectedCategory","qrScanner","showQrScanner","qrImageString","cameraList","selectedCamera","qrScannerLock","qr","getArticle","fetchedCategories","categorie","productGroup","onScanSuccess","splitArray","sapNumber","serialNumber","destroyQRScanner","openQRScanner","decodedResult","changeQRcamera","setArticleNumber","getPromotionUrlParam","shouldShowScanner","showAddDevice","category","promotionUrlParam","linkDisclaimerNL","linkDisclaimerBE","linkDisclaimerFR","FormField","getAddress","getCompanyInformation","getSexe","getInstallDate","getLinkDisclaimer","displayFieldValue","getPromotionByField","promotionField","promotionId","typenumber","wizard","promotionFields","IsPromotionSelected","terms","validationTerms","newsletter","showCookies","hasInsertedCookies","getBrandname","toggleCookieOverview","toggle","cookieBotScript","getContactUrl","getPrivacyStatementUrl","firstStep","alignbuttons","subtitle","getTitle","labelKey_IntroTitle","getSubtitle","returnTitle","hasbadge","linkReview","linkWebsite","link","linkReviewNL","linkReviewBE","linkReviewFR","linkWebsiteNL","linkWebsiteBE","linkWebsiteFR","FootNote","LinkButtons","orderAmount","getLinkReview","getLinkWebsite","getPromotionText","labelKey_ThankYouText","getDistinctPromotions","uniqueIds","uniquePromotions","hasNonUrlPromotions","getPromotionTextWithPromotion","getPromotionTitleWithPromotion","labelKey_ThankYouTitle","yearAmount1","yearAmount2","Balloons","isSubmitting","loaded","currentStep","customercommercialapproved","surveyapproved","cadeauartikel","promotionLoading","IntroPageAsko","IntroPageAtag","IntroPageEtna","IntroPageHisense","IntroPagePelgrim","ResultPageAsko","ResultPageAtag","ResultPageEtna","ResultPageHisense","ResultPagePelgrim","ResultPageTitle","SetLanguage","StepPersonalInfoNL","StepPersonalInfoBE","StepPurchaseLocation","StepPromotionReminder","StepAddDevices","StepDevices","StepConfirm","WizardFooter","WizardSteps","WizardTitle","WizardButtonsWrapper","hasCulture","typenumbers","hideAddDeviceButton","goToStep","pag","validate","pushDatalayer","navigateToPage","scrollToTop","handleDataLayer","goToPurchaseStep","scrollIntoView","goToPromotionFieldsStep","startWizard","eventName","eventDataValue","Cookiebot","consent","marketing","dataLayer","sendForm","formData","toResultPage","promotionsToSend","secondIndex","isLastPromotion","sendPromotion","registrationId","promotionDto","isLast","getPromotionFieldsForPromotion","promotionFormData","fieldValue","articleArray","articleTypenumber","setCulture","checkForResultPageRedirect","fieldList","getArticleTypeNumbersList","getTypeNumbersByPromotion","articleTypeNumbers","matchedTypeNumbers","promotionTypenumber","typeNumber","splitPromotionsByArtilce","rawPromotions","newPromotions","rawPromotion","clonedPromotion","setPromotionDtosWithTypenumberAndDealer","fields","labelKey_FieldName","labelKey_InfoButton","checkIBANWithChecksum","iban","rearrangedIBAN","replacedIBAN","char","isSet","fieldModel","thisObj","$i18n","i18nVuexModule","SET_LOCALE","ADD_LOCALE","flattenTranslations","existingTranslations","REPLACE_LOCALE","REMOVE_LOCALE","translationCopy","SET_FALLBACK_LOCALE","setLocale","addLocale","replaceLocale","removeLocale","setFallbackLocale","toReturn","objType","flatObject","languageCode","VuexI18nPlugin","identifiers","warnings","translateFilterName","translateInFilterName","onTranslationNotFound","$getLanguage","$setLanguage","renderFn","translateInLanguage","pluralization","localeRegional","translationExists","asyncTranslation","additionalTranslations","translateInLanguageFilter","checkKeyExists","getLocales","phaseOutExistsFn","checkLocaleExists","localeExists","keyExists","translateIn","exists","$t","$tlang","translation","replacements","pluralizationType","resolvePlaceholders","isArray$1","resolvedTranslation","pluralizations","Autocomplete","vuexI18n","optionalVariable","defaultFallback","dealername","dealers","dealer","elGarantiekaart","garantiekaart"],"mappings":"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EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAChCuuB,WAAWvuB,KAAK,CAAC,EAAG,EAAG,EAAG,EA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AS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,KAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,KAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MAAS,MACnG,IAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,MAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,MAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,MAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OACnG,OAAS,OAAS,SAKtBmiF,GAAaQ,eAAiBp0D,WAAWvuB,KAAK,CAC1C,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC3G,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAC5G,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAC5G,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAC5G,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAC7G,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAC1G,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IACzG,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAC5G,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,KAAM,IAC3G,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,IAAK,IACzG,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KACzG,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IACzG,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAC1G,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK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M,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAC7G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAC5G,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,KAC1G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KACxG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAC5G,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACxG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KACxG,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAC7G,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAC3G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IACzG,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,IAC3G,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAC1G,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAC3G,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,KACxG,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC3G,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KACzG,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,IACzG,KAAM,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAC5G,IAAK,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,KAC3G,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KACxG,IAAK,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IACxG,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAC5G,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KACxG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,KAC1G,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAC5G,KAAM,KAAM,IAAK,KAAM,KAAM,GAAI,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,GACzG,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,KAAM,GAAI,GAAI,GAAI,KAAM,GAAI,KAC5G,KAAM,KAAM,KAAM,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,EAC9G,KAAM,EAAG,KAAM,KAAM,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAC7G,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IACzG,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAC5G,IAAK,KAAM,IAAK,KAAM,KAAM,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAC1G,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KACvG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACvG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC3G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,KAC1G,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,IAC5G,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,IAC3G,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAC5G,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAC1G,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAC1G,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAC1G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IACxG,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,IAC5G,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KACzG,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,IAAK,IAC5G,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAC5G,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,KAC5G,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,GAAI,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,KAAM,GAAI,KAC1G,GAAI,KAAM,KAAM,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,IAAK,IAAK,IACzG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,IAC3G,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAC5G,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KAC1G,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,IAC7G,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IACzG,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KACzG,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC1G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC5G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAC1G,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAC3G,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACzG,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KACxG,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KACzG,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IA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Cd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,gBAAiB,IACjB,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW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","file":"build.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 324);\n","//! moment.js\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks () {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback (callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n } else {\n var k;\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\n meridiem : null,\n rfc2822 : false,\n weekdayMismatch : false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [];\n var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n var matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n function monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n function monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n function createDate (y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate (y) {\n var date;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n var args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays (ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays :\n this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone'];\n return (m === true) ? shiftWeekdays(weekdays, this._week.dow)\n : (m) ? weekdays[m.day()] : weekdays;\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n function weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n function weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n function weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n else {\n if ((typeof console !== 'undefined') && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, expectedWeekday, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n var curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n var obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10);\n var m = hm % 100, h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i));\n if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +(new Date());\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n var isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween (from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff (input, units, asFloat) {\n var that,\n zoneDelta,\n output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true;\n var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000;\n var MS_PER_MINUTE = 60 * MS_PER_SECOND;\n var MS_PER_HOUR = 60 * MS_PER_MINUTE;\n var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate () {\n return new Date(this.valueOf());\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2 () {\n return isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix (input) {\n return createLocal(input * 1000);\n }\n\n function createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\n var mathAbs = Math.abs;\n\n function abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month': return months;\n case 'quarter': return months / 3;\n case 'year': return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asQuarters = makeAs('Q');\n var asYears = makeAs('y');\n\n function clone$1 () {\n return createDuration(this);\n }\n\n function get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44, // a few seconds to seconds\n s : 45, // seconds to minute\n m : 45, // minutes to hour\n h : 22, // hours to day\n d : 26, // days to month\n M : 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return ((x > 0) - (x < 0)) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n hooks.version = '2.24.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM' // \n };\n\n return hooks;\n\n})));\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ZXing = {}));\n}(this, (function (exports) { 'use strict';\n\n function isNullOrUndefined(obj) {\n return obj === null || obj === undefined;\n }\n\n /*\n * Copyright 2008 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /* global Reflect, Promise */\n\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n\n function __extends(d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n }\n\n function fixProto(target, prototype) {\n var setPrototypeOf = Object.setPrototypeOf;\n setPrototypeOf ? setPrototypeOf(target, prototype) : (target.__proto__ = prototype);\n }\n\n function fixStack(target, fn) {\n if (fn === void 0) {\n fn = target.constructor;\n }\n var captureStackTrace = Error.captureStackTrace;\n captureStackTrace && captureStackTrace(target, fn);\n }\n\n var CustomError = (function (_super) {\n __extends(CustomError, _super);\n function CustomError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n Object.defineProperty(_this, 'name', {\n value: _newTarget.name,\n enumerable: false\n });\n fixProto(_this, _newTarget.prototype);\n fixStack(_this);\n return _this;\n }\n \n return CustomError;\n })(Error);\n\n /**\n * Custom Error class of type Exception.\n */\n class Exception extends CustomError {\n /**\n * Allows Exception to be constructed directly\n * with some message and prototype definition.\n */\n constructor(message = undefined) {\n super(message);\n this.message = message;\n }\n getKind() {\n const ex = this.constructor;\n return ex.kind;\n }\n }\n /**\n * It's typed as string so it can be extended and overriden.\n */\n Exception.kind = 'Exception';\n\n /**\n * Custom Error class of type Exception.\n */\n class ArgumentException extends Exception {\n }\n ArgumentException.kind = 'ArgumentException';\n\n /**\n * Custom Error class of type Exception.\n */\n class IllegalArgumentException extends Exception {\n }\n IllegalArgumentException.kind = 'IllegalArgumentException';\n\n /*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n class BinaryBitmap {\n constructor(binarizer) {\n this.binarizer = binarizer;\n if (binarizer === null) {\n throw new IllegalArgumentException('Binarizer must be non-null.');\n }\n }\n /**\n * @return The width of the bitmap.\n */\n getWidth() {\n return this.binarizer.getWidth();\n }\n /**\n * @return The height of the bitmap.\n */\n getHeight() {\n return this.binarizer.getHeight();\n }\n /**\n * Converts one row of luminance data to 1 bit data. May actually do the conversion, or return\n * cached data. Callers should assume this method is expensive and call it as seldom as possible.\n * This method is intended for decoding 1D barcodes and may choose to apply sharpening.\n *\n * @param y The row to fetch, which must be in [0, bitmap height)\n * @param row An optional preallocated array. If null or too small, it will be ignored.\n * If used, the Binarizer will call BitArray.clear(). Always use the returned object.\n * @return The array of bits for this row (true means black).\n * @throws NotFoundException if row can't be binarized\n */\n getBlackRow(y /*int*/, row) {\n return this.binarizer.getBlackRow(y, row);\n }\n /**\n * Converts a 2D array of luminance data to 1 bit. As above, assume this method is expensive\n * and do not call it repeatedly. This method is intended for decoding 2D barcodes and may or\n * may not apply sharpening. Therefore, a row from this matrix may not be identical to one\n * fetched using getBlackRow(), so don't mix and match between them.\n *\n * @return The 2D array of bits for the image (true means black).\n * @throws NotFoundException if image can't be binarized to make a matrix\n */\n getBlackMatrix() {\n // The matrix is created on demand the first time it is requested, then cached. There are two\n // reasons for this:\n // 1. This work will never be done if the caller only installs 1D Reader objects, or if a\n // 1D Reader finds a barcode before the 2D Readers run.\n // 2. This work will only be done once even if the caller installs multiple 2D Readers.\n if (this.matrix === null || this.matrix === undefined) {\n this.matrix = this.binarizer.getBlackMatrix();\n }\n return this.matrix;\n }\n /**\n * @return Whether this bitmap can be cropped.\n */\n isCropSupported() {\n return this.binarizer.getLuminanceSource().isCropSupported();\n }\n /**\n * Returns a new object with cropped image data. Implementations may keep a reference to the\n * original data rather than a copy. Only callable if isCropSupported() is true.\n *\n * @param left The left coordinate, which must be in [0,getWidth())\n * @param top The top coordinate, which must be in [0,getHeight())\n * @param width The width of the rectangle to crop.\n * @param height The height of the rectangle to crop.\n * @return A cropped version of this object.\n */\n crop(left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n const newSource = this.binarizer.getLuminanceSource().crop(left, top, width, height);\n return new BinaryBitmap(this.binarizer.createBinarizer(newSource));\n }\n /**\n * @return Whether this bitmap supports counter-clockwise rotation.\n */\n isRotateSupported() {\n return this.binarizer.getLuminanceSource().isRotateSupported();\n }\n /**\n * Returns a new object with rotated image data by 90 degrees counterclockwise.\n * Only callable if {@link #isRotateSupported()} is true.\n *\n * @return A rotated version of this object.\n */\n rotateCounterClockwise() {\n const newSource = this.binarizer.getLuminanceSource().rotateCounterClockwise();\n return new BinaryBitmap(this.binarizer.createBinarizer(newSource));\n }\n /**\n * Returns a new object with rotated image data by 45 degrees counterclockwise.\n * Only callable if {@link #isRotateSupported()} is true.\n *\n * @return A rotated version of this object.\n */\n rotateCounterClockwise45() {\n const newSource = this.binarizer.getLuminanceSource().rotateCounterClockwise45();\n return new BinaryBitmap(this.binarizer.createBinarizer(newSource));\n }\n /*@Override*/\n toString() {\n try {\n return this.getBlackMatrix().toString();\n }\n catch (e /*: NotFoundException*/) {\n return '';\n }\n }\n }\n\n /**\n * Custom Error class of type Exception.\n */\n class ChecksumException extends Exception {\n static getChecksumInstance() {\n return new ChecksumException();\n }\n }\n ChecksumException.kind = 'ChecksumException';\n\n /*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * This class hierarchy provides a set of methods to convert luminance data to 1 bit data.\n * It allows the algorithm to vary polymorphically, for example allowing a very expensive\n * thresholding technique for servers and a fast one for mobile. It also permits the implementation\n * to vary, e.g. a JNI version for Android and a Java fallback version for other platforms.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\n class Binarizer {\n constructor(source) {\n this.source = source;\n }\n getLuminanceSource() {\n return this.source;\n }\n getWidth() {\n return this.source.getWidth();\n }\n getHeight() {\n return this.source.getHeight();\n }\n }\n\n class System {\n // public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)\n /**\n * Makes a copy of a array.\n */\n static arraycopy(src, srcPos, dest, destPos, length) {\n // TODO: better use split or set?\n while (length--) {\n dest[destPos++] = src[srcPos++];\n }\n }\n /**\n * Returns the current time in milliseconds.\n */\n static currentTimeMillis() {\n return Date.now();\n }\n }\n\n /**\n * Custom Error class of type Exception.\n */\n class IndexOutOfBoundsException extends Exception {\n }\n IndexOutOfBoundsException.kind = 'IndexOutOfBoundsException';\n\n /**\n * Custom Error class of type Exception.\n */\n class ArrayIndexOutOfBoundsException extends IndexOutOfBoundsException {\n constructor(index = undefined, message = undefined) {\n super(message);\n this.index = index;\n this.message = message;\n }\n }\n ArrayIndexOutOfBoundsException.kind = 'ArrayIndexOutOfBoundsException';\n\n class Arrays {\n /**\n * Assigns the specified int value to each element of the specified array\n * of ints.\n *\n * @param a the array to be filled\n * @param val the value to be stored in all elements of the array\n */\n static fill(a, val) {\n for (let i = 0, len = a.length; i < len; i++)\n a[i] = val;\n }\n /**\n * Assigns the specified int value to each element of the specified\n * range of the specified array of ints. The range to be filled\n * extends from index {@code fromIndex}, inclusive, to index\n * {@code toIndex}, exclusive. (If {@code fromIndex==toIndex}, the\n * range to be filled is empty.)\n *\n * @param a the array to be filled\n * @param fromIndex the index of the first element (inclusive) to be\n * filled with the specified value\n * @param toIndex the index of the last element (exclusive) to be\n * filled with the specified value\n * @param val the value to be stored in all elements of the array\n * @throws IllegalArgumentException if {@code fromIndex > toIndex}\n * @throws ArrayIndexOutOfBoundsException if {@code fromIndex < 0} or\n * {@code toIndex > a.length}\n */\n static fillWithin(a, fromIndex, toIndex, val) {\n Arrays.rangeCheck(a.length, fromIndex, toIndex);\n for (let i = fromIndex; i < toIndex; i++)\n a[i] = val;\n }\n /**\n * Checks that {@code fromIndex} and {@code toIndex} are in\n * the range and throws an exception if they aren't.\n */\n static rangeCheck(arrayLength, fromIndex, toIndex) {\n if (fromIndex > toIndex) {\n throw new IllegalArgumentException('fromIndex(' + fromIndex + ') > toIndex(' + toIndex + ')');\n }\n if (fromIndex < 0) {\n throw new ArrayIndexOutOfBoundsException(fromIndex);\n }\n if (toIndex > arrayLength) {\n throw new ArrayIndexOutOfBoundsException(toIndex);\n }\n }\n static asList(...args) {\n return args;\n }\n static create(rows, cols, value) {\n let arr = Array.from({ length: rows });\n return arr.map(x => Array.from({ length: cols }).fill(value));\n }\n static createInt32Array(rows, cols, value) {\n let arr = Array.from({ length: rows });\n return arr.map(x => Int32Array.from({ length: cols }).fill(value));\n }\n static equals(first, second) {\n if (!first) {\n return false;\n }\n if (!second) {\n return false;\n }\n if (!first.length) {\n return false;\n }\n if (!second.length) {\n return false;\n }\n if (first.length !== second.length) {\n return false;\n }\n for (let i = 0, length = first.length; i < length; i++) {\n if (first[i] !== second[i]) {\n return false;\n }\n }\n return true;\n }\n static hashCode(a) {\n if (a === null) {\n return 0;\n }\n let result = 1;\n for (const element of a) {\n result = 31 * result + element;\n }\n return result;\n }\n static fillUint8Array(a, value) {\n for (let i = 0; i !== a.length; i++) {\n a[i] = value;\n }\n }\n static copyOf(original, newLength) {\n return original.slice(0, newLength);\n }\n static copyOfUint8Array(original, newLength) {\n if (original.length <= newLength) {\n const newArray = new Uint8Array(newLength);\n newArray.set(original);\n return newArray;\n }\n return original.slice(0, newLength);\n }\n static copyOfRange(original, from, to) {\n const newLength = to - from;\n const copy = new Int32Array(newLength);\n System.arraycopy(original, from, copy, 0, newLength);\n return copy;\n }\n /*\n * Returns the index of of the element in a sorted array or (-n-1) where n is the insertion point\n * for the new element.\n * Parameters:\n * ar - A sorted array\n * el - An element to search for\n * comparator - A comparator function. The function takes two arguments: (a, b) and returns:\n * a negative number if a is less than b;\n * 0 if a is equal to b;\n * a positive number of a is greater than b.\n * The array may contain duplicate elements. If there are more than one equal elements in the array,\n * the returned value can be the index of any one of the equal elements.\n *\n * http://jsfiddle.net/aryzhov/pkfst550/\n */\n static binarySearch(ar, el, comparator) {\n if (undefined === comparator) {\n comparator = Arrays.numberComparator;\n }\n let m = 0;\n let n = ar.length - 1;\n while (m <= n) {\n const k = (n + m) >> 1;\n const cmp = comparator(el, ar[k]);\n if (cmp > 0) {\n m = k + 1;\n }\n else if (cmp < 0) {\n n = k - 1;\n }\n else {\n return k;\n }\n }\n return -m - 1;\n }\n static numberComparator(a, b) {\n return a - b;\n }\n }\n\n /**\n * Ponyfill for Java's Integer class.\n */\n class Integer {\n static numberOfTrailingZeros(i) {\n let y;\n if (i === 0)\n return 32;\n let n = 31;\n y = i << 16;\n if (y !== 0) {\n n -= 16;\n i = y;\n }\n y = i << 8;\n if (y !== 0) {\n n -= 8;\n i = y;\n }\n y = i << 4;\n if (y !== 0) {\n n -= 4;\n i = y;\n }\n y = i << 2;\n if (y !== 0) {\n n -= 2;\n i = y;\n }\n return n - ((i << 1) >>> 31);\n }\n static numberOfLeadingZeros(i) {\n // HD, Figure 5-6\n if (i === 0) {\n return 32;\n }\n let n = 1;\n if (i >>> 16 === 0) {\n n += 16;\n i <<= 16;\n }\n if (i >>> 24 === 0) {\n n += 8;\n i <<= 8;\n }\n if (i >>> 28 === 0) {\n n += 4;\n i <<= 4;\n }\n if (i >>> 30 === 0) {\n n += 2;\n i <<= 2;\n }\n n -= i >>> 31;\n return n;\n }\n static toHexString(i) {\n return i.toString(16);\n }\n static toBinaryString(intNumber) {\n return String(parseInt(String(intNumber), 2));\n }\n // Returns the number of one-bits in the two's complement binary representation of the specified int value. This function is sometimes referred to as the population count.\n // Returns:\n // the number of one-bits in the two's complement binary representation of the specified int value.\n static bitCount(i) {\n // HD, Figure 5-2\n i = i - ((i >>> 1) & 0x55555555);\n i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);\n i = (i + (i >>> 4)) & 0x0f0f0f0f;\n i = i + (i >>> 8);\n i = i + (i >>> 16);\n return i & 0x3f;\n }\n static truncDivision(dividend, divisor) {\n return Math.trunc(dividend / divisor);\n }\n /**\n * Converts A string to an integer.\n * @param s A string to convert into a number.\n * @param radix A value between 2 and 36 that specifies the base of the number in numString. If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal. All other strings are considered decimal.\n */\n static parseInt(num, radix = undefined) {\n return parseInt(num, radix);\n }\n }\n Integer.MIN_VALUE_32_BITS = -2147483648;\n Integer.MAX_VALUE = Number.MAX_SAFE_INTEGER;\n\n /**\n *
A simple, fast array of bits, represented compactly by an array of ints internally.
\n *\n * @author Sean Owen\n */\n class BitArray /*implements Cloneable*/ {\n // For testing only\n constructor(size /*int*/, bits) {\n if (undefined === size) {\n this.size = 0;\n this.bits = new Int32Array(1);\n }\n else {\n this.size = size;\n if (undefined === bits || null === bits) {\n this.bits = BitArray.makeArray(size);\n }\n else {\n this.bits = bits;\n }\n }\n }\n getSize() {\n return this.size;\n }\n getSizeInBytes() {\n return Math.floor((this.size + 7) / 8);\n }\n ensureCapacity(size /*int*/) {\n if (size > this.bits.length * 32) {\n const newBits = BitArray.makeArray(size);\n System.arraycopy(this.bits, 0, newBits, 0, this.bits.length);\n this.bits = newBits;\n }\n }\n /**\n * @param i bit to get\n * @return true iff bit i is set\n */\n get(i /*int*/) {\n return (this.bits[Math.floor(i / 32)] & (1 << (i & 0x1F))) !== 0;\n }\n /**\n * Sets bit i.\n *\n * @param i bit to set\n */\n set(i /*int*/) {\n this.bits[Math.floor(i / 32)] |= 1 << (i & 0x1F);\n }\n /**\n * Flips bit i.\n *\n * @param i bit to set\n */\n flip(i /*int*/) {\n this.bits[Math.floor(i / 32)] ^= 1 << (i & 0x1F);\n }\n /**\n * @param from first bit to check\n * @return index of first bit that is set, starting from the given index, or size if none are set\n * at or beyond this given index\n * @see #getNextUnset(int)\n */\n getNextSet(from /*int*/) {\n const size = this.size;\n if (from >= size) {\n return size;\n }\n const bits = this.bits;\n let bitsOffset = Math.floor(from / 32);\n let currentBits = bits[bitsOffset];\n // mask off lesser bits first\n currentBits &= ~((1 << (from & 0x1F)) - 1);\n const length = bits.length;\n while (currentBits === 0) {\n if (++bitsOffset === length) {\n return size;\n }\n currentBits = bits[bitsOffset];\n }\n const result = (bitsOffset * 32) + Integer.numberOfTrailingZeros(currentBits);\n return result > size ? size : result;\n }\n /**\n * @param from index to start looking for unset bit\n * @return index of next unset bit, or {@code size} if none are unset until the end\n * @see #getNextSet(int)\n */\n getNextUnset(from /*int*/) {\n const size = this.size;\n if (from >= size) {\n return size;\n }\n const bits = this.bits;\n let bitsOffset = Math.floor(from / 32);\n let currentBits = ~bits[bitsOffset];\n // mask off lesser bits first\n currentBits &= ~((1 << (from & 0x1F)) - 1);\n const length = bits.length;\n while (currentBits === 0) {\n if (++bitsOffset === length) {\n return size;\n }\n currentBits = ~bits[bitsOffset];\n }\n const result = (bitsOffset * 32) + Integer.numberOfTrailingZeros(currentBits);\n return result > size ? size : result;\n }\n /**\n * Sets a block of 32 bits, starting at bit i.\n *\n * @param i first bit to set\n * @param newBits the new value of the next 32 bits. Note again that the least-significant bit\n * corresponds to bit i, the next-least-significant to i+1, and so on.\n */\n setBulk(i /*int*/, newBits /*int*/) {\n this.bits[Math.floor(i / 32)] = newBits;\n }\n /**\n * Sets a range of bits.\n *\n * @param start start of range, inclusive.\n * @param end end of range, exclusive\n */\n setRange(start /*int*/, end /*int*/) {\n if (end < start || start < 0 || end > this.size) {\n throw new IllegalArgumentException();\n }\n if (end === start) {\n return;\n }\n end--; // will be easier to treat this as the last actually set bit -- inclusive\n const firstInt = Math.floor(start / 32);\n const lastInt = Math.floor(end / 32);\n const bits = this.bits;\n for (let i = firstInt; i <= lastInt; i++) {\n const firstBit = i > firstInt ? 0 : start & 0x1F;\n const lastBit = i < lastInt ? 31 : end & 0x1F;\n // Ones from firstBit to lastBit, inclusive\n const mask = (2 << lastBit) - (1 << firstBit);\n bits[i] |= mask;\n }\n }\n /**\n * Clears all bits (sets to false).\n */\n clear() {\n const max = this.bits.length;\n const bits = this.bits;\n for (let i = 0; i < max; i++) {\n bits[i] = 0;\n }\n }\n /**\n * Efficient method to check if a range of bits is set, or not set.\n *\n * @param start start of range, inclusive.\n * @param end end of range, exclusive\n * @param value if true, checks that bits in range are set, otherwise checks that they are not set\n * \n * @return true iff all bits are set or not set in range, according to value argument\n * @throws IllegalArgumentException if end is less than start or the range is not contained in the array\n */\n isRange(start /*int*/, end /*int*/, value) {\n if (end < start || start < 0 || end > this.size) {\n throw new IllegalArgumentException();\n }\n if (end === start) {\n return true; // empty range matches\n }\n end--; // will be easier to treat this as the last actually set bit -- inclusive\n const firstInt = Math.floor(start / 32);\n const lastInt = Math.floor(end / 32);\n const bits = this.bits;\n for (let i = firstInt; i <= lastInt; i++) {\n const firstBit = i > firstInt ? 0 : start & 0x1F;\n const lastBit = i < lastInt ? 31 : end & 0x1F;\n // Ones from firstBit to lastBit, inclusive\n const mask = (2 << lastBit) - (1 << firstBit) & 0xFFFFFFFF;\n // TYPESCRIPTPORT: & 0xFFFFFFFF added to discard anything after 32 bits, as ES has 53 bits\n // Return false if we're looking for 1s and the masked bits[i] isn't all 1s (is: that,\n // equals the mask, or we're looking for 0s and the masked portion is not all 0s\n if ((bits[i] & mask) !== (value ? mask : 0)) {\n return false;\n }\n }\n return true;\n }\n appendBit(bit) {\n this.ensureCapacity(this.size + 1);\n if (bit) {\n this.bits[Math.floor(this.size / 32)] |= 1 << (this.size & 0x1F);\n }\n this.size++;\n }\n /**\n * Appends the least-significant bits, from value, in order from most-significant to\n * least-significant. For example, appending 6 bits from 0x000001E will append the bits\n * 0, 1, 1, 1, 1, 0 in that order.\n *\n * @param value {@code int} containing bits to append\n * @param numBits bits from value to append\n */\n appendBits(value /*int*/, numBits /*int*/) {\n if (numBits < 0 || numBits > 32) {\n throw new IllegalArgumentException('Num bits must be between 0 and 32');\n }\n this.ensureCapacity(this.size + numBits);\n // const appendBit = this.appendBit;\n for (let numBitsLeft = numBits; numBitsLeft > 0; numBitsLeft--) {\n this.appendBit(((value >> (numBitsLeft - 1)) & 0x01) === 1);\n }\n }\n appendBitArray(other) {\n const otherSize = other.size;\n this.ensureCapacity(this.size + otherSize);\n // const appendBit = this.appendBit;\n for (let i = 0; i < otherSize; i++) {\n this.appendBit(other.get(i));\n }\n }\n xor(other) {\n if (this.size !== other.size) {\n throw new IllegalArgumentException('Sizes don\\'t match');\n }\n const bits = this.bits;\n for (let i = 0, length = bits.length; i < length; i++) {\n // The last int could be incomplete (i.e. not have 32 bits in\n // it) but there is no problem since 0 XOR 0 == 0.\n bits[i] ^= other.bits[i];\n }\n }\n /**\n *\n * @param bitOffset first bit to start writing\n * @param array array to write into. Bytes are written most-significant byte first. This is the opposite\n * of the internal representation, which is exposed by {@link #getBitArray()}\n * @param offset position in array to start writing\n * @param numBytes how many bytes to write\n */\n toBytes(bitOffset /*int*/, array, offset /*int*/, numBytes /*int*/) {\n for (let i = 0; i < numBytes; i++) {\n let theByte = 0;\n for (let j = 0; j < 8; j++) {\n if (this.get(bitOffset)) {\n theByte |= 1 << (7 - j);\n }\n bitOffset++;\n }\n array[offset + i] = /*(byte)*/ theByte;\n }\n }\n /**\n * @return underlying array of ints. The first element holds the first 32 bits, and the least\n * significant bit is bit 0.\n */\n getBitArray() {\n return this.bits;\n }\n /**\n * Reverses all bits in the array.\n */\n reverse() {\n const newBits = new Int32Array(this.bits.length);\n // reverse all int's first\n const len = Math.floor((this.size - 1) / 32);\n const oldBitsLen = len + 1;\n const bits = this.bits;\n for (let i = 0; i < oldBitsLen; i++) {\n let x = bits[i];\n x = ((x >> 1) & 0x55555555) | ((x & 0x55555555) << 1);\n x = ((x >> 2) & 0x33333333) | ((x & 0x33333333) << 2);\n x = ((x >> 4) & 0x0f0f0f0f) | ((x & 0x0f0f0f0f) << 4);\n x = ((x >> 8) & 0x00ff00ff) | ((x & 0x00ff00ff) << 8);\n x = ((x >> 16) & 0x0000ffff) | ((x & 0x0000ffff) << 16);\n newBits[len - i] = /*(int)*/ x;\n }\n // now correct the int's if the bit size isn't a multiple of 32\n if (this.size !== oldBitsLen * 32) {\n const leftOffset = oldBitsLen * 32 - this.size;\n let currentInt = newBits[0] >>> leftOffset;\n for (let i = 1; i < oldBitsLen; i++) {\n const nextInt = newBits[i];\n currentInt |= nextInt << (32 - leftOffset);\n newBits[i - 1] = currentInt;\n currentInt = nextInt >>> leftOffset;\n }\n newBits[oldBitsLen - 1] = currentInt;\n }\n this.bits = newBits;\n }\n static makeArray(size /*int*/) {\n return new Int32Array(Math.floor((size + 31) / 32));\n }\n /*@Override*/\n equals(o) {\n if (!(o instanceof BitArray)) {\n return false;\n }\n const other = o;\n return this.size === other.size && Arrays.equals(this.bits, other.bits);\n }\n /*@Override*/\n hashCode() {\n return 31 * this.size + Arrays.hashCode(this.bits);\n }\n /*@Override*/\n toString() {\n let result = '';\n for (let i = 0, size = this.size; i < size; i++) {\n if ((i & 0x07) === 0) {\n result += ' ';\n }\n result += this.get(i) ? 'X' : '.';\n }\n return result;\n }\n /*@Override*/\n clone() {\n return new BitArray(this.size, this.bits.slice());\n }\n }\n\n /*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /*namespace com.google.zxing {*/\n /**\n * Encapsulates a type of hint that a caller may pass to a barcode reader to help it\n * more quickly or accurately decode it. It is up to implementations to decide what,\n * if anything, to do with the information that is supplied.\n *\n * @author Sean Owen\n * @author dswitkin@google.com (Daniel Switkin)\n * @see Reader#decode(BinaryBitmap,java.util.Map)\n */\n var DecodeHintType;\n (function (DecodeHintType) {\n /**\n * Unspecified, application-specific hint. Maps to an unspecified {@link Object}.\n */\n DecodeHintType[DecodeHintType[\"OTHER\"] = 0] = \"OTHER\"; /*(Object.class)*/\n /**\n * Image is a pure monochrome image of a barcode. Doesn't matter what it maps to;\n * use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"PURE_BARCODE\"] = 1] = \"PURE_BARCODE\"; /*(Void.class)*/\n /**\n * Image is known to be of one of a few possible formats.\n * Maps to a {@link List} of {@link BarcodeFormat}s.\n */\n DecodeHintType[DecodeHintType[\"POSSIBLE_FORMATS\"] = 2] = \"POSSIBLE_FORMATS\"; /*(List.class)*/\n /**\n * Spend more time to try to find a barcode; optimize for accuracy, not speed.\n * Doesn't matter what it maps to; use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"TRY_HARDER\"] = 3] = \"TRY_HARDER\"; /*(Void.class)*/\n /**\n * Specifies what character encoding to use when decoding, where applicable (type String)\n */\n DecodeHintType[DecodeHintType[\"CHARACTER_SET\"] = 4] = \"CHARACTER_SET\"; /*(String.class)*/\n /**\n * Allowed lengths of encoded data -- reject anything else. Maps to an {@code Int32Array}.\n */\n DecodeHintType[DecodeHintType[\"ALLOWED_LENGTHS\"] = 5] = \"ALLOWED_LENGTHS\"; /*(Int32Array.class)*/\n /**\n * Assume Code 39 codes employ a check digit. Doesn't matter what it maps to;\n * use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"ASSUME_CODE_39_CHECK_DIGIT\"] = 6] = \"ASSUME_CODE_39_CHECK_DIGIT\"; /*(Void.class)*/\n /**\n * Assume the barcode is being processed as a GS1 barcode, and modify behavior as needed.\n * For example this affects FNC1 handling for Code 128 (aka GS1-128). Doesn't matter what it maps to;\n * use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"ASSUME_GS1\"] = 7] = \"ASSUME_GS1\"; /*(Void.class)*/\n /**\n * If true, return the start and end digits in a Codabar barcode instead of stripping them. They\n * are alpha, whereas the rest are numeric. By default, they are stripped, but this causes them\n * to not be. Doesn't matter what it maps to; use {@link Boolean#TRUE}.\n */\n DecodeHintType[DecodeHintType[\"RETURN_CODABAR_START_END\"] = 8] = \"RETURN_CODABAR_START_END\"; /*(Void.class)*/\n /**\n * The caller needs to be notified via callback when a possible {@link ResultPoint}\n * is found. Maps to a {@link ResultPointCallback}.\n */\n DecodeHintType[DecodeHintType[\"NEED_RESULT_POINT_CALLBACK\"] = 9] = \"NEED_RESULT_POINT_CALLBACK\"; /*(ResultPointCallback.class)*/\n /**\n * Allowed extension lengths for EAN or UPC barcodes. Other formats will ignore this.\n * Maps to an {@code Int32Array} of the allowed extension lengths, for example [2], [5], or [2, 5].\n * If it is optional to have an extension, do not set this hint. If this is set,\n * and a UPC or EAN barcode is found but an extension is not, then no result will be returned\n * at all.\n */\n DecodeHintType[DecodeHintType[\"ALLOWED_EAN_EXTENSIONS\"] = 10] = \"ALLOWED_EAN_EXTENSIONS\"; /*(Int32Array.class)*/\n // End of enumeration values.\n /**\n * Data type the hint is expecting.\n * Among the possible values the {@link Void} stands out as being used for\n * hints that do not expect a value to be supplied (flag hints). Such hints\n * will possibly have their value ignored, or replaced by a\n * {@link Boolean#TRUE}. Hint suppliers should probably use\n * {@link Boolean#TRUE} as directed by the actual hint documentation.\n */\n // private valueType: Class>\n // DecodeHintType(valueType: Class>) {\n // this.valueType = valueType\n // }\n // public getValueType(): Class> {\n // return valueType\n // }\n })(DecodeHintType || (DecodeHintType = {}));\n var DecodeHintType$1 = DecodeHintType;\n\n /**\n * Custom Error class of type Exception.\n */\n class FormatException extends Exception {\n static getFormatInstance() {\n return new FormatException();\n }\n }\n FormatException.kind = 'FormatException';\n\n /*import java.util.HashMap;*/\n /*import java.util.Map;*/\n var CharacterSetValueIdentifiers;\n (function (CharacterSetValueIdentifiers) {\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp437\"] = 0] = \"Cp437\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_1\"] = 1] = \"ISO8859_1\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_2\"] = 2] = \"ISO8859_2\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_3\"] = 3] = \"ISO8859_3\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_4\"] = 4] = \"ISO8859_4\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_5\"] = 5] = \"ISO8859_5\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_6\"] = 6] = \"ISO8859_6\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_7\"] = 7] = \"ISO8859_7\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_8\"] = 8] = \"ISO8859_8\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_9\"] = 9] = \"ISO8859_9\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_10\"] = 10] = \"ISO8859_10\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_11\"] = 11] = \"ISO8859_11\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_13\"] = 12] = \"ISO8859_13\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_14\"] = 13] = \"ISO8859_14\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_15\"] = 14] = \"ISO8859_15\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_16\"] = 15] = \"ISO8859_16\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"SJIS\"] = 16] = \"SJIS\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1250\"] = 17] = \"Cp1250\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1251\"] = 18] = \"Cp1251\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1252\"] = 19] = \"Cp1252\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1256\"] = 20] = \"Cp1256\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"UnicodeBigUnmarked\"] = 21] = \"UnicodeBigUnmarked\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"UTF8\"] = 22] = \"UTF8\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ASCII\"] = 23] = \"ASCII\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Big5\"] = 24] = \"Big5\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"GB18030\"] = 25] = \"GB18030\";\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"EUC_KR\"] = 26] = \"EUC_KR\";\n })(CharacterSetValueIdentifiers || (CharacterSetValueIdentifiers = {}));\n /**\n * Encapsulates a Character Set ECI, according to \"Extended Channel Interpretations\" 5.3.1.1\n * of ISO 18004.\n *\n * @author Sean Owen\n */\n class CharacterSetECI {\n constructor(valueIdentifier, valuesParam, name, ...otherEncodingNames) {\n this.valueIdentifier = valueIdentifier;\n this.name = name;\n if (typeof valuesParam === 'number') {\n this.values = Int32Array.from([valuesParam]);\n }\n else {\n this.values = valuesParam;\n }\n this.otherEncodingNames = otherEncodingNames;\n CharacterSetECI.VALUE_IDENTIFIER_TO_ECI.set(valueIdentifier, this);\n CharacterSetECI.NAME_TO_ECI.set(name, this);\n const values = this.values;\n for (let i = 0, length = values.length; i !== length; i++) {\n const v = values[i];\n CharacterSetECI.VALUES_TO_ECI.set(v, this);\n }\n for (const otherName of otherEncodingNames) {\n CharacterSetECI.NAME_TO_ECI.set(otherName, this);\n }\n }\n // CharacterSetECI(value: number /*int*/) {\n // this(new Int32Array {value})\n // }\n // CharacterSetECI(value: number /*int*/, String... otherEncodingNames) {\n // this.values = new Int32Array {value}\n // this.otherEncodingNames = otherEncodingNames\n // }\n // CharacterSetECI(values: Int32Array, String... otherEncodingNames) {\n // this.values = values\n // this.otherEncodingNames = otherEncodingNames\n // }\n getValueIdentifier() {\n return this.valueIdentifier;\n }\n getName() {\n return this.name;\n }\n getValue() {\n return this.values[0];\n }\n /**\n * @param value character set ECI value\n * @return {@code CharacterSetECI} representing ECI of given value, or null if it is legal but\n * unsupported\n * @throws FormatException if ECI value is invalid\n */\n static getCharacterSetECIByValue(value /*int*/) {\n if (value < 0 || value >= 900) {\n throw new FormatException('incorect value');\n }\n const characterSet = CharacterSetECI.VALUES_TO_ECI.get(value);\n if (undefined === characterSet) {\n throw new FormatException('incorect value');\n }\n return characterSet;\n }\n /**\n * @param name character set ECI encoding name\n * @return CharacterSetECI representing ECI for character encoding, or null if it is legal\n * but unsupported\n */\n static getCharacterSetECIByName(name) {\n const characterSet = CharacterSetECI.NAME_TO_ECI.get(name);\n if (undefined === characterSet) {\n throw new FormatException('incorect value');\n }\n return characterSet;\n }\n equals(o) {\n if (!(o instanceof CharacterSetECI)) {\n return false;\n }\n const other = o;\n return this.getName() === other.getName();\n }\n }\n CharacterSetECI.VALUE_IDENTIFIER_TO_ECI = new Map();\n CharacterSetECI.VALUES_TO_ECI = new Map();\n CharacterSetECI.NAME_TO_ECI = new Map();\n // Enum name is a Java encoding valid for java.lang and java.io\n // TYPESCRIPTPORT: changed the main label for ISO as the TextEncoder did not recognized them in the form from java\n // (eg ISO8859_1 must be ISO88591 or ISO8859-1 or ISO-8859-1)\n // later on: well, except 16 wich does not work with ISO885916 so used ISO-8859-1 form for default\n CharacterSetECI.Cp437 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp437, Int32Array.from([0, 2]), 'Cp437');\n CharacterSetECI.ISO8859_1 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_1, Int32Array.from([1, 3]), 'ISO-8859-1', 'ISO88591', 'ISO8859_1');\n CharacterSetECI.ISO8859_2 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_2, 4, 'ISO-8859-2', 'ISO88592', 'ISO8859_2');\n CharacterSetECI.ISO8859_3 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_3, 5, 'ISO-8859-3', 'ISO88593', 'ISO8859_3');\n CharacterSetECI.ISO8859_4 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_4, 6, 'ISO-8859-4', 'ISO88594', 'ISO8859_4');\n CharacterSetECI.ISO8859_5 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_5, 7, 'ISO-8859-5', 'ISO88595', 'ISO8859_5');\n CharacterSetECI.ISO8859_6 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_6, 8, 'ISO-8859-6', 'ISO88596', 'ISO8859_6');\n CharacterSetECI.ISO8859_7 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_7, 9, 'ISO-8859-7', 'ISO88597', 'ISO8859_7');\n CharacterSetECI.ISO8859_8 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_8, 10, 'ISO-8859-8', 'ISO88598', 'ISO8859_8');\n CharacterSetECI.ISO8859_9 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_9, 11, 'ISO-8859-9', 'ISO88599', 'ISO8859_9');\n CharacterSetECI.ISO8859_10 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_10, 12, 'ISO-8859-10', 'ISO885910', 'ISO8859_10');\n CharacterSetECI.ISO8859_11 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_11, 13, 'ISO-8859-11', 'ISO885911', 'ISO8859_11');\n CharacterSetECI.ISO8859_13 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_13, 15, 'ISO-8859-13', 'ISO885913', 'ISO8859_13');\n CharacterSetECI.ISO8859_14 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_14, 16, 'ISO-8859-14', 'ISO885914', 'ISO8859_14');\n CharacterSetECI.ISO8859_15 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_15, 17, 'ISO-8859-15', 'ISO885915', 'ISO8859_15');\n CharacterSetECI.ISO8859_16 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_16, 18, 'ISO-8859-16', 'ISO885916', 'ISO8859_16');\n CharacterSetECI.SJIS = new CharacterSetECI(CharacterSetValueIdentifiers.SJIS, 20, 'SJIS', 'Shift_JIS');\n CharacterSetECI.Cp1250 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1250, 21, 'Cp1250', 'windows-1250');\n CharacterSetECI.Cp1251 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1251, 22, 'Cp1251', 'windows-1251');\n CharacterSetECI.Cp1252 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1252, 23, 'Cp1252', 'windows-1252');\n CharacterSetECI.Cp1256 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1256, 24, 'Cp1256', 'windows-1256');\n CharacterSetECI.UnicodeBigUnmarked = new CharacterSetECI(CharacterSetValueIdentifiers.UnicodeBigUnmarked, 25, 'UnicodeBigUnmarked', 'UTF-16BE', 'UnicodeBig');\n CharacterSetECI.UTF8 = new CharacterSetECI(CharacterSetValueIdentifiers.UTF8, 26, 'UTF8', 'UTF-8');\n CharacterSetECI.ASCII = new CharacterSetECI(CharacterSetValueIdentifiers.ASCII, Int32Array.from([27, 170]), 'ASCII', 'US-ASCII');\n CharacterSetECI.Big5 = new CharacterSetECI(CharacterSetValueIdentifiers.Big5, 28, 'Big5');\n CharacterSetECI.GB18030 = new CharacterSetECI(CharacterSetValueIdentifiers.GB18030, 29, 'GB18030', 'GB2312', 'EUC_CN', 'GBK');\n CharacterSetECI.EUC_KR = new CharacterSetECI(CharacterSetValueIdentifiers.EUC_KR, 30, 'EUC_KR', 'EUC-KR');\n\n /**\n * Custom Error class of type Exception.\n */\n class UnsupportedOperationException extends Exception {\n }\n UnsupportedOperationException.kind = 'UnsupportedOperationException';\n\n /**\n * Responsible for en/decoding strings.\n */\n class StringEncoding {\n /**\n * Decodes some Uint8Array to a string format.\n */\n static decode(bytes, encoding) {\n const encodingName = this.encodingName(encoding);\n if (this.customDecoder) {\n return this.customDecoder(bytes, encodingName);\n }\n // Increases browser support.\n if (typeof TextDecoder === 'undefined' || this.shouldDecodeOnFallback(encodingName)) {\n return this.decodeFallback(bytes, encodingName);\n }\n return new TextDecoder(encodingName).decode(bytes);\n }\n /**\n * Checks if the decoding method should use the fallback for decoding\n * once Node TextDecoder doesn't support all encoding formats.\n *\n * @param encodingName\n */\n static shouldDecodeOnFallback(encodingName) {\n return !StringEncoding.isBrowser() && encodingName === 'ISO-8859-1';\n }\n /**\n * Encodes some string into a Uint8Array.\n */\n static encode(s, encoding) {\n const encodingName = this.encodingName(encoding);\n if (this.customEncoder) {\n return this.customEncoder(s, encodingName);\n }\n // Increases browser support.\n if (typeof TextEncoder === 'undefined') {\n return this.encodeFallback(s);\n }\n // TextEncoder only encodes to UTF8 by default as specified by encoding.spec.whatwg.org\n return new TextEncoder().encode(s);\n }\n static isBrowser() {\n return (typeof window !== 'undefined' && {}.toString.call(window) === '[object Window]');\n }\n /**\n * Returns the string value from some encoding character set.\n */\n static encodingName(encoding) {\n return typeof encoding === 'string'\n ? encoding\n : encoding.getName();\n }\n /**\n * Returns character set from some encoding character set.\n */\n static encodingCharacterSet(encoding) {\n if (encoding instanceof CharacterSetECI) {\n return encoding;\n }\n return CharacterSetECI.getCharacterSetECIByName(encoding);\n }\n /**\n * Runs a fallback for the native decoding funcion.\n */\n static decodeFallback(bytes, encoding) {\n const characterSet = this.encodingCharacterSet(encoding);\n if (StringEncoding.isDecodeFallbackSupported(characterSet)) {\n let s = '';\n for (let i = 0, length = bytes.length; i < length; i++) {\n let h = bytes[i].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n s += '%' + h;\n }\n return decodeURIComponent(s);\n }\n if (characterSet.equals(CharacterSetECI.UnicodeBigUnmarked)) {\n return String.fromCharCode.apply(null, new Uint16Array(bytes.buffer));\n }\n throw new UnsupportedOperationException(`Encoding ${this.encodingName(encoding)} not supported by fallback.`);\n }\n static isDecodeFallbackSupported(characterSet) {\n return characterSet.equals(CharacterSetECI.UTF8) ||\n characterSet.equals(CharacterSetECI.ISO8859_1) ||\n characterSet.equals(CharacterSetECI.ASCII);\n }\n /**\n * Runs a fallback for the native encoding funcion.\n *\n * @see https://stackoverflow.com/a/17192845/4367683\n */\n static encodeFallback(s) {\n const encodedURIstring = btoa(unescape(encodeURIComponent(s)));\n const charList = encodedURIstring.split('');\n const uintArray = [];\n for (let i = 0; i < charList.length; i++) {\n uintArray.push(charList[i].charCodeAt(0));\n }\n return new Uint8Array(uintArray);\n }\n }\n\n /*\n * Copyright (C) 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * Common string-related functions.\n *\n * @author Sean Owen\n * @author Alex Dupre\n */\n class StringUtils {\n // SHIFT_JIS.equalsIgnoreCase(PLATFORM_DEFAULT_ENCODING) ||\n // EUC_JP.equalsIgnoreCase(PLATFORM_DEFAULT_ENCODING);\n static castAsNonUtf8Char(code, encoding = null) {\n // ISO 8859-1 is the Java default as UTF-8 is JavaScripts\n // you can see this method as a Java version of String.fromCharCode\n const e = encoding ? encoding.getName() : this.ISO88591;\n // use passed format (fromCharCode will return UTF8 encoding)\n return StringEncoding.decode(new Uint8Array([code]), e);\n }\n /**\n * @param bytes bytes encoding a string, whose encoding should be guessed\n * @param hints decode hints if applicable\n * @return name of guessed encoding; at the moment will only guess one of:\n * {@link #SHIFT_JIS}, {@link #UTF8}, {@link #ISO88591}, or the platform\n * default encoding if none of these can possibly be correct\n */\n static guessEncoding(bytes, hints) {\n if (hints !== null && hints !== undefined && undefined !== hints.get(DecodeHintType$1.CHARACTER_SET)) {\n return hints.get(DecodeHintType$1.CHARACTER_SET).toString();\n }\n // For now, merely tries to distinguish ISO-8859-1, UTF-8 and Shift_JIS,\n // which should be by far the most common encodings.\n const length = bytes.length;\n let canBeISO88591 = true;\n let canBeShiftJIS = true;\n let canBeUTF8 = true;\n let utf8BytesLeft = 0;\n // int utf8LowChars = 0\n let utf2BytesChars = 0;\n let utf3BytesChars = 0;\n let utf4BytesChars = 0;\n let sjisBytesLeft = 0;\n // int sjisLowChars = 0\n let sjisKatakanaChars = 0;\n // int sjisDoubleBytesChars = 0\n let sjisCurKatakanaWordLength = 0;\n let sjisCurDoubleBytesWordLength = 0;\n let sjisMaxKatakanaWordLength = 0;\n let sjisMaxDoubleBytesWordLength = 0;\n // int isoLowChars = 0\n // int isoHighChars = 0\n let isoHighOther = 0;\n const utf8bom = bytes.length > 3 &&\n bytes[0] === /*(byte) */ 0xEF &&\n bytes[1] === /*(byte) */ 0xBB &&\n bytes[2] === /*(byte) */ 0xBF;\n for (let i = 0; i < length && (canBeISO88591 || canBeShiftJIS || canBeUTF8); i++) {\n const value = bytes[i] & 0xFF;\n // UTF-8 stuff\n if (canBeUTF8) {\n if (utf8BytesLeft > 0) {\n if ((value & 0x80) === 0) {\n canBeUTF8 = false;\n }\n else {\n utf8BytesLeft--;\n }\n }\n else if ((value & 0x80) !== 0) {\n if ((value & 0x40) === 0) {\n canBeUTF8 = false;\n }\n else {\n utf8BytesLeft++;\n if ((value & 0x20) === 0) {\n utf2BytesChars++;\n }\n else {\n utf8BytesLeft++;\n if ((value & 0x10) === 0) {\n utf3BytesChars++;\n }\n else {\n utf8BytesLeft++;\n if ((value & 0x08) === 0) {\n utf4BytesChars++;\n }\n else {\n canBeUTF8 = false;\n }\n }\n }\n }\n } // else {\n // utf8LowChars++\n // }\n }\n // ISO-8859-1 stuff\n if (canBeISO88591) {\n if (value > 0x7F && value < 0xA0) {\n canBeISO88591 = false;\n }\n else if (value > 0x9F) {\n if (value < 0xC0 || value === 0xD7 || value === 0xF7) {\n isoHighOther++;\n } // else {\n // isoHighChars++\n // }\n } // else {\n // isoLowChars++\n // }\n }\n // Shift_JIS stuff\n if (canBeShiftJIS) {\n if (sjisBytesLeft > 0) {\n if (value < 0x40 || value === 0x7F || value > 0xFC) {\n canBeShiftJIS = false;\n }\n else {\n sjisBytesLeft--;\n }\n }\n else if (value === 0x80 || value === 0xA0 || value > 0xEF) {\n canBeShiftJIS = false;\n }\n else if (value > 0xA0 && value < 0xE0) {\n sjisKatakanaChars++;\n sjisCurDoubleBytesWordLength = 0;\n sjisCurKatakanaWordLength++;\n if (sjisCurKatakanaWordLength > sjisMaxKatakanaWordLength) {\n sjisMaxKatakanaWordLength = sjisCurKatakanaWordLength;\n }\n }\n else if (value > 0x7F) {\n sjisBytesLeft++;\n // sjisDoubleBytesChars++\n sjisCurKatakanaWordLength = 0;\n sjisCurDoubleBytesWordLength++;\n if (sjisCurDoubleBytesWordLength > sjisMaxDoubleBytesWordLength) {\n sjisMaxDoubleBytesWordLength = sjisCurDoubleBytesWordLength;\n }\n }\n else {\n // sjisLowChars++\n sjisCurKatakanaWordLength = 0;\n sjisCurDoubleBytesWordLength = 0;\n }\n }\n }\n if (canBeUTF8 && utf8BytesLeft > 0) {\n canBeUTF8 = false;\n }\n if (canBeShiftJIS && sjisBytesLeft > 0) {\n canBeShiftJIS = false;\n }\n // Easy -- if there is BOM or at least 1 valid not-single byte character (and no evidence it can't be UTF-8), done\n if (canBeUTF8 && (utf8bom || utf2BytesChars + utf3BytesChars + utf4BytesChars > 0)) {\n return StringUtils.UTF8;\n }\n // Easy -- if assuming Shift_JIS or at least 3 valid consecutive not-ascii characters (and no evidence it can't be), done\n if (canBeShiftJIS && (StringUtils.ASSUME_SHIFT_JIS || sjisMaxKatakanaWordLength >= 3 || sjisMaxDoubleBytesWordLength >= 3)) {\n return StringUtils.SHIFT_JIS;\n }\n // Distinguishing Shift_JIS and ISO-8859-1 can be a little tough for short words. The crude heuristic is:\n // - If we saw\n // - only two consecutive katakana chars in the whole text, or\n // - at least 10% of bytes that could be \"upper\" not-alphanumeric Latin1,\n // - then we conclude Shift_JIS, else ISO-8859-1\n if (canBeISO88591 && canBeShiftJIS) {\n return (sjisMaxKatakanaWordLength === 2 && sjisKatakanaChars === 2) || isoHighOther * 10 >= length\n ? StringUtils.SHIFT_JIS : StringUtils.ISO88591;\n }\n // Otherwise, try in order ISO-8859-1, Shift JIS, UTF-8 and fall back to default platform encoding\n if (canBeISO88591) {\n return StringUtils.ISO88591;\n }\n if (canBeShiftJIS) {\n return StringUtils.SHIFT_JIS;\n }\n if (canBeUTF8) {\n return StringUtils.UTF8;\n }\n // Otherwise, we take a wild guess with platform encoding\n return StringUtils.PLATFORM_DEFAULT_ENCODING;\n }\n /**\n *\n * @see https://stackoverflow.com/a/13439711/4367683\n *\n * @param append The new string to append.\n * @param args Argumets values to be formated.\n */\n static format(append, ...args) {\n let i = -1;\n function callback(exp, p0, p1, p2, p3, p4) {\n if (exp === '%%')\n return '%';\n if (args[++i] === undefined)\n return undefined;\n exp = p2 ? parseInt(p2.substr(1)) : undefined;\n let base = p3 ? parseInt(p3.substr(1)) : undefined;\n let val;\n switch (p4) {\n case 's':\n val = args[i];\n break;\n case 'c':\n val = args[i][0];\n break;\n case 'f':\n val = parseFloat(args[i]).toFixed(exp);\n break;\n case 'p':\n val = parseFloat(args[i]).toPrecision(exp);\n break;\n case 'e':\n val = parseFloat(args[i]).toExponential(exp);\n break;\n case 'x':\n val = parseInt(args[i]).toString(base ? base : 16);\n break;\n case 'd':\n val = parseFloat(parseInt(args[i], base ? base : 10).toPrecision(exp)).toFixed(0);\n break;\n }\n val = typeof val === 'object' ? JSON.stringify(val) : (+val).toString(base);\n let size = parseInt(p1); /* padding size */\n let ch = p1 && (p1[0] + '') === '0' ? '0' : ' '; /* isnull? */\n while (val.length < size)\n val = p0 !== undefined ? val + ch : ch + val; /* isminus? */\n return val;\n }\n let regex = /%(-)?(0?[0-9]+)?([.][0-9]+)?([#][0-9]+)?([scfpexd%])/g;\n return append.replace(regex, callback);\n }\n /**\n *\n */\n static getBytes(str, encoding) {\n return StringEncoding.encode(str, encoding);\n }\n /**\n * Returns the charcode at the specified index or at index zero.\n */\n static getCharCode(str, index = 0) {\n return str.charCodeAt(index);\n }\n /**\n * Returns char for given charcode\n */\n static getCharAt(charCode) {\n return String.fromCharCode(charCode);\n }\n }\n StringUtils.SHIFT_JIS = CharacterSetECI.SJIS.getName(); // \"SJIS\"\n StringUtils.GB2312 = 'GB2312';\n StringUtils.ISO88591 = CharacterSetECI.ISO8859_1.getName(); // \"ISO8859_1\"\n StringUtils.EUC_JP = 'EUC_JP';\n StringUtils.UTF8 = CharacterSetECI.UTF8.getName(); // \"UTF8\"\n StringUtils.PLATFORM_DEFAULT_ENCODING = StringUtils.UTF8; // \"UTF8\"//Charset.defaultCharset().name()\n StringUtils.ASSUME_SHIFT_JIS = false;\n\n class StringBuilder {\n constructor(value = '') {\n this.value = value;\n }\n enableDecoding(encoding) {\n this.encoding = encoding;\n return this;\n }\n append(s) {\n if (typeof s === 'string') {\n this.value += s.toString();\n }\n else if (this.encoding) {\n // use passed format (fromCharCode will return UTF8 encoding)\n this.value += StringUtils.castAsNonUtf8Char(s, this.encoding);\n }\n else {\n // correctly converts from UTF-8, but not other encodings\n this.value += String.fromCharCode(s);\n }\n return this;\n }\n appendChars(str, offset, len) {\n for (let i = offset; offset < offset + len; i++) {\n this.append(str[i]);\n }\n return this;\n }\n length() {\n return this.value.length;\n }\n charAt(n) {\n return this.value.charAt(n);\n }\n deleteCharAt(n) {\n this.value = this.value.substr(0, n) + this.value.substring(n + 1);\n }\n setCharAt(n, c) {\n this.value = this.value.substr(0, n) + c + this.value.substr(n + 1);\n }\n substring(start, end) {\n return this.value.substring(start, end);\n }\n /**\n * @note helper method for RSS Expanded\n */\n setLengthToZero() {\n this.value = '';\n }\n toString() {\n return this.value;\n }\n insert(n, c) {\n this.value = this.value.substr(0, n) + c + this.value.substr(n + c.length);\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *Represents a 2D matrix of bits. In function arguments below, and throughout the common\n * module, x is the column position, and y is the row position. The ordering is always x, y.\n * The origin is at the top-left.
\n *\n *Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins\n * with a new int. This is done intentionally so that we can copy out a row into a BitArray very\n * efficiently.
\n *\n *The ordering of bits is row-major. Within each int, the least significant bits are used first,\n * meaning they represent lower x values. This is compatible with BitArray's implementation.
\n *\n * @author Sean Owen\n * @author dswitkin@google.com (Daniel Switkin)\n */\n class BitMatrix /*implements Cloneable*/ {\n /**\n * Creates an empty square {@link BitMatrix}.\n *\n * @param dimension height and width\n */\n // public constructor(dimension: number /*int*/) {\n // this(dimension, dimension)\n // }\n /**\n * Creates an empty {@link BitMatrix}.\n *\n * @param width bit matrix width\n * @param height bit matrix height\n */\n // public constructor(width: number /*int*/, height: number /*int*/) {\n // if (width < 1 || height < 1) {\n // throw new IllegalArgumentException(\"Both dimensions must be greater than 0\")\n // }\n // this.width = width\n // this.height = height\n // this.rowSize = (width + 31) / 32\n // bits = new int[rowSize * height];\n // }\n constructor(width /*int*/, height /*int*/, rowSize /*int*/, bits) {\n this.width = width;\n this.height = height;\n this.rowSize = rowSize;\n this.bits = bits;\n if (undefined === height || null === height) {\n height = width;\n }\n this.height = height;\n if (width < 1 || height < 1) {\n throw new IllegalArgumentException('Both dimensions must be greater than 0');\n }\n if (undefined === rowSize || null === rowSize) {\n rowSize = Math.floor((width + 31) / 32);\n }\n this.rowSize = rowSize;\n if (undefined === bits || null === bits) {\n this.bits = new Int32Array(this.rowSize * this.height);\n }\n }\n /**\n * Interprets a 2D array of booleans as a {@link BitMatrix}, where \"true\" means an \"on\" bit.\n *\n * @function parse\n * @param image bits of the image, as a row-major 2D array. Elements are arrays representing rows\n * @return {@link BitMatrix} representation of image\n */\n static parseFromBooleanArray(image) {\n const height = image.length;\n const width = image[0].length;\n const bits = new BitMatrix(width, height);\n for (let i = 0; i < height; i++) {\n const imageI = image[i];\n for (let j = 0; j < width; j++) {\n if (imageI[j]) {\n bits.set(j, i);\n }\n }\n }\n return bits;\n }\n /**\n *\n * @function parse\n * @param stringRepresentation\n * @param setString\n * @param unsetString\n */\n static parseFromString(stringRepresentation, setString, unsetString) {\n if (stringRepresentation === null) {\n throw new IllegalArgumentException('stringRepresentation cannot be null');\n }\n const bits = new Array(stringRepresentation.length);\n let bitsPos = 0;\n let rowStartPos = 0;\n let rowLength = -1;\n let nRows = 0;\n let pos = 0;\n while (pos < stringRepresentation.length) {\n if (stringRepresentation.charAt(pos) === '\\n' ||\n stringRepresentation.charAt(pos) === '\\r') {\n if (bitsPos > rowStartPos) {\n if (rowLength === -1) {\n rowLength = bitsPos - rowStartPos;\n }\n else if (bitsPos - rowStartPos !== rowLength) {\n throw new IllegalArgumentException('row lengths do not match');\n }\n rowStartPos = bitsPos;\n nRows++;\n }\n pos++;\n }\n else if (stringRepresentation.substring(pos, pos + setString.length) === setString) {\n pos += setString.length;\n bits[bitsPos] = true;\n bitsPos++;\n }\n else if (stringRepresentation.substring(pos, pos + unsetString.length) === unsetString) {\n pos += unsetString.length;\n bits[bitsPos] = false;\n bitsPos++;\n }\n else {\n throw new IllegalArgumentException('illegal character encountered: ' + stringRepresentation.substring(pos));\n }\n }\n // no EOL at end?\n if (bitsPos > rowStartPos) {\n if (rowLength === -1) {\n rowLength = bitsPos - rowStartPos;\n }\n else if (bitsPos - rowStartPos !== rowLength) {\n throw new IllegalArgumentException('row lengths do not match');\n }\n nRows++;\n }\n const matrix = new BitMatrix(rowLength, nRows);\n for (let i = 0; i < bitsPos; i++) {\n if (bits[i]) {\n matrix.set(Math.floor(i % rowLength), Math.floor(i / rowLength));\n }\n }\n return matrix;\n }\n /**\n *Gets the requested bit, where true means black.
\n *\n * @param x The horizontal component (i.e. which column)\n * @param y The vertical component (i.e. which row)\n * @return value of given bit in matrix\n */\n get(x /*int*/, y /*int*/) {\n const offset = y * this.rowSize + Math.floor(x / 32);\n return ((this.bits[offset] >>> (x & 0x1f)) & 1) !== 0;\n }\n /**\n *Sets the given bit to true.
\n *\n * @param x The horizontal component (i.e. which column)\n * @param y The vertical component (i.e. which row)\n */\n set(x /*int*/, y /*int*/) {\n const offset = y * this.rowSize + Math.floor(x / 32);\n this.bits[offset] |= (1 << (x & 0x1f)) & 0xFFFFFFFF;\n }\n unset(x /*int*/, y /*int*/) {\n const offset = y * this.rowSize + Math.floor(x / 32);\n this.bits[offset] &= ~((1 << (x & 0x1f)) & 0xFFFFFFFF);\n }\n /**\n *Flips the given bit.
\n *\n * @param x The horizontal component (i.e. which column)\n * @param y The vertical component (i.e. which row)\n */\n flip(x /*int*/, y /*int*/) {\n const offset = y * this.rowSize + Math.floor(x / 32);\n this.bits[offset] ^= ((1 << (x & 0x1f)) & 0xFFFFFFFF);\n }\n /**\n * Exclusive-or (XOR): Flip the bit in this {@code BitMatrix} if the corresponding\n * mask bit is set.\n *\n * @param mask XOR mask\n */\n xor(mask) {\n if (this.width !== mask.getWidth() || this.height !== mask.getHeight()\n || this.rowSize !== mask.getRowSize()) {\n throw new IllegalArgumentException('input matrix dimensions do not match');\n }\n const rowArray = new BitArray(Math.floor(this.width / 32) + 1);\n const rowSize = this.rowSize;\n const bits = this.bits;\n for (let y = 0, height = this.height; y < height; y++) {\n const offset = y * rowSize;\n const row = mask.getRow(y, rowArray).getBitArray();\n for (let x = 0; x < rowSize; x++) {\n bits[offset + x] ^= row[x];\n }\n }\n }\n /**\n * Clears all bits (sets to false).\n */\n clear() {\n const bits = this.bits;\n const max = bits.length;\n for (let i = 0; i < max; i++) {\n bits[i] = 0;\n }\n }\n /**\n *Sets a square region of the bit matrix to true.
\n *\n * @param left The horizontal position to begin at (inclusive)\n * @param top The vertical position to begin at (inclusive)\n * @param width The width of the region\n * @param height The height of the region\n */\n setRegion(left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n if (top < 0 || left < 0) {\n throw new IllegalArgumentException('Left and top must be nonnegative');\n }\n if (height < 1 || width < 1) {\n throw new IllegalArgumentException('Height and width must be at least 1');\n }\n const right = left + width;\n const bottom = top + height;\n if (bottom > this.height || right > this.width) {\n throw new IllegalArgumentException('The region must fit inside the matrix');\n }\n const rowSize = this.rowSize;\n const bits = this.bits;\n for (let y = top; y < bottom; y++) {\n const offset = y * rowSize;\n for (let x = left; x < right; x++) {\n bits[offset + Math.floor(x / 32)] |= ((1 << (x & 0x1f)) & 0xFFFFFFFF);\n }\n }\n }\n /**\n * A fast method to retrieve one row of data from the matrix as a BitArray.\n *\n * @param y The row to retrieve\n * @param row An optional caller-allocated BitArray, will be allocated if null or too small\n * @return The resulting BitArray - this reference should always be used even when passing\n * your own row\n */\n getRow(y /*int*/, row) {\n if (row === null || row === undefined || row.getSize() < this.width) {\n row = new BitArray(this.width);\n }\n else {\n row.clear();\n }\n const rowSize = this.rowSize;\n const bits = this.bits;\n const offset = y * rowSize;\n for (let x = 0; x < rowSize; x++) {\n row.setBulk(x * 32, bits[offset + x]);\n }\n return row;\n }\n /**\n * @param y row to set\n * @param row {@link BitArray} to copy from\n */\n setRow(y /*int*/, row) {\n System.arraycopy(row.getBitArray(), 0, this.bits, y * this.rowSize, this.rowSize);\n }\n /**\n * Modifies this {@code BitMatrix} to represent the same but rotated 180 degrees\n */\n rotate180() {\n const width = this.getWidth();\n const height = this.getHeight();\n let topRow = new BitArray(width);\n let bottomRow = new BitArray(width);\n for (let i = 0, length = Math.floor((height + 1) / 2); i < length; i++) {\n topRow = this.getRow(i, topRow);\n bottomRow = this.getRow(height - 1 - i, bottomRow);\n topRow.reverse();\n bottomRow.reverse();\n this.setRow(i, bottomRow);\n this.setRow(height - 1 - i, topRow);\n }\n }\n /**\n * This is useful in detecting the enclosing rectangle of a 'pure' barcode.\n *\n * @return {@code left,top,width,height} enclosing rectangle of all 1 bits, or null if it is all white\n */\n getEnclosingRectangle() {\n const width = this.width;\n const height = this.height;\n const rowSize = this.rowSize;\n const bits = this.bits;\n let left = width;\n let top = height;\n let right = -1;\n let bottom = -1;\n for (let y = 0; y < height; y++) {\n for (let x32 = 0; x32 < rowSize; x32++) {\n const theBits = bits[y * rowSize + x32];\n if (theBits !== 0) {\n if (y < top) {\n top = y;\n }\n if (y > bottom) {\n bottom = y;\n }\n if (x32 * 32 < left) {\n let bit = 0;\n while (((theBits << (31 - bit)) & 0xFFFFFFFF) === 0) {\n bit++;\n }\n if ((x32 * 32 + bit) < left) {\n left = x32 * 32 + bit;\n }\n }\n if (x32 * 32 + 31 > right) {\n let bit = 31;\n while ((theBits >>> bit) === 0) {\n bit--;\n }\n if ((x32 * 32 + bit) > right) {\n right = x32 * 32 + bit;\n }\n }\n }\n }\n }\n if (right < left || bottom < top) {\n return null;\n }\n return Int32Array.from([left, top, right - left + 1, bottom - top + 1]);\n }\n /**\n * This is useful in detecting a corner of a 'pure' barcode.\n *\n * @return {@code x,y} coordinate of top-left-most 1 bit, or null if it is all white\n */\n getTopLeftOnBit() {\n const rowSize = this.rowSize;\n const bits = this.bits;\n let bitsOffset = 0;\n while (bitsOffset < bits.length && bits[bitsOffset] === 0) {\n bitsOffset++;\n }\n if (bitsOffset === bits.length) {\n return null;\n }\n const y = bitsOffset / rowSize;\n let x = (bitsOffset % rowSize) * 32;\n const theBits = bits[bitsOffset];\n let bit = 0;\n while (((theBits << (31 - bit)) & 0xFFFFFFFF) === 0) {\n bit++;\n }\n x += bit;\n return Int32Array.from([x, y]);\n }\n getBottomRightOnBit() {\n const rowSize = this.rowSize;\n const bits = this.bits;\n let bitsOffset = bits.length - 1;\n while (bitsOffset >= 0 && bits[bitsOffset] === 0) {\n bitsOffset--;\n }\n if (bitsOffset < 0) {\n return null;\n }\n const y = Math.floor(bitsOffset / rowSize);\n let x = Math.floor(bitsOffset % rowSize) * 32;\n const theBits = bits[bitsOffset];\n let bit = 31;\n while ((theBits >>> bit) === 0) {\n bit--;\n }\n x += bit;\n return Int32Array.from([x, y]);\n }\n /**\n * @return The width of the matrix\n */\n getWidth() {\n return this.width;\n }\n /**\n * @return The height of the matrix\n */\n getHeight() {\n return this.height;\n }\n /**\n * @return The row size of the matrix\n */\n getRowSize() {\n return this.rowSize;\n }\n /*@Override*/\n equals(o) {\n if (!(o instanceof BitMatrix)) {\n return false;\n }\n const other = o;\n return this.width === other.width && this.height === other.height && this.rowSize === other.rowSize &&\n Arrays.equals(this.bits, other.bits);\n }\n /*@Override*/\n hashCode() {\n let hash = this.width;\n hash = 31 * hash + this.width;\n hash = 31 * hash + this.height;\n hash = 31 * hash + this.rowSize;\n hash = 31 * hash + Arrays.hashCode(this.bits);\n return hash;\n }\n /**\n * @return string representation using \"X\" for set and \" \" for unset bits\n */\n /*@Override*/\n // public toString(): string {\n // return toString(\": \"X, \" \")\n // }\n /**\n * @param setString representation of a set bit\n * @param unsetString representation of an unset bit\n * @return string representation of entire matrix utilizing given strings\n */\n // public toString(setString: string = \"X \", unsetString: string = \" \"): string {\n // return this.buildToString(setString, unsetString, \"\\n\")\n // }\n /**\n * @param setString representation of a set bit\n * @param unsetString representation of an unset bit\n * @param lineSeparator newline character in string representation\n * @return string representation of entire matrix utilizing given strings and line separator\n * @deprecated call {@link #toString(String,String)} only, which uses \\n line separator always\n */\n // @Deprecated\n toString(setString = 'X ', unsetString = ' ', lineSeparator = '\\n') {\n return this.buildToString(setString, unsetString, lineSeparator);\n }\n buildToString(setString, unsetString, lineSeparator) {\n let result = new StringBuilder();\n // result.append(lineSeparator);\n for (let y = 0, height = this.height; y < height; y++) {\n for (let x = 0, width = this.width; x < width; x++) {\n result.append(this.get(x, y) ? setString : unsetString);\n }\n result.append(lineSeparator);\n }\n return result.toString();\n }\n /*@Override*/\n clone() {\n return new BitMatrix(this.width, this.height, this.rowSize, this.bits.slice());\n }\n }\n\n /**\n * Custom Error class of type Exception.\n */\n class NotFoundException extends Exception {\n static getNotFoundInstance() {\n return new NotFoundException();\n }\n }\n NotFoundException.kind = 'NotFoundException';\n\n /*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * This Binarizer implementation uses the old ZXing global histogram approach. It is suitable\n * for low-end mobile devices which don't have enough CPU or memory to use a local thresholding\n * algorithm. However, because it picks a global black point, it cannot handle difficult shadows\n * and gradients.\n *\n * Faster mobile devices and all desktop applications should probably use HybridBinarizer instead.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n */\n class GlobalHistogramBinarizer extends Binarizer {\n constructor(source) {\n super(source);\n this.luminances = GlobalHistogramBinarizer.EMPTY;\n this.buckets = new Int32Array(GlobalHistogramBinarizer.LUMINANCE_BUCKETS);\n }\n // Applies simple sharpening to the row data to improve performance of the 1D Readers.\n /*@Override*/\n getBlackRow(y /*int*/, row) {\n const source = this.getLuminanceSource();\n const width = source.getWidth();\n if (row === undefined || row === null || row.getSize() < width) {\n row = new BitArray(width);\n }\n else {\n row.clear();\n }\n this.initArrays(width);\n const localLuminances = source.getRow(y, this.luminances);\n const localBuckets = this.buckets;\n for (let x = 0; x < width; x++) {\n localBuckets[(localLuminances[x] & 0xff) >> GlobalHistogramBinarizer.LUMINANCE_SHIFT]++;\n }\n const blackPoint = GlobalHistogramBinarizer.estimateBlackPoint(localBuckets);\n if (width < 3) {\n // Special case for very small images\n for (let x = 0; x < width; x++) {\n if ((localLuminances[x] & 0xff) < blackPoint) {\n row.set(x);\n }\n }\n }\n else {\n let left = localLuminances[0] & 0xff;\n let center = localLuminances[1] & 0xff;\n for (let x = 1; x < width - 1; x++) {\n const right = localLuminances[x + 1] & 0xff;\n // A simple -1 4 -1 box filter with a weight of 2.\n if (((center * 4) - left - right) / 2 < blackPoint) {\n row.set(x);\n }\n left = center;\n center = right;\n }\n }\n return row;\n }\n // Does not sharpen the data, as this call is intended to only be used by 2D Readers.\n /*@Override*/\n getBlackMatrix() {\n const source = this.getLuminanceSource();\n const width = source.getWidth();\n const height = source.getHeight();\n const matrix = new BitMatrix(width, height);\n // Quickly calculates the histogram by sampling four rows from the image. This proved to be\n // more robust on the blackbox tests than sampling a diagonal as we used to do.\n this.initArrays(width);\n const localBuckets = this.buckets;\n for (let y = 1; y < 5; y++) {\n const row = Math.floor((height * y) / 5);\n const localLuminances = source.getRow(row, this.luminances);\n const right = Math.floor((width * 4) / 5);\n for (let x = Math.floor(width / 5); x < right; x++) {\n const pixel = localLuminances[x] & 0xff;\n localBuckets[pixel >> GlobalHistogramBinarizer.LUMINANCE_SHIFT]++;\n }\n }\n const blackPoint = GlobalHistogramBinarizer.estimateBlackPoint(localBuckets);\n // We delay reading the entire image luminance until the black point estimation succeeds.\n // Although we end up reading four rows twice, it is consistent with our motto of\n // \"fail quickly\" which is necessary for continuous scanning.\n const localLuminances = source.getMatrix();\n for (let y = 0; y < height; y++) {\n const offset = y * width;\n for (let x = 0; x < width; x++) {\n const pixel = localLuminances[offset + x] & 0xff;\n if (pixel < blackPoint) {\n matrix.set(x, y);\n }\n }\n }\n return matrix;\n }\n /*@Override*/\n createBinarizer(source) {\n return new GlobalHistogramBinarizer(source);\n }\n initArrays(luminanceSize /*int*/) {\n if (this.luminances.length < luminanceSize) {\n this.luminances = new Uint8ClampedArray(luminanceSize);\n }\n const buckets = this.buckets;\n for (let x = 0; x < GlobalHistogramBinarizer.LUMINANCE_BUCKETS; x++) {\n buckets[x] = 0;\n }\n }\n static estimateBlackPoint(buckets) {\n // Find the tallest peak in the histogram.\n const numBuckets = buckets.length;\n let maxBucketCount = 0;\n let firstPeak = 0;\n let firstPeakSize = 0;\n for (let x = 0; x < numBuckets; x++) {\n if (buckets[x] > firstPeakSize) {\n firstPeak = x;\n firstPeakSize = buckets[x];\n }\n if (buckets[x] > maxBucketCount) {\n maxBucketCount = buckets[x];\n }\n }\n // Find the second-tallest peak which is somewhat far from the tallest peak.\n let secondPeak = 0;\n let secondPeakScore = 0;\n for (let x = 0; x < numBuckets; x++) {\n const distanceToBiggest = x - firstPeak;\n // Encourage more distant second peaks by multiplying by square of distance.\n const score = buckets[x] * distanceToBiggest * distanceToBiggest;\n if (score > secondPeakScore) {\n secondPeak = x;\n secondPeakScore = score;\n }\n }\n // Make sure firstPeak corresponds to the black peak.\n if (firstPeak > secondPeak) {\n const temp = firstPeak;\n firstPeak = secondPeak;\n secondPeak = temp;\n }\n // If there is too little contrast in the image to pick a meaningful black point, throw rather\n // than waste time trying to decode the image, and risk false positives.\n if (secondPeak - firstPeak <= numBuckets / 16) {\n throw new NotFoundException();\n }\n // Find a valley between them that is low and closer to the white peak.\n let bestValley = secondPeak - 1;\n let bestValleyScore = -1;\n for (let x = secondPeak - 1; x > firstPeak; x--) {\n const fromFirst = x - firstPeak;\n const score = fromFirst * fromFirst * (secondPeak - x) * (maxBucketCount - buckets[x]);\n if (score > bestValleyScore) {\n bestValley = x;\n bestValleyScore = score;\n }\n }\n return bestValley << GlobalHistogramBinarizer.LUMINANCE_SHIFT;\n }\n }\n GlobalHistogramBinarizer.LUMINANCE_BITS = 5;\n GlobalHistogramBinarizer.LUMINANCE_SHIFT = 8 - GlobalHistogramBinarizer.LUMINANCE_BITS;\n GlobalHistogramBinarizer.LUMINANCE_BUCKETS = 1 << GlobalHistogramBinarizer.LUMINANCE_BITS;\n GlobalHistogramBinarizer.EMPTY = Uint8ClampedArray.from([0]);\n\n /*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * This class implements a local thresholding algorithm, which while slower than the\n * GlobalHistogramBinarizer, is fairly efficient for what it does. It is designed for\n * high frequency images of barcodes with black data on white backgrounds. For this application,\n * it does a much better job than a global blackpoint with severe shadows and gradients.\n * However it tends to produce artifacts on lower frequency images and is therefore not\n * a good general purpose binarizer for uses outside ZXing.\n *\n * This class extends GlobalHistogramBinarizer, using the older histogram approach for 1D readers,\n * and the newer local approach for 2D readers. 1D decoding using a per-row histogram is already\n * inherently local, and only fails for horizontal gradients. We can revisit that problem later,\n * but for now it was not a win to use local blocks for 1D.\n *\n * This Binarizer is the default for the unit tests and the recommended class for library users.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\n class HybridBinarizer extends GlobalHistogramBinarizer {\n constructor(source) {\n super(source);\n this.matrix = null;\n }\n /**\n * Calculates the final BitMatrix once for all requests. This could be called once from the\n * constructor instead, but there are some advantages to doing it lazily, such as making\n * profiling easier, and not doing heavy lifting when callers don't expect it.\n */\n /*@Override*/\n getBlackMatrix() {\n if (this.matrix !== null) {\n return this.matrix;\n }\n const source = this.getLuminanceSource();\n const width = source.getWidth();\n const height = source.getHeight();\n if (width >= HybridBinarizer.MINIMUM_DIMENSION && height >= HybridBinarizer.MINIMUM_DIMENSION) {\n const luminances = source.getMatrix();\n let subWidth = width >> HybridBinarizer.BLOCK_SIZE_POWER;\n if ((width & HybridBinarizer.BLOCK_SIZE_MASK) !== 0) {\n subWidth++;\n }\n let subHeight = height >> HybridBinarizer.BLOCK_SIZE_POWER;\n if ((height & HybridBinarizer.BLOCK_SIZE_MASK) !== 0) {\n subHeight++;\n }\n const blackPoints = HybridBinarizer.calculateBlackPoints(luminances, subWidth, subHeight, width, height);\n const newMatrix = new BitMatrix(width, height);\n HybridBinarizer.calculateThresholdForBlock(luminances, subWidth, subHeight, width, height, blackPoints, newMatrix);\n this.matrix = newMatrix;\n }\n else {\n // If the image is too small, fall back to the global histogram approach.\n this.matrix = super.getBlackMatrix();\n }\n return this.matrix;\n }\n /*@Override*/\n createBinarizer(source) {\n return new HybridBinarizer(source);\n }\n /**\n * For each block in the image, calculate the average black point using a 5x5 grid\n * of the blocks around it. Also handles the corner cases (fractional blocks are computed based\n * on the last pixels in the row/column which are also used in the previous block).\n */\n static calculateThresholdForBlock(luminances, subWidth /*int*/, subHeight /*int*/, width /*int*/, height /*int*/, blackPoints, matrix) {\n const maxYOffset = height - HybridBinarizer.BLOCK_SIZE;\n const maxXOffset = width - HybridBinarizer.BLOCK_SIZE;\n for (let y = 0; y < subHeight; y++) {\n let yoffset = y << HybridBinarizer.BLOCK_SIZE_POWER;\n if (yoffset > maxYOffset) {\n yoffset = maxYOffset;\n }\n const top = HybridBinarizer.cap(y, 2, subHeight - 3);\n for (let x = 0; x < subWidth; x++) {\n let xoffset = x << HybridBinarizer.BLOCK_SIZE_POWER;\n if (xoffset > maxXOffset) {\n xoffset = maxXOffset;\n }\n const left = HybridBinarizer.cap(x, 2, subWidth - 3);\n let sum = 0;\n for (let z = -2; z <= 2; z++) {\n const blackRow = blackPoints[top + z];\n sum += blackRow[left - 2] + blackRow[left - 1] + blackRow[left] + blackRow[left + 1] + blackRow[left + 2];\n }\n const average = sum / 25;\n HybridBinarizer.thresholdBlock(luminances, xoffset, yoffset, average, width, matrix);\n }\n }\n }\n static cap(value /*int*/, min /*int*/, max /*int*/) {\n return value < min ? min : value > max ? max : value;\n }\n /**\n * Applies a single threshold to a block of pixels.\n */\n static thresholdBlock(luminances, xoffset /*int*/, yoffset /*int*/, threshold /*int*/, stride /*int*/, matrix) {\n for (let y = 0, offset = yoffset * stride + xoffset; y < HybridBinarizer.BLOCK_SIZE; y++, offset += stride) {\n for (let x = 0; x < HybridBinarizer.BLOCK_SIZE; x++) {\n // Comparison needs to be <= so that black == 0 pixels are black even if the threshold is 0.\n if ((luminances[offset + x] & 0xFF) <= threshold) {\n matrix.set(xoffset + x, yoffset + y);\n }\n }\n }\n }\n /**\n * Calculates a single black point for each block of pixels and saves it away.\n * See the following thread for a discussion of this algorithm:\n * http://groups.google.com/group/zxing/browse_thread/thread/d06efa2c35a7ddc0\n */\n static calculateBlackPoints(luminances, subWidth /*int*/, subHeight /*int*/, width /*int*/, height /*int*/) {\n const maxYOffset = height - HybridBinarizer.BLOCK_SIZE;\n const maxXOffset = width - HybridBinarizer.BLOCK_SIZE;\n // tslint:disable-next-line:whitespace\n const blackPoints = new Array(subHeight); // subWidth\n for (let y = 0; y < subHeight; y++) {\n blackPoints[y] = new Int32Array(subWidth);\n let yoffset = y << HybridBinarizer.BLOCK_SIZE_POWER;\n if (yoffset > maxYOffset) {\n yoffset = maxYOffset;\n }\n for (let x = 0; x < subWidth; x++) {\n let xoffset = x << HybridBinarizer.BLOCK_SIZE_POWER;\n if (xoffset > maxXOffset) {\n xoffset = maxXOffset;\n }\n let sum = 0;\n let min = 0xFF;\n let max = 0;\n for (let yy = 0, offset = yoffset * width + xoffset; yy < HybridBinarizer.BLOCK_SIZE; yy++, offset += width) {\n for (let xx = 0; xx < HybridBinarizer.BLOCK_SIZE; xx++) {\n const pixel = luminances[offset + xx] & 0xFF;\n sum += pixel;\n // still looking for good contrast\n if (pixel < min) {\n min = pixel;\n }\n if (pixel > max) {\n max = pixel;\n }\n }\n // short-circuit min/max tests once dynamic range is met\n if (max - min > HybridBinarizer.MIN_DYNAMIC_RANGE) {\n // finish the rest of the rows quickly\n for (yy++, offset += width; yy < HybridBinarizer.BLOCK_SIZE; yy++, offset += width) {\n for (let xx = 0; xx < HybridBinarizer.BLOCK_SIZE; xx++) {\n sum += luminances[offset + xx] & 0xFF;\n }\n }\n }\n }\n // The default estimate is the average of the values in the block.\n let average = sum >> (HybridBinarizer.BLOCK_SIZE_POWER * 2);\n if (max - min <= HybridBinarizer.MIN_DYNAMIC_RANGE) {\n // If variation within the block is low, assume this is a block with only light or only\n // dark pixels. In that case we do not want to use the average, as it would divide this\n // low contrast area into black and white pixels, essentially creating data out of noise.\n //\n // The default assumption is that the block is light/background. Since no estimate for\n // the level of dark pixels exists locally, use half the min for the block.\n average = min / 2;\n if (y > 0 && x > 0) {\n // Correct the \"white background\" assumption for blocks that have neighbors by comparing\n // the pixels in this block to the previously calculated black points. This is based on\n // the fact that dark barcode symbology is always surrounded by some amount of light\n // background for which reasonable black point estimates were made. The bp estimated at\n // the boundaries is used for the interior.\n // The (min < bp) is arbitrary but works better than other heuristics that were tried.\n const averageNeighborBlackPoint = (blackPoints[y - 1][x] + (2 * blackPoints[y][x - 1]) + blackPoints[y - 1][x - 1]) / 4;\n if (min < averageNeighborBlackPoint) {\n average = averageNeighborBlackPoint;\n }\n }\n }\n blackPoints[y][x] = average;\n }\n }\n return blackPoints;\n }\n }\n // This class uses 5x5 blocks to compute local luminance, where each block is 8x8 pixels.\n // So this is the smallest dimension in each axis we can accept.\n HybridBinarizer.BLOCK_SIZE_POWER = 3;\n HybridBinarizer.BLOCK_SIZE = 1 << HybridBinarizer.BLOCK_SIZE_POWER; // ...0100...00\n HybridBinarizer.BLOCK_SIZE_MASK = HybridBinarizer.BLOCK_SIZE - 1; // ...0011...11\n HybridBinarizer.MINIMUM_DIMENSION = HybridBinarizer.BLOCK_SIZE * 5;\n HybridBinarizer.MIN_DYNAMIC_RANGE = 24;\n\n /*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /*namespace com.google.zxing {*/\n /**\n * The purpose of this class hierarchy is to abstract different bitmap implementations across\n * platforms into a standard interface for requesting greyscale luminance values. The interface\n * only provides immutable methods; therefore crop and rotation create copies. This is to ensure\n * that one Reader does not modify the original luminance source and leave it in an unknown state\n * for other Readers in the chain.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\n class LuminanceSource {\n constructor(width /*int*/, height /*int*/) {\n this.width = width;\n this.height = height;\n }\n /**\n * @return The width of the bitmap.\n */\n getWidth() {\n return this.width;\n }\n /**\n * @return The height of the bitmap.\n */\n getHeight() {\n return this.height;\n }\n /**\n * @return Whether this subclass supports cropping.\n */\n isCropSupported() {\n return false;\n }\n /**\n * Returns a new object with cropped image data. Implementations may keep a reference to the\n * original data rather than a copy. Only callable if isCropSupported() is true.\n *\n * @param left The left coordinate, which must be in [0,getWidth())\n * @param top The top coordinate, which must be in [0,getHeight())\n * @param width The width of the rectangle to crop.\n * @param height The height of the rectangle to crop.\n * @return A cropped version of this object.\n */\n crop(left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n throw new UnsupportedOperationException('This luminance source does not support cropping.');\n }\n /**\n * @return Whether this subclass supports counter-clockwise rotation.\n */\n isRotateSupported() {\n return false;\n }\n /**\n * Returns a new object with rotated image data by 90 degrees counterclockwise.\n * Only callable if {@link #isRotateSupported()} is true.\n *\n * @return A rotated version of this object.\n */\n rotateCounterClockwise() {\n throw new UnsupportedOperationException('This luminance source does not support rotation by 90 degrees.');\n }\n /**\n * Returns a new object with rotated image data by 45 degrees counterclockwise.\n * Only callable if {@link #isRotateSupported()} is true.\n *\n * @return A rotated version of this object.\n */\n rotateCounterClockwise45() {\n throw new UnsupportedOperationException('This luminance source does not support rotation by 45 degrees.');\n }\n /*@Override*/\n toString() {\n const row = new Uint8ClampedArray(this.width);\n let result = new StringBuilder();\n for (let y = 0; y < this.height; y++) {\n const sourceRow = this.getRow(y, row);\n for (let x = 0; x < this.width; x++) {\n const luminance = sourceRow[x] & 0xFF;\n let c;\n if (luminance < 0x40) {\n c = '#';\n }\n else if (luminance < 0x80) {\n c = '+';\n }\n else if (luminance < 0xC0) {\n c = '.';\n }\n else {\n c = ' ';\n }\n result.append(c);\n }\n result.append('\\n');\n }\n return result.toString();\n }\n }\n\n /*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /*namespace com.google.zxing {*/\n /**\n * A wrapper implementation of {@link LuminanceSource} which inverts the luminances it returns -- black becomes\n * white and vice versa, and each value becomes (255-value).\n *\n * @author Sean Owen\n */\n class InvertedLuminanceSource extends LuminanceSource {\n constructor(delegate) {\n super(delegate.getWidth(), delegate.getHeight());\n this.delegate = delegate;\n }\n /*@Override*/\n getRow(y /*int*/, row) {\n const sourceRow = this.delegate.getRow(y, row);\n const width = this.getWidth();\n for (let i = 0; i < width; i++) {\n sourceRow[i] = /*(byte)*/ (255 - (sourceRow[i] & 0xFF));\n }\n return sourceRow;\n }\n /*@Override*/\n getMatrix() {\n const matrix = this.delegate.getMatrix();\n const length = this.getWidth() * this.getHeight();\n const invertedMatrix = new Uint8ClampedArray(length);\n for (let i = 0; i < length; i++) {\n invertedMatrix[i] = /*(byte)*/ (255 - (matrix[i] & 0xFF));\n }\n return invertedMatrix;\n }\n /*@Override*/\n isCropSupported() {\n return this.delegate.isCropSupported();\n }\n /*@Override*/\n crop(left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n return new InvertedLuminanceSource(this.delegate.crop(left, top, width, height));\n }\n /*@Override*/\n isRotateSupported() {\n return this.delegate.isRotateSupported();\n }\n /**\n * @return original delegate {@link LuminanceSource} since invert undoes itself\n */\n /*@Override*/\n invert() {\n return this.delegate;\n }\n /*@Override*/\n rotateCounterClockwise() {\n return new InvertedLuminanceSource(this.delegate.rotateCounterClockwise());\n }\n /*@Override*/\n rotateCounterClockwise45() {\n return new InvertedLuminanceSource(this.delegate.rotateCounterClockwise45());\n }\n }\n\n /**\n * @deprecated Moving to @zxing/browser\n */\n class HTMLCanvasElementLuminanceSource extends LuminanceSource {\n constructor(canvas) {\n super(canvas.width, canvas.height);\n this.canvas = canvas;\n this.tempCanvasElement = null;\n this.buffer = HTMLCanvasElementLuminanceSource.makeBufferFromCanvasImageData(canvas);\n }\n static makeBufferFromCanvasImageData(canvas) {\n const imageData = canvas.getContext('2d').getImageData(0, 0, canvas.width, canvas.height);\n return HTMLCanvasElementLuminanceSource.toGrayscaleBuffer(imageData.data, canvas.width, canvas.height);\n }\n static toGrayscaleBuffer(imageBuffer, width, height) {\n const grayscaleBuffer = new Uint8ClampedArray(width * height);\n for (let i = 0, j = 0, length = imageBuffer.length; i < length; i += 4, j++) {\n let gray;\n const alpha = imageBuffer[i + 3];\n // The color of fully-transparent pixels is irrelevant. They are often, technically, fully-transparent\n // black (0 alpha, and then 0 RGB). They are often used, of course as the \"white\" area in a\n // barcode image. Force any such pixel to be white:\n if (alpha === 0) {\n gray = 0xFF;\n }\n else {\n const pixelR = imageBuffer[i];\n const pixelG = imageBuffer[i + 1];\n const pixelB = imageBuffer[i + 2];\n // .299R + 0.587G + 0.114B (YUV/YIQ for PAL and NTSC),\n // (306*R) >> 10 is approximately equal to R*0.299, and so on.\n // 0x200 >> 10 is 0.5, it implements rounding.\n gray = (306 * pixelR +\n 601 * pixelG +\n 117 * pixelB +\n 0x200) >> 10;\n }\n grayscaleBuffer[j] = gray;\n }\n return grayscaleBuffer;\n }\n getRow(y /*int*/, row) {\n if (y < 0 || y >= this.getHeight()) {\n throw new IllegalArgumentException('Requested row is outside the image: ' + y);\n }\n const width = this.getWidth();\n const start = y * width;\n if (row === null) {\n row = this.buffer.slice(start, start + width);\n }\n else {\n if (row.length < width) {\n row = new Uint8ClampedArray(width);\n }\n // The underlying raster of image consists of bytes with the luminance values\n // TODO: can avoid set/slice?\n row.set(this.buffer.slice(start, start + width));\n }\n return row;\n }\n getMatrix() {\n return this.buffer;\n }\n isCropSupported() {\n return true;\n }\n crop(left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n super.crop(left, top, width, height);\n return this;\n }\n /**\n * This is always true, since the image is a gray-scale image.\n *\n * @return true\n */\n isRotateSupported() {\n return true;\n }\n rotateCounterClockwise() {\n this.rotate(-90);\n return this;\n }\n rotateCounterClockwise45() {\n this.rotate(-45);\n return this;\n }\n getTempCanvasElement() {\n if (null === this.tempCanvasElement) {\n const tempCanvasElement = this.canvas.ownerDocument.createElement('canvas');\n tempCanvasElement.width = this.canvas.width;\n tempCanvasElement.height = this.canvas.height;\n this.tempCanvasElement = tempCanvasElement;\n }\n return this.tempCanvasElement;\n }\n rotate(angle) {\n const tempCanvasElement = this.getTempCanvasElement();\n const tempContext = tempCanvasElement.getContext('2d');\n const angleRadians = angle * HTMLCanvasElementLuminanceSource.DEGREE_TO_RADIANS;\n // Calculate and set new dimensions for temp canvas\n const width = this.canvas.width;\n const height = this.canvas.height;\n const newWidth = Math.ceil(Math.abs(Math.cos(angleRadians)) * width + Math.abs(Math.sin(angleRadians)) * height);\n const newHeight = Math.ceil(Math.abs(Math.sin(angleRadians)) * width + Math.abs(Math.cos(angleRadians)) * height);\n tempCanvasElement.width = newWidth;\n tempCanvasElement.height = newHeight;\n // Draw at center of temp canvas to prevent clipping of image data\n tempContext.translate(newWidth / 2, newHeight / 2);\n tempContext.rotate(angleRadians);\n tempContext.drawImage(this.canvas, width / -2, height / -2);\n this.buffer = HTMLCanvasElementLuminanceSource.makeBufferFromCanvasImageData(tempCanvasElement);\n return this;\n }\n invert() {\n return new InvertedLuminanceSource(this);\n }\n }\n HTMLCanvasElementLuminanceSource.DEGREE_TO_RADIANS = Math.PI / 180;\n\n /**\n * @deprecated Moving to @zxing/browser\n *\n * Video input device metadata containing the id and label of the device if available.\n */\n class VideoInputDevice {\n /**\n * Creates an instance of VideoInputDevice.\n *\n * @param {string} deviceId the video input device id\n * @param {string} label the label of the device if available\n */\n constructor(deviceId, label, groupId) {\n this.deviceId = deviceId;\n this.label = label;\n /** @inheritdoc */\n this.kind = 'videoinput';\n this.groupId = groupId || undefined;\n }\n /** @inheritdoc */\n toJSON() {\n return {\n kind: this.kind,\n groupId: this.groupId,\n deviceId: this.deviceId,\n label: this.label,\n };\n }\n }\n\n var __awaiter = ((globalThis || global || self || window || undefined) && (globalThis || global || self || window || undefined).__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };\n /**\n * @deprecated Moving to @zxing/browser\n *\n * Base class for browser code reader.\n */\n class BrowserCodeReader {\n /**\n * Creates an instance of BrowserCodeReader.\n * @param {Reader} reader The reader instance to decode the barcode\n * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent successful decode tries\n *\n * @memberOf BrowserCodeReader\n */\n constructor(reader, timeBetweenScansMillis = 500, _hints) {\n this.reader = reader;\n this.timeBetweenScansMillis = timeBetweenScansMillis;\n this._hints = _hints;\n /**\n * This will break the loop.\n */\n this._stopContinuousDecode = false;\n /**\n * This will break the loop.\n */\n this._stopAsyncDecode = false;\n /**\n * Delay time between decode attempts made by the scanner.\n */\n this._timeBetweenDecodingAttempts = 0;\n }\n /**\n * If navigator is present.\n */\n get hasNavigator() {\n return typeof navigator !== 'undefined';\n }\n /**\n * If mediaDevices under navigator is supported.\n */\n get isMediaDevicesSuported() {\n return this.hasNavigator && !!navigator.mediaDevices;\n }\n /**\n * If enumerateDevices under navigator is supported.\n */\n get canEnumerateDevices() {\n return !!(this.isMediaDevicesSuported && navigator.mediaDevices.enumerateDevices);\n }\n /** Time between two decoding tries in milli seconds. */\n get timeBetweenDecodingAttempts() {\n return this._timeBetweenDecodingAttempts;\n }\n /**\n * Change the time span the decoder waits between two decoding tries.\n *\n * @param {number} millis Time between two decoding tries in milli seconds.\n */\n set timeBetweenDecodingAttempts(millis) {\n this._timeBetweenDecodingAttempts = millis < 0 ? 0 : millis;\n }\n /**\n * Sets the hints.\n */\n set hints(hints) {\n this._hints = hints || null;\n }\n /**\n * Sets the hints.\n */\n get hints() {\n return this._hints;\n }\n /**\n * Lists all the available video input devices.\n */\n listVideoInputDevices() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this.hasNavigator) {\n throw new Error('Can\\'t enumerate devices, navigator is not present.');\n }\n if (!this.canEnumerateDevices) {\n throw new Error('Can\\'t enumerate devices, method not supported.');\n }\n const devices = yield navigator.mediaDevices.enumerateDevices();\n const videoDevices = [];\n for (const device of devices) {\n const kind = device.kind === 'video' ? 'videoinput' : device.kind;\n if (kind !== 'videoinput') {\n continue;\n }\n const deviceId = device.deviceId || device.id;\n const label = device.label || `Video device ${videoDevices.length + 1}`;\n const groupId = device.groupId;\n const videoDevice = { deviceId, label, kind, groupId };\n videoDevices.push(videoDevice);\n }\n return videoDevices;\n });\n }\n /**\n * Obtain the list of available devices with type 'videoinput'.\n *\n * @returns {PromiseEncapsulates the result of decoding a barcode within an image.
\n *\n * @author Sean Owen\n */\n class Result {\n // public constructor(private text: string,\n // Uint8Array rawBytes,\n // ResultPoconst resultPoints: Int32Array,\n // BarcodeFormat format) {\n // this(text, rawBytes, resultPoints, format, System.currentTimeMillis())\n // }\n // public constructor(text: string,\n // Uint8Array rawBytes,\n // ResultPoconst resultPoints: Int32Array,\n // BarcodeFormat format,\n // long timestamp) {\n // this(text, rawBytes, rawBytes == null ? 0 : 8 * rawBytes.length,\n // resultPoints, format, timestamp)\n // }\n constructor(text, rawBytes, numBits = rawBytes == null ? 0 : 8 * rawBytes.length, resultPoints, format, timestamp = System.currentTimeMillis()) {\n this.text = text;\n this.rawBytes = rawBytes;\n this.numBits = numBits;\n this.resultPoints = resultPoints;\n this.format = format;\n this.timestamp = timestamp;\n this.text = text;\n this.rawBytes = rawBytes;\n if (undefined === numBits || null === numBits) {\n this.numBits = (rawBytes === null || rawBytes === undefined) ? 0 : 8 * rawBytes.length;\n }\n else {\n this.numBits = numBits;\n }\n this.resultPoints = resultPoints;\n this.format = format;\n this.resultMetadata = null;\n if (undefined === timestamp || null === timestamp) {\n this.timestamp = System.currentTimeMillis();\n }\n else {\n this.timestamp = timestamp;\n }\n }\n /**\n * @return raw text encoded by the barcode\n */\n getText() {\n return this.text;\n }\n /**\n * @return raw bytes encoded by the barcode, if applicable, otherwise {@code null}\n */\n getRawBytes() {\n return this.rawBytes;\n }\n /**\n * @return how many bits of {@link #getRawBytes()} are valid; typically 8 times its length\n * @since 3.3.0\n */\n getNumBits() {\n return this.numBits;\n }\n /**\n * @return points related to the barcode in the image. These are typically points\n * identifying finder patterns or the corners of the barcode. The exact meaning is\n * specific to the type of barcode that was decoded.\n */\n getResultPoints() {\n return this.resultPoints;\n }\n /**\n * @return {@link BarcodeFormat} representing the format of the barcode that was decoded\n */\n getBarcodeFormat() {\n return this.format;\n }\n /**\n * @return {@link Map} mapping {@link ResultMetadataType} keys to values. May be\n * {@code null}. This contains optional metadata about what was detected about the barcode,\n * like orientation.\n */\n getResultMetadata() {\n return this.resultMetadata;\n }\n putMetadata(type, value) {\n if (this.resultMetadata === null) {\n this.resultMetadata = new Map();\n }\n this.resultMetadata.set(type, value);\n }\n putAllMetadata(metadata) {\n if (metadata !== null) {\n if (this.resultMetadata === null) {\n this.resultMetadata = metadata;\n }\n else {\n this.resultMetadata = new Map(metadata);\n }\n }\n }\n addResultPoints(newPoints) {\n const oldPoints = this.resultPoints;\n if (oldPoints === null) {\n this.resultPoints = newPoints;\n }\n else if (newPoints !== null && newPoints.length > 0) {\n const allPoints = new Array(oldPoints.length + newPoints.length);\n System.arraycopy(oldPoints, 0, allPoints, 0, oldPoints.length);\n System.arraycopy(newPoints, 0, allPoints, oldPoints.length, newPoints.length);\n this.resultPoints = allPoints;\n }\n }\n getTimestamp() {\n return this.timestamp;\n }\n /*@Override*/\n toString() {\n return this.text;\n }\n }\n\n /*\n * Direct port to TypeScript of ZXing by Adrian Toșcă\n */\n /*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /*namespace com.google.zxing {*/\n /**\n * Enumerates barcode formats known to this package. Please keep alphabetized.\n *\n * @author Sean Owen\n */\n var BarcodeFormat;\n (function (BarcodeFormat) {\n /** Aztec 2D barcode format. */\n BarcodeFormat[BarcodeFormat[\"AZTEC\"] = 0] = \"AZTEC\";\n /** CODABAR 1D format. */\n BarcodeFormat[BarcodeFormat[\"CODABAR\"] = 1] = \"CODABAR\";\n /** Code 39 1D format. */\n BarcodeFormat[BarcodeFormat[\"CODE_39\"] = 2] = \"CODE_39\";\n /** Code 93 1D format. */\n BarcodeFormat[BarcodeFormat[\"CODE_93\"] = 3] = \"CODE_93\";\n /** Code 128 1D format. */\n BarcodeFormat[BarcodeFormat[\"CODE_128\"] = 4] = \"CODE_128\";\n /** Data Matrix 2D barcode format. */\n BarcodeFormat[BarcodeFormat[\"DATA_MATRIX\"] = 5] = \"DATA_MATRIX\";\n /** EAN-8 1D format. */\n BarcodeFormat[BarcodeFormat[\"EAN_8\"] = 6] = \"EAN_8\";\n /** EAN-13 1D format. */\n BarcodeFormat[BarcodeFormat[\"EAN_13\"] = 7] = \"EAN_13\";\n /** ITF (Interleaved Two of Five) 1D format. */\n BarcodeFormat[BarcodeFormat[\"ITF\"] = 8] = \"ITF\";\n /** MaxiCode 2D barcode format. */\n BarcodeFormat[BarcodeFormat[\"MAXICODE\"] = 9] = \"MAXICODE\";\n /** PDF417 format. */\n BarcodeFormat[BarcodeFormat[\"PDF_417\"] = 10] = \"PDF_417\";\n /** QR Code 2D barcode format. */\n BarcodeFormat[BarcodeFormat[\"QR_CODE\"] = 11] = \"QR_CODE\";\n /** RSS 14 */\n BarcodeFormat[BarcodeFormat[\"RSS_14\"] = 12] = \"RSS_14\";\n /** RSS EXPANDED */\n BarcodeFormat[BarcodeFormat[\"RSS_EXPANDED\"] = 13] = \"RSS_EXPANDED\";\n /** UPC-A 1D format. */\n BarcodeFormat[BarcodeFormat[\"UPC_A\"] = 14] = \"UPC_A\";\n /** UPC-E 1D format. */\n BarcodeFormat[BarcodeFormat[\"UPC_E\"] = 15] = \"UPC_E\";\n /** UPC/EAN extension format. Not a stand-alone format. */\n BarcodeFormat[BarcodeFormat[\"UPC_EAN_EXTENSION\"] = 16] = \"UPC_EAN_EXTENSION\";\n })(BarcodeFormat || (BarcodeFormat = {}));\n var BarcodeFormat$1 = BarcodeFormat;\n\n /*namespace com.google.zxing {*/\n /**\n * Represents some type of metadata about the result of the decoding that the decoder\n * wishes to communicate back to the caller.\n *\n * @author Sean Owen\n */\n var ResultMetadataType;\n (function (ResultMetadataType) {\n /**\n * Unspecified, application-specific metadata. Maps to an unspecified {@link Object}.\n */\n ResultMetadataType[ResultMetadataType[\"OTHER\"] = 0] = \"OTHER\";\n /**\n * Denotes the likely approximate orientation of the barcode in the image. This value\n * is given as degrees rotated clockwise from the normal, upright orientation.\n * For example a 1D barcode which was found by reading top-to-bottom would be\n * said to have orientation \"90\". This key maps to an {@link Integer} whose\n * value is in the range [0,360).\n */\n ResultMetadataType[ResultMetadataType[\"ORIENTATION\"] = 1] = \"ORIENTATION\";\n /**\n *2D barcode formats typically encode text, but allow for a sort of 'byte mode'\n * which is sometimes used to encode binary data. While {@link Result} makes available\n * the complete raw bytes in the barcode for these formats, it does not offer the bytes\n * from the byte segments alone.
\n *\n *This maps to a {@link java.util.List} of byte arrays corresponding to the\n * raw bytes in the byte segments in the barcode, in order.
\n */\n ResultMetadataType[ResultMetadataType[\"BYTE_SEGMENTS\"] = 2] = \"BYTE_SEGMENTS\";\n /**\n * Error correction level used, if applicable. The value type depends on the\n * format, but is typically a String.\n */\n ResultMetadataType[ResultMetadataType[\"ERROR_CORRECTION_LEVEL\"] = 3] = \"ERROR_CORRECTION_LEVEL\";\n /**\n * For some periodicals, indicates the issue number as an {@link Integer}.\n */\n ResultMetadataType[ResultMetadataType[\"ISSUE_NUMBER\"] = 4] = \"ISSUE_NUMBER\";\n /**\n * For some products, indicates the suggested retail price in the barcode as a\n * formatted {@link String}.\n */\n ResultMetadataType[ResultMetadataType[\"SUGGESTED_PRICE\"] = 5] = \"SUGGESTED_PRICE\";\n /**\n * For some products, the possible country of manufacture as a {@link String} denoting the\n * ISO country code. Some map to multiple possible countries, like \"US/CA\".\n */\n ResultMetadataType[ResultMetadataType[\"POSSIBLE_COUNTRY\"] = 6] = \"POSSIBLE_COUNTRY\";\n /**\n * For some products, the extension text\n */\n ResultMetadataType[ResultMetadataType[\"UPC_EAN_EXTENSION\"] = 7] = \"UPC_EAN_EXTENSION\";\n /**\n * PDF417-specific metadata\n */\n ResultMetadataType[ResultMetadataType[\"PDF417_EXTRA_METADATA\"] = 8] = \"PDF417_EXTRA_METADATA\";\n /**\n * If the code format supports structured append and the current scanned code is part of one then the\n * sequence number is given with it.\n */\n ResultMetadataType[ResultMetadataType[\"STRUCTURED_APPEND_SEQUENCE\"] = 9] = \"STRUCTURED_APPEND_SEQUENCE\";\n /**\n * If the code format supports structured append and the current scanned code is part of one then the\n * parity is given with it.\n */\n ResultMetadataType[ResultMetadataType[\"STRUCTURED_APPEND_PARITY\"] = 10] = \"STRUCTURED_APPEND_PARITY\";\n })(ResultMetadataType || (ResultMetadataType = {}));\n var ResultMetadataType$1 = ResultMetadataType;\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /*namespace com.google.zxing.common {*/\n /*import java.util.List;*/\n /**\n *Encapsulates the result of decoding a matrix of bits. This typically\n * applies to 2D barcode formats. For now it contains the raw bytes obtained,\n * as well as a String interpretation of those bytes, if applicable.
\n *\n * @author Sean Owen\n */\n class DecoderResult {\n // public constructor(rawBytes: Uint8Array,\n // text: string,\n // ListThis class contains utility methods for performing mathematical operations over\n * the Galois Fields. Operations use a given primitive polynomial in calculations.
\n *\n *Throughout this package, elements of the GF are represented as an {@code int}\n * for convenience and speed (but at the cost of memory).\n *
\n *\n * @author Sean Owen\n * @author David Olivier\n */\n class AbstractGenericGF {\n /**\n * @return 2 to the power of a in GF(size)\n */\n exp(a) {\n return this.expTable[a];\n }\n /**\n * @return base 2 log of a in GF(size)\n */\n log(a /*int*/) {\n if (a === 0) {\n throw new IllegalArgumentException();\n }\n return this.logTable[a];\n }\n /**\n * Implements both addition and subtraction -- they are the same in GF(size).\n *\n * @return sum/difference of a and b\n */\n static addOrSubtract(a /*int*/, b /*int*/) {\n return a ^ b;\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *Represents a polynomial whose coefficients are elements of a GF.\n * Instances of this class are immutable.
\n *\n *Much credit is due to William Rucklidge since portions of this code are an indirect\n * port of his C++ Reed-Solomon implementation.
\n *\n * @author Sean Owen\n */\n class GenericGFPoly {\n /**\n * @param field the {@link GenericGF} instance representing the field to use\n * to perform computations\n * @param coefficients coefficients as ints representing elements of GF(size), arranged\n * from most significant (highest-power term) coefficient to least significant\n * @throws IllegalArgumentException if argument is null or empty,\n * or if leading coefficient is 0 and this is not a\n * constant polynomial (that is, it is not the monomial \"0\")\n */\n constructor(field, coefficients) {\n if (coefficients.length === 0) {\n throw new IllegalArgumentException();\n }\n this.field = field;\n const coefficientsLength = coefficients.length;\n if (coefficientsLength > 1 && coefficients[0] === 0) {\n // Leading term must be non-zero for anything except the constant polynomial \"0\"\n let firstNonZero = 1;\n while (firstNonZero < coefficientsLength && coefficients[firstNonZero] === 0) {\n firstNonZero++;\n }\n if (firstNonZero === coefficientsLength) {\n this.coefficients = Int32Array.from([0]);\n }\n else {\n this.coefficients = new Int32Array(coefficientsLength - firstNonZero);\n System.arraycopy(coefficients, firstNonZero, this.coefficients, 0, this.coefficients.length);\n }\n }\n else {\n this.coefficients = coefficients;\n }\n }\n getCoefficients() {\n return this.coefficients;\n }\n /**\n * @return degree of this polynomial\n */\n getDegree() {\n return this.coefficients.length - 1;\n }\n /**\n * @return true iff this polynomial is the monomial \"0\"\n */\n isZero() {\n return this.coefficients[0] === 0;\n }\n /**\n * @return coefficient of x^degree term in this polynomial\n */\n getCoefficient(degree /*int*/) {\n return this.coefficients[this.coefficients.length - 1 - degree];\n }\n /**\n * @return evaluation of this polynomial at a given point\n */\n evaluateAt(a /*int*/) {\n if (a === 0) {\n // Just return the x^0 coefficient\n return this.getCoefficient(0);\n }\n const coefficients = this.coefficients;\n let result;\n if (a === 1) {\n // Just the sum of the coefficients\n result = 0;\n for (let i = 0, length = coefficients.length; i !== length; i++) {\n const coefficient = coefficients[i];\n result = AbstractGenericGF.addOrSubtract(result, coefficient);\n }\n return result;\n }\n result = coefficients[0];\n const size = coefficients.length;\n const field = this.field;\n for (let i = 1; i < size; i++) {\n result = AbstractGenericGF.addOrSubtract(field.multiply(a, result), coefficients[i]);\n }\n return result;\n }\n addOrSubtract(other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException('GenericGFPolys do not have same GenericGF field');\n }\n if (this.isZero()) {\n return other;\n }\n if (other.isZero()) {\n return this;\n }\n let smallerCoefficients = this.coefficients;\n let largerCoefficients = other.coefficients;\n if (smallerCoefficients.length > largerCoefficients.length) {\n const temp = smallerCoefficients;\n smallerCoefficients = largerCoefficients;\n largerCoefficients = temp;\n }\n let sumDiff = new Int32Array(largerCoefficients.length);\n const lengthDiff = largerCoefficients.length - smallerCoefficients.length;\n // Copy high-order terms only found in higher-degree polynomial's coefficients\n System.arraycopy(largerCoefficients, 0, sumDiff, 0, lengthDiff);\n for (let i = lengthDiff; i < largerCoefficients.length; i++) {\n sumDiff[i] = AbstractGenericGF.addOrSubtract(smallerCoefficients[i - lengthDiff], largerCoefficients[i]);\n }\n return new GenericGFPoly(this.field, sumDiff);\n }\n multiply(other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException('GenericGFPolys do not have same GenericGF field');\n }\n if (this.isZero() || other.isZero()) {\n return this.field.getZero();\n }\n const aCoefficients = this.coefficients;\n const aLength = aCoefficients.length;\n const bCoefficients = other.coefficients;\n const bLength = bCoefficients.length;\n const product = new Int32Array(aLength + bLength - 1);\n const field = this.field;\n for (let i = 0; i < aLength; i++) {\n const aCoeff = aCoefficients[i];\n for (let j = 0; j < bLength; j++) {\n product[i + j] = AbstractGenericGF.addOrSubtract(product[i + j], field.multiply(aCoeff, bCoefficients[j]));\n }\n }\n return new GenericGFPoly(field, product);\n }\n multiplyScalar(scalar /*int*/) {\n if (scalar === 0) {\n return this.field.getZero();\n }\n if (scalar === 1) {\n return this;\n }\n const size = this.coefficients.length;\n const field = this.field;\n const product = new Int32Array(size);\n const coefficients = this.coefficients;\n for (let i = 0; i < size; i++) {\n product[i] = field.multiply(coefficients[i], scalar);\n }\n return new GenericGFPoly(field, product);\n }\n multiplyByMonomial(degree /*int*/, coefficient /*int*/) {\n if (degree < 0) {\n throw new IllegalArgumentException();\n }\n if (coefficient === 0) {\n return this.field.getZero();\n }\n const coefficients = this.coefficients;\n const size = coefficients.length;\n const product = new Int32Array(size + degree);\n const field = this.field;\n for (let i = 0; i < size; i++) {\n product[i] = field.multiply(coefficients[i], coefficient);\n }\n return new GenericGFPoly(field, product);\n }\n divide(other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException('GenericGFPolys do not have same GenericGF field');\n }\n if (other.isZero()) {\n throw new IllegalArgumentException('Divide by 0');\n }\n const field = this.field;\n let quotient = field.getZero();\n let remainder = this;\n const denominatorLeadingTerm = other.getCoefficient(other.getDegree());\n const inverseDenominatorLeadingTerm = field.inverse(denominatorLeadingTerm);\n while (remainder.getDegree() >= other.getDegree() && !remainder.isZero()) {\n const degreeDifference = remainder.getDegree() - other.getDegree();\n const scale = field.multiply(remainder.getCoefficient(remainder.getDegree()), inverseDenominatorLeadingTerm);\n const term = other.multiplyByMonomial(degreeDifference, scale);\n const iterationQuotient = field.buildMonomial(degreeDifference, scale);\n quotient = quotient.addOrSubtract(iterationQuotient);\n remainder = remainder.addOrSubtract(term);\n }\n return [quotient, remainder];\n }\n /*@Override*/\n toString() {\n let result = '';\n for (let degree = this.getDegree(); degree >= 0; degree--) {\n let coefficient = this.getCoefficient(degree);\n if (coefficient !== 0) {\n if (coefficient < 0) {\n result += ' - ';\n coefficient = -coefficient;\n }\n else {\n if (result.length > 0) {\n result += ' + ';\n }\n }\n if (degree === 0 || coefficient !== 1) {\n const alphaPower = this.field.log(coefficient);\n if (alphaPower === 0) {\n result += '1';\n }\n else if (alphaPower === 1) {\n result += 'a';\n }\n else {\n result += 'a^';\n result += alphaPower;\n }\n }\n if (degree !== 0) {\n if (degree === 1) {\n result += 'x';\n }\n else {\n result += 'x^';\n result += degree;\n }\n }\n }\n }\n return result;\n }\n }\n\n /**\n * Custom Error class of type Exception.\n */\n class ArithmeticException extends Exception {\n }\n ArithmeticException.kind = 'ArithmeticException';\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *This class contains utility methods for performing mathematical operations over\n * the Galois Fields. Operations use a given primitive polynomial in calculations.
\n *\n *Throughout this package, elements of the GF are represented as an {@code int}\n * for convenience and speed (but at the cost of memory).\n *
\n *\n * @author Sean Owen\n * @author David Olivier\n */\n class GenericGF extends AbstractGenericGF {\n /**\n * Create a representation of GF(size) using the given primitive polynomial.\n *\n * @param primitive irreducible polynomial whose coefficients are represented by\n * the bits of an int, where the least-significant bit represents the constant\n * coefficient\n * @param size the size of the field\n * @param b the factor b in the generator polynomial can be 0- or 1-based\n * (g(x) = (x+a^b)(x+a^(b+1))...(x+a^(b+2t-1))).\n * In most cases it should be 1, but for QR code it is 0.\n */\n constructor(primitive /*int*/, size /*int*/, generatorBase /*int*/) {\n super();\n this.primitive = primitive;\n this.size = size;\n this.generatorBase = generatorBase;\n const expTable = new Int32Array(size);\n let x = 1;\n for (let i = 0; i < size; i++) {\n expTable[i] = x;\n x *= 2; // we're assuming the generator alpha is 2\n if (x >= size) {\n x ^= primitive;\n x &= size - 1;\n }\n }\n this.expTable = expTable;\n const logTable = new Int32Array(size);\n for (let i = 0; i < size - 1; i++) {\n logTable[expTable[i]] = i;\n }\n this.logTable = logTable;\n // logTable[0] == 0 but this should never be used\n this.zero = new GenericGFPoly(this, Int32Array.from([0]));\n this.one = new GenericGFPoly(this, Int32Array.from([1]));\n }\n getZero() {\n return this.zero;\n }\n getOne() {\n return this.one;\n }\n /**\n * @return the monomial representing coefficient * x^degree\n */\n buildMonomial(degree /*int*/, coefficient /*int*/) {\n if (degree < 0) {\n throw new IllegalArgumentException();\n }\n if (coefficient === 0) {\n return this.zero;\n }\n const coefficients = new Int32Array(degree + 1);\n coefficients[0] = coefficient;\n return new GenericGFPoly(this, coefficients);\n }\n /**\n * @return multiplicative inverse of a\n */\n inverse(a /*int*/) {\n if (a === 0) {\n throw new ArithmeticException();\n }\n return this.expTable[this.size - this.logTable[a] - 1];\n }\n /**\n * @return product of a and b in GF(size)\n */\n multiply(a /*int*/, b /*int*/) {\n if (a === 0 || b === 0) {\n return 0;\n }\n return this.expTable[(this.logTable[a] + this.logTable[b]) % (this.size - 1)];\n }\n getSize() {\n return this.size;\n }\n getGeneratorBase() {\n return this.generatorBase;\n }\n /*@Override*/\n toString() {\n return ('GF(0x' + Integer.toHexString(this.primitive) + ',' + this.size + ')');\n }\n equals(o) {\n return o === this;\n }\n }\n GenericGF.AZTEC_DATA_12 = new GenericGF(0x1069, 4096, 1); // x^12 + x^6 + x^5 + x^3 + 1\n GenericGF.AZTEC_DATA_10 = new GenericGF(0x409, 1024, 1); // x^10 + x^3 + 1\n GenericGF.AZTEC_DATA_6 = new GenericGF(0x43, 64, 1); // x^6 + x + 1\n GenericGF.AZTEC_PARAM = new GenericGF(0x13, 16, 1); // x^4 + x + 1\n GenericGF.QR_CODE_FIELD_256 = new GenericGF(0x011d, 256, 0); // x^8 + x^4 + x^3 + x^2 + 1\n GenericGF.DATA_MATRIX_FIELD_256 = new GenericGF(0x012d, 256, 1); // x^8 + x^5 + x^3 + x^2 + 1\n GenericGF.AZTEC_DATA_8 = GenericGF.DATA_MATRIX_FIELD_256;\n GenericGF.MAXICODE_FIELD_64 = GenericGF.AZTEC_DATA_6;\n\n /**\n * Custom Error class of type Exception.\n */\n class ReedSolomonException extends Exception {\n }\n ReedSolomonException.kind = 'ReedSolomonException';\n\n /**\n * Custom Error class of type Exception.\n */\n class IllegalStateException extends Exception {\n }\n IllegalStateException.kind = 'IllegalStateException';\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *Implements Reed-Solomon decoding, as the name implies.
\n *\n *The algorithm will not be explained here, but the following references were helpful\n * in creating this implementation:
\n *\n *Much credit is due to William Rucklidge since portions of this code are an indirect\n * port of his C++ Reed-Solomon implementation.
\n *\n * @author Sean Owen\n * @author William Rucklidge\n * @author sanfordsquires\n */\n class ReedSolomonDecoder {\n constructor(field) {\n this.field = field;\n }\n /**\n *Decodes given set of received codewords, which include both data and error-correction\n * codewords. Really, this means it uses Reed-Solomon to detect and correct errors, in-place,\n * in the input.
\n *\n * @param received data and error-correction codewords\n * @param twoS number of error-correction codewords available\n * @throws ReedSolomonException if decoding fails for any reason\n */\n decode(received, twoS /*int*/) {\n const field = this.field;\n const poly = new GenericGFPoly(field, received);\n const syndromeCoefficients = new Int32Array(twoS);\n let noError = true;\n for (let i = 0; i < twoS; i++) {\n const evalResult = poly.evaluateAt(field.exp(i + field.getGeneratorBase()));\n syndromeCoefficients[syndromeCoefficients.length - 1 - i] = evalResult;\n if (evalResult !== 0) {\n noError = false;\n }\n }\n if (noError) {\n return;\n }\n const syndrome = new GenericGFPoly(field, syndromeCoefficients);\n const sigmaOmega = this.runEuclideanAlgorithm(field.buildMonomial(twoS, 1), syndrome, twoS);\n const sigma = sigmaOmega[0];\n const omega = sigmaOmega[1];\n const errorLocations = this.findErrorLocations(sigma);\n const errorMagnitudes = this.findErrorMagnitudes(omega, errorLocations);\n for (let i = 0; i < errorLocations.length; i++) {\n const position = received.length - 1 - field.log(errorLocations[i]);\n if (position < 0) {\n throw new ReedSolomonException('Bad error location');\n }\n received[position] = GenericGF.addOrSubtract(received[position], errorMagnitudes[i]);\n }\n }\n runEuclideanAlgorithm(a, b, R /*int*/) {\n // Assume a's degree is >= b's\n if (a.getDegree() < b.getDegree()) {\n const temp = a;\n a = b;\n b = temp;\n }\n const field = this.field;\n let rLast = a;\n let r = b;\n let tLast = field.getZero();\n let t = field.getOne();\n // Run Euclidean algorithm until r's degree is less than R/2\n while (r.getDegree() >= (R / 2 | 0)) {\n let rLastLast = rLast;\n let tLastLast = tLast;\n rLast = r;\n tLast = t;\n // Divide rLastLast by rLast, with quotient in q and remainder in r\n if (rLast.isZero()) {\n // Oops, Euclidean algorithm already terminated?\n throw new ReedSolomonException('r_{i-1} was zero');\n }\n r = rLastLast;\n let q = field.getZero();\n const denominatorLeadingTerm = rLast.getCoefficient(rLast.getDegree());\n const dltInverse = field.inverse(denominatorLeadingTerm);\n while (r.getDegree() >= rLast.getDegree() && !r.isZero()) {\n const degreeDiff = r.getDegree() - rLast.getDegree();\n const scale = field.multiply(r.getCoefficient(r.getDegree()), dltInverse);\n q = q.addOrSubtract(field.buildMonomial(degreeDiff, scale));\n r = r.addOrSubtract(rLast.multiplyByMonomial(degreeDiff, scale));\n }\n t = q.multiply(tLast).addOrSubtract(tLastLast);\n if (r.getDegree() >= rLast.getDegree()) {\n throw new IllegalStateException('Division algorithm failed to reduce polynomial?');\n }\n }\n const sigmaTildeAtZero = t.getCoefficient(0);\n if (sigmaTildeAtZero === 0) {\n throw new ReedSolomonException('sigmaTilde(0) was zero');\n }\n const inverse = field.inverse(sigmaTildeAtZero);\n const sigma = t.multiplyScalar(inverse);\n const omega = r.multiplyScalar(inverse);\n return [sigma, omega];\n }\n findErrorLocations(errorLocator) {\n // This is a direct application of Chien's search\n const numErrors = errorLocator.getDegree();\n if (numErrors === 1) { // shortcut\n return Int32Array.from([errorLocator.getCoefficient(1)]);\n }\n const result = new Int32Array(numErrors);\n let e = 0;\n const field = this.field;\n for (let i = 1; i < field.getSize() && e < numErrors; i++) {\n if (errorLocator.evaluateAt(i) === 0) {\n result[e] = field.inverse(i);\n e++;\n }\n }\n if (e !== numErrors) {\n throw new ReedSolomonException('Error locator degree does not match number of roots');\n }\n return result;\n }\n findErrorMagnitudes(errorEvaluator, errorLocations) {\n // This is directly applying Forney's Formula\n const s = errorLocations.length;\n const result = new Int32Array(s);\n const field = this.field;\n for (let i = 0; i < s; i++) {\n const xiInverse = field.inverse(errorLocations[i]);\n let denominator = 1;\n for (let j = 0; j < s; j++) {\n if (i !== j) {\n // denominator = field.multiply(denominator,\n // GenericGF.addOrSubtract(1, field.multiply(errorLocations[j], xiInverse)))\n // Above should work but fails on some Apple and Linux JDKs due to a Hotspot bug.\n // Below is a funny-looking workaround from Steven Parkes\n const term = field.multiply(errorLocations[j], xiInverse);\n const termPlus1 = (term & 0x1) === 0 ? term | 1 : term & ~1;\n denominator = field.multiply(denominator, termPlus1);\n }\n }\n result[i] = field.multiply(errorEvaluator.evaluateAt(xiInverse), field.inverse(denominator));\n if (field.getGeneratorBase() !== 0) {\n result[i] = field.multiply(result[i], xiInverse);\n }\n }\n return result;\n }\n }\n\n /*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n // import java.util.Arrays;\n var Table;\n (function (Table) {\n Table[Table[\"UPPER\"] = 0] = \"UPPER\";\n Table[Table[\"LOWER\"] = 1] = \"LOWER\";\n Table[Table[\"MIXED\"] = 2] = \"MIXED\";\n Table[Table[\"DIGIT\"] = 3] = \"DIGIT\";\n Table[Table[\"PUNCT\"] = 4] = \"PUNCT\";\n Table[Table[\"BINARY\"] = 5] = \"BINARY\";\n })(Table || (Table = {}));\n /**\n *The main class which implements Aztec Code decoding -- as opposed to locating and extracting\n * the Aztec Code from an image.
\n *\n * @author David Olivier\n */\n class Decoder {\n decode(detectorResult) {\n this.ddata = detectorResult;\n let matrix = detectorResult.getBits();\n let rawbits = this.extractBits(matrix);\n let correctedBits = this.correctBits(rawbits);\n let rawBytes = Decoder.convertBoolArrayToByteArray(correctedBits);\n let result = Decoder.getEncodedData(correctedBits);\n let decoderResult = new DecoderResult(rawBytes, result, null, null);\n decoderResult.setNumBits(correctedBits.length);\n return decoderResult;\n }\n // This method is used for testing the high-level encoder\n static highLevelDecode(correctedBits) {\n return this.getEncodedData(correctedBits);\n }\n /**\n * Gets the string encoded in the aztec code bits\n *\n * @return the decoded string\n */\n static getEncodedData(correctedBits) {\n let endIndex = correctedBits.length;\n let latchTable = Table.UPPER; // table most recently latched to\n let shiftTable = Table.UPPER; // table to use for the next read\n let result = '';\n let index = 0;\n while (index < endIndex) {\n if (shiftTable === Table.BINARY) {\n if (endIndex - index < 5) {\n break;\n }\n let length = Decoder.readCode(correctedBits, index, 5);\n index += 5;\n if (length === 0) {\n if (endIndex - index < 11) {\n break;\n }\n length = Decoder.readCode(correctedBits, index, 11) + 31;\n index += 11;\n }\n for (let charCount = 0; charCount < length; charCount++) {\n if (endIndex - index < 8) {\n index = endIndex; // Force outer loop to exit\n break;\n }\n const code = Decoder.readCode(correctedBits, index, 8);\n result += /*(char)*/ StringUtils.castAsNonUtf8Char(code);\n index += 8;\n }\n // Go back to whatever mode we had been in\n shiftTable = latchTable;\n }\n else {\n let size = shiftTable === Table.DIGIT ? 4 : 5;\n if (endIndex - index < size) {\n break;\n }\n let code = Decoder.readCode(correctedBits, index, size);\n index += size;\n let str = Decoder.getCharacter(shiftTable, code);\n if (str.startsWith('CTRL_')) {\n // Table changes\n // ISO/IEC 24778:2008 prescribes ending a shift sequence in the mode from which it was invoked.\n // That's including when that mode is a shift.\n // Our test case dlusbs.png for issue #642 exercises that.\n latchTable = shiftTable; // Latch the current mode, so as to return to Upper after U/S B/S\n shiftTable = Decoder.getTable(str.charAt(5));\n if (str.charAt(6) === 'L') {\n latchTable = shiftTable;\n }\n }\n else {\n result += str;\n // Go back to whatever mode we had been in\n shiftTable = latchTable;\n }\n }\n }\n return result;\n }\n /**\n * gets the table corresponding to the char passed\n */\n static getTable(t) {\n switch (t) {\n case 'L':\n return Table.LOWER;\n case 'P':\n return Table.PUNCT;\n case 'M':\n return Table.MIXED;\n case 'D':\n return Table.DIGIT;\n case 'B':\n return Table.BINARY;\n case 'U':\n default:\n return Table.UPPER;\n }\n }\n /**\n * Gets the character (or string) corresponding to the passed code in the given table\n *\n * @param table the table used\n * @param code the code of the character\n */\n static getCharacter(table, code) {\n switch (table) {\n case Table.UPPER:\n return Decoder.UPPER_TABLE[code];\n case Table.LOWER:\n return Decoder.LOWER_TABLE[code];\n case Table.MIXED:\n return Decoder.MIXED_TABLE[code];\n case Table.PUNCT:\n return Decoder.PUNCT_TABLE[code];\n case Table.DIGIT:\n return Decoder.DIGIT_TABLE[code];\n default:\n // Should not reach here.\n throw new IllegalStateException('Bad table');\n }\n }\n /**\n *Performs RS error correction on an array of bits.
\n *\n * @return the corrected array\n * @throws FormatException if the input contains too many errors\n */\n correctBits(rawbits) {\n let gf;\n let codewordSize;\n if (this.ddata.getNbLayers() <= 2) {\n codewordSize = 6;\n gf = GenericGF.AZTEC_DATA_6;\n }\n else if (this.ddata.getNbLayers() <= 8) {\n codewordSize = 8;\n gf = GenericGF.AZTEC_DATA_8;\n }\n else if (this.ddata.getNbLayers() <= 22) {\n codewordSize = 10;\n gf = GenericGF.AZTEC_DATA_10;\n }\n else {\n codewordSize = 12;\n gf = GenericGF.AZTEC_DATA_12;\n }\n let numDataCodewords = this.ddata.getNbDatablocks();\n let numCodewords = rawbits.length / codewordSize;\n if (numCodewords < numDataCodewords) {\n throw new FormatException();\n }\n let offset = rawbits.length % codewordSize;\n let dataWords = new Int32Array(numCodewords);\n for (let i = 0; i < numCodewords; i++, offset += codewordSize) {\n dataWords[i] = Decoder.readCode(rawbits, offset, codewordSize);\n }\n try {\n let rsDecoder = new ReedSolomonDecoder(gf);\n rsDecoder.decode(dataWords, numCodewords - numDataCodewords);\n }\n catch (ex) {\n throw new FormatException(ex);\n }\n // Now perform the unstuffing operation.\n // First, count how many bits are going to be thrown out as stuffing\n let mask = (1 << codewordSize) - 1;\n let stuffedBits = 0;\n for (let i = 0; i < numDataCodewords; i++) {\n let dataWord = dataWords[i];\n if (dataWord === 0 || dataWord === mask) {\n throw new FormatException();\n }\n else if (dataWord === 1 || dataWord === mask - 1) {\n stuffedBits++;\n }\n }\n // Now, actually unpack the bits and remove the stuffing\n let correctedBits = new Array(numDataCodewords * codewordSize - stuffedBits);\n let index = 0;\n for (let i = 0; i < numDataCodewords; i++) {\n let dataWord = dataWords[i];\n if (dataWord === 1 || dataWord === mask - 1) {\n // next codewordSize-1 bits are all zeros or all ones\n correctedBits.fill(dataWord > 1, index, index + codewordSize - 1);\n // Arrays.fill(correctedBits, index, index + codewordSize - 1, dataWord > 1);\n index += codewordSize - 1;\n }\n else {\n for (let bit = codewordSize - 1; bit >= 0; --bit) {\n correctedBits[index++] = (dataWord & (1 << bit)) !== 0;\n }\n }\n }\n return correctedBits;\n }\n /**\n * Gets the array of bits from an Aztec Code matrix\n *\n * @return the array of bits\n */\n extractBits(matrix) {\n let compact = this.ddata.isCompact();\n let layers = this.ddata.getNbLayers();\n let baseMatrixSize = (compact ? 11 : 14) + layers * 4; // not including alignment lines\n let alignmentMap = new Int32Array(baseMatrixSize);\n let rawbits = new Array(this.totalBitsInLayer(layers, compact));\n if (compact) {\n for (let i = 0; i < alignmentMap.length; i++) {\n alignmentMap[i] = i;\n }\n }\n else {\n let matrixSize = baseMatrixSize + 1 + 2 * Integer.truncDivision((Integer.truncDivision(baseMatrixSize, 2) - 1), 15);\n let origCenter = baseMatrixSize / 2;\n let center = Integer.truncDivision(matrixSize, 2);\n for (let i = 0; i < origCenter; i++) {\n let newOffset = i + Integer.truncDivision(i, 15);\n alignmentMap[origCenter - i - 1] = center - newOffset - 1;\n alignmentMap[origCenter + i] = center + newOffset + 1;\n }\n }\n for (let i = 0, rowOffset = 0; i < layers; i++) {\n let rowSize = (layers - i) * 4 + (compact ? 9 : 12);\n // The top-left most point of this layer isEncapsulates a point of interest in an image containing a barcode. Typically, this\n * would be the location of a finder pattern or the corner of the barcode, for example.
\n *\n * @author Sean Owen\n */\n class ResultPoint {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n getX() {\n return this.x;\n }\n getY() {\n return this.y;\n }\n /*@Override*/\n equals(other) {\n if (other instanceof ResultPoint) {\n const otherPoint = other;\n return this.x === otherPoint.x && this.y === otherPoint.y;\n }\n return false;\n }\n /*@Override*/\n hashCode() {\n return 31 * Float.floatToIntBits(this.x) + Float.floatToIntBits(this.y);\n }\n /*@Override*/\n toString() {\n return '(' + this.x + ',' + this.y + ')';\n }\n /**\n * Orders an array of three ResultPoints in an order [A,B,C] such that AB is less than AC\n * and BC is less than AC, and the angle between BC and BA is less than 180 degrees.\n *\n * @param patterns array of three {@code ResultPoint} to order\n */\n static orderBestPatterns(patterns) {\n // Find distances between pattern centers\n const zeroOneDistance = this.distance(patterns[0], patterns[1]);\n const oneTwoDistance = this.distance(patterns[1], patterns[2]);\n const zeroTwoDistance = this.distance(patterns[0], patterns[2]);\n let pointA;\n let pointB;\n let pointC;\n // Assume one closest to other two is B; A and C will just be guesses at first\n if (oneTwoDistance >= zeroOneDistance && oneTwoDistance >= zeroTwoDistance) {\n pointB = patterns[0];\n pointA = patterns[1];\n pointC = patterns[2];\n }\n else if (zeroTwoDistance >= oneTwoDistance && zeroTwoDistance >= zeroOneDistance) {\n pointB = patterns[1];\n pointA = patterns[0];\n pointC = patterns[2];\n }\n else {\n pointB = patterns[2];\n pointA = patterns[0];\n pointC = patterns[1];\n }\n // Use cross product to figure out whether A and C are correct or flipped.\n // This asks whether BC x BA has a positive z component, which is the arrangement\n // we want for A, B, C. If it's negative, then we've got it flipped around and\n // should swap A and C.\n if (this.crossProductZ(pointA, pointB, pointC) < 0.0) {\n const temp = pointA;\n pointA = pointC;\n pointC = temp;\n }\n patterns[0] = pointA;\n patterns[1] = pointB;\n patterns[2] = pointC;\n }\n /**\n * @param pattern1 first pattern\n * @param pattern2 second pattern\n * @return distance between two points\n */\n static distance(pattern1, pattern2) {\n return MathUtils.distance(pattern1.x, pattern1.y, pattern2.x, pattern2.y);\n }\n /**\n * Returns the z component of the cross product between vectors BC and BA.\n */\n static crossProductZ(pointA, pointB, pointC) {\n const bX = pointB.x;\n const bY = pointB.y;\n return ((pointC.x - bX) * (pointA.y - bY)) - ((pointC.y - bY) * (pointA.x - bX));\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *Encapsulates the result of detecting a barcode in an image. This includes the raw\n * matrix of black/white pixels corresponding to the barcode, and possibly points of interest\n * in the image, like the location of finder patterns or corners of the barcode in the image.
\n *\n * @author Sean Owen\n */\n class DetectorResult {\n constructor(bits, points) {\n this.bits = bits;\n this.points = points;\n }\n getBits() {\n return this.bits;\n }\n getPoints() {\n return this.points;\n }\n }\n\n /*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *Extends {@link DetectorResult} with more information specific to the Aztec format,\n * like the number of layers and whether it's compact.
\n *\n * @author Sean Owen\n */\n class AztecDetectorResult extends DetectorResult {\n constructor(bits, points, compact, nbDatablocks, nbLayers) {\n super(bits, points);\n this.compact = compact;\n this.nbDatablocks = nbDatablocks;\n this.nbLayers = nbLayers;\n }\n getNbLayers() {\n return this.nbLayers;\n }\n getNbDatablocks() {\n return this.nbDatablocks;\n }\n isCompact() {\n return this.compact;\n }\n }\n\n /*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *\n * Detects a candidate barcode-like rectangular region within an image. It\n * starts around the center of the image, increases the size of the candidate\n * region until it finds a white rectangular region. By keeping track of the\n * last black points it encountered, it determines the corners of the barcode.\n *
\n *\n * @author David Olivier\n */\n class WhiteRectangleDetector {\n // public constructor(private image: BitMatrix) /*throws NotFoundException*/ {\n // this(image, INIT_SIZE, image.getWidth() / 2, image.getHeight() / 2)\n // }\n /**\n * @param image barcode image to find a rectangle in\n * @param initSize initial size of search area around center\n * @param x x position of search center\n * @param y y position of search center\n * @throws NotFoundException if image is too small to accommodate {@code initSize}\n */\n constructor(image, initSize /*int*/, x /*int*/, y /*int*/) {\n this.image = image;\n this.height = image.getHeight();\n this.width = image.getWidth();\n if (undefined === initSize || null === initSize) {\n initSize = WhiteRectangleDetector.INIT_SIZE;\n }\n if (undefined === x || null === x) {\n x = image.getWidth() / 2 | 0;\n }\n if (undefined === y || null === y) {\n y = image.getHeight() / 2 | 0;\n }\n const halfsize = initSize / 2 | 0;\n this.leftInit = x - halfsize;\n this.rightInit = x + halfsize;\n this.upInit = y - halfsize;\n this.downInit = y + halfsize;\n if (this.upInit < 0 || this.leftInit < 0 || this.downInit >= this.height || this.rightInit >= this.width) {\n throw new NotFoundException();\n }\n }\n /**\n *\n * Detects a candidate barcode-like rectangular region within an image. It\n * starts around the center of the image, increases the size of the candidate\n * region until it finds a white rectangular region.\n *
\n *\n * @return {@link ResultPoint}[] describing the corners of the rectangular\n * region. The first and last points are opposed on the diagonal, as\n * are the second and third. The first point will be the topmost\n * point and the last, the bottommost. The second point will be\n * leftmost and the third, the rightmost\n * @throws NotFoundException if no Data Matrix Code can be found\n */\n detect() {\n let left = this.leftInit;\n let right = this.rightInit;\n let up = this.upInit;\n let down = this.downInit;\n let sizeExceeded = false;\n let aBlackPointFoundOnBorder = true;\n let atLeastOneBlackPointFoundOnBorder = false;\n let atLeastOneBlackPointFoundOnRight = false;\n let atLeastOneBlackPointFoundOnBottom = false;\n let atLeastOneBlackPointFoundOnLeft = false;\n let atLeastOneBlackPointFoundOnTop = false;\n const width = this.width;\n const height = this.height;\n while (aBlackPointFoundOnBorder) {\n aBlackPointFoundOnBorder = false;\n // .....\n // . |\n // .....\n let rightBorderNotWhite = true;\n while ((rightBorderNotWhite || !atLeastOneBlackPointFoundOnRight) && right < width) {\n rightBorderNotWhite = this.containsBlackPoint(up, down, right, false);\n if (rightBorderNotWhite) {\n right++;\n aBlackPointFoundOnBorder = true;\n atLeastOneBlackPointFoundOnRight = true;\n }\n else if (!atLeastOneBlackPointFoundOnRight) {\n right++;\n }\n }\n if (right >= width) {\n sizeExceeded = true;\n break;\n }\n // .....\n // . .\n // .___.\n let bottomBorderNotWhite = true;\n while ((bottomBorderNotWhite || !atLeastOneBlackPointFoundOnBottom) && down < height) {\n bottomBorderNotWhite = this.containsBlackPoint(left, right, down, true);\n if (bottomBorderNotWhite) {\n down++;\n aBlackPointFoundOnBorder = true;\n atLeastOneBlackPointFoundOnBottom = true;\n }\n else if (!atLeastOneBlackPointFoundOnBottom) {\n down++;\n }\n }\n if (down >= height) {\n sizeExceeded = true;\n break;\n }\n // .....\n // | .\n // .....\n let leftBorderNotWhite = true;\n while ((leftBorderNotWhite || !atLeastOneBlackPointFoundOnLeft) && left >= 0) {\n leftBorderNotWhite = this.containsBlackPoint(up, down, left, false);\n if (leftBorderNotWhite) {\n left--;\n aBlackPointFoundOnBorder = true;\n atLeastOneBlackPointFoundOnLeft = true;\n }\n else if (!atLeastOneBlackPointFoundOnLeft) {\n left--;\n }\n }\n if (left < 0) {\n sizeExceeded = true;\n break;\n }\n // .___.\n // . .\n // .....\n let topBorderNotWhite = true;\n while ((topBorderNotWhite || !atLeastOneBlackPointFoundOnTop) && up >= 0) {\n topBorderNotWhite = this.containsBlackPoint(left, right, up, true);\n if (topBorderNotWhite) {\n up--;\n aBlackPointFoundOnBorder = true;\n atLeastOneBlackPointFoundOnTop = true;\n }\n else if (!atLeastOneBlackPointFoundOnTop) {\n up--;\n }\n }\n if (up < 0) {\n sizeExceeded = true;\n break;\n }\n if (aBlackPointFoundOnBorder) {\n atLeastOneBlackPointFoundOnBorder = true;\n }\n }\n if (!sizeExceeded && atLeastOneBlackPointFoundOnBorder) {\n const maxSize = right - left;\n let z = null;\n for (let i = 1; z === null && i < maxSize; i++) {\n z = this.getBlackPointOnSegment(left, down - i, left + i, down);\n }\n if (z == null) {\n throw new NotFoundException();\n }\n let t = null;\n // go down right\n for (let i = 1; t === null && i < maxSize; i++) {\n t = this.getBlackPointOnSegment(left, up + i, left + i, up);\n }\n if (t == null) {\n throw new NotFoundException();\n }\n let x = null;\n // go down left\n for (let i = 1; x === null && i < maxSize; i++) {\n x = this.getBlackPointOnSegment(right, up + i, right - i, up);\n }\n if (x == null) {\n throw new NotFoundException();\n }\n let y = null;\n // go up left\n for (let i = 1; y === null && i < maxSize; i++) {\n y = this.getBlackPointOnSegment(right, down - i, right - i, down);\n }\n if (y == null) {\n throw new NotFoundException();\n }\n return this.centerEdges(y, z, x, t);\n }\n else {\n throw new NotFoundException();\n }\n }\n getBlackPointOnSegment(aX /*float*/, aY /*float*/, bX /*float*/, bY /*float*/) {\n const dist = MathUtils.round(MathUtils.distance(aX, aY, bX, bY));\n const xStep = (bX - aX) / dist;\n const yStep = (bY - aY) / dist;\n const image = this.image;\n for (let i = 0; i < dist; i++) {\n const x = MathUtils.round(aX + i * xStep);\n const y = MathUtils.round(aY + i * yStep);\n if (image.get(x, y)) {\n return new ResultPoint(x, y);\n }\n }\n return null;\n }\n /**\n * recenters the points of a constant distance towards the center\n *\n * @param y bottom most point\n * @param z left most point\n * @param x right most point\n * @param t top most point\n * @return {@link ResultPoint}[] describing the corners of the rectangular\n * region. The first and last points are opposed on the diagonal, as\n * are the second and third. The first point will be the topmost\n * point and the last, the bottommost. The second point will be\n * leftmost and the third, the rightmost\n */\n centerEdges(y, z, x, t) {\n //\n // t t\n // z x\n // x OR z\n // y y\n //\n const yi = y.getX();\n const yj = y.getY();\n const zi = z.getX();\n const zj = z.getY();\n const xi = x.getX();\n const xj = x.getY();\n const ti = t.getX();\n const tj = t.getY();\n const CORR = WhiteRectangleDetector.CORR;\n if (yi < this.width / 2.0) {\n return [\n new ResultPoint(ti - CORR, tj + CORR),\n new ResultPoint(zi + CORR, zj + CORR),\n new ResultPoint(xi - CORR, xj - CORR),\n new ResultPoint(yi + CORR, yj - CORR)\n ];\n }\n else {\n return [\n new ResultPoint(ti + CORR, tj + CORR),\n new ResultPoint(zi + CORR, zj - CORR),\n new ResultPoint(xi - CORR, xj + CORR),\n new ResultPoint(yi - CORR, yj - CORR)\n ];\n }\n }\n /**\n * Determines whether a segment contains a black point\n *\n * @param a min value of the scanned coordinate\n * @param b max value of the scanned coordinate\n * @param fixed value of fixed coordinate\n * @param horizontal set to true if scan must be horizontal, false if vertical\n * @return true if a black point has been found, else false.\n */\n containsBlackPoint(a /*int*/, b /*int*/, fixed /*int*/, horizontal) {\n const image = this.image;\n if (horizontal) {\n for (let x = a; x <= b; x++) {\n if (image.get(x, fixed)) {\n return true;\n }\n }\n }\n else {\n for (let y = a; y <= b; y++) {\n if (image.get(fixed, y)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n WhiteRectangleDetector.INIT_SIZE = 10;\n WhiteRectangleDetector.CORR = 1;\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * Implementations of this class can, given locations of finder patterns for a QR code in an\n * image, sample the right points in the image to reconstruct the QR code, accounting for\n * perspective distortion. It is abstracted since it is relatively expensive and should be allowed\n * to take advantage of platform-specific optimized implementations, like Sun's Java Advanced\n * Imaging library, but which may not be available in other environments such as J2ME, and vice\n * versa.\n *\n * The implementation used can be controlled by calling {@link #setGridSampler(GridSampler)}\n * with an instance of a class which implements this interface.\n *\n * @author Sean Owen\n */\n class GridSampler {\n /**\n *Checks a set of points that have been transformed to sample points on an image against\n * the image's dimensions to see if the point are even within the image.
\n *\n *This method will actually \"nudge\" the endpoints back onto the image if they are found to be\n * barely (less than 1 pixel) off the image. This accounts for imperfect detection of finder\n * patterns in an image where the QR Code runs all the way to the image border.
\n *\n *For efficiency, the method will check points from either end of the line until one is found\n * to be within the image. Because the set of points are assumed to be linear, this is valid.
\n *\n * @param image image into which the points should map\n * @param points actual points in x1,y1,...,xn,yn form\n * @throws NotFoundException if an endpoint is lies outside the image boundaries\n */\n static checkAndNudgePoints(image, points) {\n const width = image.getWidth();\n const height = image.getHeight();\n // Check and nudge points from start until we see some that are OK:\n let nudged = true;\n for (let offset = 0; offset < points.length && nudged; offset += 2) {\n const x = Math.floor(points[offset]);\n const y = Math.floor(points[offset + 1]);\n if (x < -1 || x > width || y < -1 || y > height) {\n throw new NotFoundException();\n }\n nudged = false;\n if (x === -1) {\n points[offset] = 0.0;\n nudged = true;\n }\n else if (x === width) {\n points[offset] = width - 1;\n nudged = true;\n }\n if (y === -1) {\n points[offset + 1] = 0.0;\n nudged = true;\n }\n else if (y === height) {\n points[offset + 1] = height - 1;\n nudged = true;\n }\n }\n // Check and nudge points from end:\n nudged = true;\n for (let offset = points.length - 2; offset >= 0 && nudged; offset -= 2) {\n const x = Math.floor(points[offset]);\n const y = Math.floor(points[offset + 1]);\n if (x < -1 || x > width || y < -1 || y > height) {\n throw new NotFoundException();\n }\n nudged = false;\n if (x === -1) {\n points[offset] = 0.0;\n nudged = true;\n }\n else if (x === width) {\n points[offset] = width - 1;\n nudged = true;\n }\n if (y === -1) {\n points[offset + 1] = 0.0;\n nudged = true;\n }\n else if (y === height) {\n points[offset + 1] = height - 1;\n nudged = true;\n }\n }\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /*namespace com.google.zxing.common {*/\n /**\n *This class implements a perspective transform in two dimensions. Given four source and four\n * destination points, it will compute the transformation implied between them. The code is based\n * directly upon section 3.4.2 of George Wolberg's \"Digital Image Warping\"; see pages 54-56.
\n *\n * @author Sean Owen\n */\n class PerspectiveTransform {\n constructor(a11 /*float*/, a21 /*float*/, a31 /*float*/, a12 /*float*/, a22 /*float*/, a32 /*float*/, a13 /*float*/, a23 /*float*/, a33 /*float*/) {\n this.a11 = a11;\n this.a21 = a21;\n this.a31 = a31;\n this.a12 = a12;\n this.a22 = a22;\n this.a32 = a32;\n this.a13 = a13;\n this.a23 = a23;\n this.a33 = a33;\n }\n static quadrilateralToQuadrilateral(x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/, x0p /*float*/, y0p /*float*/, x1p /*float*/, y1p /*float*/, x2p /*float*/, y2p /*float*/, x3p /*float*/, y3p /*float*/) {\n const qToS = PerspectiveTransform.quadrilateralToSquare(x0, y0, x1, y1, x2, y2, x3, y3);\n const sToQ = PerspectiveTransform.squareToQuadrilateral(x0p, y0p, x1p, y1p, x2p, y2p, x3p, y3p);\n return sToQ.times(qToS);\n }\n transformPoints(points) {\n const max = points.length;\n const a11 = this.a11;\n const a12 = this.a12;\n const a13 = this.a13;\n const a21 = this.a21;\n const a22 = this.a22;\n const a23 = this.a23;\n const a31 = this.a31;\n const a32 = this.a32;\n const a33 = this.a33;\n for (let i = 0; i < max; i += 2) {\n const x = points[i];\n const y = points[i + 1];\n const denominator = a13 * x + a23 * y + a33;\n points[i] = (a11 * x + a21 * y + a31) / denominator;\n points[i + 1] = (a12 * x + a22 * y + a32) / denominator;\n }\n }\n transformPointsWithValues(xValues, yValues) {\n const a11 = this.a11;\n const a12 = this.a12;\n const a13 = this.a13;\n const a21 = this.a21;\n const a22 = this.a22;\n const a23 = this.a23;\n const a31 = this.a31;\n const a32 = this.a32;\n const a33 = this.a33;\n const n = xValues.length;\n for (let i = 0; i < n; i++) {\n const x = xValues[i];\n const y = yValues[i];\n const denominator = a13 * x + a23 * y + a33;\n xValues[i] = (a11 * x + a21 * y + a31) / denominator;\n yValues[i] = (a12 * x + a22 * y + a32) / denominator;\n }\n }\n static squareToQuadrilateral(x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/) {\n const dx3 = x0 - x1 + x2 - x3;\n const dy3 = y0 - y1 + y2 - y3;\n if (dx3 === 0.0 && dy3 === 0.0) {\n // Affine\n return new PerspectiveTransform(x1 - x0, x2 - x1, x0, y1 - y0, y2 - y1, y0, 0.0, 0.0, 1.0);\n }\n else {\n const dx1 = x1 - x2;\n const dx2 = x3 - x2;\n const dy1 = y1 - y2;\n const dy2 = y3 - y2;\n const denominator = dx1 * dy2 - dx2 * dy1;\n const a13 = (dx3 * dy2 - dx2 * dy3) / denominator;\n const a23 = (dx1 * dy3 - dx3 * dy1) / denominator;\n return new PerspectiveTransform(x1 - x0 + a13 * x1, x3 - x0 + a23 * x3, x0, y1 - y0 + a13 * y1, y3 - y0 + a23 * y3, y0, a13, a23, 1.0);\n }\n }\n static quadrilateralToSquare(x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/) {\n // Here, the adjoint serves as the inverse:\n return PerspectiveTransform.squareToQuadrilateral(x0, y0, x1, y1, x2, y2, x3, y3).buildAdjoint();\n }\n buildAdjoint() {\n // Adjoint is the transpose of the cofactor matrix:\n return new PerspectiveTransform(this.a22 * this.a33 - this.a23 * this.a32, this.a23 * this.a31 - this.a21 * this.a33, this.a21 * this.a32 - this.a22 * this.a31, this.a13 * this.a32 - this.a12 * this.a33, this.a11 * this.a33 - this.a13 * this.a31, this.a12 * this.a31 - this.a11 * this.a32, this.a12 * this.a23 - this.a13 * this.a22, this.a13 * this.a21 - this.a11 * this.a23, this.a11 * this.a22 - this.a12 * this.a21);\n }\n times(other) {\n return new PerspectiveTransform(this.a11 * other.a11 + this.a21 * other.a12 + this.a31 * other.a13, this.a11 * other.a21 + this.a21 * other.a22 + this.a31 * other.a23, this.a11 * other.a31 + this.a21 * other.a32 + this.a31 * other.a33, this.a12 * other.a11 + this.a22 * other.a12 + this.a32 * other.a13, this.a12 * other.a21 + this.a22 * other.a22 + this.a32 * other.a23, this.a12 * other.a31 + this.a22 * other.a32 + this.a32 * other.a33, this.a13 * other.a11 + this.a23 * other.a12 + this.a33 * other.a13, this.a13 * other.a21 + this.a23 * other.a22 + this.a33 * other.a23, this.a13 * other.a31 + this.a23 * other.a32 + this.a33 * other.a33);\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * @author Sean Owen\n */\n class DefaultGridSampler extends GridSampler {\n /*@Override*/\n sampleGrid(image, dimensionX /*int*/, dimensionY /*int*/, p1ToX /*float*/, p1ToY /*float*/, p2ToX /*float*/, p2ToY /*float*/, p3ToX /*float*/, p3ToY /*float*/, p4ToX /*float*/, p4ToY /*float*/, p1FromX /*float*/, p1FromY /*float*/, p2FromX /*float*/, p2FromY /*float*/, p3FromX /*float*/, p3FromY /*float*/, p4FromX /*float*/, p4FromY /*float*/) {\n const transform = PerspectiveTransform.quadrilateralToQuadrilateral(p1ToX, p1ToY, p2ToX, p2ToY, p3ToX, p3ToY, p4ToX, p4ToY, p1FromX, p1FromY, p2FromX, p2FromY, p3FromX, p3FromY, p4FromX, p4FromY);\n return this.sampleGridWithTransform(image, dimensionX, dimensionY, transform);\n }\n /*@Override*/\n sampleGridWithTransform(image, dimensionX /*int*/, dimensionY /*int*/, transform) {\n if (dimensionX <= 0 || dimensionY <= 0) {\n throw new NotFoundException();\n }\n const bits = new BitMatrix(dimensionX, dimensionY);\n const points = new Float32Array(2 * dimensionX);\n for (let y = 0; y < dimensionY; y++) {\n const max = points.length;\n const iValue = y + 0.5;\n for (let x = 0; x < max; x += 2) {\n points[x] = (x / 2) + 0.5;\n points[x + 1] = iValue;\n }\n transform.transformPoints(points);\n // Quick check to see if points transformed to something inside the image\n // sufficient to check the endpoints\n GridSampler.checkAndNudgePoints(image, points);\n try {\n for (let x = 0; x < max; x += 2) {\n if (image.get(Math.floor(points[x]), Math.floor(points[x + 1]))) {\n // Black(-ish) pixel\n bits.set(x / 2, y);\n }\n }\n }\n catch (aioobe /*: ArrayIndexOutOfBoundsException*/) {\n // This feels wrong, but, sometimes if the finder patterns are misidentified, the resulting\n // transform gets \"twisted\" such that it maps a straight line of points to a set of points\n // whose endpoints are in bounds, but others are not. There is probably some mathematical\n // way to detect this about the transformation that I don't know yet.\n // This results in an ugly runtime exception despite our clever checks above -- can't have\n // that. We could check each point's coordinates but that feels duplicative. We settle for\n // catching and wrapping ArrayIndexOutOfBoundsException.\n throw new NotFoundException();\n }\n }\n return bits;\n }\n }\n\n class GridSamplerInstance {\n /**\n * Sets the implementation of GridSampler used by the library. One global\n * instance is stored, which may sound problematic. But, the implementation provided\n * ought to be appropriate for the entire platform, and all uses of this library\n * in the whole lifetime of the JVM. For instance, an Android activity can swap in\n * an implementation that takes advantage of native platform libraries.\n *\n * @param newGridSampler The platform-specific object to install.\n */\n static setGridSampler(newGridSampler) {\n GridSamplerInstance.gridSampler = newGridSampler;\n }\n /**\n * @return the current implementation of GridSampler\n */\n static getInstance() {\n return GridSamplerInstance.gridSampler;\n }\n }\n GridSamplerInstance.gridSampler = new DefaultGridSampler();\n\n /*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n class Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n toResultPoint() {\n return new ResultPoint(this.getX(), this.getY());\n }\n getX() {\n return this.x;\n }\n getY() {\n return this.y;\n }\n }\n /**\n * Encapsulates logic that can detect an Aztec Code in an image, even if the Aztec Code\n * is rotated or skewed, or partially obscured.\n *\n * @author David Olivier\n * @author Frank Yellin\n */\n class Detector {\n constructor(image) {\n this.EXPECTED_CORNER_BITS = new Int32Array([\n 0xee0,\n 0x1dc,\n 0x83b,\n 0x707,\n ]);\n this.image = image;\n }\n detect() {\n return this.detectMirror(false);\n }\n /**\n * Detects an Aztec Code in an image.\n *\n * @param isMirror if true, image is a mirror-image of original\n * @return {@link AztecDetectorResult} encapsulating results of detecting an Aztec Code\n * @throws NotFoundException if no Aztec Code can be found\n */\n detectMirror(isMirror) {\n // 1. Get the center of the aztec matrix\n let pCenter = this.getMatrixCenter();\n // 2. Get the center points of the four diagonal points just outside the bull's eye\n // [topRight, bottomRight, bottomLeft, topLeft]\n let bullsEyeCorners = this.getBullsEyeCorners(pCenter);\n if (isMirror) {\n let temp = bullsEyeCorners[0];\n bullsEyeCorners[0] = bullsEyeCorners[2];\n bullsEyeCorners[2] = temp;\n }\n // 3. Get the size of the matrix and other parameters from the bull's eye\n this.extractParameters(bullsEyeCorners);\n // 4. Sample the grid\n let bits = this.sampleGrid(this.image, bullsEyeCorners[this.shift % 4], bullsEyeCorners[(this.shift + 1) % 4], bullsEyeCorners[(this.shift + 2) % 4], bullsEyeCorners[(this.shift + 3) % 4]);\n // 5. Get the corners of the matrix.\n let corners = this.getMatrixCornerPoints(bullsEyeCorners);\n return new AztecDetectorResult(bits, corners, this.compact, this.nbDataBlocks, this.nbLayers);\n }\n /**\n * Extracts the number of data layers and data blocks from the layer around the bull's eye.\n *\n * @param bullsEyeCorners the array of bull's eye corners\n * @throws NotFoundException in case of too many errors or invalid parameters\n */\n extractParameters(bullsEyeCorners) {\n if (!this.isValidPoint(bullsEyeCorners[0]) || !this.isValidPoint(bullsEyeCorners[1]) ||\n !this.isValidPoint(bullsEyeCorners[2]) || !this.isValidPoint(bullsEyeCorners[3])) {\n throw new NotFoundException();\n }\n let length = 2 * this.nbCenterLayers;\n // Get the bits around the bull's eye\n let sides = new Int32Array([\n this.sampleLine(bullsEyeCorners[0], bullsEyeCorners[1], length),\n this.sampleLine(bullsEyeCorners[1], bullsEyeCorners[2], length),\n this.sampleLine(bullsEyeCorners[2], bullsEyeCorners[3], length),\n this.sampleLine(bullsEyeCorners[3], bullsEyeCorners[0], length) // Top\n ]);\n // bullsEyeCorners[shift] is the corner of the bulls'eye that has three\n // orientation marks.\n // sides[shift] is the row/column that goes from the corner with three\n // orientation marks to the corner with two.\n this.shift = this.getRotation(sides, length);\n // Flatten the parameter bits into a single 28- or 40-bit long\n let parameterData = 0;\n for (let i = 0; i < 4; i++) {\n let side = sides[(this.shift + i) % 4];\n if (this.compact) {\n // Each side of the form ..XXXXXXX. where Xs are parameter data\n parameterData <<= 7;\n parameterData += (side >> 1) & 0x7F;\n }\n else {\n // Each side of the form ..XXXXX.XXXXX. where Xs are parameter data\n parameterData <<= 10;\n parameterData += ((side >> 2) & (0x1f << 5)) + ((side >> 1) & 0x1F);\n }\n }\n // Corrects parameter data using RS. Returns just the data portion\n // without the error correction.\n let correctedData = this.getCorrectedParameterData(parameterData, this.compact);\n if (this.compact) {\n // 8 bits: 2 bits layers and 6 bits data blocks\n this.nbLayers = (correctedData >> 6) + 1;\n this.nbDataBlocks = (correctedData & 0x3F) + 1;\n }\n else {\n // 16 bits: 5 bits layers and 11 bits data blocks\n this.nbLayers = (correctedData >> 11) + 1;\n this.nbDataBlocks = (correctedData & 0x7FF) + 1;\n }\n }\n getRotation(sides, length) {\n // In a normal pattern, we expect to See\n // ** .* D A\n // * *\n //\n // . *\n // .. .. C B\n //\n // Grab the 3 bits from each of the sides the form the locator pattern and concatenate\n // into a 12-bit integer. Start with the bit at A\n let cornerBits = 0;\n sides.forEach((side, idx, arr) => {\n // XX......X where X's are orientation marks\n let t = ((side >> (length - 2)) << 1) + (side & 1);\n cornerBits = (cornerBits << 3) + t;\n });\n // for (var side in sides) {\n // // XX......X where X's are orientation marks\n // var t = ((side >> (length - 2)) << 1) + (side & 1);\n // cornerBits = (cornerBits << 3) + t;\n // }\n // Mov the bottom bit to the top, so that the three bits of the locator pattern at A are\n // together. cornerBits is now:\n // 3 orientation bits at A || 3 orientation bits at B || ... || 3 orientation bits at D\n cornerBits = ((cornerBits & 1) << 11) + (cornerBits >> 1);\n // The result shift indicates which element of BullsEyeCorners[] goes into the top-left\n // corner. Since the four rotation values have a Hamming distance of 8, we\n // can easily tolerate two errors.\n for (let shift = 0; shift < 4; shift++) {\n if (Integer.bitCount(cornerBits ^ this.EXPECTED_CORNER_BITS[shift]) <= 2) {\n return shift;\n }\n }\n throw new NotFoundException();\n }\n /**\n * Corrects the parameter bits using Reed-Solomon algorithm.\n *\n * @param parameterData parameter bits\n * @param compact true if this is a compact Aztec code\n * @throws NotFoundException if the array contains too many errors\n */\n getCorrectedParameterData(parameterData, compact) {\n let numCodewords;\n let numDataCodewords;\n if (compact) {\n numCodewords = 7;\n numDataCodewords = 2;\n }\n else {\n numCodewords = 10;\n numDataCodewords = 4;\n }\n let numECCodewords = numCodewords - numDataCodewords;\n let parameterWords = new Int32Array(numCodewords);\n for (let i = numCodewords - 1; i >= 0; --i) {\n parameterWords[i] = parameterData & 0xF;\n parameterData >>= 4;\n }\n try {\n let rsDecoder = new ReedSolomonDecoder(GenericGF.AZTEC_PARAM);\n rsDecoder.decode(parameterWords, numECCodewords);\n }\n catch (ignored) {\n throw new NotFoundException();\n }\n // Toss the error correction. Just return the data as an integer\n let result = 0;\n for (let i = 0; i < numDataCodewords; i++) {\n result = (result << 4) + parameterWords[i];\n }\n return result;\n }\n /**\n * Finds the corners of a bull-eye centered on the passed point.\n * This returns the centers of the diagonal points just outside the bull's eye\n * Returns [topRight, bottomRight, bottomLeft, topLeft]\n *\n * @param pCenter Center point\n * @return The corners of the bull-eye\n * @throws NotFoundException If no valid bull-eye can be found\n */\n getBullsEyeCorners(pCenter) {\n let pina = pCenter;\n let pinb = pCenter;\n let pinc = pCenter;\n let pind = pCenter;\n let color = true;\n for (this.nbCenterLayers = 1; this.nbCenterLayers < 9; this.nbCenterLayers++) {\n let pouta = this.getFirstDifferent(pina, color, 1, -1);\n let poutb = this.getFirstDifferent(pinb, color, 1, 1);\n let poutc = this.getFirstDifferent(pinc, color, -1, 1);\n let poutd = this.getFirstDifferent(pind, color, -1, -1);\n // d a\n //\n // c b\n if (this.nbCenterLayers > 2) {\n let q = (this.distancePoint(poutd, pouta) * this.nbCenterLayers) / (this.distancePoint(pind, pina) * (this.nbCenterLayers + 2));\n if (q < 0.75 || q > 1.25 || !this.isWhiteOrBlackRectangle(pouta, poutb, poutc, poutd)) {\n break;\n }\n }\n pina = pouta;\n pinb = poutb;\n pinc = poutc;\n pind = poutd;\n color = !color;\n }\n if (this.nbCenterLayers !== 5 && this.nbCenterLayers !== 7) {\n throw new NotFoundException();\n }\n this.compact = this.nbCenterLayers === 5;\n // Expand the square by .5 pixel in each direction so that we're on the border\n // between the white square and the black square\n let pinax = new ResultPoint(pina.getX() + 0.5, pina.getY() - 0.5);\n let pinbx = new ResultPoint(pinb.getX() + 0.5, pinb.getY() + 0.5);\n let pincx = new ResultPoint(pinc.getX() - 0.5, pinc.getY() + 0.5);\n let pindx = new ResultPoint(pind.getX() - 0.5, pind.getY() - 0.5);\n // Expand the square so that its corners are the centers of the points\n // just outside the bull's eye.\n return this.expandSquare([pinax, pinbx, pincx, pindx], 2 * this.nbCenterLayers - 3, 2 * this.nbCenterLayers);\n }\n /**\n * Finds a candidate center point of an Aztec code from an image\n *\n * @return the center point\n */\n getMatrixCenter() {\n let pointA;\n let pointB;\n let pointC;\n let pointD;\n // Get a white rectangle that can be the border of the matrix in center bull's eye or\n try {\n let cornerPoints = new WhiteRectangleDetector(this.image).detect();\n pointA = cornerPoints[0];\n pointB = cornerPoints[1];\n pointC = cornerPoints[2];\n pointD = cornerPoints[3];\n }\n catch (e) {\n // This exception can be in case the initial rectangle is white\n // In that case, surely in the bull's eye, we try to expand the rectangle.\n let cx = this.image.getWidth() / 2;\n let cy = this.image.getHeight() / 2;\n pointA = this.getFirstDifferent(new Point(cx + 7, cy - 7), false, 1, -1).toResultPoint();\n pointB = this.getFirstDifferent(new Point(cx + 7, cy + 7), false, 1, 1).toResultPoint();\n pointC = this.getFirstDifferent(new Point(cx - 7, cy + 7), false, -1, 1).toResultPoint();\n pointD = this.getFirstDifferent(new Point(cx - 7, cy - 7), false, -1, -1).toResultPoint();\n }\n // Compute the center of the rectangle\n let cx = MathUtils.round((pointA.getX() + pointD.getX() + pointB.getX() + pointC.getX()) / 4.0);\n let cy = MathUtils.round((pointA.getY() + pointD.getY() + pointB.getY() + pointC.getY()) / 4.0);\n // Redetermine the white rectangle starting from previously computed center.\n // This will ensure that we end up with a white rectangle in center bull's eye\n // in order to compute a more accurate center.\n try {\n let cornerPoints = new WhiteRectangleDetector(this.image, 15, cx, cy).detect();\n pointA = cornerPoints[0];\n pointB = cornerPoints[1];\n pointC = cornerPoints[2];\n pointD = cornerPoints[3];\n }\n catch (e) {\n // This exception can be in case the initial rectangle is white\n // In that case we try to expand the rectangle.\n pointA = this.getFirstDifferent(new Point(cx + 7, cy - 7), false, 1, -1).toResultPoint();\n pointB = this.getFirstDifferent(new Point(cx + 7, cy + 7), false, 1, 1).toResultPoint();\n pointC = this.getFirstDifferent(new Point(cx - 7, cy + 7), false, -1, 1).toResultPoint();\n pointD = this.getFirstDifferent(new Point(cx - 7, cy - 7), false, -1, -1).toResultPoint();\n }\n // Recompute the center of the rectangle\n cx = MathUtils.round((pointA.getX() + pointD.getX() + pointB.getX() + pointC.getX()) / 4.0);\n cy = MathUtils.round((pointA.getY() + pointD.getY() + pointB.getY() + pointC.getY()) / 4.0);\n return new Point(cx, cy);\n }\n /**\n * Gets the Aztec code corners from the bull's eye corners and the parameters.\n *\n * @param bullsEyeCorners the array of bull's eye corners\n * @return the array of aztec code corners\n */\n getMatrixCornerPoints(bullsEyeCorners) {\n return this.expandSquare(bullsEyeCorners, 2 * this.nbCenterLayers, this.getDimension());\n }\n /**\n * Creates a BitMatrix by sampling the provided image.\n * topLeft, topRight, bottomRight, and bottomLeft are the centers of the squares on the\n * diagonal just outside the bull's eye.\n */\n sampleGrid(image, topLeft, topRight, bottomRight, bottomLeft) {\n let sampler = GridSamplerInstance.getInstance();\n let dimension = this.getDimension();\n let low = dimension / 2 - this.nbCenterLayers;\n let high = dimension / 2 + this.nbCenterLayers;\n return sampler.sampleGrid(image, dimension, dimension, low, low, // topleft\n high, low, // topright\n high, high, // bottomright\n low, high, // bottomleft\n topLeft.getX(), topLeft.getY(), topRight.getX(), topRight.getY(), bottomRight.getX(), bottomRight.getY(), bottomLeft.getX(), bottomLeft.getY());\n }\n /**\n * Samples a line.\n *\n * @param p1 start point (inclusive)\n * @param p2 end point (exclusive)\n * @param size number of bits\n * @return the array of bits as an int (first bit is high-order bit of result)\n */\n sampleLine(p1, p2, size) {\n let result = 0;\n let d = this.distanceResultPoint(p1, p2);\n let moduleSize = d / size;\n let px = p1.getX();\n let py = p1.getY();\n let dx = moduleSize * (p2.getX() - p1.getX()) / d;\n let dy = moduleSize * (p2.getY() - p1.getY()) / d;\n for (let i = 0; i < size; i++) {\n if (this.image.get(MathUtils.round(px + i * dx), MathUtils.round(py + i * dy))) {\n result |= 1 << (size - i - 1);\n }\n }\n return result;\n }\n /**\n * @return true if the border of the rectangle passed in parameter is compound of white points only\n * or black points only\n */\n isWhiteOrBlackRectangle(p1, p2, p3, p4) {\n let corr = 3;\n p1 = new Point(p1.getX() - corr, p1.getY() + corr);\n p2 = new Point(p2.getX() - corr, p2.getY() - corr);\n p3 = new Point(p3.getX() + corr, p3.getY() - corr);\n p4 = new Point(p4.getX() + corr, p4.getY() + corr);\n let cInit = this.getColor(p4, p1);\n if (cInit === 0) {\n return false;\n }\n let c = this.getColor(p1, p2);\n if (c !== cInit) {\n return false;\n }\n c = this.getColor(p2, p3);\n if (c !== cInit) {\n return false;\n }\n c = this.getColor(p3, p4);\n return c === cInit;\n }\n /**\n * Gets the color of a segment\n *\n * @return 1 if segment more than 90% black, -1 if segment is more than 90% white, 0 else\n */\n getColor(p1, p2) {\n let d = this.distancePoint(p1, p2);\n let dx = (p2.getX() - p1.getX()) / d;\n let dy = (p2.getY() - p1.getY()) / d;\n let error = 0;\n let px = p1.getX();\n let py = p1.getY();\n let colorModel = this.image.get(p1.getX(), p1.getY());\n let iMax = Math.ceil(d);\n for (let i = 0; i < iMax; i++) {\n px += dx;\n py += dy;\n if (this.image.get(MathUtils.round(px), MathUtils.round(py)) !== colorModel) {\n error++;\n }\n }\n let errRatio = error / d;\n if (errRatio > 0.1 && errRatio < 0.9) {\n return 0;\n }\n return (errRatio <= 0.1) === colorModel ? 1 : -1;\n }\n /**\n * Gets the coordinate of the first point with a different color in the given direction\n */\n getFirstDifferent(init, color, dx, dy) {\n let x = init.getX() + dx;\n let y = init.getY() + dy;\n while (this.isValid(x, y) && this.image.get(x, y) === color) {\n x += dx;\n y += dy;\n }\n x -= dx;\n y -= dy;\n while (this.isValid(x, y) && this.image.get(x, y) === color) {\n x += dx;\n }\n x -= dx;\n while (this.isValid(x, y) && this.image.get(x, y) === color) {\n y += dy;\n }\n y -= dy;\n return new Point(x, y);\n }\n /**\n * Expand the square represented by the corner points by pushing out equally in all directions\n *\n * @param cornerPoints the corners of the square, which has the bull's eye at its center\n * @param oldSide the original length of the side of the square in the target bit matrix\n * @param newSide the new length of the size of the square in the target bit matrix\n * @return the corners of the expanded square\n */\n expandSquare(cornerPoints, oldSide, newSide) {\n let ratio = newSide / (2.0 * oldSide);\n let dx = cornerPoints[0].getX() - cornerPoints[2].getX();\n let dy = cornerPoints[0].getY() - cornerPoints[2].getY();\n let centerx = (cornerPoints[0].getX() + cornerPoints[2].getX()) / 2.0;\n let centery = (cornerPoints[0].getY() + cornerPoints[2].getY()) / 2.0;\n let result0 = new ResultPoint(centerx + ratio * dx, centery + ratio * dy);\n let result2 = new ResultPoint(centerx - ratio * dx, centery - ratio * dy);\n dx = cornerPoints[1].getX() - cornerPoints[3].getX();\n dy = cornerPoints[1].getY() - cornerPoints[3].getY();\n centerx = (cornerPoints[1].getX() + cornerPoints[3].getX()) / 2.0;\n centery = (cornerPoints[1].getY() + cornerPoints[3].getY()) / 2.0;\n let result1 = new ResultPoint(centerx + ratio * dx, centery + ratio * dy);\n let result3 = new ResultPoint(centerx - ratio * dx, centery - ratio * dy);\n let results = [result0, result1, result2, result3];\n return results;\n }\n isValid(x, y) {\n return x >= 0 && x < this.image.getWidth() && y > 0 && y < this.image.getHeight();\n }\n isValidPoint(point) {\n let x = MathUtils.round(point.getX());\n let y = MathUtils.round(point.getY());\n return this.isValid(x, y);\n }\n distancePoint(a, b) {\n return MathUtils.distance(a.getX(), a.getY(), b.getX(), b.getY());\n }\n distanceResultPoint(a, b) {\n return MathUtils.distance(a.getX(), a.getY(), b.getX(), b.getY());\n }\n getDimension() {\n if (this.compact) {\n return 4 * this.nbLayers + 11;\n }\n if (this.nbLayers <= 4) {\n return 4 * this.nbLayers + 15;\n }\n return 4 * this.nbLayers + 2 * (Integer.truncDivision((this.nbLayers - 4), 8) + 1) + 15;\n }\n }\n\n /*\n * Copyright 2010 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n // import java.util.List;\n // import java.util.Map;\n /**\n * This implementation can detect and decode Aztec codes in an image.\n *\n * @author David Olivier\n */\n class AztecReader {\n /**\n * Locates and decodes a Data Matrix code in an image.\n *\n * @return a String representing the content encoded by the Data Matrix code\n * @throws NotFoundException if a Data Matrix code cannot be found\n * @throws FormatException if a Data Matrix code cannot be decoded\n */\n decode(image, hints = null) {\n let exception = null;\n let detector = new Detector(image.getBlackMatrix());\n let points = null;\n let decoderResult = null;\n try {\n let detectorResult = detector.detectMirror(false);\n points = detectorResult.getPoints();\n this.reportFoundResultPoints(hints, points);\n decoderResult = new Decoder().decode(detectorResult);\n }\n catch (e) {\n exception = e;\n }\n if (decoderResult == null) {\n try {\n let detectorResult = detector.detectMirror(true);\n points = detectorResult.getPoints();\n this.reportFoundResultPoints(hints, points);\n decoderResult = new Decoder().decode(detectorResult);\n }\n catch (e) {\n if (exception != null) {\n throw exception;\n }\n throw e;\n }\n }\n let result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), decoderResult.getNumBits(), points, BarcodeFormat$1.AZTEC, System.currentTimeMillis());\n let byteSegments = decoderResult.getByteSegments();\n if (byteSegments != null) {\n result.putMetadata(ResultMetadataType$1.BYTE_SEGMENTS, byteSegments);\n }\n let ecLevel = decoderResult.getECLevel();\n if (ecLevel != null) {\n result.putMetadata(ResultMetadataType$1.ERROR_CORRECTION_LEVEL, ecLevel);\n }\n return result;\n }\n reportFoundResultPoints(hints, points) {\n if (hints != null) {\n let rpcb = hints.get(DecodeHintType$1.NEED_RESULT_POINT_CALLBACK);\n if (rpcb != null) {\n points.forEach((point, idx, arr) => {\n rpcb.foundPossibleResultPoint(point);\n });\n }\n }\n }\n // @Override\n reset() {\n // do nothing\n }\n }\n\n /**\n * Aztec Code reader to use from browser.\n *\n * @class BrowserAztecCodeReader\n * @extends {BrowserCodeReader}\n */\n class BrowserAztecCodeReader extends BrowserCodeReader {\n /**\n * Creates an instance of BrowserAztecCodeReader.\n * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n *\n * @memberOf BrowserAztecCodeReader\n */\n constructor(timeBetweenScansMillis = 500) {\n super(new AztecReader(), timeBetweenScansMillis);\n }\n }\n\n /**\n * Encapsulates functionality and implementation that is common to all families\n * of one-dimensional barcodes.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n */\n class OneDReader {\n /*\n @Override\n public Result decode(BinaryBitmap image) throws NotFoundException, FormatException {\n return decode(image, null);\n }\n */\n // Note that we don't try rotation without the try harder flag, even if rotation was supported.\n // @Override\n decode(image, hints) {\n try {\n return this.doDecode(image, hints);\n }\n catch (nfe) {\n const tryHarder = hints && (hints.get(DecodeHintType$1.TRY_HARDER) === true);\n if (tryHarder && image.isRotateSupported()) {\n const rotatedImage = image.rotateCounterClockwise();\n const result = this.doDecode(rotatedImage, hints);\n // Record that we found it rotated 90 degrees CCW / 270 degrees CW\n const metadata = result.getResultMetadata();\n let orientation = 270;\n if (metadata !== null && (metadata.get(ResultMetadataType$1.ORIENTATION) === true)) {\n // But if we found it reversed in doDecode(), add in that result here:\n orientation = (orientation + metadata.get(ResultMetadataType$1.ORIENTATION) % 360);\n }\n result.putMetadata(ResultMetadataType$1.ORIENTATION, orientation);\n // Update result points\n const points = result.getResultPoints();\n if (points !== null) {\n const height = rotatedImage.getHeight();\n for (let i = 0; i < points.length; i++) {\n points[i] = new ResultPoint(height - points[i].getY() - 1, points[i].getX());\n }\n }\n return result;\n }\n else {\n throw new NotFoundException();\n }\n }\n }\n // @Override\n reset() {\n // do nothing\n }\n /**\n * We're going to examine rows from the middle outward, searching alternately above and below the\n * middle, and farther out each time. rowStep is the number of rows between each successive\n * attempt above and below the middle. So we'd scan row middle, then middle - rowStep, then\n * middle + rowStep, then middle - (2 * rowStep), etc.\n * rowStep is bigger as the image is taller, but is always at least 1. We've somewhat arbitrarily\n * decided that moving up and down by about 1/16 of the image is pretty good; we try more of the\n * image if \"trying harder\".\n *\n * @param image The image to decode\n * @param hints Any hints that were requested\n * @return The contents of the decoded barcode\n * @throws NotFoundException Any spontaneous errors which occur\n */\n doDecode(image, hints) {\n const width = image.getWidth();\n const height = image.getHeight();\n let row = new BitArray(width);\n const tryHarder = hints && (hints.get(DecodeHintType$1.TRY_HARDER) === true);\n const rowStep = Math.max(1, height >> (tryHarder ? 8 : 5));\n let maxLines;\n if (tryHarder) {\n maxLines = height; // Look at the whole image, not just the center\n }\n else {\n maxLines = 15; // 15 rows spaced 1/32 apart is roughly the middle half of the image\n }\n const middle = Math.trunc(height / 2);\n for (let x = 0; x < maxLines; x++) {\n // Scanning from the middle out. Determine which row we're looking at next:\n const rowStepsAboveOrBelow = Math.trunc((x + 1) / 2);\n const isAbove = (x & 0x01) === 0; // i.e. is x even?\n const rowNumber = middle + rowStep * (isAbove ? rowStepsAboveOrBelow : -rowStepsAboveOrBelow);\n if (rowNumber < 0 || rowNumber >= height) {\n // Oops, if we run off the top or bottom, stop\n break;\n }\n // Estimate black point for this row and load it:\n try {\n row = image.getBlackRow(rowNumber, row);\n }\n catch (ignored) {\n continue;\n }\n // While we have the image data in a BitArray, it's fairly cheap to reverse it in place to\n // handle decoding upside down barcodes.\n for (let attempt = 0; attempt < 2; attempt++) {\n if (attempt === 1) { // trying again?\n row.reverse(); // reverse the row and continue\n // This means we will only ever draw result points *once* in the life of this method\n // since we want to avoid drawing the wrong points after flipping the row, and,\n // don't want to clutter with noise from every single row scan -- just the scans\n // that start on the center line.\n if (hints && (hints.get(DecodeHintType$1.NEED_RESULT_POINT_CALLBACK) === true)) {\n const newHints = new Map();\n hints.forEach((hint, key) => newHints.set(key, hint));\n newHints.delete(DecodeHintType$1.NEED_RESULT_POINT_CALLBACK);\n hints = newHints;\n }\n }\n try {\n // Look for a barcode\n const result = this.decodeRow(rowNumber, row, hints);\n // We found our barcode\n if (attempt === 1) {\n // But it was upside down, so note that\n result.putMetadata(ResultMetadataType$1.ORIENTATION, 180);\n // And remember to flip the result points horizontally.\n const points = result.getResultPoints();\n if (points !== null) {\n points[0] = new ResultPoint(width - points[0].getX() - 1, points[0].getY());\n points[1] = new ResultPoint(width - points[1].getX() - 1, points[1].getY());\n }\n }\n return result;\n }\n catch (re) {\n // continue -- just couldn't decode this row\n }\n }\n }\n throw new NotFoundException();\n }\n /**\n * Records the size of successive runs of white and black pixels in a row, starting at a given point.\n * The values are recorded in the given array, and the number of runs recorded is equal to the size\n * of the array. If the row starts on a white pixel at the given start point, then the first count\n * recorded is the run of white pixels starting from that point; likewise it is the count of a run\n * of black pixels if the row begin on a black pixels at that point.\n *\n * @param row row to count from\n * @param start offset into row to start at\n * @param counters array into which to record counts\n * @throws NotFoundException if counters cannot be filled entirely from row before running out\n * of pixels\n */\n static recordPattern(row, start, counters) {\n const numCounters = counters.length;\n for (let index = 0; index < numCounters; index++)\n counters[index] = 0;\n const end = row.getSize();\n if (start >= end) {\n throw new NotFoundException();\n }\n let isWhite = !row.get(start);\n let counterPosition = 0;\n let i = start;\n while (i < end) {\n if (row.get(i) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (++counterPosition === numCounters) {\n break;\n }\n else {\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n i++;\n }\n // If we read fully the last section of pixels and filled up our counters -- or filled\n // the last counter but ran off the side of the image, OK. Otherwise, a problem.\n if (!(counterPosition === numCounters || (counterPosition === numCounters - 1 && i === end))) {\n throw new NotFoundException();\n }\n }\n static recordPatternInReverse(row, start, counters) {\n // This could be more efficient I guess\n let numTransitionsLeft = counters.length;\n let last = row.get(start);\n while (start > 0 && numTransitionsLeft >= 0) {\n if (row.get(--start) !== last) {\n numTransitionsLeft--;\n last = !last;\n }\n }\n if (numTransitionsLeft >= 0) {\n throw new NotFoundException();\n }\n OneDReader.recordPattern(row, start + 1, counters);\n }\n /**\n * Determines how closely a set of observed counts of runs of black/white values matches a given\n * target pattern. This is reported as the ratio of the total variance from the expected pattern\n * proportions across all pattern elements, to the length of the pattern.\n *\n * @param counters observed counters\n * @param pattern expected pattern\n * @param maxIndividualVariance The most any counter can differ before we give up\n * @return ratio of total variance between counters and pattern compared to total pattern size\n */\n static patternMatchVariance(counters, pattern, maxIndividualVariance) {\n const numCounters = counters.length;\n let total = 0;\n let patternLength = 0;\n for (let i = 0; i < numCounters; i++) {\n total += counters[i];\n patternLength += pattern[i];\n }\n if (total < patternLength) {\n // If we don't even have one pixel per unit of bar width, assume this is too small\n // to reliably match, so fail:\n return Number.POSITIVE_INFINITY;\n }\n const unitBarWidth = total / patternLength;\n maxIndividualVariance *= unitBarWidth;\n let totalVariance = 0.0;\n for (let x = 0; x < numCounters; x++) {\n const counter = counters[x];\n const scaledPattern = pattern[x] * unitBarWidth;\n const variance = counter > scaledPattern ? counter - scaledPattern : scaledPattern - counter;\n if (variance > maxIndividualVariance) {\n return Number.POSITIVE_INFINITY;\n }\n totalVariance += variance;\n }\n return totalVariance / total;\n }\n }\n\n /**\n *Decodes Code 128 barcodes.
\n *\n * @author Sean Owen\n */\n class Code128Reader extends OneDReader {\n static findStartPattern(row) {\n const width = row.getSize();\n const rowOffset = row.getNextSet(0);\n let counterPosition = 0;\n let counters = Int32Array.from([0, 0, 0, 0, 0, 0]);\n let patternStart = rowOffset;\n let isWhite = false;\n const patternLength = 6;\n for (let i = rowOffset; i < width; i++) {\n if (row.get(i) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === (patternLength - 1)) {\n let bestVariance = Code128Reader.MAX_AVG_VARIANCE;\n let bestMatch = -1;\n for (let startCode = Code128Reader.CODE_START_A; startCode <= Code128Reader.CODE_START_C; startCode++) {\n const variance = OneDReader.patternMatchVariance(counters, Code128Reader.CODE_PATTERNS[startCode], Code128Reader.MAX_INDIVIDUAL_VARIANCE);\n if (variance < bestVariance) {\n bestVariance = variance;\n bestMatch = startCode;\n }\n }\n // Look for whitespace before start pattern, >= 50% of width of start pattern\n if (bestMatch >= 0 &&\n row.isRange(Math.max(0, patternStart - (i - patternStart) / 2), patternStart, false)) {\n return Int32Array.from([patternStart, i, bestMatch]);\n }\n patternStart += counters[0] + counters[1];\n counters = counters.slice(2, counters.length - 1);\n counters[counterPosition - 1] = 0;\n counters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException();\n }\n static decodeCode(row, counters, rowOffset) {\n OneDReader.recordPattern(row, rowOffset, counters);\n let bestVariance = Code128Reader.MAX_AVG_VARIANCE; // worst variance we'll accept\n let bestMatch = -1;\n for (let d = 0; d < Code128Reader.CODE_PATTERNS.length; d++) {\n const pattern = Code128Reader.CODE_PATTERNS[d];\n const variance = this.patternMatchVariance(counters, pattern, Code128Reader.MAX_INDIVIDUAL_VARIANCE);\n if (variance < bestVariance) {\n bestVariance = variance;\n bestMatch = d;\n }\n }\n // TODO We're overlooking the fact that the STOP pattern has 7 values, not 6.\n if (bestMatch >= 0) {\n return bestMatch;\n }\n else {\n throw new NotFoundException();\n }\n }\n decodeRow(rowNumber, row, hints) {\n const convertFNC1 = hints && (hints.get(DecodeHintType$1.ASSUME_GS1) === true);\n const startPatternInfo = Code128Reader.findStartPattern(row);\n const startCode = startPatternInfo[2];\n let currentRawCodesIndex = 0;\n const rawCodes = new Uint8Array(20);\n rawCodes[currentRawCodesIndex++] = startCode;\n let codeSet;\n switch (startCode) {\n case Code128Reader.CODE_START_A:\n codeSet = Code128Reader.CODE_CODE_A;\n break;\n case Code128Reader.CODE_START_B:\n codeSet = Code128Reader.CODE_CODE_B;\n break;\n case Code128Reader.CODE_START_C:\n codeSet = Code128Reader.CODE_CODE_C;\n break;\n default:\n throw new FormatException();\n }\n let done = false;\n let isNextShifted = false;\n let result = '';\n let lastStart = startPatternInfo[0];\n let nextStart = startPatternInfo[1];\n const counters = Int32Array.from([0, 0, 0, 0, 0, 0]);\n let lastCode = 0;\n let code = 0;\n let checksumTotal = startCode;\n let multiplier = 0;\n let lastCharacterWasPrintable = true;\n let upperMode = false;\n let shiftUpperMode = false;\n while (!done) {\n const unshift = isNextShifted;\n isNextShifted = false;\n // Save off last code\n lastCode = code;\n // Decode another code from image\n code = Code128Reader.decodeCode(row, counters, nextStart);\n rawCodes[currentRawCodesIndex++] = code;\n // Remember whether the last code was printable or not (excluding CODE_STOP)\n if (code !== Code128Reader.CODE_STOP) {\n lastCharacterWasPrintable = true;\n }\n // Add to checksum computation (if not CODE_STOP of course)\n if (code !== Code128Reader.CODE_STOP) {\n multiplier++;\n checksumTotal += multiplier * code;\n }\n // Advance to where the next code will to start\n lastStart = nextStart;\n nextStart += counters.reduce((previous, current) => previous + current, 0);\n // Take care of illegal start codes\n switch (code) {\n case Code128Reader.CODE_START_A:\n case Code128Reader.CODE_START_B:\n case Code128Reader.CODE_START_C:\n throw new FormatException();\n }\n switch (codeSet) {\n case Code128Reader.CODE_CODE_A:\n if (code < 64) {\n if (shiftUpperMode === upperMode) {\n result += String.fromCharCode((' '.charCodeAt(0) + code));\n }\n else {\n result += String.fromCharCode((' '.charCodeAt(0) + code + 128));\n }\n shiftUpperMode = false;\n }\n else if (code < 96) {\n if (shiftUpperMode === upperMode) {\n result += String.fromCharCode((code - 64));\n }\n else {\n result += String.fromCharCode((code + 64));\n }\n shiftUpperMode = false;\n }\n else {\n // Don't let CODE_STOP, which always appears, affect whether whether we think the last\n // code was printable or not.\n if (code !== Code128Reader.CODE_STOP) {\n lastCharacterWasPrintable = false;\n }\n switch (code) {\n case Code128Reader.CODE_FNC_1:\n if (convertFNC1) {\n if (result.length === 0) {\n // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code\n // is FNC1 then this is GS1-128. We add the symbology identifier.\n result += ']C1';\n }\n else {\n // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS)\n result += String.fromCharCode(29);\n }\n }\n break;\n case Code128Reader.CODE_FNC_2:\n case Code128Reader.CODE_FNC_3:\n // do nothing?\n break;\n case Code128Reader.CODE_FNC_4_A:\n if (!upperMode && shiftUpperMode) {\n upperMode = true;\n shiftUpperMode = false;\n }\n else if (upperMode && shiftUpperMode) {\n upperMode = false;\n shiftUpperMode = false;\n }\n else {\n shiftUpperMode = true;\n }\n break;\n case Code128Reader.CODE_SHIFT:\n isNextShifted = true;\n codeSet = Code128Reader.CODE_CODE_B;\n break;\n case Code128Reader.CODE_CODE_B:\n codeSet = Code128Reader.CODE_CODE_B;\n break;\n case Code128Reader.CODE_CODE_C:\n codeSet = Code128Reader.CODE_CODE_C;\n break;\n case Code128Reader.CODE_STOP:\n done = true;\n break;\n }\n }\n break;\n case Code128Reader.CODE_CODE_B:\n if (code < 96) {\n if (shiftUpperMode === upperMode) {\n result += String.fromCharCode((' '.charCodeAt(0) + code));\n }\n else {\n result += String.fromCharCode((' '.charCodeAt(0) + code + 128));\n }\n shiftUpperMode = false;\n }\n else {\n if (code !== Code128Reader.CODE_STOP) {\n lastCharacterWasPrintable = false;\n }\n switch (code) {\n case Code128Reader.CODE_FNC_1:\n if (convertFNC1) {\n if (result.length === 0) {\n // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code\n // is FNC1 then this is GS1-128. We add the symbology identifier.\n result += ']C1';\n }\n else {\n // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS)\n result += String.fromCharCode(29);\n }\n }\n break;\n case Code128Reader.CODE_FNC_2:\n case Code128Reader.CODE_FNC_3:\n // do nothing?\n break;\n case Code128Reader.CODE_FNC_4_B:\n if (!upperMode && shiftUpperMode) {\n upperMode = true;\n shiftUpperMode = false;\n }\n else if (upperMode && shiftUpperMode) {\n upperMode = false;\n shiftUpperMode = false;\n }\n else {\n shiftUpperMode = true;\n }\n break;\n case Code128Reader.CODE_SHIFT:\n isNextShifted = true;\n codeSet = Code128Reader.CODE_CODE_A;\n break;\n case Code128Reader.CODE_CODE_A:\n codeSet = Code128Reader.CODE_CODE_A;\n break;\n case Code128Reader.CODE_CODE_C:\n codeSet = Code128Reader.CODE_CODE_C;\n break;\n case Code128Reader.CODE_STOP:\n done = true;\n break;\n }\n }\n break;\n case Code128Reader.CODE_CODE_C:\n if (code < 100) {\n if (code < 10) {\n result += '0';\n }\n result += code;\n }\n else {\n if (code !== Code128Reader.CODE_STOP) {\n lastCharacterWasPrintable = false;\n }\n switch (code) {\n case Code128Reader.CODE_FNC_1:\n if (convertFNC1) {\n if (result.length === 0) {\n // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code\n // is FNC1 then this is GS1-128. We add the symbology identifier.\n result += ']C1';\n }\n else {\n // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS)\n result += String.fromCharCode(29);\n }\n }\n break;\n case Code128Reader.CODE_CODE_A:\n codeSet = Code128Reader.CODE_CODE_A;\n break;\n case Code128Reader.CODE_CODE_B:\n codeSet = Code128Reader.CODE_CODE_B;\n break;\n case Code128Reader.CODE_STOP:\n done = true;\n break;\n }\n }\n break;\n }\n // Unshift back to another code set if we were shifted\n if (unshift) {\n codeSet = codeSet === Code128Reader.CODE_CODE_A ? Code128Reader.CODE_CODE_B : Code128Reader.CODE_CODE_A;\n }\n }\n const lastPatternSize = nextStart - lastStart;\n // Check for ample whitespace following pattern, but, to do this we first need to remember that\n // we fudged decoding CODE_STOP since it actually has 7 bars, not 6. There is a black bar left\n // to read off. Would be slightly better to properly read. Here we just skip it:\n nextStart = row.getNextUnset(nextStart);\n if (!row.isRange(nextStart, Math.min(row.getSize(), nextStart + (nextStart - lastStart) / 2), false)) {\n throw new NotFoundException();\n }\n // Pull out from sum the value of the penultimate check code\n checksumTotal -= multiplier * lastCode;\n // lastCode is the checksum then:\n if (checksumTotal % 103 !== lastCode) {\n throw new ChecksumException();\n }\n // Need to pull out the check digits from string\n const resultLength = result.length;\n if (resultLength === 0) {\n // false positive\n throw new NotFoundException();\n }\n // Only bother if the result had at least one character, and if the checksum digit happened to\n // be a printable character. If it was just interpreted as a control code, nothing to remove.\n if (resultLength > 0 && lastCharacterWasPrintable) {\n if (codeSet === Code128Reader.CODE_CODE_C) {\n result = result.substring(0, resultLength - 2);\n }\n else {\n result = result.substring(0, resultLength - 1);\n }\n }\n const left = (startPatternInfo[1] + startPatternInfo[0]) / 2.0;\n const right = lastStart + lastPatternSize / 2.0;\n const rawCodesSize = rawCodes.length;\n const rawBytes = new Uint8Array(rawCodesSize);\n for (let i = 0; i < rawCodesSize; i++) {\n rawBytes[i] = rawCodes[i];\n }\n const points = [new ResultPoint(left, rowNumber), new ResultPoint(right, rowNumber)];\n return new Result(result, rawBytes, 0, points, BarcodeFormat$1.CODE_128, new Date().getTime());\n }\n }\n Code128Reader.CODE_PATTERNS = [\n Int32Array.from([2, 1, 2, 2, 2, 2]),\n Int32Array.from([2, 2, 2, 1, 2, 2]),\n Int32Array.from([2, 2, 2, 2, 2, 1]),\n Int32Array.from([1, 2, 1, 2, 2, 3]),\n Int32Array.from([1, 2, 1, 3, 2, 2]),\n Int32Array.from([1, 3, 1, 2, 2, 2]),\n Int32Array.from([1, 2, 2, 2, 1, 3]),\n Int32Array.from([1, 2, 2, 3, 1, 2]),\n Int32Array.from([1, 3, 2, 2, 1, 2]),\n Int32Array.from([2, 2, 1, 2, 1, 3]),\n Int32Array.from([2, 2, 1, 3, 1, 2]),\n Int32Array.from([2, 3, 1, 2, 1, 2]),\n Int32Array.from([1, 1, 2, 2, 3, 2]),\n Int32Array.from([1, 2, 2, 1, 3, 2]),\n Int32Array.from([1, 2, 2, 2, 3, 1]),\n Int32Array.from([1, 1, 3, 2, 2, 2]),\n Int32Array.from([1, 2, 3, 1, 2, 2]),\n Int32Array.from([1, 2, 3, 2, 2, 1]),\n Int32Array.from([2, 2, 3, 2, 1, 1]),\n Int32Array.from([2, 2, 1, 1, 3, 2]),\n Int32Array.from([2, 2, 1, 2, 3, 1]),\n Int32Array.from([2, 1, 3, 2, 1, 2]),\n Int32Array.from([2, 2, 3, 1, 1, 2]),\n Int32Array.from([3, 1, 2, 1, 3, 1]),\n Int32Array.from([3, 1, 1, 2, 2, 2]),\n Int32Array.from([3, 2, 1, 1, 2, 2]),\n Int32Array.from([3, 2, 1, 2, 2, 1]),\n Int32Array.from([3, 1, 2, 2, 1, 2]),\n Int32Array.from([3, 2, 2, 1, 1, 2]),\n Int32Array.from([3, 2, 2, 2, 1, 1]),\n Int32Array.from([2, 1, 2, 1, 2, 3]),\n Int32Array.from([2, 1, 2, 3, 2, 1]),\n Int32Array.from([2, 3, 2, 1, 2, 1]),\n Int32Array.from([1, 1, 1, 3, 2, 3]),\n Int32Array.from([1, 3, 1, 1, 2, 3]),\n Int32Array.from([1, 3, 1, 3, 2, 1]),\n Int32Array.from([1, 1, 2, 3, 1, 3]),\n Int32Array.from([1, 3, 2, 1, 1, 3]),\n Int32Array.from([1, 3, 2, 3, 1, 1]),\n Int32Array.from([2, 1, 1, 3, 1, 3]),\n Int32Array.from([2, 3, 1, 1, 1, 3]),\n Int32Array.from([2, 3, 1, 3, 1, 1]),\n Int32Array.from([1, 1, 2, 1, 3, 3]),\n Int32Array.from([1, 1, 2, 3, 3, 1]),\n Int32Array.from([1, 3, 2, 1, 3, 1]),\n Int32Array.from([1, 1, 3, 1, 2, 3]),\n Int32Array.from([1, 1, 3, 3, 2, 1]),\n Int32Array.from([1, 3, 3, 1, 2, 1]),\n Int32Array.from([3, 1, 3, 1, 2, 1]),\n Int32Array.from([2, 1, 1, 3, 3, 1]),\n Int32Array.from([2, 3, 1, 1, 3, 1]),\n Int32Array.from([2, 1, 3, 1, 1, 3]),\n Int32Array.from([2, 1, 3, 3, 1, 1]),\n Int32Array.from([2, 1, 3, 1, 3, 1]),\n Int32Array.from([3, 1, 1, 1, 2, 3]),\n Int32Array.from([3, 1, 1, 3, 2, 1]),\n Int32Array.from([3, 3, 1, 1, 2, 1]),\n Int32Array.from([3, 1, 2, 1, 1, 3]),\n Int32Array.from([3, 1, 2, 3, 1, 1]),\n Int32Array.from([3, 3, 2, 1, 1, 1]),\n Int32Array.from([3, 1, 4, 1, 1, 1]),\n Int32Array.from([2, 2, 1, 4, 1, 1]),\n Int32Array.from([4, 3, 1, 1, 1, 1]),\n Int32Array.from([1, 1, 1, 2, 2, 4]),\n Int32Array.from([1, 1, 1, 4, 2, 2]),\n Int32Array.from([1, 2, 1, 1, 2, 4]),\n Int32Array.from([1, 2, 1, 4, 2, 1]),\n Int32Array.from([1, 4, 1, 1, 2, 2]),\n Int32Array.from([1, 4, 1, 2, 2, 1]),\n Int32Array.from([1, 1, 2, 2, 1, 4]),\n Int32Array.from([1, 1, 2, 4, 1, 2]),\n Int32Array.from([1, 2, 2, 1, 1, 4]),\n Int32Array.from([1, 2, 2, 4, 1, 1]),\n Int32Array.from([1, 4, 2, 1, 1, 2]),\n Int32Array.from([1, 4, 2, 2, 1, 1]),\n Int32Array.from([2, 4, 1, 2, 1, 1]),\n Int32Array.from([2, 2, 1, 1, 1, 4]),\n Int32Array.from([4, 1, 3, 1, 1, 1]),\n Int32Array.from([2, 4, 1, 1, 1, 2]),\n Int32Array.from([1, 3, 4, 1, 1, 1]),\n Int32Array.from([1, 1, 1, 2, 4, 2]),\n Int32Array.from([1, 2, 1, 1, 4, 2]),\n Int32Array.from([1, 2, 1, 2, 4, 1]),\n Int32Array.from([1, 1, 4, 2, 1, 2]),\n Int32Array.from([1, 2, 4, 1, 1, 2]),\n Int32Array.from([1, 2, 4, 2, 1, 1]),\n Int32Array.from([4, 1, 1, 2, 1, 2]),\n Int32Array.from([4, 2, 1, 1, 1, 2]),\n Int32Array.from([4, 2, 1, 2, 1, 1]),\n Int32Array.from([2, 1, 2, 1, 4, 1]),\n Int32Array.from([2, 1, 4, 1, 2, 1]),\n Int32Array.from([4, 1, 2, 1, 2, 1]),\n Int32Array.from([1, 1, 1, 1, 4, 3]),\n Int32Array.from([1, 1, 1, 3, 4, 1]),\n Int32Array.from([1, 3, 1, 1, 4, 1]),\n Int32Array.from([1, 1, 4, 1, 1, 3]),\n Int32Array.from([1, 1, 4, 3, 1, 1]),\n Int32Array.from([4, 1, 1, 1, 1, 3]),\n Int32Array.from([4, 1, 1, 3, 1, 1]),\n Int32Array.from([1, 1, 3, 1, 4, 1]),\n Int32Array.from([1, 1, 4, 1, 3, 1]),\n Int32Array.from([3, 1, 1, 1, 4, 1]),\n Int32Array.from([4, 1, 1, 1, 3, 1]),\n Int32Array.from([2, 1, 1, 4, 1, 2]),\n Int32Array.from([2, 1, 1, 2, 1, 4]),\n Int32Array.from([2, 1, 1, 2, 3, 2]),\n Int32Array.from([2, 3, 3, 1, 1, 1, 2]),\n ];\n Code128Reader.MAX_AVG_VARIANCE = 0.25;\n Code128Reader.MAX_INDIVIDUAL_VARIANCE = 0.7;\n Code128Reader.CODE_SHIFT = 98;\n Code128Reader.CODE_CODE_C = 99;\n Code128Reader.CODE_CODE_B = 100;\n Code128Reader.CODE_CODE_A = 101;\n Code128Reader.CODE_FNC_1 = 102;\n Code128Reader.CODE_FNC_2 = 97;\n Code128Reader.CODE_FNC_3 = 96;\n Code128Reader.CODE_FNC_4_A = 101;\n Code128Reader.CODE_FNC_4_B = 100;\n Code128Reader.CODE_START_A = 103;\n Code128Reader.CODE_START_B = 104;\n Code128Reader.CODE_START_C = 105;\n Code128Reader.CODE_STOP = 106;\n\n /**\n *Decodes Code 39 barcodes. Supports \"Full ASCII Code 39\" if USE_CODE_39_EXTENDED_MODE is set.
\n *\n * @author Sean Owen\n * @see Code93Reader\n */\n class Code39Reader extends OneDReader {\n /**\n * Creates a reader that assumes all encoded data is data, and does not treat the final\n * character as a check digit. It will not decoded \"extended Code 39\" sequences.\n */\n // public Code39Reader() {\n // this(false);\n // }\n /**\n * Creates a reader that can be configured to check the last character as a check digit.\n * It will not decoded \"extended Code 39\" sequences.\n *\n * @param usingCheckDigit if true, treat the last data character as a check digit, not\n * data, and verify that the checksum passes.\n */\n // public Code39Reader(boolean usingCheckDigit) {\n // this(usingCheckDigit, false);\n // }\n /**\n * Creates a reader that can be configured to check the last character as a check digit,\n * or optionally attempt to decode \"extended Code 39\" sequences that are used to encode\n * the full ASCII character set.\n *\n * @param usingCheckDigit if true, treat the last data character as a check digit, not\n * data, and verify that the checksum passes.\n * @param extendedMode if true, will attempt to decode extended Code 39 sequences in the\n * text.\n */\n constructor(usingCheckDigit = false, extendedMode = false) {\n super();\n this.usingCheckDigit = usingCheckDigit;\n this.extendedMode = extendedMode;\n this.decodeRowResult = '';\n this.counters = new Int32Array(9);\n }\n decodeRow(rowNumber, row, hints) {\n let theCounters = this.counters;\n theCounters.fill(0);\n this.decodeRowResult = '';\n let start = Code39Reader.findAsteriskPattern(row, theCounters);\n // Read off white space\n let nextStart = row.getNextSet(start[1]);\n let end = row.getSize();\n let decodedChar;\n let lastStart;\n do {\n Code39Reader.recordPattern(row, nextStart, theCounters);\n let pattern = Code39Reader.toNarrowWidePattern(theCounters);\n if (pattern < 0) {\n throw new NotFoundException();\n }\n decodedChar = Code39Reader.patternToChar(pattern);\n this.decodeRowResult += decodedChar;\n lastStart = nextStart;\n for (let counter of theCounters) {\n nextStart += counter;\n }\n // Read off white space\n nextStart = row.getNextSet(nextStart);\n } while (decodedChar !== '*');\n this.decodeRowResult = this.decodeRowResult.substring(0, this.decodeRowResult.length - 1); // remove asterisk\n // Look for whitespace after pattern:\n let lastPatternSize = 0;\n for (let counter of theCounters) {\n lastPatternSize += counter;\n }\n let whiteSpaceAfterEnd = nextStart - lastStart - lastPatternSize;\n // If 50% of last pattern size, following last pattern, is not whitespace, fail\n // (but if it's whitespace to the very end of the image, that's OK)\n if (nextStart !== end && (whiteSpaceAfterEnd * 2) < lastPatternSize) {\n throw new NotFoundException();\n }\n if (this.usingCheckDigit) {\n let max = this.decodeRowResult.length - 1;\n let total = 0;\n for (let i = 0; i < max; i++) {\n total += Code39Reader.ALPHABET_STRING.indexOf(this.decodeRowResult.charAt(i));\n }\n if (this.decodeRowResult.charAt(max) !== Code39Reader.ALPHABET_STRING.charAt(total % 43)) {\n throw new ChecksumException();\n }\n this.decodeRowResult = this.decodeRowResult.substring(0, max);\n }\n if (this.decodeRowResult.length === 0) {\n // false positive\n throw new NotFoundException();\n }\n let resultString;\n if (this.extendedMode) {\n resultString = Code39Reader.decodeExtended(this.decodeRowResult);\n }\n else {\n resultString = this.decodeRowResult;\n }\n let left = (start[1] + start[0]) / 2.0;\n let right = lastStart + lastPatternSize / 2.0;\n return new Result(resultString, null, 0, [new ResultPoint(left, rowNumber), new ResultPoint(right, rowNumber)], BarcodeFormat$1.CODE_39, new Date().getTime());\n }\n static findAsteriskPattern(row, counters) {\n let width = row.getSize();\n let rowOffset = row.getNextSet(0);\n let counterPosition = 0;\n let patternStart = rowOffset;\n let isWhite = false;\n let patternLength = counters.length;\n for (let i = rowOffset; i < width; i++) {\n if (row.get(i) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === patternLength - 1) {\n // Look for whitespace before start pattern, >= 50% of width of start pattern\n if (this.toNarrowWidePattern(counters) === Code39Reader.ASTERISK_ENCODING &&\n row.isRange(Math.max(0, patternStart - Math.floor((i - patternStart) / 2)), patternStart, false)) {\n return [patternStart, i];\n }\n patternStart += counters[0] + counters[1];\n counters.copyWithin(0, 2, 2 + counterPosition - 1);\n counters[counterPosition - 1] = 0;\n counters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException();\n }\n // For efficiency, returns -1 on failure. Not throwing here saved as many as 700 exceptions\n // per image when using some of our blackbox images.\n static toNarrowWidePattern(counters) {\n let numCounters = counters.length;\n let maxNarrowCounter = 0;\n let wideCounters;\n do {\n let minCounter = 0x7fffffff;\n for (let counter of counters) {\n if (counter < minCounter && counter > maxNarrowCounter) {\n minCounter = counter;\n }\n }\n maxNarrowCounter = minCounter;\n wideCounters = 0;\n let totalWideCountersWidth = 0;\n let pattern = 0;\n for (let i = 0; i < numCounters; i++) {\n let counter = counters[i];\n if (counter > maxNarrowCounter) {\n pattern |= 1 << (numCounters - 1 - i);\n wideCounters++;\n totalWideCountersWidth += counter;\n }\n }\n if (wideCounters === 3) {\n // Found 3 wide counters, but are they close enough in width?\n // We can perform a cheap, conservative check to see if any individual\n // counter is more than 1.5 times the average:\n for (let i = 0; i < numCounters && wideCounters > 0; i++) {\n let counter = counters[i];\n if (counter > maxNarrowCounter) {\n wideCounters--;\n // totalWideCountersWidth = 3 * average, so this checks if counter >= 3/2 * average\n if ((counter * 2) >= totalWideCountersWidth) {\n return -1;\n }\n }\n }\n return pattern;\n }\n } while (wideCounters > 3);\n return -1;\n }\n static patternToChar(pattern) {\n for (let i = 0; i < Code39Reader.CHARACTER_ENCODINGS.length; i++) {\n if (Code39Reader.CHARACTER_ENCODINGS[i] === pattern) {\n return Code39Reader.ALPHABET_STRING.charAt(i);\n }\n }\n if (pattern === Code39Reader.ASTERISK_ENCODING) {\n return '*';\n }\n throw new NotFoundException();\n }\n static decodeExtended(encoded) {\n let length = encoded.length;\n let decoded = '';\n for (let i = 0; i < length; i++) {\n let c = encoded.charAt(i);\n if (c === '+' || c === '$' || c === '%' || c === '/') {\n let next = encoded.charAt(i + 1);\n let decodedChar = '\\0';\n switch (c) {\n case '+':\n // +A to +Z map to a to z\n if (next >= 'A' && next <= 'Z') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) + 32);\n }\n else {\n throw new FormatException();\n }\n break;\n case '$':\n // $A to $Z map to control codes SH to SB\n if (next >= 'A' && next <= 'Z') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 64);\n }\n else {\n throw new FormatException();\n }\n break;\n case '%':\n // %A to %E map to control codes ESC to US\n if (next >= 'A' && next <= 'E') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 38);\n }\n else if (next >= 'F' && next <= 'J') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 11);\n }\n else if (next >= 'K' && next <= 'O') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) + 16);\n }\n else if (next >= 'P' && next <= 'T') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) + 43);\n }\n else if (next === 'U') {\n decodedChar = '\\0';\n }\n else if (next === 'V') {\n decodedChar = '@';\n }\n else if (next === 'W') {\n decodedChar = '`';\n }\n else if (next === 'X' || next === 'Y' || next === 'Z') {\n decodedChar = '\\x7f';\n }\n else {\n throw new FormatException();\n }\n break;\n case '/':\n // /A to /O map to ! to , and /Z maps to :\n if (next >= 'A' && next <= 'O') {\n decodedChar = String.fromCharCode(next.charCodeAt(0) - 32);\n }\n else if (next === 'Z') {\n decodedChar = ':';\n }\n else {\n throw new FormatException();\n }\n break;\n }\n decoded += decodedChar;\n // bump up i again since we read two characters\n i++;\n }\n else {\n decoded += c;\n }\n }\n return decoded;\n }\n }\n Code39Reader.ALPHABET_STRING = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%';\n /**\n * These represent the encodings of characters, as patterns of wide and narrow bars.\n * The 9 least-significant bits of each int correspond to the pattern of wide and narrow,\n * with 1s representing \"wide\" and 0s representing narrow.\n */\n Code39Reader.CHARACTER_ENCODINGS = [\n 0x034, 0x121, 0x061, 0x160, 0x031, 0x130, 0x070, 0x025, 0x124, 0x064,\n 0x109, 0x049, 0x148, 0x019, 0x118, 0x058, 0x00D, 0x10C, 0x04C, 0x01C,\n 0x103, 0x043, 0x142, 0x013, 0x112, 0x052, 0x007, 0x106, 0x046, 0x016,\n 0x181, 0x0C1, 0x1C0, 0x091, 0x190, 0x0D0, 0x085, 0x184, 0x0C4, 0x0A8,\n 0x0A2, 0x08A, 0x02A // /-%\n ];\n Code39Reader.ASTERISK_ENCODING = 0x094;\n\n /**\n *Decodes ITF barcodes.
\n *\n * @author Tjieco\n */\n class ITFReader extends OneDReader {\n constructor() {\n // private static W = 3; // Pixel width of a 3x wide line\n // private static w = 2; // Pixel width of a 2x wide line\n // private static N = 1; // Pixed width of a narrow line\n super(...arguments);\n // Stores the actual narrow line width of the image being decoded.\n this.narrowLineWidth = -1;\n }\n // See ITFWriter.PATTERNS\n /*\n \n /!**\n * Patterns of Wide / Narrow lines to indicate each digit\n *!/\n */\n decodeRow(rowNumber, row, hints) {\n // Find out where the Middle section (payload) starts & ends\n let startRange = this.decodeStart(row);\n let endRange = this.decodeEnd(row);\n let result = new StringBuilder();\n ITFReader.decodeMiddle(row, startRange[1], endRange[0], result);\n let resultString = result.toString();\n let allowedLengths = null;\n if (hints != null) {\n allowedLengths = hints.get(DecodeHintType$1.ALLOWED_LENGTHS);\n }\n if (allowedLengths == null) {\n allowedLengths = ITFReader.DEFAULT_ALLOWED_LENGTHS;\n }\n // To avoid false positives with 2D barcodes (and other patterns), make\n // an assumption that the decoded string must be a 'standard' length if it's short\n let length = resultString.length;\n let lengthOK = false;\n let maxAllowedLength = 0;\n for (let value of allowedLengths) {\n if (length === value) {\n lengthOK = true;\n break;\n }\n if (value > maxAllowedLength) {\n maxAllowedLength = value;\n }\n }\n if (!lengthOK && length > maxAllowedLength) {\n lengthOK = true;\n }\n if (!lengthOK) {\n throw new FormatException();\n }\n const points = [new ResultPoint(startRange[1], rowNumber), new ResultPoint(endRange[0], rowNumber)];\n let resultReturn = new Result(resultString, null, // no natural byte representation for these barcodes\n 0, points, BarcodeFormat$1.ITF, new Date().getTime());\n return resultReturn;\n }\n /*\n /!**\n * @param row row of black/white values to search\n * @param payloadStart offset of start pattern\n * @param resultString {@link StringBuilder} to append decoded chars to\n * @throws NotFoundException if decoding could not complete successfully\n *!/*/\n static decodeMiddle(row, payloadStart, payloadEnd, resultString) {\n // Digits are interleaved in pairs - 5 black lines for one digit, and the\n // 5\n // interleaved white lines for the second digit.\n // Therefore, need to scan 10 lines and then\n // split these into two arrays\n let counterDigitPair = new Int32Array(10); // 10\n let counterBlack = new Int32Array(5); // 5\n let counterWhite = new Int32Array(5); // 5\n counterDigitPair.fill(0);\n counterBlack.fill(0);\n counterWhite.fill(0);\n while (payloadStart < payloadEnd) {\n // Get 10 runs of black/white.\n OneDReader.recordPattern(row, payloadStart, counterDigitPair);\n // Split them into each array\n for (let k = 0; k < 5; k++) {\n let twoK = 2 * k;\n counterBlack[k] = counterDigitPair[twoK];\n counterWhite[k] = counterDigitPair[twoK + 1];\n }\n let bestMatch = ITFReader.decodeDigit(counterBlack);\n resultString.append(bestMatch.toString());\n bestMatch = this.decodeDigit(counterWhite);\n resultString.append(bestMatch.toString());\n counterDigitPair.forEach(function (counterDigit) {\n payloadStart += counterDigit;\n });\n }\n }\n /*/!**\n * Identify where the start of the middle / payload section starts.\n *\n * @param row row of black/white values to search\n * @return Array, containing index of start of 'start block' and end of\n * 'start block'\n *!/*/\n decodeStart(row) {\n let endStart = ITFReader.skipWhiteSpace(row);\n let startPattern = ITFReader.findGuardPattern(row, endStart, ITFReader.START_PATTERN);\n // Determine the width of a narrow line in pixels. We can do this by\n // getting the width of the start pattern and dividing by 4 because its\n // made up of 4 narrow lines.\n this.narrowLineWidth = (startPattern[1] - startPattern[0]) / 4;\n this.validateQuietZone(row, startPattern[0]);\n return startPattern;\n }\n /*/!**\n * The start & end patterns must be pre/post fixed by a quiet zone. This\n * zone must be at least 10 times the width of a narrow line. Scan back until\n * we either get to the start of the barcode or match the necessary number of\n * quiet zone pixels.\n *\n * Note: Its assumed the row is reversed when using this method to find\n * quiet zone after the end pattern.\n *\n * ref: http://www.barcode-1.net/i25code.html\n *\n * @param row bit array representing the scanned barcode.\n * @param startPattern index into row of the start or end pattern.\n * @throws NotFoundException if the quiet zone cannot be found\n *!/*/\n validateQuietZone(row, startPattern) {\n let quietCount = this.narrowLineWidth * 10; // expect to find this many pixels of quiet zone\n // if there are not so many pixel at all let's try as many as possible\n quietCount = quietCount < startPattern ? quietCount : startPattern;\n for (let i = startPattern - 1; quietCount > 0 && i >= 0; i--) {\n if (row.get(i)) {\n break;\n }\n quietCount--;\n }\n if (quietCount !== 0) {\n // Unable to find the necessary number of quiet zone pixels.\n throw new NotFoundException();\n }\n }\n /*\n /!**\n * Skip all whitespace until we get to the first black line.\n *\n * @param row row of black/white values to search\n * @return index of the first black line.\n * @throws NotFoundException Throws exception if no black lines are found in the row\n *!/*/\n static skipWhiteSpace(row) {\n const width = row.getSize();\n const endStart = row.getNextSet(0);\n if (endStart === width) {\n throw new NotFoundException();\n }\n return endStart;\n }\n /*/!**\n * Identify where the end of the middle / payload section ends.\n *\n * @param row row of black/white values to search\n * @return Array, containing index of start of 'end block' and end of 'end\n * block'\n *!/*/\n decodeEnd(row) {\n // For convenience, reverse the row and then\n // search from 'the start' for the end block\n row.reverse();\n try {\n let endStart = ITFReader.skipWhiteSpace(row);\n let endPattern;\n try {\n endPattern = ITFReader.findGuardPattern(row, endStart, ITFReader.END_PATTERN_REVERSED[0]);\n }\n catch (error) {\n if (error instanceof NotFoundException) {\n endPattern = ITFReader.findGuardPattern(row, endStart, ITFReader.END_PATTERN_REVERSED[1]);\n }\n }\n // The start & end patterns must be pre/post fixed by a quiet zone. This\n // zone must be at least 10 times the width of a narrow line.\n // ref: http://www.barcode-1.net/i25code.html\n this.validateQuietZone(row, endPattern[0]);\n // Now recalculate the indices of where the 'endblock' starts & stops to\n // accommodate\n // the reversed nature of the search\n let temp = endPattern[0];\n endPattern[0] = row.getSize() - endPattern[1];\n endPattern[1] = row.getSize() - temp;\n return endPattern;\n }\n finally {\n // Put the row back the right way.\n row.reverse();\n }\n }\n /*\n /!**\n * @param row row of black/white values to search\n * @param rowOffset position to start search\n * @param pattern pattern of counts of number of black and white pixels that are\n * being searched for as a pattern\n * @return start/end horizontal offset of guard pattern, as an array of two\n * ints\n * @throws NotFoundException if pattern is not found\n *!/*/\n static findGuardPattern(row, rowOffset, pattern) {\n let patternLength = pattern.length;\n let counters = new Int32Array(patternLength);\n let width = row.getSize();\n let isWhite = false;\n let counterPosition = 0;\n let patternStart = rowOffset;\n counters.fill(0);\n for (let x = rowOffset; x < width; x++) {\n if (row.get(x) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === patternLength - 1) {\n if (OneDReader.patternMatchVariance(counters, pattern, ITFReader.MAX_INDIVIDUAL_VARIANCE) < ITFReader.MAX_AVG_VARIANCE) {\n return [patternStart, x];\n }\n patternStart += counters[0] + counters[1];\n System.arraycopy(counters, 2, counters, 0, counterPosition - 1);\n counters[counterPosition - 1] = 0;\n counters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException();\n }\n /*/!**\n * Attempts to decode a sequence of ITF black/white lines into single\n * digit.\n *\n * @param counters the counts of runs of observed black/white/black/... values\n * @return The decoded digit\n * @throws NotFoundException if digit cannot be decoded\n *!/*/\n static decodeDigit(counters) {\n let bestVariance = ITFReader.MAX_AVG_VARIANCE; // worst variance we'll accept\n let bestMatch = -1;\n let max = ITFReader.PATTERNS.length;\n for (let i = 0; i < max; i++) {\n let pattern = ITFReader.PATTERNS[i];\n let variance = OneDReader.patternMatchVariance(counters, pattern, ITFReader.MAX_INDIVIDUAL_VARIANCE);\n if (variance < bestVariance) {\n bestVariance = variance;\n bestMatch = i;\n }\n else if (variance === bestVariance) {\n // if we find a second 'best match' with the same variance, we can not reliably report to have a suitable match\n bestMatch = -1;\n }\n }\n if (bestMatch >= 0) {\n return bestMatch % 10;\n }\n else {\n throw new NotFoundException();\n }\n }\n }\n ITFReader.PATTERNS = [\n Int32Array.from([1, 1, 2, 2, 1]),\n Int32Array.from([2, 1, 1, 1, 2]),\n Int32Array.from([1, 2, 1, 1, 2]),\n Int32Array.from([2, 2, 1, 1, 1]),\n Int32Array.from([1, 1, 2, 1, 2]),\n Int32Array.from([2, 1, 2, 1, 1]),\n Int32Array.from([1, 2, 2, 1, 1]),\n Int32Array.from([1, 1, 1, 2, 2]),\n Int32Array.from([2, 1, 1, 2, 1]),\n Int32Array.from([1, 2, 1, 2, 1]),\n Int32Array.from([1, 1, 3, 3, 1]),\n Int32Array.from([3, 1, 1, 1, 3]),\n Int32Array.from([1, 3, 1, 1, 3]),\n Int32Array.from([3, 3, 1, 1, 1]),\n Int32Array.from([1, 1, 3, 1, 3]),\n Int32Array.from([3, 1, 3, 1, 1]),\n Int32Array.from([1, 3, 3, 1, 1]),\n Int32Array.from([1, 1, 1, 3, 3]),\n Int32Array.from([3, 1, 1, 3, 1]),\n Int32Array.from([1, 3, 1, 3, 1]) // 9\n ];\n ITFReader.MAX_AVG_VARIANCE = 0.38;\n ITFReader.MAX_INDIVIDUAL_VARIANCE = 0.5;\n /* /!** Valid ITF lengths. Anything longer than the largest value is also allowed. *!/*/\n ITFReader.DEFAULT_ALLOWED_LENGTHS = [6, 8, 10, 12, 14];\n /*/!**\n * Start/end guard pattern.\n *\n * Note: The end pattern is reversed because the row is reversed before\n * searching for the END_PATTERN\n *!/*/\n ITFReader.START_PATTERN = Int32Array.from([1, 1, 1, 1]);\n ITFReader.END_PATTERN_REVERSED = [\n Int32Array.from([1, 1, 2]),\n Int32Array.from([1, 1, 3]) // 3x\n ];\n\n /**\n *Encapsulates functionality and implementation that is common to UPC and EAN families\n * of one-dimensional barcodes.
\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n * @author alasdair@google.com (Alasdair Mackintosh)\n */\n class AbstractUPCEANReader extends OneDReader {\n constructor() {\n super(...arguments);\n this.decodeRowStringBuffer = '';\n }\n\n static findStartGuardPattern(row) {\n let foundStart = false;\n let startRange;\n let nextStart = 0;\n let counters = Int32Array.from([0, 0, 0]);\n while (!foundStart) {\n counters = Int32Array.from([0, 0, 0]);\n startRange = AbstractUPCEANReader.findGuardPattern(row, nextStart, false, this.START_END_PATTERN, counters);\n let start = startRange[0];\n nextStart = startRange[1];\n let quietStart = start - (nextStart - start);\n if (quietStart >= 0) {\n foundStart = row.isRange(quietStart, start, false);\n }\n }\n return startRange;\n }\n static checkChecksum(s) {\n return AbstractUPCEANReader.checkStandardUPCEANChecksum(s);\n }\n static checkStandardUPCEANChecksum(s) {\n let length = s.length;\n if (length === 0)\n return false;\n let check = parseInt(s.charAt(length - 1), 10);\n return AbstractUPCEANReader.getStandardUPCEANChecksum(s.substring(0, length - 1)) === check;\n }\n static getStandardUPCEANChecksum(s) {\n let length = s.length;\n let sum = 0;\n for (let i = length - 1; i >= 0; i -= 2) {\n let digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n if (digit < 0 || digit > 9) {\n throw new FormatException();\n }\n sum += digit;\n }\n sum *= 3;\n for (let i = length - 2; i >= 0; i -= 2) {\n let digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n if (digit < 0 || digit > 9) {\n throw new FormatException();\n }\n sum += digit;\n }\n return (1000 - sum) % 10;\n }\n static decodeEnd(row, endStart) {\n return AbstractUPCEANReader.findGuardPattern(row, endStart, false, AbstractUPCEANReader.START_END_PATTERN, new Int32Array(AbstractUPCEANReader.START_END_PATTERN.length).fill(0));\n }\n /**\n * @throws NotFoundException\n */\n static findGuardPatternWithoutCounters(row, rowOffset, whiteFirst, pattern) {\n return this.findGuardPattern(row, rowOffset, whiteFirst, pattern, new Int32Array(pattern.length));\n }\n /**\n * @param row row of black/white values to search\n * @param rowOffset position to start search\n * @param whiteFirst if true, indicates that the pattern specifies white/black/white/...\n * pixel counts, otherwise, it is interpreted as black/white/black/...\n * @param pattern pattern of counts of number of black and white pixels that are being\n * searched for as a pattern\n * @param counters array of counters, as long as pattern, to re-use\n * @return start/end horizontal offset of guard pattern, as an array of two ints\n * @throws NotFoundException if pattern is not found\n */\n static findGuardPattern(row, rowOffset, whiteFirst, pattern, counters) {\n let width = row.getSize();\n rowOffset = whiteFirst ? row.getNextUnset(rowOffset) : row.getNextSet(rowOffset);\n let counterPosition = 0;\n let patternStart = rowOffset;\n let patternLength = pattern.length;\n let isWhite = whiteFirst;\n for (let x = rowOffset; x < width; x++) {\n if (row.get(x) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === patternLength - 1) {\n if (OneDReader.patternMatchVariance(counters, pattern, AbstractUPCEANReader.MAX_INDIVIDUAL_VARIANCE) < AbstractUPCEANReader.MAX_AVG_VARIANCE) {\n return Int32Array.from([patternStart, x]);\n }\n patternStart += counters[0] + counters[1];\n let slice = counters.slice(2, counters.length - 1);\n for (let i = 0; i < counterPosition - 1; i++) {\n counters[i] = slice[i];\n }\n counters[counterPosition - 1] = 0;\n counters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException();\n }\n static decodeDigit(row, counters, rowOffset, patterns) {\n this.recordPattern(row, rowOffset, counters);\n let bestVariance = this.MAX_AVG_VARIANCE;\n let bestMatch = -1;\n let max = patterns.length;\n for (let i = 0; i < max; i++) {\n let pattern = patterns[i];\n let variance = OneDReader.patternMatchVariance(counters, pattern, AbstractUPCEANReader.MAX_INDIVIDUAL_VARIANCE);\n if (variance < bestVariance) {\n bestVariance = variance;\n bestMatch = i;\n }\n }\n if (bestMatch >= 0) {\n return bestMatch;\n }\n else {\n throw new NotFoundException();\n }\n }\n }\n // These two values are critical for determining how permissive the decoding will be.\n // We've arrived at these values through a lot of trial and error. Setting them any higher\n // lets false positives creep in quickly.\n AbstractUPCEANReader.MAX_AVG_VARIANCE = 0.48;\n AbstractUPCEANReader.MAX_INDIVIDUAL_VARIANCE = 0.7;\n /**\n * Start/end guard pattern.\n */\n AbstractUPCEANReader.START_END_PATTERN = Int32Array.from([1, 1, 1]);\n /**\n * Pattern marking the middle of a UPC/EAN pattern, separating the two halves.\n */\n AbstractUPCEANReader.MIDDLE_PATTERN = Int32Array.from([1, 1, 1, 1, 1]);\n /**\n * end guard pattern.\n */\n AbstractUPCEANReader.END_PATTERN = Int32Array.from([1, 1, 1, 1, 1, 1]);\n /**\n * \"Odd\", or \"L\" patterns used to encode UPC/EAN digits.\n */\n AbstractUPCEANReader.L_PATTERNS = [\n Int32Array.from([3, 2, 1, 1]),\n Int32Array.from([2, 2, 2, 1]),\n Int32Array.from([2, 1, 2, 2]),\n Int32Array.from([1, 4, 1, 1]),\n Int32Array.from([1, 1, 3, 2]),\n Int32Array.from([1, 2, 3, 1]),\n Int32Array.from([1, 1, 1, 4]),\n Int32Array.from([1, 3, 1, 2]),\n Int32Array.from([1, 2, 1, 3]),\n Int32Array.from([3, 1, 1, 2]),\n ];\n\n /**\n * @see UPCEANExtension2Support\n */\n class UPCEANExtension5Support {\n constructor() {\n this.CHECK_DIGIT_ENCODINGS = [0x18, 0x14, 0x12, 0x11, 0x0C, 0x06, 0x03, 0x0A, 0x09, 0x05];\n this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0]);\n this.decodeRowStringBuffer = '';\n }\n decodeRow(rowNumber, row, extensionStartRange) {\n let result = this.decodeRowStringBuffer;\n let end = this.decodeMiddle(row, extensionStartRange, result);\n let resultString = result.toString();\n let extensionData = UPCEANExtension5Support.parseExtensionString(resultString);\n let resultPoints = [\n new ResultPoint((extensionStartRange[0] + extensionStartRange[1]) / 2.0, rowNumber),\n new ResultPoint(end, rowNumber)\n ];\n let extensionResult = new Result(resultString, null, 0, resultPoints, BarcodeFormat$1.UPC_EAN_EXTENSION, new Date().getTime());\n if (extensionData != null) {\n extensionResult.putAllMetadata(extensionData);\n }\n return extensionResult;\n }\n decodeMiddle(row, startRange, resultString) {\n let counters = this.decodeMiddleCounters;\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n let end = row.getSize();\n let rowOffset = startRange[1];\n let lgPatternFound = 0;\n for (let x = 0; x < 5 && rowOffset < end; x++) {\n let bestMatch = AbstractUPCEANReader.decodeDigit(\n row,\n counters,\n rowOffset,\n AbstractUPCEANReader.L_AND_G_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch % 10));\n for (let counter of counters) {\n rowOffset += counter;\n }\n if (bestMatch >= 10) {\n lgPatternFound |= 1 << (4 - x);\n }\n if (x !== 4) {\n // Read off separator if not last\n rowOffset = row.getNextSet(rowOffset);\n rowOffset = row.getNextUnset(rowOffset);\n }\n }\n if (resultString.length !== 5) {\n throw new NotFoundException();\n }\n let checkDigit = this.determineCheckDigit(lgPatternFound);\n if (UPCEANExtension5Support.extensionChecksum(resultString.toString()) !== checkDigit) {\n throw new NotFoundException();\n }\n return rowOffset;\n }\n static extensionChecksum(s) {\n let length = s.length;\n let sum = 0;\n for (let i = length - 2; i >= 0; i -= 2) {\n sum += s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n }\n sum *= 3;\n for (let i = length - 1; i >= 0; i -= 2) {\n sum += s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n }\n sum *= 3;\n return sum % 10;\n }\n determineCheckDigit(lgPatternFound) {\n for (let d = 0; d < 10; d++) {\n if (lgPatternFound === this.CHECK_DIGIT_ENCODINGS[d]) {\n return d;\n }\n }\n throw new NotFoundException();\n }\n static parseExtensionString(raw) {\n if (raw.length !== 5) {\n return null;\n }\n let value = UPCEANExtension5Support.parseExtension5String(raw);\n if (value == null) {\n return null;\n }\n return new Map([[ResultMetadataType$1.SUGGESTED_PRICE, value]]);\n }\n static parseExtension5String(raw) {\n let currency;\n switch (raw.charAt(0)) {\n case '0':\n currency = '£';\n break;\n case '5':\n currency = '$';\n break;\n case '9':\n // Reference: http://www.jollytech.com\n switch (raw) {\n case '90000':\n // No suggested retail price\n return null;\n case '99991':\n // Complementary\n return '0.00';\n case '99990':\n return 'Used';\n }\n // Otherwise... unknown currency?\n currency = '';\n break;\n default:\n currency = '';\n break;\n }\n let rawAmount = parseInt(raw.substring(1));\n let unitsString = (rawAmount / 100).toString();\n let hundredths = rawAmount % 100;\n let hundredthsString = hundredths < 10 ? '0' + hundredths : hundredths.toString(); // fixme\n return currency + unitsString + '.' + hundredthsString;\n }\n }\n\n /**\n * @see UPCEANExtension5Support\n */\n class UPCEANExtension2Support {\n constructor() {\n this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0]);\n this.decodeRowStringBuffer = '';\n }\n decodeRow(rowNumber, row, extensionStartRange) {\n let result = this.decodeRowStringBuffer;\n let end = this.decodeMiddle(row, extensionStartRange, result);\n let resultString = result.toString();\n let extensionData = UPCEANExtension2Support.parseExtensionString(resultString);\n let resultPoints = [\n new ResultPoint((extensionStartRange[0] + extensionStartRange[1]) / 2.0, rowNumber),\n new ResultPoint(end, rowNumber)\n ];\n let extensionResult = new Result(resultString, null, 0, resultPoints, BarcodeFormat$1.UPC_EAN_EXTENSION, new Date().getTime());\n if (extensionData != null) {\n extensionResult.putAllMetadata(extensionData);\n }\n return extensionResult;\n }\n decodeMiddle(row, startRange, resultString) {\n let counters = this.decodeMiddleCounters;\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n let end = row.getSize();\n let rowOffset = startRange[1];\n let checkParity = 0;\n for (let x = 0; x < 2 && rowOffset < end; x++) {\n let bestMatch = AbstractUPCEANReader.decodeDigit(row, counters, rowOffset, AbstractUPCEANReader.L_AND_G_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch % 10));\n for (let counter of counters) {\n rowOffset += counter;\n }\n if (bestMatch >= 10) {\n checkParity |= 1 << (1 - x);\n }\n if (x !== 1) {\n // Read off separator if not last\n rowOffset = row.getNextSet(rowOffset);\n rowOffset = row.getNextUnset(rowOffset);\n }\n }\n if (resultString.length !== 2) {\n throw new NotFoundException();\n }\n if (parseInt(resultString.toString()) % 4 !== checkParity) {\n throw new NotFoundException();\n }\n return rowOffset;\n }\n static parseExtensionString(raw) {\n if (raw.length !== 2) {\n return null;\n }\n return new Map([[ResultMetadataType$1.ISSUE_NUMBER, parseInt(raw)]]);\n }\n }\n\n class UPCEANExtensionSupport {\n static decodeRow(rowNumber, row, rowOffset) {\n let extensionStartRange = AbstractUPCEANReader.findGuardPattern(\n row,\n rowOffset,\n false,\n this.EXTENSION_START_PATTERN,\n new Int32Array(this.EXTENSION_START_PATTERN.length).fill(0));\n try {\n // return null;\n let fiveSupport = new UPCEANExtension5Support();\n return fiveSupport.decodeRow(rowNumber, row, extensionStartRange);\n }\n catch (err) {\n // return null;\n let twoSupport = new UPCEANExtension2Support();\n return twoSupport.decodeRow(rowNumber, row, extensionStartRange);\n }\n }\n }\n UPCEANExtensionSupport.EXTENSION_START_PATTERN = Int32Array.from([1, 1, 2]);\n\n /**\n *Encapsulates functionality and implementation that is common to UPC and EAN families\n * of one-dimensional barcodes.
\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n * @author alasdair@google.com (Alasdair Mackintosh)\n */\n class UPCEANReader extends AbstractUPCEANReader {\n constructor() {\n super();\n this.decodeRowStringBuffer = '';\n UPCEANReader.L_AND_G_PATTERNS = UPCEANReader.L_PATTERNS.map(arr => Int32Array.from(arr));\n for (let i = 10; i < 20; i++) {\n let widths = UPCEANReader.L_PATTERNS[i - 10];\n let reversedWidths = new Int32Array(widths.length);\n for (let j = 0; j < widths.length; j++) {\n reversedWidths[j] = widths[widths.length - j - 1];\n }\n UPCEANReader.L_AND_G_PATTERNS[i] = reversedWidths;\n }\n }\n decodeRow(rowNumber, row, hints) {\n let startGuardRange = UPCEANReader.findStartGuardPattern(row);\n let resultPointCallback = hints == null ? null : hints.get(DecodeHintType$1.NEED_RESULT_POINT_CALLBACK);\n if (resultPointCallback != null) {\n const resultPoint = new ResultPoint((startGuardRange[0] + startGuardRange[1]) / 2.0, rowNumber);\n resultPointCallback.foundPossibleResultPoint(resultPoint);\n }\n let budello = this.decodeMiddle(row, startGuardRange, this.decodeRowStringBuffer);\n let endStart = budello.rowOffset;\n let result = budello.resultString;\n if (resultPointCallback != null) {\n const resultPoint = new ResultPoint(endStart, rowNumber);\n resultPointCallback.foundPossibleResultPoint(resultPoint);\n }\n let endRange = this.decodeEnd(row, endStart);\n if (resultPointCallback != null) {\n const resultPoint = new ResultPoint((endRange[0] + endRange[1]) / 2.0, rowNumber);\n resultPointCallback.foundPossibleResultPoint(resultPoint);\n }\n // Make sure there is a quiet zone at least as big as the end pattern after the barcode. The\n // spec might want more whitespace, but in practice this is the maximum we can count on.\n let end = endRange[1];\n let quietEnd = end + (end - endRange[0]);\n if (quietEnd >= row.getSize() || !row.isRange(end, quietEnd, false)) {\n throw new NotFoundException();\n }\n let resultString = result.toString();\n // UPC/EAN should never be less than 8 chars anyway\n if (resultString.length < 8) {\n throw new FormatException();\n }\n if (!UPCEANReader.checkChecksum(resultString)) {\n throw new ChecksumException();\n }\n let left = (startGuardRange[1] + startGuardRange[0]) / 2.0;\n let right = (endRange[1] + endRange[0]) / 2.0;\n let format = this.getBarcodeFormat();\n let resultPoint = [new ResultPoint(left, rowNumber), new ResultPoint(right, rowNumber)];\n let decodeResult = new Result(resultString, null, 0, resultPoint, format, new Date().getTime());\n let extensionLength = 0;\n try {\n let extensionResult = UPCEANExtensionSupport.decodeRow(rowNumber, row, endRange[1]);\n decodeResult.putMetadata(ResultMetadataType$1.UPC_EAN_EXTENSION, extensionResult.getText());\n decodeResult.putAllMetadata(extensionResult.getResultMetadata());\n decodeResult.addResultPoints(extensionResult.getResultPoints());\n extensionLength = extensionResult.getText().length;\n }\n catch (ignoreError) {}\n let allowedExtensions = hints == null ? null : hints.get(DecodeHintType$1.ALLOWED_EAN_EXTENSIONS);\n if (allowedExtensions != null) {\n let valid = false;\n for (let length in allowedExtensions) {\n if (extensionLength.toString() === length) { // check me\n valid = true;\n break;\n }\n }\n if (!valid) {\n throw new NotFoundException();\n }\n }\n return decodeResult;\n }\n decodeEnd(row, endStart) {\n return UPCEANReader.findGuardPattern(\n row, endStart, false, UPCEANReader.START_END_PATTERN,\n new Int32Array(UPCEANReader.START_END_PATTERN.length).fill(0));\n }\n static checkChecksum(s) {\n return UPCEANReader.checkStandardUPCEANChecksum(s);\n }\n static checkStandardUPCEANChecksum(s) {\n let length = s.length;\n if (length === 0)\n return false;\n let check = parseInt(s.charAt(length - 1), 10);\n return UPCEANReader.getStandardUPCEANChecksum(s.substring(0, length - 1)) === check;\n }\n static getStandardUPCEANChecksum(s) {\n let length = s.length;\n let sum = 0;\n for (let i = length - 1; i >= 0; i -= 2) {\n let digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n if (digit < 0 || digit > 9) {\n throw new FormatException();\n }\n sum += digit;\n }\n sum *= 3;\n for (let i = length - 2; i >= 0; i -= 2) {\n let digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n if (digit < 0 || digit > 9) {\n throw new FormatException();\n }\n sum += digit;\n }\n return (1000 - sum) % 10;\n }\n }\n\n /**\n *Implements decoding of the EAN-13 format.
\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n * @author alasdair@google.com (Alasdair Mackintosh)\n */\n class EAN13Reader extends UPCEANReader {\n constructor() {\n super();\n this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0]);\n }\n decodeMiddle(row, startRange, resultString) {\n let counters = this.decodeMiddleCounters;\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n let end = row.getSize();\n let rowOffset = startRange[1];\n let lgPatternFound = 0;\n for (let x = 0; x < 6 && rowOffset < end; x++) {\n let bestMatch = UPCEANReader.decodeDigit(row, counters, rowOffset, UPCEANReader.L_AND_G_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch % 10));\n for (let counter of counters) {\n rowOffset += counter;\n }\n if (bestMatch >= 10) {\n lgPatternFound |= 1 << (5 - x);\n }\n }\n resultString = EAN13Reader.determineFirstDigit(resultString, lgPatternFound);\n let middleRange = UPCEANReader.findGuardPattern(\n row,\n rowOffset,\n true,\n UPCEANReader.MIDDLE_PATTERN,\n new Int32Array(UPCEANReader.MIDDLE_PATTERN.length).fill(0));\n rowOffset = middleRange[1];\n for (let x = 0; x < 6 && rowOffset < end; x++) {\n let bestMatch = UPCEANReader.decodeDigit(row, counters, rowOffset, UPCEANReader.L_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch));\n for (let counter of counters) {\n rowOffset += counter;\n }\n }\n return { rowOffset, resultString };\n }\n getBarcodeFormat() {\n return BarcodeFormat$1.EAN_13;\n }\n static determineFirstDigit(resultString, lgPatternFound) {\n for (let d = 0; d < 10; d++) {\n if (lgPatternFound === this.FIRST_DIGIT_ENCODINGS[d]) {\n resultString = String.fromCharCode(('0'.charCodeAt(0) + d)) + resultString;\n return resultString;\n }\n }\n throw new NotFoundException();\n }\n }\n EAN13Reader.FIRST_DIGIT_ENCODINGS = [0x00, 0x0B, 0x0D, 0xE, 0x13, 0x19, 0x1C, 0x15, 0x16, 0x1A];\n\n /**\n *Implements decoding of the EAN-8 format.
\n *\n * @author Sean Owen\n */\n class EAN8Reader extends UPCEANReader {\n constructor() {\n super();\n this.decodeMiddleCounters = Int32Array.from([0, 0, 0, 0]);\n }\n decodeMiddle(row, startRange, resultString) {\n const counters = this.decodeMiddleCounters;\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n let end = row.getSize();\n let rowOffset = startRange[1];\n for (let x = 0; x < 4 && rowOffset < end; x++) {\n let bestMatch = UPCEANReader.decodeDigit(row, counters, rowOffset, UPCEANReader.L_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch));\n for (let counter of counters) {\n rowOffset += counter;\n }\n }\n let middleRange = UPCEANReader.findGuardPattern(row, rowOffset, true, UPCEANReader.MIDDLE_PATTERN, new Int32Array(UPCEANReader.MIDDLE_PATTERN.length).fill(0));\n rowOffset = middleRange[1];\n for (let x = 0; x < 4 && rowOffset < end; x++) {\n let bestMatch = UPCEANReader.decodeDigit(row, counters, rowOffset, UPCEANReader.L_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch));\n for (let counter of counters) {\n rowOffset += counter;\n }\n }\n return { rowOffset, resultString };\n }\n getBarcodeFormat() {\n return BarcodeFormat$1.EAN_8;\n }\n }\n\n /**\n * Encapsulates functionality and implementation that is common to all families\n * of one-dimensional barcodes.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Sean Owen\n * @author sam2332 (Sam Rudloff)\n *\n * @source https://github.com/zxing/zxing/blob/3c96923276dd5785d58eb970b6ba3f80d36a9505/core/src/main/java/com/google/zxing/oned/UPCAReader.java\n *\n * @experimental\n */\n class UPCAReader extends UPCEANReader {\n constructor() {\n super(...arguments);\n this.ean13Reader = new EAN13Reader();\n }\n // @Override\n getBarcodeFormat() {\n return BarcodeFormat$1.UPC_A;\n }\n // Note that we don't try rotation without the try harder flag, even if rotation was supported.\n // @Override\n decode(image, hints) {\n return this.maybeReturnResult(this.ean13Reader.decode(image));\n }\n // @Override\n decodeRow(rowNumber, row, hints) {\n return this.maybeReturnResult(this.ean13Reader.decodeRow(rowNumber, row, hints));\n }\n // @Override\n decodeMiddle(row, startRange, resultString) {\n return this.ean13Reader.decodeMiddle(row, startRange, resultString);\n }\n maybeReturnResult(result) {\n let text = result.getText();\n if (text.charAt(0) === '0') {\n let upcaResult = new Result(text.substring(1), null, null, result.getResultPoints(), BarcodeFormat$1.UPC_A);\n if (result.getResultMetadata() != null) {\n upcaResult.putAllMetadata(result.getResultMetadata());\n }\n return upcaResult;\n }\n else {\n throw new NotFoundException();\n }\n }\n reset() {\n this.ean13Reader.reset();\n }\n }\n\n /**\n *Implements decoding of the UPC-E format.
\n *This is a great reference for\n * UPC-E information.
\n *\n * @author Sean Owen\n *\n * @source https://github.com/zxing/zxing/blob/3c96923276dd5785d58eb970b6ba3f80d36a9505/core/src/main/java/com/google/zxing/oned/UPCEReader.java\n *\n * @experimental\n */\n /* final */ class UPCEReader extends UPCEANReader {\n constructor() {\n super();\n this.decodeMiddleCounters = new Int32Array(4);\n }\n /**\n * @throws NotFoundException\n */\n // @Override\n decodeMiddle(row, startRange, result) {\n const counters = this.decodeMiddleCounters.map(x => x);\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n const end = row.getSize();\n let rowOffset = startRange[1];\n let lgPatternFound = 0;\n for (let x = 0; x < 6 && rowOffset < end; x++) {\n const bestMatch = UPCEReader.decodeDigit(\n row, counters, rowOffset, UPCEReader.L_AND_G_PATTERNS);\n result += String.fromCharCode(('0'.charCodeAt(0) + (bestMatch % 10)));\n for (let counter of counters) {\n rowOffset += counter;\n }\n if (bestMatch >= 10) {\n lgPatternFound |= (1 << (5 - x));\n }\n }\n let resultString = UPCEReader.determineNumSysAndCheckDigit(\n result, lgPatternFound);\n return {rowOffset, resultString};\n }\n /**\n * @throws NotFoundException\n */\n // @Override\n decodeEnd(row, endStart) {\n return UPCEReader.findGuardPatternWithoutCounters(\n row, endStart, true, UPCEReader.MIDDLE_END_PATTERN);\n }\n /**\n * @throws FormatException\n */\n // @Override\n checkChecksum(s) {\n return UPCEANReader.checkChecksum(UPCEReader.convertUPCEtoUPCA(s));\n }\n /**\n * @throws NotFoundException\n */\n static determineNumSysAndCheckDigit(resultString, lgPatternFound) {\n for (let numSys = 0; numSys <= 1; numSys++) {\n for (let d = 0; d < 10; d++) {\n if (lgPatternFound === this.NUMSYS_AND_CHECK_DIGIT_PATTERNS[numSys][d]) {\n let prefix = String.fromCharCode('0'.charCodeAt(0) + numSys);\n let suffix = String.fromCharCode('0'.charCodeAt(0) + d);\n return prefix + resultString + suffix;\n }\n }\n }\n throw NotFoundException.getNotFoundInstance();\n }\n // @Override\n getBarcodeFormat() {\n return BarcodeFormat$1.UPC_E;\n }\n /**\n * Expands a UPC-E value back into its full, equivalent UPC-A code value.\n *\n * @param upce UPC-E code as string of digits\n * @return equivalent UPC-A code as string of digits\n */\n static convertUPCEtoUPCA(upce) {\n // the following line is equivalent to upce.getChars(1, 7, upceChars, 0);\n const upceChars = upce.slice(1, 7).split('').map(x => x.charCodeAt(0));\n const result = new StringBuilder( /*12*/);\n result.append(upce.charAt(0));\n let lastChar = upceChars[5];\n switch (lastChar) {\n case 0:\n case 1:\n case 2:\n result.appendChars(upceChars, 0, 2);\n result.append(lastChar);\n result.append('0000');\n result.appendChars(upceChars, 2, 3);\n break;\n case 3:\n result.appendChars(upceChars, 0, 3);\n result.append('00000');\n result.appendChars(upceChars, 3, 2);\n break;\n case 4:\n result.appendChars(upceChars, 0, 4);\n result.append('00000');\n result.append(upceChars[4]);\n break;\n default:\n result.appendChars(upceChars, 0, 5);\n result.append('0000');\n result.append(lastChar);\n break;\n }\n // Only append check digit in conversion if supplied\n if (upce.length >= 8) {\n result.append(upce.charAt(7));\n }\n return result.toString();\n }\n }\n /**\n * The pattern that marks the middle, and end, of a UPC-E pattern.\n * There is no \"second half\" to a UPC-E barcode.\n */\n UPCEReader.MIDDLE_END_PATTERN = Int32Array.from([1, 1, 1, 1, 1, 1]);\n // For an UPC-E barcode, the final digit is represented by the parities used\n // to encode the middle six digits, according to the table below.\n //\n // Parity of next 6 digits\n // Digit 0 1 2 3 4 5\n // 0 Even Even Even Odd Odd Odd\n // 1 Even Even Odd Even Odd Odd\n // 2 Even Even Odd Odd Even Odd\n // 3 Even Even Odd Odd Odd Even\n // 4 Even Odd Even Even Odd Odd\n // 5 Even Odd Odd Even Even Odd\n // 6 Even Odd Odd Odd Even Even\n // 7 Even Odd Even Odd Even Odd\n // 8 Even Odd Even Odd Odd Even\n // 9 Even Odd Odd Even Odd Even\n //\n // The encoding is represented by the following array, which is a bit pattern\n // using Odd = 0 and Even = 1. For example, 5 is represented by:\n //\n // Odd Even Even Odd Odd Even\n // in binary:\n // 0 1 1 0 0 1 == 0x19\n //\n /**\n * See {@link #L_AND_G_PATTERNS}; these values similarly represent patterns of\n * even-odd parity encodings of digits that imply both the number system (0 or 1)\n * used, and the check digit.\n */\n UPCEReader.NUMSYS_AND_CHECK_DIGIT_PATTERNS = [\n Int32Array.from([0x38, 0x34, 0x32, 0x31, 0x2C, 0x26, 0x23, 0x2A, 0x29, 0x25]),\n Int32Array.from([0x07, 0x0B, 0x0D, 0x0E, 0x13, 0x19, 0x1C, 0x15, 0x16, 0x1A]),\n ];\n\n /**\n *A reader that can read all available UPC/EAN formats. If a caller wants to try to\n * read all such formats, it is most efficient to use this implementation rather than invoke\n * individual readers.
\n *\n * @author Sean Owen\n */\n class MultiFormatUPCEANReader extends OneDReader {\n constructor(hints) {\n super();\n let possibleFormats = hints == null ? null : hints.get(DecodeHintType$1.POSSIBLE_FORMATS);\n let readers = [];\n if (!isNullOrUndefined(possibleFormats)) {\n if (possibleFormats.indexOf(BarcodeFormat$1.EAN_13) > -1) {\n readers.push(new EAN13Reader());\n }\n if (possibleFormats.indexOf(BarcodeFormat$1.UPC_A) > -1) {\n readers.push(new UPCAReader());\n }\n if (possibleFormats.indexOf(BarcodeFormat$1.EAN_8) > -1) {\n readers.push(new EAN8Reader());\n }\n if (possibleFormats.indexOf(BarcodeFormat$1.UPC_E) > -1) {\n readers.push(new UPCEReader());\n }\n } else {\n // No hints provided.\n readers.push(new EAN13Reader());\n readers.push(new UPCAReader());\n readers.push(new EAN8Reader());\n readers.push(new UPCEReader());\n }\n this.readers = readers;\n }\n decodeRow(rowNumber, row, hints) {\n for (let reader of this.readers) {\n try {\n // const result: Result = reader.decodeRow(rowNumber, row, startGuardPattern, hints);\n const result = reader.decodeRow(rowNumber, row, hints);\n // Special case: a 12-digit code encoded in UPC-A is identical to a \"0\"\n // followed by those 12 digits encoded as EAN-13. Each will recognize such a code,\n // UPC-A as a 12-digit string and EAN-13 as a 13-digit string starting with \"0\".\n // Individually these are correct and their readers will both read such a code\n // and correctly call it EAN-13, or UPC-A, respectively.\n //\n // In this case, if we've been looking for both types, we'd like to call it\n // a UPC-A code. But for efficiency we only run the EAN-13 decoder to also read\n // UPC-A. So we special case it here, and convert an EAN-13 result to a UPC-A\n // result if appropriate.\n //\n // But, don't return UPC-A if UPC-A was not a requested format!\n const ean13MayBeUPCA = result.getBarcodeFormat() === BarcodeFormat$1.EAN_13 &&\n result.getText().charAt(0) === '0';\n // @SuppressWarnings(\"unchecked\")\n const possibleFormats = hints == null ? null : hints.get(DecodeHintType$1.POSSIBLE_FORMATS);\n const canReturnUPCA = possibleFormats == null || possibleFormats.includes(BarcodeFormat$1.UPC_A);\n if (ean13MayBeUPCA && canReturnUPCA) {\n const rawBytes = result.getRawBytes();\n // Transfer the metadata across\n const resultUPCA = new Result(\n result.getText().substring(1),\n rawBytes,\n (rawBytes ? rawBytes.length : null),\n result.getResultPoints(),\n BarcodeFormat$1.UPC_A);\n resultUPCA.putAllMetadata(result.getResultMetadata());\n return resultUPCA;\n }\n return result;\n }\n catch (err) {\n // continue;\n }\n }\n throw new NotFoundException();\n }\n reset() {\n for (let reader of this.readers) {\n reader.reset();\n }\n }\n }\n\n // import Integer from '../../util/Integer';\n // import Float from '../../util/Float';\n class AbstractRSSReader extends OneDReader {\n constructor() {\n super();\n this.decodeFinderCounters = new Int32Array(4);\n this.dataCharacterCounters = new Int32Array(8);\n this.oddRoundingErrors = new Array(4);\n this.evenRoundingErrors = new Array(4);\n this.oddCounts = new Array(this.dataCharacterCounters.length / 2);\n this.evenCounts = new Array(this.dataCharacterCounters.length / 2);\n }\n getDecodeFinderCounters() {\n return this.decodeFinderCounters;\n }\n getDataCharacterCounters() {\n return this.dataCharacterCounters;\n }\n getOddRoundingErrors() {\n return this.oddRoundingErrors;\n }\n getEvenRoundingErrors() {\n return this.evenRoundingErrors;\n }\n getOddCounts() {\n return this.oddCounts;\n }\n getEvenCounts() {\n return this.evenCounts;\n }\n parseFinderValue(counters, finderPatterns) {\n for (let value = 0; value < finderPatterns.length; value++) {\n if (OneDReader.patternMatchVariance(counters, finderPatterns[value], AbstractRSSReader.MAX_INDIVIDUAL_VARIANCE) < AbstractRSSReader.MAX_AVG_VARIANCE) {\n return value;\n }\n }\n throw new NotFoundException();\n }\n /**\n * @param array values to sum\n * @return sum of values\n * @deprecated call {@link MathUtils#sum(int[])}\n */\n static count(array) {\n return MathUtils.sum(new Int32Array(array));\n }\n static increment(array, errors) {\n let index = 0;\n let biggestError = errors[0];\n for (let i = 1; i < array.length; i++) {\n if (errors[i] > biggestError) {\n biggestError = errors[i];\n index = i;\n }\n }\n array[index]++;\n }\n static decrement(array, errors) {\n let index = 0;\n let biggestError = errors[0];\n for (let i = 1; i < array.length; i++) {\n if (errors[i] < biggestError) {\n biggestError = errors[i];\n index = i;\n }\n }\n array[index]--;\n }\n static isFinderPattern(counters) {\n let firstTwoSum = counters[0] + counters[1];\n let sum = firstTwoSum + counters[2] + counters[3];\n let ratio = firstTwoSum / sum;\n if (ratio >= AbstractRSSReader.MIN_FINDER_PATTERN_RATIO && ratio <= AbstractRSSReader.MAX_FINDER_PATTERN_RATIO) {\n // passes ratio test in spec, but see if the counts are unreasonable\n let minCounter = Number.MAX_SAFE_INTEGER;\n let maxCounter = Number.MIN_SAFE_INTEGER;\n for (let counter of counters) {\n if (counter > maxCounter) {\n maxCounter = counter;\n }\n if (counter < minCounter) {\n minCounter = counter;\n }\n }\n return maxCounter < 10 * minCounter;\n }\n return false;\n }\n }\n AbstractRSSReader.MAX_AVG_VARIANCE = 0.2;\n AbstractRSSReader.MAX_INDIVIDUAL_VARIANCE = 0.45;\n AbstractRSSReader.MIN_FINDER_PATTERN_RATIO = 9.5 / 12.0;\n AbstractRSSReader.MAX_FINDER_PATTERN_RATIO = 12.5 / 14.0;\n\n class DataCharacter {\n constructor(value, checksumPortion) {\n this.value = value;\n this.checksumPortion = checksumPortion;\n }\n getValue() {\n return this.value;\n }\n getChecksumPortion() {\n return this.checksumPortion;\n }\n toString() {\n return this.value + '(' + this.checksumPortion + ')';\n }\n equals(o) {\n if (!(o instanceof DataCharacter)) {\n return false;\n }\n const that = o;\n return this.value === that.value && this.checksumPortion === that.checksumPortion;\n }\n hashCode() {\n return this.value ^ this.checksumPortion;\n }\n }\n\n class FinderPattern {\n constructor(value, startEnd, start, end, rowNumber) {\n this.value = value;\n this.startEnd = startEnd;\n this.value = value;\n this.startEnd = startEnd;\n this.resultPoints = new Array();\n this.resultPoints.push(new ResultPoint(start, rowNumber));\n this.resultPoints.push(new ResultPoint(end, rowNumber));\n }\n getValue() {\n return this.value;\n }\n getStartEnd() {\n return this.startEnd;\n }\n getResultPoints() {\n return this.resultPoints;\n }\n equals(o) {\n if (!(o instanceof FinderPattern)) {\n return false;\n }\n const that = o;\n return this.value === that.value;\n }\n hashCode() {\n return this.value;\n }\n }\n\n /**\n * RSS util functions.\n */\n class RSSUtils {\n constructor() { }\n static getRSSvalue(widths, maxWidth, noNarrow) {\n let n = 0;\n for (let width of widths) {\n n += width;\n }\n let val = 0;\n let narrowMask = 0;\n let elements = widths.length;\n for (let bar = 0; bar < elements - 1; bar++) {\n let elmWidth;\n for (elmWidth = 1, narrowMask |= 1 << bar; elmWidth < widths[bar]; elmWidth++, narrowMask &= ~(1 << bar)) {\n let subVal = RSSUtils.combins(n - elmWidth - 1, elements - bar - 2);\n if (noNarrow && (narrowMask === 0) && (n - elmWidth - (elements - bar - 1) >= elements - bar - 1)) {\n subVal -= RSSUtils.combins(n - elmWidth - (elements - bar), elements - bar - 2);\n }\n if (elements - bar - 1 > 1) {\n let lessVal = 0;\n for (let mxwElement = n - elmWidth - (elements - bar - 2); mxwElement > maxWidth; mxwElement--) {\n lessVal += RSSUtils.combins(n - elmWidth - mxwElement - 1, elements - bar - 3);\n }\n subVal -= lessVal * (elements - 1 - bar);\n }\n else if (n - elmWidth > maxWidth) {\n subVal--;\n }\n val += subVal;\n }\n n -= elmWidth;\n }\n return val;\n }\n static combins(n, r) {\n let maxDenom;\n let minDenom;\n if (n - r > r) {\n minDenom = r;\n maxDenom = n - r;\n }\n else {\n minDenom = n - r;\n maxDenom = r;\n }\n let val = 1;\n let j = 1;\n for (let i = n; i > maxDenom; i--) {\n val *= i;\n if (j <= minDenom) {\n val /= j;\n j++;\n }\n }\n while ((j <= minDenom)) {\n val /= j;\n j++;\n }\n return val;\n }\n }\n\n class BitArrayBuilder {\n static buildBitArray(pairs) {\n let charNumber = (pairs.length * 2) - 1;\n if (pairs[pairs.length - 1].getRightChar() == null) {\n charNumber -= 1;\n }\n let size = 12 * charNumber;\n let binary = new BitArray(size);\n let accPos = 0;\n let firstPair = pairs[0];\n let firstValue = firstPair.getRightChar().getValue();\n for (let i = 11; i >= 0; --i) {\n if ((firstValue & (1 << i)) != 0) {\n binary.set(accPos);\n }\n accPos++;\n }\n for (let i = 1; i < pairs.length; ++i) {\n let currentPair = pairs[i];\n let leftValue = currentPair.getLeftChar().getValue();\n for (let j = 11; j >= 0; --j) {\n if ((leftValue & (1 << j)) != 0) {\n binary.set(accPos);\n }\n accPos++;\n }\n if (currentPair.getRightChar() != null) {\n let rightValue = currentPair.getRightChar().getValue();\n for (let j = 11; j >= 0; --j) {\n if ((rightValue & (1 << j)) != 0) {\n binary.set(accPos);\n }\n accPos++;\n }\n }\n }\n return binary;\n }\n }\n\n class BlockParsedResult {\n constructor(finished, decodedInformation) {\n if (decodedInformation) {\n this.decodedInformation = null;\n }\n else {\n this.finished = finished;\n this.decodedInformation = decodedInformation;\n }\n }\n getDecodedInformation() {\n return this.decodedInformation;\n }\n isFinished() {\n return this.finished;\n }\n }\n\n class DecodedObject {\n constructor(newPosition) {\n this.newPosition = newPosition;\n }\n getNewPosition() {\n return this.newPosition;\n }\n }\n\n class DecodedChar extends DecodedObject {\n constructor(newPosition, value) {\n super(newPosition);\n this.value = value;\n }\n getValue() {\n return this.value;\n }\n isFNC1() {\n return this.value === DecodedChar.FNC1;\n }\n }\n DecodedChar.FNC1 = '$';\n\n class DecodedInformation extends DecodedObject {\n constructor(newPosition, newString, remainingValue) {\n super(newPosition);\n if (remainingValue) {\n this.remaining = true;\n this.remainingValue = this.remainingValue;\n }\n else {\n this.remaining = false;\n this.remainingValue = 0;\n }\n this.newString = newString;\n }\n getNewString() {\n return this.newString;\n }\n isRemaining() {\n return this.remaining;\n }\n getRemainingValue() {\n return this.remainingValue;\n }\n }\n\n class DecodedNumeric extends DecodedObject {\n constructor(newPosition, firstDigit, secondDigit) {\n super(newPosition);\n if (firstDigit < 0 || firstDigit > 10 || secondDigit < 0 || secondDigit > 10) {\n throw new FormatException();\n }\n this.firstDigit = firstDigit;\n this.secondDigit = secondDigit;\n }\n getFirstDigit() {\n return this.firstDigit;\n }\n getSecondDigit() {\n return this.secondDigit;\n }\n getValue() {\n return this.firstDigit * 10 + this.secondDigit;\n }\n isFirstDigitFNC1() {\n return this.firstDigit === DecodedNumeric.FNC1;\n }\n isSecondDigitFNC1() {\n return this.secondDigit === DecodedNumeric.FNC1;\n }\n isAnyFNC1() {\n return this.firstDigit === DecodedNumeric.FNC1 || this.secondDigit === DecodedNumeric.FNC1;\n }\n }\n DecodedNumeric.FNC1 = 10;\n\n class FieldParser {\n constructor() {\n }\n static parseFieldsInGeneralPurpose(rawInformation) {\n if (!rawInformation) {\n return null;\n }\n // Processing 2-digit AIs\n if (rawInformation.length < 2) {\n throw new NotFoundException();\n }\n let firstTwoDigits = rawInformation.substring(0, 2);\n for (let dataLength of FieldParser.TWO_DIGIT_DATA_LENGTH) {\n if (dataLength[0] === firstTwoDigits) {\n if (dataLength[1] === FieldParser.VARIABLE_LENGTH) {\n return FieldParser.processVariableAI(2, dataLength[2], rawInformation);\n }\n return FieldParser.processFixedAI(2, dataLength[1], rawInformation);\n }\n }\n if (rawInformation.length < 3) {\n throw new NotFoundException();\n }\n let firstThreeDigits = rawInformation.substring(0, 3);\n for (let dataLength of FieldParser.THREE_DIGIT_DATA_LENGTH) {\n if (dataLength[0] === firstThreeDigits) {\n if (dataLength[1] === FieldParser.VARIABLE_LENGTH) {\n return FieldParser.processVariableAI(3, dataLength[2], rawInformation);\n }\n return FieldParser.processFixedAI(3, dataLength[1], rawInformation);\n }\n }\n for (let dataLength of FieldParser.THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH) {\n if (dataLength[0] === firstThreeDigits) {\n if (dataLength[1] === FieldParser.VARIABLE_LENGTH) {\n return FieldParser.processVariableAI(4, dataLength[2], rawInformation);\n }\n return FieldParser.processFixedAI(4, dataLength[1], rawInformation);\n }\n }\n if (rawInformation.length < 4) {\n throw new NotFoundException();\n }\n let firstFourDigits = rawInformation.substring(0, 4);\n for (let dataLength of FieldParser.FOUR_DIGIT_DATA_LENGTH) {\n if (dataLength[0] === firstFourDigits) {\n if (dataLength[1] === FieldParser.VARIABLE_LENGTH) {\n return FieldParser.processVariableAI(4, dataLength[2], rawInformation);\n }\n return FieldParser.processFixedAI(4, dataLength[1], rawInformation);\n }\n }\n throw new NotFoundException();\n }\n static processFixedAI(aiSize, fieldSize, rawInformation) {\n if (rawInformation.length < aiSize) {\n throw new NotFoundException();\n }\n let ai = rawInformation.substring(0, aiSize);\n if (rawInformation.length < aiSize + fieldSize) {\n throw new NotFoundException();\n }\n let field = rawInformation.substring(aiSize, aiSize + fieldSize);\n let remaining = rawInformation.substring(aiSize + fieldSize);\n let result = '(' + ai + ')' + field;\n let parsedAI = FieldParser.parseFieldsInGeneralPurpose(remaining);\n return parsedAI == null ? result : result + parsedAI;\n }\n static processVariableAI(aiSize, variableFieldSize, rawInformation) {\n let ai = rawInformation.substring(0, aiSize);\n let maxSize;\n if (rawInformation.length < aiSize + variableFieldSize) {\n maxSize = rawInformation.length;\n }\n else {\n maxSize = aiSize + variableFieldSize;\n }\n let field = rawInformation.substring(aiSize, maxSize);\n let remaining = rawInformation.substring(maxSize);\n let result = '(' + ai + ')' + field;\n let parsedAI = FieldParser.parseFieldsInGeneralPurpose(remaining);\n return parsedAI == null ? result : result + parsedAI;\n }\n }\n FieldParser.VARIABLE_LENGTH = [];\n FieldParser.TWO_DIGIT_DATA_LENGTH = [\n ['00', 18],\n ['01', 14],\n ['02', 14],\n ['10', FieldParser.VARIABLE_LENGTH, 20],\n ['11', 6],\n ['12', 6],\n ['13', 6],\n ['15', 6],\n ['17', 6],\n ['20', 2],\n ['21', FieldParser.VARIABLE_LENGTH, 20],\n ['22', FieldParser.VARIABLE_LENGTH, 29],\n ['30', FieldParser.VARIABLE_LENGTH, 8],\n ['37', FieldParser.VARIABLE_LENGTH, 8],\n // internal company codes\n ['90', FieldParser.VARIABLE_LENGTH, 30],\n ['91', FieldParser.VARIABLE_LENGTH, 30],\n ['92', FieldParser.VARIABLE_LENGTH, 30],\n ['93', FieldParser.VARIABLE_LENGTH, 30],\n ['94', FieldParser.VARIABLE_LENGTH, 30],\n ['95', FieldParser.VARIABLE_LENGTH, 30],\n ['96', FieldParser.VARIABLE_LENGTH, 30],\n ['97', FieldParser.VARIABLE_LENGTH, 3],\n ['98', FieldParser.VARIABLE_LENGTH, 30],\n ['99', FieldParser.VARIABLE_LENGTH, 30],\n ];\n FieldParser.THREE_DIGIT_DATA_LENGTH = [\n // Same format as above\n ['240', FieldParser.VARIABLE_LENGTH, 30],\n ['241', FieldParser.VARIABLE_LENGTH, 30],\n ['242', FieldParser.VARIABLE_LENGTH, 6],\n ['250', FieldParser.VARIABLE_LENGTH, 30],\n ['251', FieldParser.VARIABLE_LENGTH, 30],\n ['253', FieldParser.VARIABLE_LENGTH, 17],\n ['254', FieldParser.VARIABLE_LENGTH, 20],\n ['400', FieldParser.VARIABLE_LENGTH, 30],\n ['401', FieldParser.VARIABLE_LENGTH, 30],\n ['402', 17],\n ['403', FieldParser.VARIABLE_LENGTH, 30],\n ['410', 13],\n ['411', 13],\n ['412', 13],\n ['413', 13],\n ['414', 13],\n ['420', FieldParser.VARIABLE_LENGTH, 20],\n ['421', FieldParser.VARIABLE_LENGTH, 15],\n ['422', 3],\n ['423', FieldParser.VARIABLE_LENGTH, 15],\n ['424', 3],\n ['425', 3],\n ['426', 3],\n ];\n FieldParser.THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH = [\n // Same format as above\n ['310', 6],\n ['311', 6],\n ['312', 6],\n ['313', 6],\n ['314', 6],\n ['315', 6],\n ['316', 6],\n ['320', 6],\n ['321', 6],\n ['322', 6],\n ['323', 6],\n ['324', 6],\n ['325', 6],\n ['326', 6],\n ['327', 6],\n ['328', 6],\n ['329', 6],\n ['330', 6],\n ['331', 6],\n ['332', 6],\n ['333', 6],\n ['334', 6],\n ['335', 6],\n ['336', 6],\n ['340', 6],\n ['341', 6],\n ['342', 6],\n ['343', 6],\n ['344', 6],\n ['345', 6],\n ['346', 6],\n ['347', 6],\n ['348', 6],\n ['349', 6],\n ['350', 6],\n ['351', 6],\n ['352', 6],\n ['353', 6],\n ['354', 6],\n ['355', 6],\n ['356', 6],\n ['357', 6],\n ['360', 6],\n ['361', 6],\n ['362', 6],\n ['363', 6],\n ['364', 6],\n ['365', 6],\n ['366', 6],\n ['367', 6],\n ['368', 6],\n ['369', 6],\n ['390', FieldParser.VARIABLE_LENGTH, 15],\n ['391', FieldParser.VARIABLE_LENGTH, 18],\n ['392', FieldParser.VARIABLE_LENGTH, 15],\n ['393', FieldParser.VARIABLE_LENGTH, 18],\n ['703', FieldParser.VARIABLE_LENGTH, 30],\n ];\n FieldParser.FOUR_DIGIT_DATA_LENGTH = [\n // Same format as above\n ['7001', 13],\n ['7002', FieldParser.VARIABLE_LENGTH, 30],\n ['7003', 10],\n ['8001', 14],\n ['8002', FieldParser.VARIABLE_LENGTH, 20],\n ['8003', FieldParser.VARIABLE_LENGTH, 30],\n ['8004', FieldParser.VARIABLE_LENGTH, 30],\n ['8005', 6],\n ['8006', 18],\n ['8007', FieldParser.VARIABLE_LENGTH, 30],\n ['8008', FieldParser.VARIABLE_LENGTH, 12],\n ['8018', 18],\n ['8020', FieldParser.VARIABLE_LENGTH, 25],\n ['8100', 6],\n ['8101', 10],\n ['8102', 2],\n ['8110', FieldParser.VARIABLE_LENGTH, 70],\n ['8200', FieldParser.VARIABLE_LENGTH, 70],\n ];\n\n class GeneralAppIdDecoder {\n constructor(information) {\n this.buffer = new StringBuilder();\n this.information = information;\n }\n decodeAllCodes(buff, initialPosition) {\n let currentPosition = initialPosition;\n let remaining = null;\n do {\n let info = this.decodeGeneralPurposeField(currentPosition, remaining);\n let parsedFields = FieldParser.parseFieldsInGeneralPurpose(info.getNewString());\n if (parsedFields != null) {\n buff.append(parsedFields);\n }\n if (info.isRemaining()) {\n remaining = '' + info.getRemainingValue();\n }\n else {\n remaining = null;\n }\n if (currentPosition === info.getNewPosition()) { // No step forward!\n break;\n }\n currentPosition = info.getNewPosition();\n } while (true);\n return buff.toString();\n }\n isStillNumeric(pos) {\n // It's numeric if it still has 7 positions\n // and one of the first 4 bits is \"1\".\n if (pos + 7 > this.information.getSize()) {\n return pos + 4 <= this.information.getSize();\n }\n for (let i = pos; i < pos + 3; ++i) {\n if (this.information.get(i)) {\n return true;\n }\n }\n return this.information.get(pos + 3);\n }\n decodeNumeric(pos) {\n if (pos + 7 > this.information.getSize()) {\n let numeric = this.extractNumericValueFromBitArray(pos, 4);\n if (numeric === 0) {\n return new DecodedNumeric(this.information.getSize(), DecodedNumeric.FNC1, DecodedNumeric.FNC1);\n }\n return new DecodedNumeric(this.information.getSize(), numeric - 1, DecodedNumeric.FNC1);\n }\n let numeric = this.extractNumericValueFromBitArray(pos, 7);\n let digit1 = (numeric - 8) / 11;\n let digit2 = (numeric - 8) % 11;\n return new DecodedNumeric(pos + 7, digit1, digit2);\n }\n extractNumericValueFromBitArray(pos, bits) {\n return GeneralAppIdDecoder.extractNumericValueFromBitArray(this.information, pos, bits);\n }\n static extractNumericValueFromBitArray(information, pos, bits) {\n let value = 0;\n for (let i = 0; i < bits; ++i) {\n if (information.get(pos + i)) {\n value |= 1 << (bits - i - 1);\n }\n }\n return value;\n }\n decodeGeneralPurposeField(pos, remaining) {\n // this.buffer.setLength(0);\n this.buffer.setLengthToZero();\n if (remaining != null) {\n this.buffer.append(remaining);\n }\n this.current.setPosition(pos);\n let lastDecoded = this.parseBlocks();\n if (lastDecoded != null && lastDecoded.isRemaining()) {\n return new DecodedInformation(this.current.getPosition(), this.buffer.toString(), lastDecoded.getRemainingValue());\n }\n return new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n }\n parseBlocks() {\n let isFinished;\n let result;\n do {\n let initialPosition = this.current.getPosition();\n if (this.current.isAlpha()) {\n result = this.parseAlphaBlock();\n isFinished = result.isFinished();\n }\n else if (this.current.isIsoIec646()) {\n result = this.parseIsoIec646Block();\n isFinished = result.isFinished();\n }\n else { // it must be numeric\n result = this.parseNumericBlock();\n isFinished = result.isFinished();\n }\n let positionChanged = initialPosition !== this.current.getPosition();\n if (!positionChanged && !isFinished) {\n break;\n }\n } while (!isFinished);\n return result.getDecodedInformation();\n }\n parseNumericBlock() {\n while (this.isStillNumeric(this.current.getPosition())) {\n let numeric = this.decodeNumeric(this.current.getPosition());\n this.current.setPosition(numeric.getNewPosition());\n if (numeric.isFirstDigitFNC1()) {\n let information;\n if (numeric.isSecondDigitFNC1()) {\n information = new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n }\n else {\n information = new DecodedInformation(this.current.getPosition(), this.buffer.toString(), numeric.getSecondDigit());\n }\n return new BlockParsedResult(true, information);\n }\n this.buffer.append(numeric.getFirstDigit());\n if (numeric.isSecondDigitFNC1()) {\n let information = new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n return new BlockParsedResult(true, information);\n }\n this.buffer.append(numeric.getSecondDigit());\n }\n if (this.isNumericToAlphaNumericLatch(this.current.getPosition())) {\n this.current.setAlpha();\n this.current.incrementPosition(4);\n }\n return new BlockParsedResult(false);\n }\n parseIsoIec646Block() {\n while (this.isStillIsoIec646(this.current.getPosition())) {\n let iso = this.decodeIsoIec646(this.current.getPosition());\n this.current.setPosition(iso.getNewPosition());\n if (iso.isFNC1()) {\n let information = new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n return new BlockParsedResult(true, information);\n }\n this.buffer.append(iso.getValue());\n }\n if (this.isAlphaOr646ToNumericLatch(this.current.getPosition())) {\n this.current.incrementPosition(3);\n this.current.setNumeric();\n }\n else if (this.isAlphaTo646ToAlphaLatch(this.current.getPosition())) {\n if (this.current.getPosition() + 5 < this.information.getSize()) {\n this.current.incrementPosition(5);\n }\n else {\n this.current.setPosition(this.information.getSize());\n }\n this.current.setAlpha();\n }\n return new BlockParsedResult(false);\n }\n parseAlphaBlock() {\n while (this.isStillAlpha(this.current.getPosition())) {\n let alpha = this.decodeAlphanumeric(this.current.getPosition());\n this.current.setPosition(alpha.getNewPosition());\n if (alpha.isFNC1()) {\n let information = new DecodedInformation(this.current.getPosition(), this.buffer.toString());\n return new BlockParsedResult(true, information); // end of the char block\n }\n this.buffer.append(alpha.getValue());\n }\n if (this.isAlphaOr646ToNumericLatch(this.current.getPosition())) {\n this.current.incrementPosition(3);\n this.current.setNumeric();\n }\n else if (this.isAlphaTo646ToAlphaLatch(this.current.getPosition())) {\n if (this.current.getPosition() + 5 < this.information.getSize()) {\n this.current.incrementPosition(5);\n }\n else {\n this.current.setPosition(this.information.getSize());\n }\n this.current.setIsoIec646();\n }\n return new BlockParsedResult(false);\n }\n isStillIsoIec646(pos) {\n if (pos + 5 > this.information.getSize()) {\n return false;\n }\n let fiveBitValue = this.extractNumericValueFromBitArray(pos, 5);\n if (fiveBitValue >= 5 && fiveBitValue < 16) {\n return true;\n }\n if (pos + 7 > this.information.getSize()) {\n return false;\n }\n let sevenBitValue = this.extractNumericValueFromBitArray(pos, 7);\n if (sevenBitValue >= 64 && sevenBitValue < 116) {\n return true;\n }\n if (pos + 8 > this.information.getSize()) {\n return false;\n }\n let eightBitValue = this.extractNumericValueFromBitArray(pos, 8);\n return eightBitValue >= 232 && eightBitValue < 253;\n }\n decodeIsoIec646(pos) {\n let fiveBitValue = this.extractNumericValueFromBitArray(pos, 5);\n if (fiveBitValue === 15) {\n return new DecodedChar(pos + 5, DecodedChar.FNC1);\n }\n if (fiveBitValue >= 5 && fiveBitValue < 15) {\n return new DecodedChar(pos + 5, ('0' + (fiveBitValue - 5)));\n }\n let sevenBitValue = this.extractNumericValueFromBitArray(pos, 7);\n if (sevenBitValue >= 64 && sevenBitValue < 90) {\n return new DecodedChar(pos + 7, ('' + (sevenBitValue + 1)));\n }\n if (sevenBitValue >= 90 && sevenBitValue < 116) {\n return new DecodedChar(pos + 7, ('' + (sevenBitValue + 7)));\n }\n let eightBitValue = this.extractNumericValueFromBitArray(pos, 8);\n let c;\n switch (eightBitValue) {\n case 232:\n c = '!';\n break;\n case 233:\n c = '\"';\n break;\n case 234:\n c = '%';\n break;\n case 235:\n c = '&';\n break;\n case 236:\n c = '\\'';\n break;\n case 237:\n c = '(';\n break;\n case 238:\n c = ')';\n break;\n case 239:\n c = '*';\n break;\n case 240:\n c = '+';\n break;\n case 241:\n c = ',';\n break;\n case 242:\n c = '-';\n break;\n case 243:\n c = '.';\n break;\n case 244:\n c = '/';\n break;\n case 245:\n c = ':';\n break;\n case 246:\n c = ';';\n break;\n case 247:\n c = '<';\n break;\n case 248:\n c = '=';\n break;\n case 249:\n c = '>';\n break;\n case 250:\n c = '?';\n break;\n case 251:\n c = '_';\n break;\n case 252:\n c = ' ';\n break;\n default:\n throw new FormatException();\n }\n return new DecodedChar(pos + 8, c);\n }\n isStillAlpha(pos) {\n if (pos + 5 > this.information.getSize()) {\n return false;\n }\n // We now check if it's a valid 5-bit value (0..9 and FNC1)\n let fiveBitValue = this.extractNumericValueFromBitArray(pos, 5);\n if (fiveBitValue >= 5 && fiveBitValue < 16) {\n return true;\n }\n if (pos + 6 > this.information.getSize()) {\n return false;\n }\n let sixBitValue = this.extractNumericValueFromBitArray(pos, 6);\n return sixBitValue >= 16 && sixBitValue < 63; // 63 not included\n }\n decodeAlphanumeric(pos) {\n let fiveBitValue = this.extractNumericValueFromBitArray(pos, 5);\n if (fiveBitValue === 15) {\n return new DecodedChar(pos + 5, DecodedChar.FNC1);\n }\n if (fiveBitValue >= 5 && fiveBitValue < 15) {\n return new DecodedChar(pos + 5, ('0' + (fiveBitValue - 5)));\n }\n let sixBitValue = this.extractNumericValueFromBitArray(pos, 6);\n if (sixBitValue >= 32 && sixBitValue < 58) {\n return new DecodedChar(pos + 6, ('' + (sixBitValue + 33)));\n }\n let c;\n switch (sixBitValue) {\n case 58:\n c = '*';\n break;\n case 59:\n c = ',';\n break;\n case 60:\n c = '-';\n break;\n case 61:\n c = '.';\n break;\n case 62:\n c = '/';\n break;\n default:\n throw new IllegalStateException('Decoding invalid alphanumeric value: ' + sixBitValue);\n }\n return new DecodedChar(pos + 6, c);\n }\n isAlphaTo646ToAlphaLatch(pos) {\n if (pos + 1 > this.information.getSize()) {\n return false;\n }\n for (let i = 0; i < 5 && i + pos < this.information.getSize(); ++i) {\n if (i === 2) {\n if (!this.information.get(pos + 2)) {\n return false;\n }\n }\n else if (this.information.get(pos + i)) {\n return false;\n }\n }\n return true;\n }\n isAlphaOr646ToNumericLatch(pos) {\n // Next is alphanumeric if there are 3 positions and they are all zeros\n if (pos + 3 > this.information.getSize()) {\n return false;\n }\n for (let i = pos; i < pos + 3; ++i) {\n if (this.information.get(i)) {\n return false;\n }\n }\n return true;\n }\n isNumericToAlphaNumericLatch(pos) {\n // Next is alphanumeric if there are 4 positions and they are all zeros, or\n // if there is a subset of this just before the end of the symbol\n if (pos + 1 > this.information.getSize()) {\n return false;\n }\n for (let i = 0; i < 4 && i + pos < this.information.getSize(); ++i) {\n if (this.information.get(pos + i)) {\n return false;\n }\n }\n return true;\n }\n }\n\n class AbstractExpandedDecoder {\n constructor(information) {\n this.information = information;\n this.generalDecoder = new GeneralAppIdDecoder(information);\n }\n getInformation() {\n return this.information;\n }\n getGeneralDecoder() {\n return this.generalDecoder;\n }\n }\n\n class AI01decoder extends AbstractExpandedDecoder {\n constructor(information) {\n super(information);\n }\n encodeCompressedGtin(buf, currentPos) {\n buf.append('(01)');\n let initialPosition = buf.length();\n buf.append('9');\n this.encodeCompressedGtinWithoutAI(buf, currentPos, initialPosition);\n }\n encodeCompressedGtinWithoutAI(buf, currentPos, initialBufferPosition) {\n for (let i = 0; i < 4; ++i) {\n let currentBlock = this.getGeneralDecoder().extractNumericValueFromBitArray(currentPos + 10 * i, 10);\n if (currentBlock / 100 === 0) {\n buf.append('0');\n }\n if (currentBlock / 10 === 0) {\n buf.append('0');\n }\n buf.append(currentBlock);\n }\n AI01decoder.appendCheckDigit(buf, initialBufferPosition);\n }\n static appendCheckDigit(buf, currentPos) {\n let checkDigit = 0;\n for (let i = 0; i < 13; i++) {\n // let digit = buf.charAt(i + currentPos) - '0';\n // To be checked\n let digit = buf.charAt(i + currentPos).charCodeAt(0) - '0'.charCodeAt(0);\n checkDigit += (i & 0x01) === 0 ? 3 * digit : digit;\n }\n checkDigit = 10 - (checkDigit % 10);\n if (checkDigit === 10) {\n checkDigit = 0;\n }\n buf.append(checkDigit);\n }\n }\n AI01decoder.GTIN_SIZE = 40;\n\n class AI01AndOtherAIs extends AI01decoder {\n // the second one is the encodation method, and the other two are for the variable length\n constructor(information) {\n super(information);\n }\n parseInformation() {\n let buff = new StringBuilder();\n buff.append('(01)');\n let initialGtinPosition = buff.length();\n let firstGtinDigit = this.getGeneralDecoder().extractNumericValueFromBitArray(AI01AndOtherAIs.HEADER_SIZE, 4);\n buff.append(firstGtinDigit);\n this.encodeCompressedGtinWithoutAI(buff, AI01AndOtherAIs.HEADER_SIZE + 4, initialGtinPosition);\n return this.getGeneralDecoder().decodeAllCodes(buff, AI01AndOtherAIs.HEADER_SIZE + 44);\n }\n }\n AI01AndOtherAIs.HEADER_SIZE = 1 + 1 + 2; // first bit encodes the linkage flag,\n\n class AnyAIDecoder extends AbstractExpandedDecoder {\n constructor(information) {\n super(information);\n }\n parseInformation() {\n let buf = new StringBuilder();\n return this.getGeneralDecoder().decodeAllCodes(buf, AnyAIDecoder.HEADER_SIZE);\n }\n }\n AnyAIDecoder.HEADER_SIZE = 2 + 1 + 2;\n\n class AI01weightDecoder extends AI01decoder {\n constructor(information) {\n super(information);\n }\n encodeCompressedWeight(buf, currentPos, weightSize) {\n let originalWeightNumeric = this.getGeneralDecoder().extractNumericValueFromBitArray(currentPos, weightSize);\n this.addWeightCode(buf, originalWeightNumeric);\n let weightNumeric = this.checkWeight(originalWeightNumeric);\n let currentDivisor = 100000;\n for (let i = 0; i < 5; ++i) {\n if (weightNumeric / currentDivisor === 0) {\n buf.append('0');\n }\n currentDivisor /= 10;\n }\n buf.append(weightNumeric);\n }\n }\n\n class AI013x0xDecoder extends AI01weightDecoder {\n constructor(information) {\n super(information);\n }\n parseInformation() {\n if (this.getInformation().getSize() != AI013x0xDecoder.HEADER_SIZE + AI01weightDecoder.GTIN_SIZE + AI013x0xDecoder.WEIGHT_SIZE) {\n throw new NotFoundException();\n }\n let buf = new StringBuilder();\n this.encodeCompressedGtin(buf, AI013x0xDecoder.HEADER_SIZE);\n this.encodeCompressedWeight(buf, AI013x0xDecoder.HEADER_SIZE + AI01weightDecoder.GTIN_SIZE, AI013x0xDecoder.WEIGHT_SIZE);\n return buf.toString();\n }\n }\n AI013x0xDecoder.HEADER_SIZE = 4 + 1;\n AI013x0xDecoder.WEIGHT_SIZE = 15;\n\n class AI013103decoder extends AI013x0xDecoder {\n constructor(information) {\n super(information);\n }\n addWeightCode(buf, weight) {\n buf.append('(3103)');\n }\n checkWeight(weight) {\n return weight;\n }\n }\n\n class AI01320xDecoder extends AI013x0xDecoder {\n constructor(information) {\n super(information);\n }\n addWeightCode(buf, weight) {\n if (weight < 10000) {\n buf.append('(3202)');\n }\n else {\n buf.append('(3203)');\n }\n }\n checkWeight(weight) {\n if (weight < 10000) {\n return weight;\n }\n return weight - 10000;\n }\n }\n\n class AI01392xDecoder extends AI01decoder {\n constructor(information) {\n super(information);\n }\n parseInformation() {\n if (this.getInformation().getSize() < AI01392xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE) {\n throw new NotFoundException();\n }\n let buf = new StringBuilder();\n this.encodeCompressedGtin(buf, AI01392xDecoder.HEADER_SIZE);\n let lastAIdigit = this.getGeneralDecoder().extractNumericValueFromBitArray(AI01392xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE, AI01392xDecoder.LAST_DIGIT_SIZE);\n buf.append('(392');\n buf.append(lastAIdigit);\n buf.append(')');\n let decodedInformation = this.getGeneralDecoder().decodeGeneralPurposeField(AI01392xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE + AI01392xDecoder.LAST_DIGIT_SIZE, null);\n buf.append(decodedInformation.getNewString());\n return buf.toString();\n }\n }\n AI01392xDecoder.HEADER_SIZE = 5 + 1 + 2;\n AI01392xDecoder.LAST_DIGIT_SIZE = 2;\n\n class AI01393xDecoder extends AI01decoder {\n constructor(information) {\n super(information);\n }\n parseInformation() {\n if (this.getInformation().getSize() < AI01393xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE) {\n throw new NotFoundException();\n }\n let buf = new StringBuilder();\n this.encodeCompressedGtin(buf, AI01393xDecoder.HEADER_SIZE);\n let lastAIdigit = this.getGeneralDecoder().extractNumericValueFromBitArray(AI01393xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE, AI01393xDecoder.LAST_DIGIT_SIZE);\n buf.append('(393');\n buf.append(lastAIdigit);\n buf.append(')');\n let firstThreeDigits = this.getGeneralDecoder().extractNumericValueFromBitArray(AI01393xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE + AI01393xDecoder.LAST_DIGIT_SIZE, AI01393xDecoder.FIRST_THREE_DIGITS_SIZE);\n if (firstThreeDigits / 100 == 0) {\n buf.append('0');\n }\n if (firstThreeDigits / 10 == 0) {\n buf.append('0');\n }\n buf.append(firstThreeDigits);\n let generalInformation = this.getGeneralDecoder().decodeGeneralPurposeField(AI01393xDecoder.HEADER_SIZE + AI01decoder.GTIN_SIZE + AI01393xDecoder.LAST_DIGIT_SIZE + AI01393xDecoder.FIRST_THREE_DIGITS_SIZE, null);\n buf.append(generalInformation.getNewString());\n return buf.toString();\n }\n }\n AI01393xDecoder.HEADER_SIZE = 5 + 1 + 2;\n AI01393xDecoder.LAST_DIGIT_SIZE = 2;\n AI01393xDecoder.FIRST_THREE_DIGITS_SIZE = 10;\n\n class AI013x0x1xDecoder extends AI01weightDecoder {\n constructor(information, firstAIdigits, dateCode) {\n super(information);\n this.dateCode = dateCode;\n this.firstAIdigits = firstAIdigits;\n }\n parseInformation() {\n if (this.getInformation().getSize() != AI013x0x1xDecoder.HEADER_SIZE + AI013x0x1xDecoder.GTIN_SIZE + AI013x0x1xDecoder.WEIGHT_SIZE + AI013x0x1xDecoder.DATE_SIZE) {\n throw new NotFoundException();\n }\n let buf = new StringBuilder();\n this.encodeCompressedGtin(buf, AI013x0x1xDecoder.HEADER_SIZE);\n this.encodeCompressedWeight(buf, AI013x0x1xDecoder.HEADER_SIZE + AI013x0x1xDecoder.GTIN_SIZE, AI013x0x1xDecoder.WEIGHT_SIZE);\n this.encodeCompressedDate(buf, AI013x0x1xDecoder.HEADER_SIZE + AI013x0x1xDecoder.GTIN_SIZE + AI013x0x1xDecoder.WEIGHT_SIZE);\n return buf.toString();\n }\n encodeCompressedDate(buf, currentPos) {\n let numericDate = this.getGeneralDecoder().extractNumericValueFromBitArray(currentPos, AI013x0x1xDecoder.DATE_SIZE);\n if (numericDate == 38400) {\n return;\n }\n buf.append('(');\n buf.append(this.dateCode);\n buf.append(')');\n let day = numericDate % 32;\n numericDate /= 32;\n let month = numericDate % 12 + 1;\n numericDate /= 12;\n let year = numericDate;\n if (year / 10 == 0) {\n buf.append('0');\n }\n buf.append(year);\n if (month / 10 == 0) {\n buf.append('0');\n }\n buf.append(month);\n if (day / 10 == 0) {\n buf.append('0');\n }\n buf.append(day);\n }\n addWeightCode(buf, weight) {\n buf.append('(');\n buf.append(this.firstAIdigits);\n buf.append(weight / 100000);\n buf.append(')');\n }\n checkWeight(weight) {\n return weight % 100000;\n }\n }\n AI013x0x1xDecoder.HEADER_SIZE = 7 + 1;\n AI013x0x1xDecoder.WEIGHT_SIZE = 20;\n AI013x0x1xDecoder.DATE_SIZE = 16;\n\n function createDecoder(information) {\n try {\n if (information.get(1)) {\n return new AI01AndOtherAIs(information);\n }\n if (!information.get(2)) {\n return new AnyAIDecoder(information);\n }\n let fourBitEncodationMethod = GeneralAppIdDecoder.extractNumericValueFromBitArray(information, 1, 4);\n switch (fourBitEncodationMethod) {\n case 4: return new AI013103decoder(information);\n case 5: return new AI01320xDecoder(information);\n }\n let fiveBitEncodationMethod = GeneralAppIdDecoder.extractNumericValueFromBitArray(information, 1, 5);\n switch (fiveBitEncodationMethod) {\n case 12: return new AI01392xDecoder(information);\n case 13: return new AI01393xDecoder(information);\n }\n let sevenBitEncodationMethod = GeneralAppIdDecoder.extractNumericValueFromBitArray(information, 1, 7);\n switch (sevenBitEncodationMethod) {\n case 56: return new AI013x0x1xDecoder(information, '310', '11');\n case 57: return new AI013x0x1xDecoder(information, '320', '11');\n case 58: return new AI013x0x1xDecoder(information, '310', '13');\n case 59: return new AI013x0x1xDecoder(information, '320', '13');\n case 60: return new AI013x0x1xDecoder(information, '310', '15');\n case 61: return new AI013x0x1xDecoder(information, '320', '15');\n case 62: return new AI013x0x1xDecoder(information, '310', '17');\n case 63: return new AI013x0x1xDecoder(information, '320', '17');\n }\n }\n catch (e) {\n console.log(e);\n throw new IllegalStateException('unknown decoder: ' + information);\n }\n }\n\n class ExpandedPair {\n constructor(leftChar, rightChar, finderPatter, mayBeLast) {\n this.leftchar = leftChar;\n this.rightchar = rightChar;\n this.finderpattern = finderPatter;\n this.maybeLast = mayBeLast;\n }\n mayBeLast() {\n return this.maybeLast;\n }\n getLeftChar() {\n return this.leftchar;\n }\n getRightChar() {\n return this.rightchar;\n }\n getFinderPattern() {\n return this.finderpattern;\n }\n mustBeLast() {\n return this.rightchar == null;\n }\n toString() {\n return '[ ' + this.leftchar + ', ' + this.rightchar + ' : ' + (this.finderpattern == null ? 'null' : this.finderpattern.getValue()) + ' ]';\n }\n static equals(o1, o2) {\n if (!(o1 instanceof ExpandedPair)) {\n return false;\n }\n return ExpandedPair.equalsOrNull(o1.leftchar, o2.leftchar) &&\n ExpandedPair.equalsOrNull(o1.rightchar, o2.rightchar) &&\n ExpandedPair.equalsOrNull(o1.finderpattern, o2.finderpattern);\n }\n static equalsOrNull(o1, o2) {\n return o1 === null ? o2 === null : ExpandedPair.equals(o1, o2);\n }\n hashCode() {\n // return ExpandedPair.hashNotNull(leftChar) ^ hashNotNull(rightChar) ^ hashNotNull(finderPattern);\n let value = this.leftchar.getValue() ^ this.rightchar.getValue() ^ this.finderpattern.getValue();\n return value;\n }\n }\n\n class ExpandedRow {\n constructor(pairs, rowNumber, wasReversed) {\n this.pairs = pairs;\n this.rowNumber = rowNumber;\n this.wasReversed = wasReversed;\n }\n getPairs() {\n return this.pairs;\n }\n getRowNumber() {\n return this.rowNumber;\n }\n isReversed() {\n return this.wasReversed;\n }\n // check implementation\n isEquivalent(otherPairs) {\n return this.checkEqualitity(this, otherPairs);\n }\n // @Override\n toString() {\n return '{ ' + this.pairs + ' }';\n }\n /**\n * Two rows are equal if they contain the same pairs in the same order.\n */\n // @Override\n // check implementation\n equals(o1, o2) {\n if (!(o1 instanceof ExpandedRow)) {\n return false;\n }\n return this.checkEqualitity(o1, o2) && o1.wasReversed === o2.wasReversed;\n }\n checkEqualitity(pair1, pair2) {\n if (!pair1 || !pair2)\n return;\n let result;\n pair1.forEach((e1, i) => {\n pair2.forEach(e2 => {\n if (e1.getLeftChar().getValue() === e2.getLeftChar().getValue() && e1.getRightChar().getValue() === e2.getRightChar().getValue() && e1.getFinderPatter().getValue() === e2.getFinderPatter().getValue()) {\n result = true;\n }\n });\n });\n return result;\n }\n }\n\n // import java.util.ArrayList;\n // import java.util.Iterator;\n // import java.util.List;\n // import java.util.Map;\n // import java.util.Collections;\n class RSSExpandedReader extends AbstractRSSReader {\n constructor(verbose) {\n super(...arguments);\n this.pairs = new Array(RSSExpandedReader.MAX_PAIRS);\n this.rows = new Array();\n this.startEnd = [2];\n this.verbose = (verbose === true);\n }\n decodeRow(rowNumber, row, hints) {\n // Rows can start with even pattern in case in prev rows there where odd number of patters.\n // So lets try twice\n // this.pairs.clear();\n this.pairs.length = 0;\n this.startFromEven = false;\n try {\n return RSSExpandedReader.constructResult(this.decodeRow2pairs(rowNumber, row));\n }\n catch (e) {\n // OK\n if (this.verbose) {\n console.log(e);\n }\n }\n this.pairs.length = 0;\n this.startFromEven = true;\n return RSSExpandedReader.constructResult(this.decodeRow2pairs(rowNumber, row));\n }\n reset() {\n this.pairs.length = 0;\n this.rows.length = 0;\n }\n // Not private for testing\n decodeRow2pairs(rowNumber, row) {\n let done = false;\n while (!done) {\n try {\n this.pairs.push(this.retrieveNextPair(row, this.pairs, rowNumber));\n }\n catch (error) {\n if (error instanceof NotFoundException) {\n if (!this.pairs.length) {\n throw new NotFoundException();\n }\n // exit this loop when retrieveNextPair() fails and throws\n done = true;\n }\n }\n }\n // TODO: verify sequence of finder patterns as in checkPairSequence()\n if (this.checkChecksum()) {\n return this.pairs;\n }\n let tryStackedDecode;\n if (this.rows.length) {\n tryStackedDecode = true;\n }\n else {\n tryStackedDecode = false;\n }\n // let tryStackedDecode = !this.rows.isEmpty();\n this.storeRow(rowNumber, false); // TODO: deal with reversed rows\n if (tryStackedDecode) {\n // When the image is 180-rotated, then rows are sorted in wrong direction.\n // Try twice with both the directions.\n let ps = this.checkRowsBoolean(false);\n if (ps != null) {\n return ps;\n }\n ps = this.checkRowsBoolean(true);\n if (ps != null) {\n return ps;\n }\n }\n throw new NotFoundException();\n }\n // Need to Verify\n checkRowsBoolean(reverse) {\n // Limit number of rows we are checking\n // We use recursive algorithm with pure complexity and don't want it to take forever\n // Stacked barcode can have up to 11 rows, so 25 seems reasonable enough\n if (this.rows.length > 25) {\n this.rows.length = 0; // We will never have a chance to get result, so clear it\n return null;\n }\n this.pairs.length = 0;\n if (reverse) {\n this.rows = this.rows.reverse();\n // Collections.reverse(this.rows);\n }\n let ps = null;\n try {\n ps = this.checkRows(new Array(), 0);\n }\n catch (e) {\n // OK\n if (this.verbose) {\n console.log(e);\n }\n }\n if (reverse) {\n this.rows = this.rows.reverse();\n // Collections.reverse(this.rows);\n }\n return ps;\n }\n // Try to construct a valid rows sequence\n // Recursion is used to implement backtracking\n checkRows(collectedRows, currentRow) {\n for (let i = currentRow; i < this.rows.length; i++) {\n let row = this.rows[i];\n this.pairs.length = 0;\n for (let collectedRow of collectedRows) {\n this.pairs.push(collectedRow.getPairs());\n }\n this.pairs.push(row.getPairs());\n if (!RSSExpandedReader.isValidSequence(this.pairs)) {\n continue;\n }\n if (this.checkChecksum()) {\n return this.pairs;\n }\n let rs = new Array(collectedRows);\n rs.push(row);\n try {\n // Recursion: try to add more rows\n return this.checkRows(rs, i + 1);\n }\n catch (e) {\n // We failed, try the next candidate\n if (this.verbose) {\n console.log(e);\n }\n }\n }\n throw new NotFoundException();\n }\n // Whether the pairs form a valid find pattern sequence,\n // either complete or a prefix\n static isValidSequence(pairs) {\n for (let sequence of RSSExpandedReader.FINDER_PATTERN_SEQUENCES) {\n if (pairs.length > sequence.length) {\n continue;\n }\n let stop = true;\n for (let j = 0; j < pairs.length; j++) {\n if (pairs[j].getFinderPattern().getValue() != sequence[j]) {\n stop = false;\n break;\n }\n }\n if (stop) {\n return true;\n }\n }\n return false;\n }\n storeRow(rowNumber, wasReversed) {\n // Discard if duplicate above or below; otherwise insert in order by row number.\n let insertPos = 0;\n let prevIsSame = false;\n let nextIsSame = false;\n while (insertPos < this.rows.length) {\n let erow = this.rows[insertPos];\n if (erow.getRowNumber() > rowNumber) {\n nextIsSame = erow.isEquivalent(this.pairs);\n break;\n }\n prevIsSame = erow.isEquivalent(this.pairs);\n insertPos++;\n }\n if (nextIsSame || prevIsSame) {\n return;\n }\n // When the row was partially decoded (e.g. 2 pairs found instead of 3),\n // it will prevent us from detecting the barcode.\n // Try to merge partial rows\n // Check whether the row is part of an allready detected row\n if (RSSExpandedReader.isPartialRow(this.pairs, this.rows)) {\n return;\n }\n this.rows.push(insertPos, new ExpandedRow(this.pairs, rowNumber, wasReversed));\n this.removePartialRows(this.pairs, this.rows);\n }\n // Remove all the rows that contains only specified pairs\n removePartialRows(pairs, rows) {\n // for (IteratorEncapsulates a set of error-correction blocks in one symbol version. Most versions will\n * use blocks of differing sizes within one version, so, this encapsulates the parameters for\n * each set of blocks. It also holds the number of error-correction codewords per block since it\n * will be the same across all blocks within one version.
\n */\n class ECBlocks {\n constructor(ecCodewords, ecBlocks1, ecBlocks2) {\n this.ecCodewords = ecCodewords;\n this.ecBlocks = [ecBlocks1];\n ecBlocks2 && this.ecBlocks.push(ecBlocks2);\n }\n getECCodewords() {\n return this.ecCodewords;\n }\n getECBlocks() {\n return this.ecBlocks;\n }\n }\n /**\n *Encapsulates the parameters for one error-correction block in one symbol version.\n * This includes the number of data codewords, and the number of times a block with these\n * parameters is used consecutively in the Data Matrix code version's format.
\n */\n class ECB {\n constructor(count, dataCodewords) {\n this.count = count;\n this.dataCodewords = dataCodewords;\n }\n getCount() {\n return this.count;\n }\n getDataCodewords() {\n return this.dataCodewords;\n }\n }\n /**\n * The Version object encapsulates attributes about a particular\n * size Data Matrix Code.\n *\n * @author bbrown@google.com (Brian Brown)\n */\n class Version {\n constructor(versionNumber, symbolSizeRows, symbolSizeColumns, dataRegionSizeRows, dataRegionSizeColumns, ecBlocks) {\n this.versionNumber = versionNumber;\n this.symbolSizeRows = symbolSizeRows;\n this.symbolSizeColumns = symbolSizeColumns;\n this.dataRegionSizeRows = dataRegionSizeRows;\n this.dataRegionSizeColumns = dataRegionSizeColumns;\n this.ecBlocks = ecBlocks;\n // Calculate the total number of codewords\n let total = 0;\n const ecCodewords = ecBlocks.getECCodewords();\n const ecbArray = ecBlocks.getECBlocks();\n for (let ecBlock of ecbArray) {\n total += ecBlock.getCount() * (ecBlock.getDataCodewords() + ecCodewords);\n }\n this.totalCodewords = total;\n }\n getVersionNumber() {\n return this.versionNumber;\n }\n getSymbolSizeRows() {\n return this.symbolSizeRows;\n }\n getSymbolSizeColumns() {\n return this.symbolSizeColumns;\n }\n getDataRegionSizeRows() {\n return this.dataRegionSizeRows;\n }\n getDataRegionSizeColumns() {\n return this.dataRegionSizeColumns;\n }\n getTotalCodewords() {\n return this.totalCodewords;\n }\n getECBlocks() {\n return this.ecBlocks;\n }\n /**\n *Deduces version information from Data Matrix dimensions.
\n *\n * @param numRows Number of rows in modules\n * @param numColumns Number of columns in modules\n * @return Version for a Data Matrix Code of those dimensions\n * @throws FormatException if dimensions do correspond to a valid Data Matrix size\n */\n static getVersionForDimensions(numRows, numColumns) {\n if ((numRows & 0x01) !== 0 || (numColumns & 0x01) !== 0) {\n throw new FormatException();\n }\n for (let version of Version.VERSIONS) {\n if (version.symbolSizeRows === numRows && version.symbolSizeColumns === numColumns) {\n return version;\n }\n }\n throw new FormatException();\n }\n // @Override\n toString() {\n return '' + this.versionNumber;\n }\n /**\n * See ISO 16022:2006 5.5.1 Table 7\n */\n static buildVersions() {\n return [\n new Version(1, 10, 10, 8, 8, new ECBlocks(5, new ECB(1, 3))),\n new Version(2, 12, 12, 10, 10, new ECBlocks(7, new ECB(1, 5))),\n new Version(3, 14, 14, 12, 12, new ECBlocks(10, new ECB(1, 8))),\n new Version(4, 16, 16, 14, 14, new ECBlocks(12, new ECB(1, 12))),\n new Version(5, 18, 18, 16, 16, new ECBlocks(14, new ECB(1, 18))),\n new Version(6, 20, 20, 18, 18, new ECBlocks(18, new ECB(1, 22))),\n new Version(7, 22, 22, 20, 20, new ECBlocks(20, new ECB(1, 30))),\n new Version(8, 24, 24, 22, 22, new ECBlocks(24, new ECB(1, 36))),\n new Version(9, 26, 26, 24, 24, new ECBlocks(28, new ECB(1, 44))),\n new Version(10, 32, 32, 14, 14, new ECBlocks(36, new ECB(1, 62))),\n new Version(11, 36, 36, 16, 16, new ECBlocks(42, new ECB(1, 86))),\n new Version(12, 40, 40, 18, 18, new ECBlocks(48, new ECB(1, 114))),\n new Version(13, 44, 44, 20, 20, new ECBlocks(56, new ECB(1, 144))),\n new Version(14, 48, 48, 22, 22, new ECBlocks(68, new ECB(1, 174))),\n new Version(15, 52, 52, 24, 24, new ECBlocks(42, new ECB(2, 102))),\n new Version(16, 64, 64, 14, 14, new ECBlocks(56, new ECB(2, 140))),\n new Version(17, 72, 72, 16, 16, new ECBlocks(36, new ECB(4, 92))),\n new Version(18, 80, 80, 18, 18, new ECBlocks(48, new ECB(4, 114))),\n new Version(19, 88, 88, 20, 20, new ECBlocks(56, new ECB(4, 144))),\n new Version(20, 96, 96, 22, 22, new ECBlocks(68, new ECB(4, 174))),\n new Version(21, 104, 104, 24, 24, new ECBlocks(56, new ECB(6, 136))),\n new Version(22, 120, 120, 18, 18, new ECBlocks(68, new ECB(6, 175))),\n new Version(23, 132, 132, 20, 20, new ECBlocks(62, new ECB(8, 163))),\n new Version(24, 144, 144, 22, 22, new ECBlocks(62, new ECB(8, 156), new ECB(2, 155))),\n new Version(25, 8, 18, 6, 16, new ECBlocks(7, new ECB(1, 5))),\n new Version(26, 8, 32, 6, 14, new ECBlocks(11, new ECB(1, 10))),\n new Version(27, 12, 26, 10, 24, new ECBlocks(14, new ECB(1, 16))),\n new Version(28, 12, 36, 10, 16, new ECBlocks(18, new ECB(1, 22))),\n new Version(29, 16, 36, 14, 16, new ECBlocks(24, new ECB(1, 32))),\n new Version(30, 16, 48, 14, 22, new ECBlocks(28, new ECB(1, 49)))\n ];\n }\n }\n Version.VERSIONS = Version.buildVersions();\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * @author bbrown@google.com (Brian Brown)\n */\n class BitMatrixParser {\n /**\n * @param bitMatrix {@link BitMatrix} to parse\n * @throws FormatException if dimension is < 8 or > 144 or not 0 mod 2\n */\n constructor(bitMatrix) {\n const dimension = bitMatrix.getHeight();\n if (dimension < 8 || dimension > 144 || (dimension & 0x01) !== 0) {\n throw new FormatException();\n }\n this.version = BitMatrixParser.readVersion(bitMatrix);\n this.mappingBitMatrix = this.extractDataRegion(bitMatrix);\n this.readMappingMatrix = new BitMatrix(this.mappingBitMatrix.getWidth(), this.mappingBitMatrix.getHeight());\n }\n getVersion() {\n return this.version;\n }\n /**\n *Creates the version object based on the dimension of the original bit matrix from\n * the datamatrix code.
\n *\n *See ISO 16022:2006 Table 7 - ECC 200 symbol attributes
\n *\n * @param bitMatrix Original {@link BitMatrix} including alignment patterns\n * @return {@link Version} encapsulating the Data Matrix Code's \"version\"\n * @throws FormatException if the dimensions of the mapping matrix are not valid\n * Data Matrix dimensions.\n */\n static readVersion(bitMatrix) {\n const numRows = bitMatrix.getHeight();\n const numColumns = bitMatrix.getWidth();\n return Version.getVersionForDimensions(numRows, numColumns);\n }\n /**\n *Reads the bits in the {@link BitMatrix} representing the mapping matrix (No alignment patterns)\n * in the correct order in order to reconstitute the codewords bytes contained within the\n * Data Matrix Code.
\n *\n * @return bytes encoded within the Data Matrix Code\n * @throws FormatException if the exact number of bytes expected is not read\n */\n readCodewords() {\n const result = new Int8Array(this.version.getTotalCodewords());\n let resultOffset = 0;\n let row = 4;\n let column = 0;\n const numRows = this.mappingBitMatrix.getHeight();\n const numColumns = this.mappingBitMatrix.getWidth();\n let corner1Read = false;\n let corner2Read = false;\n let corner3Read = false;\n let corner4Read = false;\n // Read all of the codewords\n do {\n // Check the four corner cases\n if ((row === numRows) && (column === 0) && !corner1Read) {\n result[resultOffset++] = this.readCorner1(numRows, numColumns) & 0xff;\n row -= 2;\n column += 2;\n corner1Read = true;\n }\n else if ((row === numRows - 2) && (column === 0) && ((numColumns & 0x03) !== 0) && !corner2Read) {\n result[resultOffset++] = this.readCorner2(numRows, numColumns) & 0xff;\n row -= 2;\n column += 2;\n corner2Read = true;\n }\n else if ((row === numRows + 4) && (column === 2) && ((numColumns & 0x07) === 0) && !corner3Read) {\n result[resultOffset++] = this.readCorner3(numRows, numColumns) & 0xff;\n row -= 2;\n column += 2;\n corner3Read = true;\n }\n else if ((row === numRows - 2) && (column === 0) && ((numColumns & 0x07) === 4) && !corner4Read) {\n result[resultOffset++] = this.readCorner4(numRows, numColumns) & 0xff;\n row -= 2;\n column += 2;\n corner4Read = true;\n }\n else {\n // Sweep upward diagonally to the right\n do {\n if ((row < numRows) && (column >= 0) && !this.readMappingMatrix.get(column, row)) {\n result[resultOffset++] = this.readUtah(row, column, numRows, numColumns) & 0xff;\n }\n row -= 2;\n column += 2;\n } while ((row >= 0) && (column < numColumns));\n row += 1;\n column += 3;\n // Sweep downward diagonally to the left\n do {\n if ((row >= 0) && (column < numColumns) && !this.readMappingMatrix.get(column, row)) {\n result[resultOffset++] = this.readUtah(row, column, numRows, numColumns) & 0xff;\n }\n row += 2;\n column -= 2;\n } while ((row < numRows) && (column >= 0));\n row += 3;\n column += 1;\n }\n } while ((row < numRows) || (column < numColumns));\n if (resultOffset !== this.version.getTotalCodewords()) {\n throw new FormatException();\n }\n return result;\n }\n /**\n *Reads a bit of the mapping matrix accounting for boundary wrapping.
\n *\n * @param row Row to read in the mapping matrix\n * @param column Column to read in the mapping matrix\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return value of the given bit in the mapping matrix\n */\n readModule(row, column, numRows, numColumns) {\n // Adjust the row and column indices based on boundary wrapping\n if (row < 0) {\n row += numRows;\n column += 4 - ((numRows + 4) & 0x07);\n }\n if (column < 0) {\n column += numColumns;\n row += 4 - ((numColumns + 4) & 0x07);\n }\n this.readMappingMatrix.set(column, row);\n return this.mappingBitMatrix.get(column, row);\n }\n /**\n *Reads the 8 bits of the standard Utah-shaped pattern.
\n *\n *See ISO 16022:2006, 5.8.1 Figure 6
\n *\n * @param row Current row in the mapping matrix, anchored at the 8th bit (LSB) of the pattern\n * @param column Current column in the mapping matrix, anchored at the 8th bit (LSB) of the pattern\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the utah shape\n */\n readUtah(row, column, numRows, numColumns) {\n let currentByte = 0;\n if (this.readModule(row - 2, column - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row - 2, column - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row - 1, column - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row - 1, column - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row - 1, column, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row, column - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row, column - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(row, column, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n }\n /**\n *Reads the 8 bits of the special corner condition 1.
\n *\n *See ISO 16022:2006, Figure F.3
\n *\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the Corner condition 1\n */\n readCorner1(numRows, numColumns) {\n let currentByte = 0;\n if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(2, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(3, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n }\n /**\n *Reads the 8 bits of the special corner condition 2.
\n *\n *See ISO 16022:2006, Figure F.4
\n *\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the Corner condition 2\n */\n readCorner2(numRows, numColumns) {\n let currentByte = 0;\n if (this.readModule(numRows - 3, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 2, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 4, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 3, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n }\n /**\n *Reads the 8 bits of the special corner condition 3.
\n *\n *See ISO 16022:2006, Figure F.5
\n *\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the Corner condition 3\n */\n readCorner3(numRows, numColumns) {\n let currentByte = 0;\n if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 3, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 3, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n }\n /**\n *Reads the 8 bits of the special corner condition 4.
\n *\n *See ISO 16022:2006, Figure F.6
\n *\n * @param numRows Number of rows in the mapping matrix\n * @param numColumns Number of columns in the mapping matrix\n * @return byte from the Corner condition 4\n */\n readCorner4(numRows, numColumns) {\n let currentByte = 0;\n if (this.readModule(numRows - 3, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 2, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(numRows - 1, 0, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 2, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(0, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(1, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(2, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n currentByte <<= 1;\n if (this.readModule(3, numColumns - 1, numRows, numColumns)) {\n currentByte |= 1;\n }\n return currentByte;\n }\n /**\n *Extracts the data region from a {@link BitMatrix} that contains\n * alignment patterns.
\n *\n * @param bitMatrix Original {@link BitMatrix} with alignment patterns\n * @return BitMatrix that has the alignment patterns removed\n */\n extractDataRegion(bitMatrix) {\n const symbolSizeRows = this.version.getSymbolSizeRows();\n const symbolSizeColumns = this.version.getSymbolSizeColumns();\n if (bitMatrix.getHeight() !== symbolSizeRows) {\n throw new IllegalArgumentException('Dimension of bitMatrix must match the version size');\n }\n const dataRegionSizeRows = this.version.getDataRegionSizeRows();\n const dataRegionSizeColumns = this.version.getDataRegionSizeColumns();\n const numDataRegionsRow = symbolSizeRows / dataRegionSizeRows | 0;\n const numDataRegionsColumn = symbolSizeColumns / dataRegionSizeColumns | 0;\n const sizeDataRegionRow = numDataRegionsRow * dataRegionSizeRows;\n const sizeDataRegionColumn = numDataRegionsColumn * dataRegionSizeColumns;\n const bitMatrixWithoutAlignment = new BitMatrix(sizeDataRegionColumn, sizeDataRegionRow);\n for (let dataRegionRow = 0; dataRegionRow < numDataRegionsRow; ++dataRegionRow) {\n const dataRegionRowOffset = dataRegionRow * dataRegionSizeRows;\n for (let dataRegionColumn = 0; dataRegionColumn < numDataRegionsColumn; ++dataRegionColumn) {\n const dataRegionColumnOffset = dataRegionColumn * dataRegionSizeColumns;\n for (let i = 0; i < dataRegionSizeRows; ++i) {\n const readRowOffset = dataRegionRow * (dataRegionSizeRows + 2) + 1 + i;\n const writeRowOffset = dataRegionRowOffset + i;\n for (let j = 0; j < dataRegionSizeColumns; ++j) {\n const readColumnOffset = dataRegionColumn * (dataRegionSizeColumns + 2) + 1 + j;\n if (bitMatrix.get(readColumnOffset, readRowOffset)) {\n const writeColumnOffset = dataRegionColumnOffset + j;\n bitMatrixWithoutAlignment.set(writeColumnOffset, writeRowOffset);\n }\n }\n }\n }\n }\n return bitMatrixWithoutAlignment;\n }\n }\n\n /**\n *Encapsulates a block of data within a Data Matrix Code. Data Matrix Codes may split their data into\n * multiple blocks, each of which is a unit of data and error-correction codewords. Each\n * is represented by an instance of this class.
\n *\n * @author bbrown@google.com (Brian Brown)\n */\n class DataBlock {\n constructor(numDataCodewords, codewords) {\n this.numDataCodewords = numDataCodewords;\n this.codewords = codewords;\n }\n /**\n *When Data Matrix Codes use multiple data blocks, they actually interleave the bytes of each of them.\n * That is, the first byte of data block 1 to n is written, then the second bytes, and so on. This\n * method will separate the data into original blocks.
\n *\n * @param rawCodewords bytes as read directly from the Data Matrix Code\n * @param version version of the Data Matrix Code\n * @return DataBlocks containing original bytes, \"de-interleaved\" from representation in the\n * Data Matrix Code\n */\n static getDataBlocks(rawCodewords, version) {\n // Figure out the number and size of data blocks used by this version\n const ecBlocks = version.getECBlocks();\n // First count the total number of data blocks\n let totalBlocks = 0;\n const ecBlockArray = ecBlocks.getECBlocks();\n for (let ecBlock of ecBlockArray) {\n totalBlocks += ecBlock.getCount();\n }\n // Now establish DataBlocks of the appropriate size and number of data codewords\n const result = new Array(totalBlocks);\n let numResultBlocks = 0;\n for (let ecBlock of ecBlockArray) {\n for (let i = 0; i < ecBlock.getCount(); i++) {\n const numDataCodewords = ecBlock.getDataCodewords();\n const numBlockCodewords = ecBlocks.getECCodewords() + numDataCodewords;\n result[numResultBlocks++] = new DataBlock(numDataCodewords, new Uint8Array(numBlockCodewords));\n }\n }\n // All blocks have the same amount of data, except that the last n\n // (where n may be 0) have 1 less byte. Figure out where these start.\n // TODO(bbrown): There is only one case where there is a difference for Data Matrix for size 144\n const longerBlocksTotalCodewords = result[0].codewords.length;\n // int shorterBlocksTotalCodewords = longerBlocksTotalCodewords - 1;\n const longerBlocksNumDataCodewords = longerBlocksTotalCodewords - ecBlocks.getECCodewords();\n const shorterBlocksNumDataCodewords = longerBlocksNumDataCodewords - 1;\n // The last elements of result may be 1 element shorter for 144 matrix\n // first fill out as many elements as all of them have minus 1\n let rawCodewordsOffset = 0;\n for (let i = 0; i < shorterBlocksNumDataCodewords; i++) {\n for (let j = 0; j < numResultBlocks; j++) {\n result[j].codewords[i] = rawCodewords[rawCodewordsOffset++];\n }\n }\n // Fill out the last data block in the longer ones\n const specialVersion = version.getVersionNumber() === 24;\n const numLongerBlocks = specialVersion ? 8 : numResultBlocks;\n for (let j = 0; j < numLongerBlocks; j++) {\n result[j].codewords[longerBlocksNumDataCodewords - 1] = rawCodewords[rawCodewordsOffset++];\n }\n // Now add in error correction blocks\n const max = result[0].codewords.length;\n for (let i = longerBlocksNumDataCodewords; i < max; i++) {\n for (let j = 0; j < numResultBlocks; j++) {\n const jOffset = specialVersion ? (j + 8) % numResultBlocks : j;\n const iOffset = specialVersion && jOffset > 7 ? i - 1 : i;\n result[jOffset].codewords[iOffset] = rawCodewords[rawCodewordsOffset++];\n }\n }\n if (rawCodewordsOffset !== rawCodewords.length) {\n throw new IllegalArgumentException();\n }\n return result;\n }\n getNumDataCodewords() {\n return this.numDataCodewords;\n }\n getCodewords() {\n return this.codewords;\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *This provides an easy abstraction to read bits at a time from a sequence of bytes, where the\n * number of bits read is not often a multiple of 8.
\n *\n *This class is thread-safe but not reentrant -- unless the caller modifies the bytes array\n * it passed in, in which case all bets are off.
\n *\n * @author Sean Owen\n */\n class BitSource {\n /**\n * @param bytes bytes from which this will read bits. Bits will be read from the first byte first.\n * Bits are read within a byte from most-significant to least-significant bit.\n */\n constructor(bytes) {\n this.bytes = bytes;\n this.byteOffset = 0;\n this.bitOffset = 0;\n }\n /**\n * @return index of next bit in current byte which would be read by the next call to {@link #readBits(int)}.\n */\n getBitOffset() {\n return this.bitOffset;\n }\n /**\n * @return index of next byte in input byte array which would be read by the next call to {@link #readBits(int)}.\n */\n getByteOffset() {\n return this.byteOffset;\n }\n /**\n * @param numBits number of bits to read\n * @return int representing the bits read. The bits will appear as the least-significant\n * bits of the int\n * @throws IllegalArgumentException if numBits isn't in [1,32] or more than is available\n */\n readBits(numBits /*int*/) {\n if (numBits < 1 || numBits > 32 || numBits > this.available()) {\n throw new IllegalArgumentException('' + numBits);\n }\n let result = 0;\n let bitOffset = this.bitOffset;\n let byteOffset = this.byteOffset;\n const bytes = this.bytes;\n // First, read remainder from current byte\n if (bitOffset > 0) {\n const bitsLeft = 8 - bitOffset;\n const toRead = numBits < bitsLeft ? numBits : bitsLeft;\n const bitsToNotRead = bitsLeft - toRead;\n const mask = (0xFF >> (8 - toRead)) << bitsToNotRead;\n result = (bytes[byteOffset] & mask) >> bitsToNotRead;\n numBits -= toRead;\n bitOffset += toRead;\n if (bitOffset === 8) {\n bitOffset = 0;\n byteOffset++;\n }\n }\n // Next read whole bytes\n if (numBits > 0) {\n while (numBits >= 8) {\n result = (result << 8) | (bytes[byteOffset] & 0xFF);\n byteOffset++;\n numBits -= 8;\n }\n // Finally read a partial byte\n if (numBits > 0) {\n const bitsToNotRead = 8 - numBits;\n const mask = (0xFF >> bitsToNotRead) << bitsToNotRead;\n result = (result << numBits) | ((bytes[byteOffset] & mask) >> bitsToNotRead);\n bitOffset += numBits;\n }\n }\n this.bitOffset = bitOffset;\n this.byteOffset = byteOffset;\n return result;\n }\n /**\n * @return number of bits that can be read successfully\n */\n available() {\n return 8 * (this.bytes.length - this.byteOffset) - this.bitOffset;\n }\n }\n\n var Mode;\n (function (Mode) {\n Mode[Mode[\"PAD_ENCODE\"] = 0] = \"PAD_ENCODE\";\n Mode[Mode[\"ASCII_ENCODE\"] = 1] = \"ASCII_ENCODE\";\n Mode[Mode[\"C40_ENCODE\"] = 2] = \"C40_ENCODE\";\n Mode[Mode[\"TEXT_ENCODE\"] = 3] = \"TEXT_ENCODE\";\n Mode[Mode[\"ANSIX12_ENCODE\"] = 4] = \"ANSIX12_ENCODE\";\n Mode[Mode[\"EDIFACT_ENCODE\"] = 5] = \"EDIFACT_ENCODE\";\n Mode[Mode[\"BASE256_ENCODE\"] = 6] = \"BASE256_ENCODE\";\n })(Mode || (Mode = {}));\n /**\n *Data Matrix Codes can encode text as bits in one of several modes, and can use multiple modes\n * in one Data Matrix Code. This class decodes the bits back into text.
\n *\n *See ISO 16022:2006, 5.2.1 - 5.2.9.2
\n *\n * @author bbrown@google.com (Brian Brown)\n * @author Sean Owen\n */\n class DecodedBitStreamParser {\n static decode(bytes) {\n const bits = new BitSource(bytes);\n const result = new StringBuilder();\n const resultTrailer = new StringBuilder();\n const byteSegments = new Array();\n let mode = Mode.ASCII_ENCODE;\n do {\n if (mode === Mode.ASCII_ENCODE) {\n mode = this.decodeAsciiSegment(bits, result, resultTrailer);\n }\n else {\n switch (mode) {\n case Mode.C40_ENCODE:\n this.decodeC40Segment(bits, result);\n break;\n case Mode.TEXT_ENCODE:\n this.decodeTextSegment(bits, result);\n break;\n case Mode.ANSIX12_ENCODE:\n this.decodeAnsiX12Segment(bits, result);\n break;\n case Mode.EDIFACT_ENCODE:\n this.decodeEdifactSegment(bits, result);\n break;\n case Mode.BASE256_ENCODE:\n this.decodeBase256Segment(bits, result, byteSegments);\n break;\n default:\n throw new FormatException();\n }\n mode = Mode.ASCII_ENCODE;\n }\n } while (mode !== Mode.PAD_ENCODE && bits.available() > 0);\n if (resultTrailer.length() > 0) {\n result.append(resultTrailer.toString());\n }\n return new DecoderResult(bytes, result.toString(), byteSegments.length === 0 ? null : byteSegments, null);\n }\n /**\n * See ISO 16022:2006, 5.2.3 and Annex C, Table C.2\n */\n static decodeAsciiSegment(bits, result, resultTrailer) {\n let upperShift = false;\n do {\n let oneByte = bits.readBits(8);\n if (oneByte === 0) {\n throw new FormatException();\n }\n else if (oneByte <= 128) { // ASCII data (ASCII value + 1)\n if (upperShift) {\n oneByte += 128;\n // upperShift = false;\n }\n result.append(String.fromCharCode(oneByte - 1));\n return Mode.ASCII_ENCODE;\n }\n else if (oneByte === 129) { // Pad\n return Mode.PAD_ENCODE;\n }\n else if (oneByte <= 229) { // 2-digit data 00-99 (Numeric Value + 130)\n const value = oneByte - 130;\n if (value < 10) { // pad with '0' for single digit values\n result.append('0');\n }\n result.append('' + value);\n }\n else {\n switch (oneByte) {\n case 230: // Latch to C40 encodation\n return Mode.C40_ENCODE;\n case 231: // Latch to Base 256 encodation\n return Mode.BASE256_ENCODE;\n case 232: // FNC1\n result.append(String.fromCharCode(29)); // translate as ASCII 29\n break;\n case 233: // Structured Append\n case 234: // Reader Programming\n // Ignore these symbols for now\n // throw ReaderException.getInstance();\n break;\n case 235: // Upper Shift (shift to Extended ASCII)\n upperShift = true;\n break;\n case 236: // 05 Macro\n result.append('[)>\\u001E05\\u001D');\n resultTrailer.insert(0, '\\u001E\\u0004');\n break;\n case 237: // 06 Macro\n result.append('[)>\\u001E06\\u001D');\n resultTrailer.insert(0, '\\u001E\\u0004');\n break;\n case 238: // Latch to ANSI X12 encodation\n return Mode.ANSIX12_ENCODE;\n case 239: // Latch to Text encodation\n return Mode.TEXT_ENCODE;\n case 240: // Latch to EDIFACT encodation\n return Mode.EDIFACT_ENCODE;\n case 241: // ECI Character\n // TODO(bbrown): I think we need to support ECI\n // throw ReaderException.getInstance();\n // Ignore this symbol for now\n break;\n default:\n // Not to be used in ASCII encodation\n // but work around encoders that end with 254, latch back to ASCII\n if (oneByte !== 254 || bits.available() !== 0) {\n throw new FormatException();\n }\n break;\n }\n }\n } while (bits.available() > 0);\n return Mode.ASCII_ENCODE;\n }\n /**\n * See ISO 16022:2006, 5.2.5 and Annex C, Table C.1\n */\n static decodeC40Segment(bits, result) {\n // Three C40 values are encoded in a 16-bit value as\n // (1600 * C1) + (40 * C2) + C3 + 1\n // TODO(bbrown): The Upper Shift with C40 doesn't work in the 4 value scenario all the time\n let upperShift = false;\n const cValues = [];\n let shift = 0;\n do {\n // If there is only one byte left then it will be encoded as ASCII\n if (bits.available() === 8) {\n return;\n }\n const firstByte = bits.readBits(8);\n if (firstByte === 254) { // Unlatch codeword\n return;\n }\n this.parseTwoBytes(firstByte, bits.readBits(8), cValues);\n for (let i = 0; i < 3; i++) {\n const cValue = cValues[i];\n switch (shift) {\n case 0:\n if (cValue < 3) {\n shift = cValue + 1;\n }\n else if (cValue < this.C40_BASIC_SET_CHARS.length) {\n const c40char = this.C40_BASIC_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(c40char.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(c40char);\n }\n }\n else {\n throw new FormatException();\n }\n break;\n case 1:\n if (upperShift) {\n result.append(String.fromCharCode(cValue + 128));\n upperShift = false;\n }\n else {\n result.append(String.fromCharCode(cValue));\n }\n shift = 0;\n break;\n case 2:\n if (cValue < this.C40_SHIFT2_SET_CHARS.length) {\n const c40char = this.C40_SHIFT2_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(c40char.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(c40char);\n }\n }\n else {\n switch (cValue) {\n case 27: // FNC1\n result.append(String.fromCharCode(29)); // translate as ASCII 29\n break;\n case 30: // Upper Shift\n upperShift = true;\n break;\n default:\n throw new FormatException();\n }\n }\n shift = 0;\n break;\n case 3:\n if (upperShift) {\n result.append(String.fromCharCode(cValue + 224));\n upperShift = false;\n }\n else {\n result.append(String.fromCharCode(cValue + 96));\n }\n shift = 0;\n break;\n default:\n throw new FormatException();\n }\n }\n } while (bits.available() > 0);\n }\n /**\n * See ISO 16022:2006, 5.2.6 and Annex C, Table C.2\n */\n static decodeTextSegment(bits, result) {\n // Three Text values are encoded in a 16-bit value as\n // (1600 * C1) + (40 * C2) + C3 + 1\n // TODO(bbrown): The Upper Shift with Text doesn't work in the 4 value scenario all the time\n let upperShift = false;\n let cValues = [];\n let shift = 0;\n do {\n // If there is only one byte left then it will be encoded as ASCII\n if (bits.available() === 8) {\n return;\n }\n const firstByte = bits.readBits(8);\n if (firstByte === 254) { // Unlatch codeword\n return;\n }\n this.parseTwoBytes(firstByte, bits.readBits(8), cValues);\n for (let i = 0; i < 3; i++) {\n const cValue = cValues[i];\n switch (shift) {\n case 0:\n if (cValue < 3) {\n shift = cValue + 1;\n }\n else if (cValue < this.TEXT_BASIC_SET_CHARS.length) {\n const textChar = this.TEXT_BASIC_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(textChar.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(textChar);\n }\n }\n else {\n throw new FormatException();\n }\n break;\n case 1:\n if (upperShift) {\n result.append(String.fromCharCode(cValue + 128));\n upperShift = false;\n }\n else {\n result.append(String.fromCharCode(cValue));\n }\n shift = 0;\n break;\n case 2:\n // Shift 2 for Text is the same encoding as C40\n if (cValue < this.TEXT_SHIFT2_SET_CHARS.length) {\n const textChar = this.TEXT_SHIFT2_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(textChar.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(textChar);\n }\n }\n else {\n switch (cValue) {\n case 27: // FNC1\n result.append(String.fromCharCode(29)); // translate as ASCII 29\n break;\n case 30: // Upper Shift\n upperShift = true;\n break;\n default:\n throw new FormatException();\n }\n }\n shift = 0;\n break;\n case 3:\n if (cValue < this.TEXT_SHIFT3_SET_CHARS.length) {\n const textChar = this.TEXT_SHIFT3_SET_CHARS[cValue];\n if (upperShift) {\n result.append(String.fromCharCode(textChar.charCodeAt(0) + 128));\n upperShift = false;\n }\n else {\n result.append(textChar);\n }\n shift = 0;\n }\n else {\n throw new FormatException();\n }\n break;\n default:\n throw new FormatException();\n }\n }\n } while (bits.available() > 0);\n }\n /**\n * See ISO 16022:2006, 5.2.7\n */\n static decodeAnsiX12Segment(bits, result) {\n // Three ANSI X12 values are encoded in a 16-bit value as\n // (1600 * C1) + (40 * C2) + C3 + 1\n const cValues = [];\n do {\n // If there is only one byte left then it will be encoded as ASCII\n if (bits.available() === 8) {\n return;\n }\n const firstByte = bits.readBits(8);\n if (firstByte === 254) { // Unlatch codeword\n return;\n }\n this.parseTwoBytes(firstByte, bits.readBits(8), cValues);\n for (let i = 0; i < 3; i++) {\n const cValue = cValues[i];\n switch (cValue) {\n case 0: // X12 segment terminatorThe main class which implements Data Matrix Code decoding -- as opposed to locating and extracting\n * the Data Matrix Code from an image.
\n *\n * @author bbrown@google.com (Brian Brown)\n */\n class Decoder$1 {\n constructor() {\n this.rsDecoder = new ReedSolomonDecoder(GenericGF.DATA_MATRIX_FIELD_256);\n }\n /**\n *Decodes a Data Matrix Code represented as a {@link BitMatrix}. A 1 or \"true\" is taken\n * to mean a black module.
\n *\n * @param bits booleans representing white/black Data Matrix Code modules\n * @return text and bytes encoded within the Data Matrix Code\n * @throws FormatException if the Data Matrix Code cannot be decoded\n * @throws ChecksumException if error correction fails\n */\n decode(bits) {\n // Construct a parser and read version, error-correction level\n const parser = new BitMatrixParser(bits);\n const version = parser.getVersion();\n // Read codewords\n const codewords = parser.readCodewords();\n // Separate into data blocks\n const dataBlocks = DataBlock.getDataBlocks(codewords, version);\n // Count total number of data bytes\n let totalBytes = 0;\n for (let db of dataBlocks) {\n totalBytes += db.getNumDataCodewords();\n }\n const resultBytes = new Uint8Array(totalBytes);\n const dataBlocksCount = dataBlocks.length;\n // Error-correct and copy data blocks together into a stream of bytes\n for (let j = 0; j < dataBlocksCount; j++) {\n const dataBlock = dataBlocks[j];\n const codewordBytes = dataBlock.getCodewords();\n const numDataCodewords = dataBlock.getNumDataCodewords();\n this.correctErrors(codewordBytes, numDataCodewords);\n for (let i = 0; i < numDataCodewords; i++) {\n // De-interlace data blocks.\n resultBytes[i * dataBlocksCount + j] = codewordBytes[i];\n }\n }\n // Decode the contents of that stream of bytes\n return DecodedBitStreamParser.decode(resultBytes);\n }\n /**\n *Given data and error-correction codewords received, possibly corrupted by errors, attempts to\n * correct the errors in-place using Reed-Solomon error correction.
\n *\n * @param codewordBytes data and error correction codewords\n * @param numDataCodewords number of codewords that are data bytes\n * @throws ChecksumException if error correction fails\n */\n correctErrors(codewordBytes, numDataCodewords) {\n // const numCodewords = codewordBytes.length;\n // First read into an array of ints\n const codewordsInts = new Int32Array(codewordBytes);\n // for (let i = 0; i < numCodewords; i++) {\n // codewordsInts[i] = codewordBytes[i] & 0xFF;\n // }\n try {\n this.rsDecoder.decode(codewordsInts, codewordBytes.length - numDataCodewords);\n }\n catch (ignored /* ReedSolomonException */) {\n throw new ChecksumException();\n }\n // Copy back into array of bytes -- only need to worry about the bytes that were data\n // We don't care about errors in the error-correction codewords\n for (let i = 0; i < numDataCodewords; i++) {\n codewordBytes[i] = codewordsInts[i];\n }\n }\n }\n\n /**\n *Encapsulates logic that can detect a Data Matrix Code in an image, even if the Data Matrix Code\n * is rotated or skewed, or partially obscured.
\n *\n * @author Sean Owen\n */\n class Detector$1 {\n constructor(image) {\n this.image = image;\n this.rectangleDetector = new WhiteRectangleDetector(this.image);\n }\n /**\n *Detects a Data Matrix Code in an image.
\n *\n * @return {@link DetectorResult} encapsulating results of detecting a Data Matrix Code\n * @throws NotFoundException if no Data Matrix Code can be found\n */\n detect() {\n const cornerPoints = this.rectangleDetector.detect();\n let points = this.detectSolid1(cornerPoints);\n points = this.detectSolid2(points);\n points[3] = this.correctTopRight(points);\n if (!points[3]) {\n throw new NotFoundException();\n }\n points = this.shiftToModuleCenter(points);\n const topLeft = points[0];\n const bottomLeft = points[1];\n const bottomRight = points[2];\n const topRight = points[3];\n let dimensionTop = this.transitionsBetween(topLeft, topRight) + 1;\n let dimensionRight = this.transitionsBetween(bottomRight, topRight) + 1;\n if ((dimensionTop & 0x01) === 1) {\n dimensionTop += 1;\n }\n if ((dimensionRight & 0x01) === 1) {\n dimensionRight += 1;\n }\n if (4 * dimensionTop < 7 * dimensionRight && 4 * dimensionRight < 7 * dimensionTop) {\n // The matrix is square\n dimensionTop = dimensionRight = Math.max(dimensionTop, dimensionRight);\n }\n let bits = Detector$1.sampleGrid(this.image, topLeft, bottomLeft, bottomRight, topRight, dimensionTop, dimensionRight);\n return new DetectorResult(bits, [topLeft, bottomLeft, bottomRight, topRight]);\n }\n static shiftPoint(point, to, div) {\n let x = (to.getX() - point.getX()) / (div + 1);\n let y = (to.getY() - point.getY()) / (div + 1);\n return new ResultPoint(point.getX() + x, point.getY() + y);\n }\n static moveAway(point, fromX, fromY) {\n let x = point.getX();\n let y = point.getY();\n if (x < fromX) {\n x -= 1;\n }\n else {\n x += 1;\n }\n if (y < fromY) {\n y -= 1;\n }\n else {\n y += 1;\n }\n return new ResultPoint(x, y);\n }\n /**\n * Detect a solid side which has minimum transition.\n */\n detectSolid1(cornerPoints) {\n // 0 2\n // 1 3\n let pointA = cornerPoints[0];\n let pointB = cornerPoints[1];\n let pointC = cornerPoints[3];\n let pointD = cornerPoints[2];\n let trAB = this.transitionsBetween(pointA, pointB);\n let trBC = this.transitionsBetween(pointB, pointC);\n let trCD = this.transitionsBetween(pointC, pointD);\n let trDA = this.transitionsBetween(pointD, pointA);\n // 0..3\n // : :\n // 1--2\n let min = trAB;\n let points = [pointD, pointA, pointB, pointC];\n if (min > trBC) {\n min = trBC;\n points[0] = pointA;\n points[1] = pointB;\n points[2] = pointC;\n points[3] = pointD;\n }\n if (min > trCD) {\n min = trCD;\n points[0] = pointB;\n points[1] = pointC;\n points[2] = pointD;\n points[3] = pointA;\n }\n if (min > trDA) {\n points[0] = pointC;\n points[1] = pointD;\n points[2] = pointA;\n points[3] = pointB;\n }\n return points;\n }\n /**\n * Detect a second solid side next to first solid side.\n */\n detectSolid2(points) {\n // A..D\n // : :\n // B--C\n let pointA = points[0];\n let pointB = points[1];\n let pointC = points[2];\n let pointD = points[3];\n // Transition detection on the edge is not stable.\n // To safely detect, shift the points to the module center.\n let tr = this.transitionsBetween(pointA, pointD);\n let pointBs = Detector$1.shiftPoint(pointB, pointC, (tr + 1) * 4);\n let pointCs = Detector$1.shiftPoint(pointC, pointB, (tr + 1) * 4);\n let trBA = this.transitionsBetween(pointBs, pointA);\n let trCD = this.transitionsBetween(pointCs, pointD);\n // 0..3\n // | :\n // 1--2\n if (trBA < trCD) {\n // solid sides: A-B-C\n points[0] = pointA;\n points[1] = pointB;\n points[2] = pointC;\n points[3] = pointD;\n }\n else {\n // solid sides: B-C-D\n points[0] = pointB;\n points[1] = pointC;\n points[2] = pointD;\n points[3] = pointA;\n }\n return points;\n }\n /**\n * Calculates the corner position of the white top right module.\n */\n correctTopRight(points) {\n // A..D\n // | :\n // B--C\n let pointA = points[0];\n let pointB = points[1];\n let pointC = points[2];\n let pointD = points[3];\n // shift points for safe transition detection.\n let trTop = this.transitionsBetween(pointA, pointD);\n let trRight = this.transitionsBetween(pointB, pointD);\n let pointAs = Detector$1.shiftPoint(pointA, pointB, (trRight + 1) * 4);\n let pointCs = Detector$1.shiftPoint(pointC, pointB, (trTop + 1) * 4);\n trTop = this.transitionsBetween(pointAs, pointD);\n trRight = this.transitionsBetween(pointCs, pointD);\n let candidate1 = new ResultPoint(pointD.getX() + (pointC.getX() - pointB.getX()) / (trTop + 1), pointD.getY() + (pointC.getY() - pointB.getY()) / (trTop + 1));\n let candidate2 = new ResultPoint(pointD.getX() + (pointA.getX() - pointB.getX()) / (trRight + 1), pointD.getY() + (pointA.getY() - pointB.getY()) / (trRight + 1));\n if (!this.isValid(candidate1)) {\n if (this.isValid(candidate2)) {\n return candidate2;\n }\n return null;\n }\n if (!this.isValid(candidate2)) {\n return candidate1;\n }\n let sumc1 = this.transitionsBetween(pointAs, candidate1) + this.transitionsBetween(pointCs, candidate1);\n let sumc2 = this.transitionsBetween(pointAs, candidate2) + this.transitionsBetween(pointCs, candidate2);\n if (sumc1 > sumc2) {\n return candidate1;\n }\n else {\n return candidate2;\n }\n }\n /**\n * Shift the edge points to the module center.\n */\n shiftToModuleCenter(points) {\n // A..D\n // | :\n // B--C\n let pointA = points[0];\n let pointB = points[1];\n let pointC = points[2];\n let pointD = points[3];\n // calculate pseudo dimensions\n let dimH = this.transitionsBetween(pointA, pointD) + 1;\n let dimV = this.transitionsBetween(pointC, pointD) + 1;\n // shift points for safe dimension detection\n let pointAs = Detector$1.shiftPoint(pointA, pointB, dimV * 4);\n let pointCs = Detector$1.shiftPoint(pointC, pointB, dimH * 4);\n // calculate more precise dimensions\n dimH = this.transitionsBetween(pointAs, pointD) + 1;\n dimV = this.transitionsBetween(pointCs, pointD) + 1;\n if ((dimH & 0x01) === 1) {\n dimH += 1;\n }\n if ((dimV & 0x01) === 1) {\n dimV += 1;\n }\n // WhiteRectangleDetector returns points inside of the rectangle.\n // I want points on the edges.\n let centerX = (pointA.getX() + pointB.getX() + pointC.getX() + pointD.getX()) / 4;\n let centerY = (pointA.getY() + pointB.getY() + pointC.getY() + pointD.getY()) / 4;\n pointA = Detector$1.moveAway(pointA, centerX, centerY);\n pointB = Detector$1.moveAway(pointB, centerX, centerY);\n pointC = Detector$1.moveAway(pointC, centerX, centerY);\n pointD = Detector$1.moveAway(pointD, centerX, centerY);\n let pointBs;\n let pointDs;\n // shift points to the center of each modules\n pointAs = Detector$1.shiftPoint(pointA, pointB, dimV * 4);\n pointAs = Detector$1.shiftPoint(pointAs, pointD, dimH * 4);\n pointBs = Detector$1.shiftPoint(pointB, pointA, dimV * 4);\n pointBs = Detector$1.shiftPoint(pointBs, pointC, dimH * 4);\n pointCs = Detector$1.shiftPoint(pointC, pointD, dimV * 4);\n pointCs = Detector$1.shiftPoint(pointCs, pointB, dimH * 4);\n pointDs = Detector$1.shiftPoint(pointD, pointC, dimV * 4);\n pointDs = Detector$1.shiftPoint(pointDs, pointA, dimH * 4);\n return [pointAs, pointBs, pointCs, pointDs];\n }\n isValid(p) {\n return p.getX() >= 0 && p.getX() < this.image.getWidth() && p.getY() > 0 && p.getY() < this.image.getHeight();\n }\n static sampleGrid(image, topLeft, bottomLeft, bottomRight, topRight, dimensionX, dimensionY) {\n const sampler = GridSamplerInstance.getInstance();\n return sampler.sampleGrid(image, dimensionX, dimensionY, 0.5, 0.5, dimensionX - 0.5, 0.5, dimensionX - 0.5, dimensionY - 0.5, 0.5, dimensionY - 0.5, topLeft.getX(), topLeft.getY(), topRight.getX(), topRight.getY(), bottomRight.getX(), bottomRight.getY(), bottomLeft.getX(), bottomLeft.getY());\n }\n /**\n * Counts the number of black/white transitions between two points, using something like Bresenham's algorithm.\n */\n transitionsBetween(from, to) {\n // See QR Code Detector, sizeOfBlackWhiteBlackRun()\n let fromX = Math.trunc(from.getX());\n let fromY = Math.trunc(from.getY());\n let toX = Math.trunc(to.getX());\n let toY = Math.trunc(to.getY());\n let steep = Math.abs(toY - fromY) > Math.abs(toX - fromX);\n if (steep) {\n let temp = fromX;\n fromX = fromY;\n fromY = temp;\n temp = toX;\n toX = toY;\n toY = temp;\n }\n let dx = Math.abs(toX - fromX);\n let dy = Math.abs(toY - fromY);\n let error = -dx / 2;\n let ystep = fromY < toY ? 1 : -1;\n let xstep = fromX < toX ? 1 : -1;\n let transitions = 0;\n let inBlack = this.image.get(steep ? fromY : fromX, steep ? fromX : fromY);\n for (let x = fromX, y = fromY; x !== toX; x += xstep) {\n let isBlack = this.image.get(steep ? y : x, steep ? x : y);\n if (isBlack !== inBlack) {\n transitions++;\n inBlack = isBlack;\n }\n error += dy;\n if (error > 0) {\n if (y === toY) {\n break;\n }\n y += ystep;\n error -= dx;\n }\n }\n return transitions;\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * This implementation can detect and decode Data Matrix codes in an image.\n *\n * @author bbrown@google.com (Brian Brown)\n */\n class DataMatrixReader {\n constructor() {\n this.decoder = new Decoder$1();\n }\n /**\n * Locates and decodes a Data Matrix code in an image.\n *\n * @return a String representing the content encoded by the Data Matrix code\n * @throws NotFoundException if a Data Matrix code cannot be found\n * @throws FormatException if a Data Matrix code cannot be decoded\n * @throws ChecksumException if error correction fails\n */\n // @Override\n // public Result decode(BinaryBitmap image) throws NotFoundException, ChecksumException, FormatException {\n // return decode(image, null);\n // }\n // @Override\n decode(image, hints = null) {\n let decoderResult;\n let points;\n if (hints != null && hints.has(DecodeHintType$1.PURE_BARCODE)) {\n const bits = DataMatrixReader.extractPureBits(image.getBlackMatrix());\n decoderResult = this.decoder.decode(bits);\n points = DataMatrixReader.NO_POINTS;\n }\n else {\n const detectorResult = new Detector$1(image.getBlackMatrix()).detect();\n decoderResult = this.decoder.decode(detectorResult.getBits());\n points = detectorResult.getPoints();\n }\n const rawBytes = decoderResult.getRawBytes();\n const result = new Result(decoderResult.getText(), rawBytes, 8 * rawBytes.length, points, BarcodeFormat$1.DATA_MATRIX, System.currentTimeMillis());\n const byteSegments = decoderResult.getByteSegments();\n if (byteSegments != null) {\n result.putMetadata(ResultMetadataType$1.BYTE_SEGMENTS, byteSegments);\n }\n const ecLevel = decoderResult.getECLevel();\n if (ecLevel != null) {\n result.putMetadata(ResultMetadataType$1.ERROR_CORRECTION_LEVEL, ecLevel);\n }\n return result;\n }\n // @Override\n reset() {\n // do nothing\n }\n /**\n * This method detects a code in a \"pure\" image -- that is, pure monochrome image\n * which contains only an unrotated, unskewed, image of a code, with some white border\n * around it. This is a specialized method that works exceptionally fast in this special\n * case.\n *\n * @see com.google.zxing.qrcode.QRCodeReader#extractPureBits(BitMatrix)\n */\n static extractPureBits(image) {\n const leftTopBlack = image.getTopLeftOnBit();\n const rightBottomBlack = image.getBottomRightOnBit();\n if (leftTopBlack == null || rightBottomBlack == null) {\n throw new NotFoundException();\n }\n const moduleSize = this.moduleSize(leftTopBlack, image);\n let top = leftTopBlack[1];\n const bottom = rightBottomBlack[1];\n let left = leftTopBlack[0];\n const right = rightBottomBlack[0];\n const matrixWidth = (right - left + 1) / moduleSize;\n const matrixHeight = (bottom - top + 1) / moduleSize;\n if (matrixWidth <= 0 || matrixHeight <= 0) {\n throw new NotFoundException();\n }\n // Push in the \"border\" by half the module width so that we start\n // sampling in the middle of the module. Just in case the image is a\n // little off, this will help recover.\n const nudge = moduleSize / 2;\n top += nudge;\n left += nudge;\n // Now just read off the bits\n const bits = new BitMatrix(matrixWidth, matrixHeight);\n for (let y = 0; y < matrixHeight; y++) {\n const iOffset = top + y * moduleSize;\n for (let x = 0; x < matrixWidth; x++) {\n if (image.get(left + x * moduleSize, iOffset)) {\n bits.set(x, y);\n }\n }\n }\n return bits;\n }\n static moduleSize(leftTopBlack, image) {\n const width = image.getWidth();\n let x = leftTopBlack[0];\n const y = leftTopBlack[1];\n while (x < width && image.get(x, y)) {\n x++;\n }\n if (x === width) {\n throw new NotFoundException();\n }\n const moduleSize = x - leftTopBlack[0];\n if (moduleSize === 0) {\n throw new NotFoundException();\n }\n return moduleSize;\n }\n }\n DataMatrixReader.NO_POINTS = [];\n\n /**\n * @deprecated Moving to @zxing/browser\n *\n * QR Code reader to use from browser.\n */\n class BrowserDatamatrixCodeReader extends BrowserCodeReader {\n /**\n * Creates an instance of BrowserQRCodeReader.\n * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n */\n constructor(timeBetweenScansMillis = 500) {\n super(new DataMatrixReader(), timeBetweenScansMillis);\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n var ErrorCorrectionLevelValues;\n (function (ErrorCorrectionLevelValues) {\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"L\"] = 0] = \"L\";\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"M\"] = 1] = \"M\";\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"Q\"] = 2] = \"Q\";\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"H\"] = 3] = \"H\";\n })(ErrorCorrectionLevelValues || (ErrorCorrectionLevelValues = {}));\n /**\n *See ISO 18004:2006, 6.5.1. This enum encapsulates the four error correction levels\n * defined by the QR code standard.
\n *\n * @author Sean Owen\n */\n class ErrorCorrectionLevel {\n constructor(value, stringValue, bits /*int*/) {\n this.value = value;\n this.stringValue = stringValue;\n this.bits = bits;\n ErrorCorrectionLevel.FOR_BITS.set(bits, this);\n ErrorCorrectionLevel.FOR_VALUE.set(value, this);\n }\n getValue() {\n return this.value;\n }\n getBits() {\n return this.bits;\n }\n static fromString(s) {\n switch (s) {\n case 'L': return ErrorCorrectionLevel.L;\n case 'M': return ErrorCorrectionLevel.M;\n case 'Q': return ErrorCorrectionLevel.Q;\n case 'H': return ErrorCorrectionLevel.H;\n default: throw new ArgumentException(s + 'not available');\n }\n }\n toString() {\n return this.stringValue;\n }\n equals(o) {\n if (!(o instanceof ErrorCorrectionLevel)) {\n return false;\n }\n const other = o;\n return this.value === other.value;\n }\n /**\n * @param bits int containing the two bits encoding a QR Code's error correction level\n * @return ErrorCorrectionLevel representing the encoded error correction level\n */\n static forBits(bits /*int*/) {\n if (bits < 0 || bits >= ErrorCorrectionLevel.FOR_BITS.size) {\n throw new IllegalArgumentException();\n }\n return ErrorCorrectionLevel.FOR_BITS.get(bits);\n }\n }\n ErrorCorrectionLevel.FOR_BITS = new Map();\n ErrorCorrectionLevel.FOR_VALUE = new Map();\n /** L = ~7% correction */\n ErrorCorrectionLevel.L = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.L, 'L', 0x01);\n /** M = ~15% correction */\n ErrorCorrectionLevel.M = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.M, 'M', 0x00);\n /** Q = ~25% correction */\n ErrorCorrectionLevel.Q = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.Q, 'Q', 0x03);\n /** H = ~30% correction */\n ErrorCorrectionLevel.H = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.H, 'H', 0x02);\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *Encapsulates a QR Code's format information, including the data mask used and\n * error correction level.
\n *\n * @author Sean Owen\n * @see DataMask\n * @see ErrorCorrectionLevel\n */\n class FormatInformation {\n constructor(formatInfo /*int*/) {\n // Bits 3,4\n this.errorCorrectionLevel = ErrorCorrectionLevel.forBits((formatInfo >> 3) & 0x03);\n // Bottom 3 bits\n this.dataMask = /*(byte) */ (formatInfo & 0x07);\n }\n static numBitsDiffering(a /*int*/, b /*int*/) {\n return Integer.bitCount(a ^ b);\n }\n /**\n * @param maskedFormatInfo1 format info indicator, with mask still applied\n * @param maskedFormatInfo2 second copy of same info; both are checked at the same time\n * to establish best match\n * @return information about the format it specifies, or {@code null}\n * if doesn't seem to match any known pattern\n */\n static decodeFormatInformation(maskedFormatInfo1 /*int*/, maskedFormatInfo2 /*int*/) {\n const formatInfo = FormatInformation.doDecodeFormatInformation(maskedFormatInfo1, maskedFormatInfo2);\n if (formatInfo !== null) {\n return formatInfo;\n }\n // Should return null, but, some QR codes apparently\n // do not mask this info. Try again by actually masking the pattern\n // first\n return FormatInformation.doDecodeFormatInformation(maskedFormatInfo1 ^ FormatInformation.FORMAT_INFO_MASK_QR, maskedFormatInfo2 ^ FormatInformation.FORMAT_INFO_MASK_QR);\n }\n static doDecodeFormatInformation(maskedFormatInfo1 /*int*/, maskedFormatInfo2 /*int*/) {\n // Find the int in FORMAT_INFO_DECODE_LOOKUP with fewest bits differing\n let bestDifference = Number.MAX_SAFE_INTEGER;\n let bestFormatInfo = 0;\n for (const decodeInfo of FormatInformation.FORMAT_INFO_DECODE_LOOKUP) {\n const targetInfo = decodeInfo[0];\n if (targetInfo === maskedFormatInfo1 || targetInfo === maskedFormatInfo2) {\n // Found an exact match\n return new FormatInformation(decodeInfo[1]);\n }\n let bitsDifference = FormatInformation.numBitsDiffering(maskedFormatInfo1, targetInfo);\n if (bitsDifference < bestDifference) {\n bestFormatInfo = decodeInfo[1];\n bestDifference = bitsDifference;\n }\n if (maskedFormatInfo1 !== maskedFormatInfo2) {\n // also try the other option\n bitsDifference = FormatInformation.numBitsDiffering(maskedFormatInfo2, targetInfo);\n if (bitsDifference < bestDifference) {\n bestFormatInfo = decodeInfo[1];\n bestDifference = bitsDifference;\n }\n }\n }\n // Hamming distance of the 32 masked codes is 7, by construction, so <= 3 bits\n // differing means we found a match\n if (bestDifference <= 3) {\n return new FormatInformation(bestFormatInfo);\n }\n return null;\n }\n getErrorCorrectionLevel() {\n return this.errorCorrectionLevel;\n }\n getDataMask() {\n return this.dataMask;\n }\n /*@Override*/\n hashCode() {\n return (this.errorCorrectionLevel.getBits() << 3) | this.dataMask;\n }\n /*@Override*/\n equals(o) {\n if (!(o instanceof FormatInformation)) {\n return false;\n }\n const other = o;\n return this.errorCorrectionLevel === other.errorCorrectionLevel &&\n this.dataMask === other.dataMask;\n }\n }\n FormatInformation.FORMAT_INFO_MASK_QR = 0x5412;\n /**\n * See ISO 18004:2006, Annex C, Table C.1\n */\n FormatInformation.FORMAT_INFO_DECODE_LOOKUP = [\n Int32Array.from([0x5412, 0x00]),\n Int32Array.from([0x5125, 0x01]),\n Int32Array.from([0x5E7C, 0x02]),\n Int32Array.from([0x5B4B, 0x03]),\n Int32Array.from([0x45F9, 0x04]),\n Int32Array.from([0x40CE, 0x05]),\n Int32Array.from([0x4F97, 0x06]),\n Int32Array.from([0x4AA0, 0x07]),\n Int32Array.from([0x77C4, 0x08]),\n Int32Array.from([0x72F3, 0x09]),\n Int32Array.from([0x7DAA, 0x0A]),\n Int32Array.from([0x789D, 0x0B]),\n Int32Array.from([0x662F, 0x0C]),\n Int32Array.from([0x6318, 0x0D]),\n Int32Array.from([0x6C41, 0x0E]),\n Int32Array.from([0x6976, 0x0F]),\n Int32Array.from([0x1689, 0x10]),\n Int32Array.from([0x13BE, 0x11]),\n Int32Array.from([0x1CE7, 0x12]),\n Int32Array.from([0x19D0, 0x13]),\n Int32Array.from([0x0762, 0x14]),\n Int32Array.from([0x0255, 0x15]),\n Int32Array.from([0x0D0C, 0x16]),\n Int32Array.from([0x083B, 0x17]),\n Int32Array.from([0x355F, 0x18]),\n Int32Array.from([0x3068, 0x19]),\n Int32Array.from([0x3F31, 0x1A]),\n Int32Array.from([0x3A06, 0x1B]),\n Int32Array.from([0x24B4, 0x1C]),\n Int32Array.from([0x2183, 0x1D]),\n Int32Array.from([0x2EDA, 0x1E]),\n Int32Array.from([0x2BED, 0x1F]),\n ];\n\n /**\n *Encapsulates a set of error-correction blocks in one symbol version. Most versions will\n * use blocks of differing sizes within one version, so, this encapsulates the parameters for\n * each set of blocks. It also holds the number of error-correction codewords per block since it\n * will be the same across all blocks within one version.
\n */\n class ECBlocks$1 {\n constructor(ecCodewordsPerBlock /*int*/, ...ecBlocks) {\n this.ecCodewordsPerBlock = ecCodewordsPerBlock;\n this.ecBlocks = ecBlocks;\n }\n getECCodewordsPerBlock() {\n return this.ecCodewordsPerBlock;\n }\n getNumBlocks() {\n let total = 0;\n const ecBlocks = this.ecBlocks;\n for (const ecBlock of ecBlocks) {\n total += ecBlock.getCount();\n }\n return total;\n }\n getTotalECCodewords() {\n return this.ecCodewordsPerBlock * this.getNumBlocks();\n }\n getECBlocks() {\n return this.ecBlocks;\n }\n }\n\n /**\n *Encapsulates the parameters for one error-correction block in one symbol version.\n * This includes the number of data codewords, and the number of times a block with these\n * parameters is used consecutively in the QR code version's format.
\n */\n class ECB$1 {\n constructor(count /*int*/, dataCodewords /*int*/) {\n this.count = count;\n this.dataCodewords = dataCodewords;\n }\n getCount() {\n return this.count;\n }\n getDataCodewords() {\n return this.dataCodewords;\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * See ISO 18004:2006 Annex D\n *\n * @author Sean Owen\n */\n class Version$1 {\n constructor(versionNumber /*int*/, alignmentPatternCenters, ...ecBlocks) {\n this.versionNumber = versionNumber;\n this.alignmentPatternCenters = alignmentPatternCenters;\n this.ecBlocks = ecBlocks;\n let total = 0;\n const ecCodewords = ecBlocks[0].getECCodewordsPerBlock();\n const ecbArray = ecBlocks[0].getECBlocks();\n for (const ecBlock of ecbArray) {\n total += ecBlock.getCount() * (ecBlock.getDataCodewords() + ecCodewords);\n }\n this.totalCodewords = total;\n }\n getVersionNumber() {\n return this.versionNumber;\n }\n getAlignmentPatternCenters() {\n return this.alignmentPatternCenters;\n }\n getTotalCodewords() {\n return this.totalCodewords;\n }\n getDimensionForVersion() {\n return 17 + 4 * this.versionNumber;\n }\n getECBlocksForLevel(ecLevel) {\n return this.ecBlocks[ecLevel.getValue()];\n // TYPESCRIPTPORT: original was using ordinal, and using the order of levels as defined in ErrorCorrectionLevel enum (LMQH)\n // I will use the direct value from ErrorCorrectionLevelValues enum which in typescript goes to a number\n }\n /**\n *Deduces version information purely from QR Code dimensions.
\n *\n * @param dimension dimension in modules\n * @return Version for a QR Code of that dimension\n * @throws FormatException if dimension is not 1 mod 4\n */\n static getProvisionalVersionForDimension(dimension /*int*/) {\n if (dimension % 4 !== 1) {\n throw new FormatException();\n }\n try {\n return this.getVersionForNumber((dimension - 17) / 4);\n }\n catch (ignored /*: IllegalArgumentException*/) {\n throw new FormatException();\n }\n }\n static getVersionForNumber(versionNumber /*int*/) {\n if (versionNumber < 1 || versionNumber > 40) {\n throw new IllegalArgumentException();\n }\n return Version$1.VERSIONS[versionNumber - 1];\n }\n static decodeVersionInformation(versionBits /*int*/) {\n let bestDifference = Number.MAX_SAFE_INTEGER;\n let bestVersion = 0;\n for (let i = 0; i < Version$1.VERSION_DECODE_INFO.length; i++) {\n const targetVersion = Version$1.VERSION_DECODE_INFO[i];\n // Do the version info bits match exactly? done.\n if (targetVersion === versionBits) {\n return Version$1.getVersionForNumber(i + 7);\n }\n // Otherwise see if this is the closest to a real version info bit string\n // we have seen so far\n const bitsDifference = FormatInformation.numBitsDiffering(versionBits, targetVersion);\n if (bitsDifference < bestDifference) {\n bestVersion = i + 7;\n bestDifference = bitsDifference;\n }\n }\n // We can tolerate up to 3 bits of error since no two version info codewords will\n // differ in less than 8 bits.\n if (bestDifference <= 3) {\n return Version$1.getVersionForNumber(bestVersion);\n }\n // If we didn't find a close enough match, fail\n return null;\n }\n /**\n * See ISO 18004:2006 Annex E\n */\n buildFunctionPattern() {\n const dimension = this.getDimensionForVersion();\n const bitMatrix = new BitMatrix(dimension);\n // Top left finder pattern + separator + format\n bitMatrix.setRegion(0, 0, 9, 9);\n // Top right finder pattern + separator + format\n bitMatrix.setRegion(dimension - 8, 0, 8, 9);\n // Bottom left finder pattern + separator + format\n bitMatrix.setRegion(0, dimension - 8, 9, 8);\n // Alignment patterns\n const max = this.alignmentPatternCenters.length;\n for (let x = 0; x < max; x++) {\n const i = this.alignmentPatternCenters[x] - 2;\n for (let y = 0; y < max; y++) {\n if ((x === 0 && (y === 0 || y === max - 1)) || (x === max - 1 && y === 0)) {\n // No alignment patterns near the three finder patterns\n continue;\n }\n bitMatrix.setRegion(this.alignmentPatternCenters[y] - 2, i, 5, 5);\n }\n }\n // Vertical timing pattern\n bitMatrix.setRegion(6, 9, 1, dimension - 17);\n // Horizontal timing pattern\n bitMatrix.setRegion(9, 6, dimension - 17, 1);\n if (this.versionNumber > 6) {\n // Version info, top right\n bitMatrix.setRegion(dimension - 11, 0, 3, 6);\n // Version info, bottom left\n bitMatrix.setRegion(0, dimension - 11, 6, 3);\n }\n return bitMatrix;\n }\n /*@Override*/\n toString() {\n return '' + this.versionNumber;\n }\n }\n /**\n * See ISO 18004:2006 Annex D.\n * Element i represents the raw version bits that specify version i + 7\n */\n Version$1.VERSION_DECODE_INFO = Int32Array.from([\n 0x07C94, 0x085BC, 0x09A99, 0x0A4D3, 0x0BBF6,\n 0x0C762, 0x0D847, 0x0E60D, 0x0F928, 0x10B78,\n 0x1145D, 0x12A17, 0x13532, 0x149A6, 0x15683,\n 0x168C9, 0x177EC, 0x18EC4, 0x191E1, 0x1AFAB,\n 0x1B08E, 0x1CC1A, 0x1D33F, 0x1ED75, 0x1F250,\n 0x209D5, 0x216F0, 0x228BA, 0x2379F, 0x24B0B,\n 0x2542E, 0x26A64, 0x27541, 0x28C69\n ]);\n /**\n * See ISO 18004:2006 6.5.1 Table 9\n */\n Version$1.VERSIONS = [\n new Version$1(1, new Int32Array(0), new ECBlocks$1(7, new ECB$1(1, 19)), new ECBlocks$1(10, new ECB$1(1, 16)), new ECBlocks$1(13, new ECB$1(1, 13)), new ECBlocks$1(17, new ECB$1(1, 9))),\n new Version$1(2, Int32Array.from([6, 18]), new ECBlocks$1(10, new ECB$1(1, 34)), new ECBlocks$1(16, new ECB$1(1, 28)), new ECBlocks$1(22, new ECB$1(1, 22)), new ECBlocks$1(28, new ECB$1(1, 16))),\n new Version$1(3, Int32Array.from([6, 22]), new ECBlocks$1(15, new ECB$1(1, 55)), new ECBlocks$1(26, new ECB$1(1, 44)), new ECBlocks$1(18, new ECB$1(2, 17)), new ECBlocks$1(22, new ECB$1(2, 13))),\n new Version$1(4, Int32Array.from([6, 26]), new ECBlocks$1(20, new ECB$1(1, 80)), new ECBlocks$1(18, new ECB$1(2, 32)), new ECBlocks$1(26, new ECB$1(2, 24)), new ECBlocks$1(16, new ECB$1(4, 9))),\n new Version$1(5, Int32Array.from([6, 30]), new ECBlocks$1(26, new ECB$1(1, 108)), new ECBlocks$1(24, new ECB$1(2, 43)), new ECBlocks$1(18, new ECB$1(2, 15), new ECB$1(2, 16)), new ECBlocks$1(22, new ECB$1(2, 11), new ECB$1(2, 12))),\n new Version$1(6, Int32Array.from([6, 34]), new ECBlocks$1(18, new ECB$1(2, 68)), new ECBlocks$1(16, new ECB$1(4, 27)), new ECBlocks$1(24, new ECB$1(4, 19)), new ECBlocks$1(28, new ECB$1(4, 15))),\n new Version$1(7, Int32Array.from([6, 22, 38]), new ECBlocks$1(20, new ECB$1(2, 78)), new ECBlocks$1(18, new ECB$1(4, 31)), new ECBlocks$1(18, new ECB$1(2, 14), new ECB$1(4, 15)), new ECBlocks$1(26, new ECB$1(4, 13), new ECB$1(1, 14))),\n new Version$1(8, Int32Array.from([6, 24, 42]), new ECBlocks$1(24, new ECB$1(2, 97)), new ECBlocks$1(22, new ECB$1(2, 38), new ECB$1(2, 39)), new ECBlocks$1(22, new ECB$1(4, 18), new ECB$1(2, 19)), new ECBlocks$1(26, new ECB$1(4, 14), new ECB$1(2, 15))),\n new Version$1(9, Int32Array.from([6, 26, 46]), new ECBlocks$1(30, new ECB$1(2, 116)), new ECBlocks$1(22, new ECB$1(3, 36), new ECB$1(2, 37)), new ECBlocks$1(20, new ECB$1(4, 16), new ECB$1(4, 17)), new ECBlocks$1(24, new ECB$1(4, 12), new ECB$1(4, 13))),\n new Version$1(10, Int32Array.from([6, 28, 50]), new ECBlocks$1(18, new ECB$1(2, 68), new ECB$1(2, 69)), new ECBlocks$1(26, new ECB$1(4, 43), new ECB$1(1, 44)), new ECBlocks$1(24, new ECB$1(6, 19), new ECB$1(2, 20)), new ECBlocks$1(28, new ECB$1(6, 15), new ECB$1(2, 16))),\n new Version$1(11, Int32Array.from([6, 30, 54]), new ECBlocks$1(20, new ECB$1(4, 81)), new ECBlocks$1(30, new ECB$1(1, 50), new ECB$1(4, 51)), new ECBlocks$1(28, new ECB$1(4, 22), new ECB$1(4, 23)), new ECBlocks$1(24, new ECB$1(3, 12), new ECB$1(8, 13))),\n new Version$1(12, Int32Array.from([6, 32, 58]), new ECBlocks$1(24, new ECB$1(2, 92), new ECB$1(2, 93)), new ECBlocks$1(22, new ECB$1(6, 36), new ECB$1(2, 37)), new ECBlocks$1(26, new ECB$1(4, 20), new ECB$1(6, 21)), new ECBlocks$1(28, new ECB$1(7, 14), new ECB$1(4, 15))),\n new Version$1(13, Int32Array.from([6, 34, 62]), new ECBlocks$1(26, new ECB$1(4, 107)), new ECBlocks$1(22, new ECB$1(8, 37), new ECB$1(1, 38)), new ECBlocks$1(24, new ECB$1(8, 20), new ECB$1(4, 21)), new ECBlocks$1(22, new ECB$1(12, 11), new ECB$1(4, 12))),\n new Version$1(14, Int32Array.from([6, 26, 46, 66]), new ECBlocks$1(30, new ECB$1(3, 115), new ECB$1(1, 116)), new ECBlocks$1(24, new ECB$1(4, 40), new ECB$1(5, 41)), new ECBlocks$1(20, new ECB$1(11, 16), new ECB$1(5, 17)), new ECBlocks$1(24, new ECB$1(11, 12), new ECB$1(5, 13))),\n new Version$1(15, Int32Array.from([6, 26, 48, 70]), new ECBlocks$1(22, new ECB$1(5, 87), new ECB$1(1, 88)), new ECBlocks$1(24, new ECB$1(5, 41), new ECB$1(5, 42)), new ECBlocks$1(30, new ECB$1(5, 24), new ECB$1(7, 25)), new ECBlocks$1(24, new ECB$1(11, 12), new ECB$1(7, 13))),\n new Version$1(16, Int32Array.from([6, 26, 50, 74]), new ECBlocks$1(24, new ECB$1(5, 98), new ECB$1(1, 99)), new ECBlocks$1(28, new ECB$1(7, 45), new ECB$1(3, 46)), new ECBlocks$1(24, new ECB$1(15, 19), new ECB$1(2, 20)), new ECBlocks$1(30, new ECB$1(3, 15), new ECB$1(13, 16))),\n new Version$1(17, Int32Array.from([6, 30, 54, 78]), new ECBlocks$1(28, new ECB$1(1, 107), new ECB$1(5, 108)), new ECBlocks$1(28, new ECB$1(10, 46), new ECB$1(1, 47)), new ECBlocks$1(28, new ECB$1(1, 22), new ECB$1(15, 23)), new ECBlocks$1(28, new ECB$1(2, 14), new ECB$1(17, 15))),\n new Version$1(18, Int32Array.from([6, 30, 56, 82]), new ECBlocks$1(30, new ECB$1(5, 120), new ECB$1(1, 121)), new ECBlocks$1(26, new ECB$1(9, 43), new ECB$1(4, 44)), new ECBlocks$1(28, new ECB$1(17, 22), new ECB$1(1, 23)), new ECBlocks$1(28, new ECB$1(2, 14), new ECB$1(19, 15))),\n new Version$1(19, Int32Array.from([6, 30, 58, 86]), new ECBlocks$1(28, new ECB$1(3, 113), new ECB$1(4, 114)), new ECBlocks$1(26, new ECB$1(3, 44), new ECB$1(11, 45)), new ECBlocks$1(26, new ECB$1(17, 21), new ECB$1(4, 22)), new ECBlocks$1(26, new ECB$1(9, 13), new ECB$1(16, 14))),\n new Version$1(20, Int32Array.from([6, 34, 62, 90]), new ECBlocks$1(28, new ECB$1(3, 107), new ECB$1(5, 108)), new ECBlocks$1(26, new ECB$1(3, 41), new ECB$1(13, 42)), new ECBlocks$1(30, new ECB$1(15, 24), new ECB$1(5, 25)), new ECBlocks$1(28, new ECB$1(15, 15), new ECB$1(10, 16))),\n new Version$1(21, Int32Array.from([6, 28, 50, 72, 94]), new ECBlocks$1(28, new ECB$1(4, 116), new ECB$1(4, 117)), new ECBlocks$1(26, new ECB$1(17, 42)), new ECBlocks$1(28, new ECB$1(17, 22), new ECB$1(6, 23)), new ECBlocks$1(30, new ECB$1(19, 16), new ECB$1(6, 17))),\n new Version$1(22, Int32Array.from([6, 26, 50, 74, 98]), new ECBlocks$1(28, new ECB$1(2, 111), new ECB$1(7, 112)), new ECBlocks$1(28, new ECB$1(17, 46)), new ECBlocks$1(30, new ECB$1(7, 24), new ECB$1(16, 25)), new ECBlocks$1(24, new ECB$1(34, 13))),\n new Version$1(23, Int32Array.from([6, 30, 54, 78, 102]), new ECBlocks$1(30, new ECB$1(4, 121), new ECB$1(5, 122)), new ECBlocks$1(28, new ECB$1(4, 47), new ECB$1(14, 48)), new ECBlocks$1(30, new ECB$1(11, 24), new ECB$1(14, 25)), new ECBlocks$1(30, new ECB$1(16, 15), new ECB$1(14, 16))),\n new Version$1(24, Int32Array.from([6, 28, 54, 80, 106]), new ECBlocks$1(30, new ECB$1(6, 117), new ECB$1(4, 118)), new ECBlocks$1(28, new ECB$1(6, 45), new ECB$1(14, 46)), new ECBlocks$1(30, new ECB$1(11, 24), new ECB$1(16, 25)), new ECBlocks$1(30, new ECB$1(30, 16), new ECB$1(2, 17))),\n new Version$1(25, Int32Array.from([6, 32, 58, 84, 110]), new ECBlocks$1(26, new ECB$1(8, 106), new ECB$1(4, 107)), new ECBlocks$1(28, new ECB$1(8, 47), new ECB$1(13, 48)), new ECBlocks$1(30, new ECB$1(7, 24), new ECB$1(22, 25)), new ECBlocks$1(30, new ECB$1(22, 15), new ECB$1(13, 16))),\n new Version$1(26, Int32Array.from([6, 30, 58, 86, 114]), new ECBlocks$1(28, new ECB$1(10, 114), new ECB$1(2, 115)), new ECBlocks$1(28, new ECB$1(19, 46), new ECB$1(4, 47)), new ECBlocks$1(28, new ECB$1(28, 22), new ECB$1(6, 23)), new ECBlocks$1(30, new ECB$1(33, 16), new ECB$1(4, 17))),\n new Version$1(27, Int32Array.from([6, 34, 62, 90, 118]), new ECBlocks$1(30, new ECB$1(8, 122), new ECB$1(4, 123)), new ECBlocks$1(28, new ECB$1(22, 45), new ECB$1(3, 46)), new ECBlocks$1(30, new ECB$1(8, 23), new ECB$1(26, 24)), new ECBlocks$1(30, new ECB$1(12, 15), new ECB$1(28, 16))),\n new Version$1(28, Int32Array.from([6, 26, 50, 74, 98, 122]), new ECBlocks$1(30, new ECB$1(3, 117), new ECB$1(10, 118)), new ECBlocks$1(28, new ECB$1(3, 45), new ECB$1(23, 46)), new ECBlocks$1(30, new ECB$1(4, 24), new ECB$1(31, 25)), new ECBlocks$1(30, new ECB$1(11, 15), new ECB$1(31, 16))),\n new Version$1(29, Int32Array.from([6, 30, 54, 78, 102, 126]), new ECBlocks$1(30, new ECB$1(7, 116), new ECB$1(7, 117)), new ECBlocks$1(28, new ECB$1(21, 45), new ECB$1(7, 46)), new ECBlocks$1(30, new ECB$1(1, 23), new ECB$1(37, 24)), new ECBlocks$1(30, new ECB$1(19, 15), new ECB$1(26, 16))),\n new Version$1(30, Int32Array.from([6, 26, 52, 78, 104, 130]), new ECBlocks$1(30, new ECB$1(5, 115), new ECB$1(10, 116)), new ECBlocks$1(28, new ECB$1(19, 47), new ECB$1(10, 48)), new ECBlocks$1(30, new ECB$1(15, 24), new ECB$1(25, 25)), new ECBlocks$1(30, new ECB$1(23, 15), new ECB$1(25, 16))),\n new Version$1(31, Int32Array.from([6, 30, 56, 82, 108, 134]), new ECBlocks$1(30, new ECB$1(13, 115), new ECB$1(3, 116)), new ECBlocks$1(28, new ECB$1(2, 46), new ECB$1(29, 47)), new ECBlocks$1(30, new ECB$1(42, 24), new ECB$1(1, 25)), new ECBlocks$1(30, new ECB$1(23, 15), new ECB$1(28, 16))),\n new Version$1(32, Int32Array.from([6, 34, 60, 86, 112, 138]), new ECBlocks$1(30, new ECB$1(17, 115)), new ECBlocks$1(28, new ECB$1(10, 46), new ECB$1(23, 47)), new ECBlocks$1(30, new ECB$1(10, 24), new ECB$1(35, 25)), new ECBlocks$1(30, new ECB$1(19, 15), new ECB$1(35, 16))),\n new Version$1(33, Int32Array.from([6, 30, 58, 86, 114, 142]), new ECBlocks$1(30, new ECB$1(17, 115), new ECB$1(1, 116)), new ECBlocks$1(28, new ECB$1(14, 46), new ECB$1(21, 47)), new ECBlocks$1(30, new ECB$1(29, 24), new ECB$1(19, 25)), new ECBlocks$1(30, new ECB$1(11, 15), new ECB$1(46, 16))),\n new Version$1(34, Int32Array.from([6, 34, 62, 90, 118, 146]), new ECBlocks$1(30, new ECB$1(13, 115), new ECB$1(6, 116)), new ECBlocks$1(28, new ECB$1(14, 46), new ECB$1(23, 47)), new ECBlocks$1(30, new ECB$1(44, 24), new ECB$1(7, 25)), new ECBlocks$1(30, new ECB$1(59, 16), new ECB$1(1, 17))),\n new Version$1(35, Int32Array.from([6, 30, 54, 78, 102, 126, 150]), new ECBlocks$1(30, new ECB$1(12, 121), new ECB$1(7, 122)), new ECBlocks$1(28, new ECB$1(12, 47), new ECB$1(26, 48)), new ECBlocks$1(30, new ECB$1(39, 24), new ECB$1(14, 25)), new ECBlocks$1(30, new ECB$1(22, 15), new ECB$1(41, 16))),\n new Version$1(36, Int32Array.from([6, 24, 50, 76, 102, 128, 154]), new ECBlocks$1(30, new ECB$1(6, 121), new ECB$1(14, 122)), new ECBlocks$1(28, new ECB$1(6, 47), new ECB$1(34, 48)), new ECBlocks$1(30, new ECB$1(46, 24), new ECB$1(10, 25)), new ECBlocks$1(30, new ECB$1(2, 15), new ECB$1(64, 16))),\n new Version$1(37, Int32Array.from([6, 28, 54, 80, 106, 132, 158]), new ECBlocks$1(30, new ECB$1(17, 122), new ECB$1(4, 123)), new ECBlocks$1(28, new ECB$1(29, 46), new ECB$1(14, 47)), new ECBlocks$1(30, new ECB$1(49, 24), new ECB$1(10, 25)), new ECBlocks$1(30, new ECB$1(24, 15), new ECB$1(46, 16))),\n new Version$1(38, Int32Array.from([6, 32, 58, 84, 110, 136, 162]), new ECBlocks$1(30, new ECB$1(4, 122), new ECB$1(18, 123)), new ECBlocks$1(28, new ECB$1(13, 46), new ECB$1(32, 47)), new ECBlocks$1(30, new ECB$1(48, 24), new ECB$1(14, 25)), new ECBlocks$1(30, new ECB$1(42, 15), new ECB$1(32, 16))),\n new Version$1(39, Int32Array.from([6, 26, 54, 82, 110, 138, 166]), new ECBlocks$1(30, new ECB$1(20, 117), new ECB$1(4, 118)), new ECBlocks$1(28, new ECB$1(40, 47), new ECB$1(7, 48)), new ECBlocks$1(30, new ECB$1(43, 24), new ECB$1(22, 25)), new ECBlocks$1(30, new ECB$1(10, 15), new ECB$1(67, 16))),\n new Version$1(40, Int32Array.from([6, 30, 58, 86, 114, 142, 170]), new ECBlocks$1(30, new ECB$1(19, 118), new ECB$1(6, 119)), new ECBlocks$1(28, new ECB$1(18, 47), new ECB$1(31, 48)), new ECBlocks$1(30, new ECB$1(34, 24), new ECB$1(34, 25)), new ECBlocks$1(30, new ECB$1(20, 15), new ECB$1(61, 16)))\n ];\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n var DataMaskValues;\n (function (DataMaskValues) {\n DataMaskValues[DataMaskValues[\"DATA_MASK_000\"] = 0] = \"DATA_MASK_000\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_001\"] = 1] = \"DATA_MASK_001\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_010\"] = 2] = \"DATA_MASK_010\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_011\"] = 3] = \"DATA_MASK_011\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_100\"] = 4] = \"DATA_MASK_100\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_101\"] = 5] = \"DATA_MASK_101\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_110\"] = 6] = \"DATA_MASK_110\";\n DataMaskValues[DataMaskValues[\"DATA_MASK_111\"] = 7] = \"DATA_MASK_111\";\n })(DataMaskValues || (DataMaskValues = {}));\n /**\n *Encapsulates data masks for the data bits in a QR code, per ISO 18004:2006 6.8. Implementations\n * of this class can un-mask a raw BitMatrix. For simplicity, they will unmask the entire BitMatrix,\n * including areas used for finder patterns, timing patterns, etc. These areas should be unused\n * after the point they are unmasked anyway.
\n *\n *Note that the diagram in section 6.8.1 is misleading since it indicates that i is column position\n * and j is row position. In fact, as the text says, i is row position and j is column position.
\n *\n * @author Sean Owen\n */\n class DataMask {\n // See ISO 18004:2006 6.8.1\n constructor(value, isMasked) {\n this.value = value;\n this.isMasked = isMasked;\n }\n // End of enum constants.\n /**\n *Implementations of this method reverse the data masking process applied to a QR Code and\n * make its bits ready to read.
\n *\n * @param bits representation of QR Code bits\n * @param dimension dimension of QR Code, represented by bits, being unmasked\n */\n unmaskBitMatrix(bits, dimension /*int*/) {\n for (let i = 0; i < dimension; i++) {\n for (let j = 0; j < dimension; j++) {\n if (this.isMasked(i, j)) {\n bits.flip(j, i);\n }\n }\n }\n }\n }\n DataMask.values = new Map([\n /**\n * 000: mask bits for which (x + y) mod 2 == 0\n */\n [DataMaskValues.DATA_MASK_000, new DataMask(DataMaskValues.DATA_MASK_000, (i /*int*/, j /*int*/) => { return ((i + j) & 0x01) === 0; })],\n /**\n * 001: mask bits for which x mod 2 == 0\n */\n [DataMaskValues.DATA_MASK_001, new DataMask(DataMaskValues.DATA_MASK_001, (i /*int*/, j /*int*/) => { return (i & 0x01) === 0; })],\n /**\n * 010: mask bits for which y mod 3 == 0\n */\n [DataMaskValues.DATA_MASK_010, new DataMask(DataMaskValues.DATA_MASK_010, (i /*int*/, j /*int*/) => { return j % 3 === 0; })],\n /**\n * 011: mask bits for which (x + y) mod 3 == 0\n */\n [DataMaskValues.DATA_MASK_011, new DataMask(DataMaskValues.DATA_MASK_011, (i /*int*/, j /*int*/) => { return (i + j) % 3 === 0; })],\n /**\n * 100: mask bits for which (x/2 + y/3) mod 2 == 0\n */\n [DataMaskValues.DATA_MASK_100, new DataMask(DataMaskValues.DATA_MASK_100, (i /*int*/, j /*int*/) => { return ((Math.floor(i / 2) + Math.floor(j / 3)) & 0x01) === 0; })],\n /**\n * 101: mask bits for which xy mod 2 + xy mod 3 == 0\n * equivalently, such that xy mod 6 == 0\n */\n [DataMaskValues.DATA_MASK_101, new DataMask(DataMaskValues.DATA_MASK_101, (i /*int*/, j /*int*/) => { return (i * j) % 6 === 0; })],\n /**\n * 110: mask bits for which (xy mod 2 + xy mod 3) mod 2 == 0\n * equivalently, such that xy mod 6 < 3\n */\n [DataMaskValues.DATA_MASK_110, new DataMask(DataMaskValues.DATA_MASK_110, (i /*int*/, j /*int*/) => { return ((i * j) % 6) < 3; })],\n /**\n * 111: mask bits for which ((x+y)mod 2 + xy mod 3) mod 2 == 0\n * equivalently, such that (x + y + xy mod 3) mod 2 == 0\n */\n [DataMaskValues.DATA_MASK_111, new DataMask(DataMaskValues.DATA_MASK_111, (i /*int*/, j /*int*/) => { return ((i + j + ((i * j) % 3)) & 0x01) === 0; })],\n ]);\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * @author Sean Owen\n */\n class BitMatrixParser$1 {\n /**\n * @param bitMatrix {@link BitMatrix} to parse\n * @throws FormatException if dimension is not >= 21 and 1 mod 4\n */\n constructor(bitMatrix) {\n const dimension = bitMatrix.getHeight();\n if (dimension < 21 || (dimension & 0x03) !== 1) {\n throw new FormatException();\n }\n this.bitMatrix = bitMatrix;\n }\n /**\n *Reads format information from one of its two locations within the QR Code.
\n *\n * @return {@link FormatInformation} encapsulating the QR Code's format info\n * @throws FormatException if both format information locations cannot be parsed as\n * the valid encoding of format information\n */\n readFormatInformation() {\n if (this.parsedFormatInfo !== null && this.parsedFormatInfo !== undefined) {\n return this.parsedFormatInfo;\n }\n // Read top-left format info bits\n let formatInfoBits1 = 0;\n for (let i = 0; i < 6; i++) {\n formatInfoBits1 = this.copyBit(i, 8, formatInfoBits1);\n }\n // .. and skip a bit in the timing pattern ...\n formatInfoBits1 = this.copyBit(7, 8, formatInfoBits1);\n formatInfoBits1 = this.copyBit(8, 8, formatInfoBits1);\n formatInfoBits1 = this.copyBit(8, 7, formatInfoBits1);\n // .. and skip a bit in the timing pattern ...\n for (let j = 5; j >= 0; j--) {\n formatInfoBits1 = this.copyBit(8, j, formatInfoBits1);\n }\n // Read the top-right/bottom-left pattern too\n const dimension = this.bitMatrix.getHeight();\n let formatInfoBits2 = 0;\n const jMin = dimension - 7;\n for (let j = dimension - 1; j >= jMin; j--) {\n formatInfoBits2 = this.copyBit(8, j, formatInfoBits2);\n }\n for (let i = dimension - 8; i < dimension; i++) {\n formatInfoBits2 = this.copyBit(i, 8, formatInfoBits2);\n }\n this.parsedFormatInfo = FormatInformation.decodeFormatInformation(formatInfoBits1, formatInfoBits2);\n if (this.parsedFormatInfo !== null) {\n return this.parsedFormatInfo;\n }\n throw new FormatException();\n }\n /**\n *Reads version information from one of its two locations within the QR Code.
\n *\n * @return {@link Version} encapsulating the QR Code's version\n * @throws FormatException if both version information locations cannot be parsed as\n * the valid encoding of version information\n */\n readVersion() {\n if (this.parsedVersion !== null && this.parsedVersion !== undefined) {\n return this.parsedVersion;\n }\n const dimension = this.bitMatrix.getHeight();\n const provisionalVersion = Math.floor((dimension - 17) / 4);\n if (provisionalVersion <= 6) {\n return Version$1.getVersionForNumber(provisionalVersion);\n }\n // Read top-right version info: 3 wide by 6 tall\n let versionBits = 0;\n const ijMin = dimension - 11;\n for (let j = 5; j >= 0; j--) {\n for (let i = dimension - 9; i >= ijMin; i--) {\n versionBits = this.copyBit(i, j, versionBits);\n }\n }\n let theParsedVersion = Version$1.decodeVersionInformation(versionBits);\n if (theParsedVersion !== null && theParsedVersion.getDimensionForVersion() === dimension) {\n this.parsedVersion = theParsedVersion;\n return theParsedVersion;\n }\n // Hmm, failed. Try bottom left: 6 wide by 3 tall\n versionBits = 0;\n for (let i = 5; i >= 0; i--) {\n for (let j = dimension - 9; j >= ijMin; j--) {\n versionBits = this.copyBit(i, j, versionBits);\n }\n }\n theParsedVersion = Version$1.decodeVersionInformation(versionBits);\n if (theParsedVersion !== null && theParsedVersion.getDimensionForVersion() === dimension) {\n this.parsedVersion = theParsedVersion;\n return theParsedVersion;\n }\n throw new FormatException();\n }\n copyBit(i /*int*/, j /*int*/, versionBits /*int*/) {\n const bit = this.isMirror ? this.bitMatrix.get(j, i) : this.bitMatrix.get(i, j);\n return bit ? (versionBits << 1) | 0x1 : versionBits << 1;\n }\n /**\n *Reads the bits in the {@link BitMatrix} representing the finder pattern in the\n * correct order in order to reconstruct the codewords bytes contained within the\n * QR Code.
\n *\n * @return bytes encoded within the QR Code\n * @throws FormatException if the exact number of bytes expected is not read\n */\n readCodewords() {\n const formatInfo = this.readFormatInformation();\n const version = this.readVersion();\n // Get the data mask for the format used in this QR Code. This will exclude\n // some bits from reading as we wind through the bit matrix.\n const dataMask = DataMask.values.get(formatInfo.getDataMask());\n const dimension = this.bitMatrix.getHeight();\n dataMask.unmaskBitMatrix(this.bitMatrix, dimension);\n const functionPattern = version.buildFunctionPattern();\n let readingUp = true;\n const result = new Uint8Array(version.getTotalCodewords());\n let resultOffset = 0;\n let currentByte = 0;\n let bitsRead = 0;\n // Read columns in pairs, from right to left\n for (let j = dimension - 1; j > 0; j -= 2) {\n if (j === 6) {\n // Skip whole column with vertical alignment pattern\n // saves time and makes the other code proceed more cleanly\n j--;\n }\n // Read alternatingly from bottom to top then top to bottom\n for (let count = 0; count < dimension; count++) {\n const i = readingUp ? dimension - 1 - count : count;\n for (let col = 0; col < 2; col++) {\n // Ignore bits covered by the function pattern\n if (!functionPattern.get(j - col, i)) {\n // Read a bit\n bitsRead++;\n currentByte <<= 1;\n if (this.bitMatrix.get(j - col, i)) {\n currentByte |= 1;\n }\n // If we've made a whole byte, save it off\n if (bitsRead === 8) {\n result[resultOffset++] = /*(byte) */ currentByte;\n bitsRead = 0;\n currentByte = 0;\n }\n }\n }\n }\n readingUp = !readingUp; // readingUp ^= true; // readingUp = !readingUp; // switch directions\n }\n if (resultOffset !== version.getTotalCodewords()) {\n throw new FormatException();\n }\n return result;\n }\n /**\n * Revert the mask removal done while reading the code words. The bit matrix should revert to its original state.\n */\n remask() {\n if (this.parsedFormatInfo === null) {\n return; // We have no format information, and have no data mask\n }\n const dataMask = DataMask.values[this.parsedFormatInfo.getDataMask()];\n const dimension = this.bitMatrix.getHeight();\n dataMask.unmaskBitMatrix(this.bitMatrix, dimension);\n }\n /**\n * Prepare the parser for a mirrored operation.\n * This flag has effect only on the {@link #readFormatInformation()} and the\n * {@link #readVersion()}. Before proceeding with {@link #readCodewords()} the\n * {@link #mirror()} method should be called.\n *\n * @param mirror Whether to read version and format information mirrored.\n */\n setMirror(isMirror) {\n this.parsedVersion = null;\n this.parsedFormatInfo = null;\n this.isMirror = isMirror;\n }\n /** Mirror the bit matrix in order to attempt a second reading. */\n mirror() {\n const bitMatrix = this.bitMatrix;\n for (let x = 0, width = bitMatrix.getWidth(); x < width; x++) {\n for (let y = x + 1, height = bitMatrix.getHeight(); y < height; y++) {\n if (bitMatrix.get(x, y) !== bitMatrix.get(y, x)) {\n bitMatrix.flip(y, x);\n bitMatrix.flip(x, y);\n }\n }\n }\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *Encapsulates a block of data within a QR Code. QR Codes may split their data into\n * multiple blocks, each of which is a unit of data and error-correction codewords. Each\n * is represented by an instance of this class.
\n *\n * @author Sean Owen\n */\n class DataBlock$1 {\n constructor(numDataCodewords /*int*/, codewords) {\n this.numDataCodewords = numDataCodewords;\n this.codewords = codewords;\n }\n /**\n *When QR Codes use multiple data blocks, they are actually interleaved.\n * That is, the first byte of data block 1 to n is written, then the second bytes, and so on. This\n * method will separate the data into original blocks.
\n *\n * @param rawCodewords bytes as read directly from the QR Code\n * @param version version of the QR Code\n * @param ecLevel error-correction level of the QR Code\n * @return DataBlocks containing original bytes, \"de-interleaved\" from representation in the\n * QR Code\n */\n static getDataBlocks(rawCodewords, version, ecLevel) {\n if (rawCodewords.length !== version.getTotalCodewords()) {\n throw new IllegalArgumentException();\n }\n // Figure out the number and size of data blocks used by this version and\n // error correction level\n const ecBlocks = version.getECBlocksForLevel(ecLevel);\n // First count the total number of data blocks\n let totalBlocks = 0;\n const ecBlockArray = ecBlocks.getECBlocks();\n for (const ecBlock of ecBlockArray) {\n totalBlocks += ecBlock.getCount();\n }\n // Now establish DataBlocks of the appropriate size and number of data codewords\n const result = new Array(totalBlocks);\n let numResultBlocks = 0;\n for (const ecBlock of ecBlockArray) {\n for (let i = 0; i < ecBlock.getCount(); i++) {\n const numDataCodewords = ecBlock.getDataCodewords();\n const numBlockCodewords = ecBlocks.getECCodewordsPerBlock() + numDataCodewords;\n result[numResultBlocks++] = new DataBlock$1(numDataCodewords, new Uint8Array(numBlockCodewords));\n }\n }\n // All blocks have the same amount of data, except that the last n\n // (where n may be 0) have 1 more byte. Figure out where these start.\n const shorterBlocksTotalCodewords = result[0].codewords.length;\n let longerBlocksStartAt = result.length - 1;\n // TYPESCRIPTPORT: check length is correct here\n while (longerBlocksStartAt >= 0) {\n const numCodewords = result[longerBlocksStartAt].codewords.length;\n if (numCodewords === shorterBlocksTotalCodewords) {\n break;\n }\n longerBlocksStartAt--;\n }\n longerBlocksStartAt++;\n const shorterBlocksNumDataCodewords = shorterBlocksTotalCodewords - ecBlocks.getECCodewordsPerBlock();\n // The last elements of result may be 1 element longer\n // first fill out as many elements as all of them have\n let rawCodewordsOffset = 0;\n for (let i = 0; i < shorterBlocksNumDataCodewords; i++) {\n for (let j = 0; j < numResultBlocks; j++) {\n result[j].codewords[i] = rawCodewords[rawCodewordsOffset++];\n }\n }\n // Fill out the last data block in the longer ones\n for (let j = longerBlocksStartAt; j < numResultBlocks; j++) {\n result[j].codewords[shorterBlocksNumDataCodewords] = rawCodewords[rawCodewordsOffset++];\n }\n // Now add in error correction blocks\n const max = result[0].codewords.length;\n for (let i = shorterBlocksNumDataCodewords; i < max; i++) {\n for (let j = 0; j < numResultBlocks; j++) {\n const iOffset = j < longerBlocksStartAt ? i : i + 1;\n result[j].codewords[iOffset] = rawCodewords[rawCodewordsOffset++];\n }\n }\n return result;\n }\n getNumDataCodewords() {\n return this.numDataCodewords;\n }\n getCodewords() {\n return this.codewords;\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n var ModeValues;\n (function (ModeValues) {\n ModeValues[ModeValues[\"TERMINATOR\"] = 0] = \"TERMINATOR\";\n ModeValues[ModeValues[\"NUMERIC\"] = 1] = \"NUMERIC\";\n ModeValues[ModeValues[\"ALPHANUMERIC\"] = 2] = \"ALPHANUMERIC\";\n ModeValues[ModeValues[\"STRUCTURED_APPEND\"] = 3] = \"STRUCTURED_APPEND\";\n ModeValues[ModeValues[\"BYTE\"] = 4] = \"BYTE\";\n ModeValues[ModeValues[\"ECI\"] = 5] = \"ECI\";\n ModeValues[ModeValues[\"KANJI\"] = 6] = \"KANJI\";\n ModeValues[ModeValues[\"FNC1_FIRST_POSITION\"] = 7] = \"FNC1_FIRST_POSITION\";\n ModeValues[ModeValues[\"FNC1_SECOND_POSITION\"] = 8] = \"FNC1_SECOND_POSITION\";\n /** See GBT 18284-2000; \"Hanzi\" is a transliteration of this mode name. */\n ModeValues[ModeValues[\"HANZI\"] = 9] = \"HANZI\";\n })(ModeValues || (ModeValues = {}));\n /**\n *See ISO 18004:2006, 6.4.1, Tables 2 and 3. This enum encapsulates the various modes in which\n * data can be encoded to bits in the QR code standard.
\n *\n * @author Sean Owen\n */\n class Mode$1 {\n constructor(value, stringValue, characterCountBitsForVersions, bits /*int*/) {\n this.value = value;\n this.stringValue = stringValue;\n this.characterCountBitsForVersions = characterCountBitsForVersions;\n this.bits = bits;\n Mode$1.FOR_BITS.set(bits, this);\n Mode$1.FOR_VALUE.set(value, this);\n }\n /**\n * @param bits four bits encoding a QR Code data mode\n * @return Mode encoded by these bits\n * @throws IllegalArgumentException if bits do not correspond to a known mode\n */\n static forBits(bits /*int*/) {\n const mode = Mode$1.FOR_BITS.get(bits);\n if (undefined === mode) {\n throw new IllegalArgumentException();\n }\n return mode;\n }\n /**\n * @param version version in question\n * @return number of bits used, in this QR Code symbol {@link Version}, to encode the\n * count of characters that will follow encoded in this Mode\n */\n getCharacterCountBits(version) {\n const versionNumber = version.getVersionNumber();\n let offset;\n if (versionNumber <= 9) {\n offset = 0;\n }\n else if (versionNumber <= 26) {\n offset = 1;\n }\n else {\n offset = 2;\n }\n return this.characterCountBitsForVersions[offset];\n }\n getValue() {\n return this.value;\n }\n getBits() {\n return this.bits;\n }\n equals(o) {\n if (!(o instanceof Mode$1)) {\n return false;\n }\n const other = o;\n return this.value === other.value;\n }\n toString() {\n return this.stringValue;\n }\n }\n Mode$1.FOR_BITS = new Map();\n Mode$1.FOR_VALUE = new Map();\n Mode$1.TERMINATOR = new Mode$1(ModeValues.TERMINATOR, 'TERMINATOR', Int32Array.from([0, 0, 0]), 0x00); // Not really a mode...\n Mode$1.NUMERIC = new Mode$1(ModeValues.NUMERIC, 'NUMERIC', Int32Array.from([10, 12, 14]), 0x01);\n Mode$1.ALPHANUMERIC = new Mode$1(ModeValues.ALPHANUMERIC, 'ALPHANUMERIC', Int32Array.from([9, 11, 13]), 0x02);\n Mode$1.STRUCTURED_APPEND = new Mode$1(ModeValues.STRUCTURED_APPEND, 'STRUCTURED_APPEND', Int32Array.from([0, 0, 0]), 0x03); // Not supported\n Mode$1.BYTE = new Mode$1(ModeValues.BYTE, 'BYTE', Int32Array.from([8, 16, 16]), 0x04);\n Mode$1.ECI = new Mode$1(ModeValues.ECI, 'ECI', Int32Array.from([0, 0, 0]), 0x07); // character counts don't apply\n Mode$1.KANJI = new Mode$1(ModeValues.KANJI, 'KANJI', Int32Array.from([8, 10, 12]), 0x08);\n Mode$1.FNC1_FIRST_POSITION = new Mode$1(ModeValues.FNC1_FIRST_POSITION, 'FNC1_FIRST_POSITION', Int32Array.from([0, 0, 0]), 0x05);\n Mode$1.FNC1_SECOND_POSITION = new Mode$1(ModeValues.FNC1_SECOND_POSITION, 'FNC1_SECOND_POSITION', Int32Array.from([0, 0, 0]), 0x09);\n /** See GBT 18284-2000; \"Hanzi\" is a transliteration of this mode name. */\n Mode$1.HANZI = new Mode$1(ModeValues.HANZI, 'HANZI', Int32Array.from([8, 10, 12]), 0x0D);\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /*import java.io.UnsupportedEncodingException;*/\n /*import java.util.ArrayList;*/\n /*import java.util.Collection;*/\n /*import java.util.List;*/\n /*import java.util.Map;*/\n /**\n *QR Codes can encode text as bits in one of several modes, and can use multiple modes\n * in one QR Code. This class decodes the bits back into text.
\n *\n *See ISO 18004:2006, 6.4.3 - 6.4.7
\n *\n * @author Sean Owen\n */\n class DecodedBitStreamParser$1 {\n static decode(bytes, version, ecLevel, hints) {\n const bits = new BitSource(bytes);\n let result = new StringBuilder();\n const byteSegments = new Array(); // 1\n // TYPESCRIPTPORT: I do not use constructor with size 1 as in original Java means capacity and the array length is checked below\n let symbolSequence = -1;\n let parityData = -1;\n try {\n let currentCharacterSetECI = null;\n let fc1InEffect = false;\n let mode;\n do {\n // While still another segment to read...\n if (bits.available() < 4) {\n // OK, assume we're done. Really, a TERMINATOR mode should have been recorded here\n mode = Mode$1.TERMINATOR;\n }\n else {\n const modeBits = bits.readBits(4);\n mode = Mode$1.forBits(modeBits); // mode is encoded by 4 bits\n }\n switch (mode) {\n case Mode$1.TERMINATOR:\n break;\n case Mode$1.FNC1_FIRST_POSITION:\n case Mode$1.FNC1_SECOND_POSITION:\n // We do little with FNC1 except alter the parsed result a bit according to the spec\n fc1InEffect = true;\n break;\n case Mode$1.STRUCTURED_APPEND:\n if (bits.available() < 16) {\n throw new FormatException();\n }\n // sequence number and parity is added later to the result metadata\n // Read next 8 bits (symbol sequence #) and 8 bits (data: parity), then continue\n symbolSequence = bits.readBits(8);\n parityData = bits.readBits(8);\n break;\n case Mode$1.ECI:\n // Count doesn't apply to ECI\n const value = DecodedBitStreamParser$1.parseECIValue(bits);\n currentCharacterSetECI = CharacterSetECI.getCharacterSetECIByValue(value);\n if (currentCharacterSetECI === null) {\n throw new FormatException();\n }\n break;\n case Mode$1.HANZI:\n // First handle Hanzi mode which does not start with character count\n // Chinese mode contains a sub set indicator right after mode indicator\n const subset = bits.readBits(4);\n const countHanzi = bits.readBits(mode.getCharacterCountBits(version));\n if (subset === DecodedBitStreamParser$1.GB2312_SUBSET) {\n DecodedBitStreamParser$1.decodeHanziSegment(bits, result, countHanzi);\n }\n break;\n default:\n // \"Normal\" QR code modes:\n // How many characters will follow, encoded in this mode?\n const count = bits.readBits(mode.getCharacterCountBits(version));\n switch (mode) {\n case Mode$1.NUMERIC:\n DecodedBitStreamParser$1.decodeNumericSegment(bits, result, count);\n break;\n case Mode$1.ALPHANUMERIC:\n DecodedBitStreamParser$1.decodeAlphanumericSegment(bits, result, count, fc1InEffect);\n break;\n case Mode$1.BYTE:\n DecodedBitStreamParser$1.decodeByteSegment(bits, result, count, currentCharacterSetECI, byteSegments, hints);\n break;\n case Mode$1.KANJI:\n DecodedBitStreamParser$1.decodeKanjiSegment(bits, result, count);\n break;\n default:\n throw new FormatException();\n }\n break;\n }\n } while (mode !== Mode$1.TERMINATOR);\n }\n catch (iae /*: IllegalArgumentException*/) {\n // from readBits() calls\n throw new FormatException();\n }\n return new DecoderResult(bytes, result.toString(), byteSegments.length === 0 ? null : byteSegments, ecLevel === null ? null : ecLevel.toString(), symbolSequence, parityData);\n }\n /**\n * See specification GBT 18284-2000\n */\n static decodeHanziSegment(bits, result, count /*int*/) {\n // Don't crash trying to read more bits than we have available.\n if (count * 13 > bits.available()) {\n throw new FormatException();\n }\n // Each character will require 2 bytes. Read the characters as 2-byte pairs\n // and decode as GB2312 afterwards\n const buffer = new Uint8Array(2 * count);\n let offset = 0;\n while (count > 0) {\n // Each 13 bits encodes a 2-byte character\n const twoBytes = bits.readBits(13);\n let assembledTwoBytes = (((twoBytes / 0x060) << 8) & 0xFFFFFFFF) | (twoBytes % 0x060);\n if (assembledTwoBytes < 0x003BF) {\n // In the 0xA1A1 to 0xAAFE range\n assembledTwoBytes += 0x0A1A1;\n }\n else {\n // In the 0xB0A1 to 0xFAFE range\n assembledTwoBytes += 0x0A6A1;\n }\n buffer[offset] = /*(byte) */ ((assembledTwoBytes >> 8) & 0xFF);\n buffer[offset + 1] = /*(byte) */ (assembledTwoBytes & 0xFF);\n offset += 2;\n count--;\n }\n try {\n result.append(StringEncoding.decode(buffer, StringUtils.GB2312));\n // TYPESCRIPTPORT: TODO: implement GB2312 decode. StringView from MDN could be a starting point\n }\n catch (ignored /*: UnsupportedEncodingException*/) {\n throw new FormatException(ignored);\n }\n }\n static decodeKanjiSegment(bits, result, count /*int*/) {\n // Don't crash trying to read more bits than we have available.\n if (count * 13 > bits.available()) {\n throw new FormatException();\n }\n // Each character will require 2 bytes. Read the characters as 2-byte pairs\n // and decode as Shift_JIS afterwards\n const buffer = new Uint8Array(2 * count);\n let offset = 0;\n while (count > 0) {\n // Each 13 bits encodes a 2-byte character\n const twoBytes = bits.readBits(13);\n let assembledTwoBytes = (((twoBytes / 0x0C0) << 8) & 0xFFFFFFFF) | (twoBytes % 0x0C0);\n if (assembledTwoBytes < 0x01F00) {\n // In the 0x8140 to 0x9FFC range\n assembledTwoBytes += 0x08140;\n }\n else {\n // In the 0xE040 to 0xEBBF range\n assembledTwoBytes += 0x0C140;\n }\n buffer[offset] = /*(byte) */ (assembledTwoBytes >> 8);\n buffer[offset + 1] = /*(byte) */ assembledTwoBytes;\n offset += 2;\n count--;\n }\n // Shift_JIS may not be supported in some environments:\n try {\n result.append(StringEncoding.decode(buffer, StringUtils.SHIFT_JIS));\n // TYPESCRIPTPORT: TODO: implement SHIFT_JIS decode. StringView from MDN could be a starting point\n }\n catch (ignored /*: UnsupportedEncodingException*/) {\n throw new FormatException(ignored);\n }\n }\n static decodeByteSegment(bits, result, count /*int*/, currentCharacterSetECI, byteSegments, hints) {\n // Don't crash trying to read more bits than we have available.\n if (8 * count > bits.available()) {\n throw new FormatException();\n }\n const readBytes = new Uint8Array(count);\n for (let i = 0; i < count; i++) {\n readBytes[i] = /*(byte) */ bits.readBits(8);\n }\n let encoding;\n if (currentCharacterSetECI === null) {\n // The spec isn't clear on this mode; see\n // section 6.4.5: t does not say which encoding to assuming\n // upon decoding. I have seen ISO-8859-1 used as well as\n // Shift_JIS -- without anything like an ECI designator to\n // give a hint.\n encoding = StringUtils.guessEncoding(readBytes, hints);\n }\n else {\n encoding = currentCharacterSetECI.getName();\n }\n try {\n result.append(StringEncoding.decode(readBytes, encoding));\n }\n catch (ignored /*: UnsupportedEncodingException*/) {\n throw new FormatException(ignored);\n }\n byteSegments.push(readBytes);\n }\n static toAlphaNumericChar(value /*int*/) {\n if (value >= DecodedBitStreamParser$1.ALPHANUMERIC_CHARS.length) {\n throw new FormatException();\n }\n return DecodedBitStreamParser$1.ALPHANUMERIC_CHARS[value];\n }\n static decodeAlphanumericSegment(bits, result, count /*int*/, fc1InEffect) {\n // Read two characters at a time\n const start = result.length();\n while (count > 1) {\n if (bits.available() < 11) {\n throw new FormatException();\n }\n const nextTwoCharsBits = bits.readBits(11);\n result.append(DecodedBitStreamParser$1.toAlphaNumericChar(Math.floor(nextTwoCharsBits / 45)));\n result.append(DecodedBitStreamParser$1.toAlphaNumericChar(nextTwoCharsBits % 45));\n count -= 2;\n }\n if (count === 1) {\n // special case: one character left\n if (bits.available() < 6) {\n throw new FormatException();\n }\n result.append(DecodedBitStreamParser$1.toAlphaNumericChar(bits.readBits(6)));\n }\n // See section 6.4.8.1, 6.4.8.2\n if (fc1InEffect) {\n // We need to massage the result a bit if in an FNC1 mode:\n for (let i = start; i < result.length(); i++) {\n if (result.charAt(i) === '%') {\n if (i < result.length() - 1 && result.charAt(i + 1) === '%') {\n // %% is rendered as %\n result.deleteCharAt(i + 1);\n }\n else {\n // In alpha mode, % should be converted to FNC1 separator 0x1D\n result.setCharAt(i, String.fromCharCode(0x1D));\n }\n }\n }\n }\n }\n static decodeNumericSegment(bits, result, count /*int*/) {\n // Read three digits at a time\n while (count >= 3) {\n // Each 10 bits encodes three digits\n if (bits.available() < 10) {\n throw new FormatException();\n }\n const threeDigitsBits = bits.readBits(10);\n if (threeDigitsBits >= 1000) {\n throw new FormatException();\n }\n result.append(DecodedBitStreamParser$1.toAlphaNumericChar(Math.floor(threeDigitsBits / 100)));\n result.append(DecodedBitStreamParser$1.toAlphaNumericChar(Math.floor(threeDigitsBits / 10) % 10));\n result.append(DecodedBitStreamParser$1.toAlphaNumericChar(threeDigitsBits % 10));\n count -= 3;\n }\n if (count === 2) {\n // Two digits left over to read, encoded in 7 bits\n if (bits.available() < 7) {\n throw new FormatException();\n }\n const twoDigitsBits = bits.readBits(7);\n if (twoDigitsBits >= 100) {\n throw new FormatException();\n }\n result.append(DecodedBitStreamParser$1.toAlphaNumericChar(Math.floor(twoDigitsBits / 10)));\n result.append(DecodedBitStreamParser$1.toAlphaNumericChar(twoDigitsBits % 10));\n }\n else if (count === 1) {\n // One digit left over to read\n if (bits.available() < 4) {\n throw new FormatException();\n }\n const digitBits = bits.readBits(4);\n if (digitBits >= 10) {\n throw new FormatException();\n }\n result.append(DecodedBitStreamParser$1.toAlphaNumericChar(digitBits));\n }\n }\n static parseECIValue(bits) {\n const firstByte = bits.readBits(8);\n if ((firstByte & 0x80) === 0) {\n // just one byte\n return firstByte & 0x7F;\n }\n if ((firstByte & 0xC0) === 0x80) {\n // two bytes\n const secondByte = bits.readBits(8);\n return (((firstByte & 0x3F) << 8) & 0xFFFFFFFF) | secondByte;\n }\n if ((firstByte & 0xE0) === 0xC0) {\n // three bytes\n const secondThirdBytes = bits.readBits(16);\n return (((firstByte & 0x1F) << 16) & 0xFFFFFFFF) | secondThirdBytes;\n }\n throw new FormatException();\n }\n }\n /**\n * See ISO 18004:2006, 6.4.4 Table 5\n */\n DecodedBitStreamParser$1.ALPHANUMERIC_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:';\n DecodedBitStreamParser$1.GB2312_SUBSET = 1;\n // function Uint8ArrayToString(a: Uint8Array): string {\n // const CHUNK_SZ = 0x8000;\n // const c = new StringBuilder();\n // for (let i = 0, length = a.length; i < length; i += CHUNK_SZ) {\n // c.append(String.fromCharCode.apply(null, a.subarray(i, i + CHUNK_SZ)));\n // }\n // return c.toString();\n // }\n\n /*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * Meta-data container for QR Code decoding. Instances of this class may be used to convey information back to the\n * decoding caller. Callers are expected to process this.\n *\n * @see com.google.zxing.common.DecoderResult#getOther()\n */\n class QRCodeDecoderMetaData {\n constructor(mirrored) {\n this.mirrored = mirrored;\n }\n /**\n * @return true if the QR Code was mirrored.\n */\n isMirrored() {\n return this.mirrored;\n }\n /**\n * Apply the result points' order correction due to mirroring.\n *\n * @param points Array of points to apply mirror correction to.\n */\n applyMirroredCorrection(points) {\n if (!this.mirrored || points === null || points.length < 3) {\n return;\n }\n const bottomLeft = points[0];\n points[0] = points[2];\n points[2] = bottomLeft;\n // No need to 'fix' top-left and alignment pattern.\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /*import java.util.Map;*/\n /**\n *The main class which implements QR Code decoding -- as opposed to locating and extracting\n * the QR Code from an image.
\n *\n * @author Sean Owen\n */\n class Decoder$2 {\n constructor() {\n this.rsDecoder = new ReedSolomonDecoder(GenericGF.QR_CODE_FIELD_256);\n }\n // public decode(image: boolean[][]): DecoderResult /*throws ChecksumException, FormatException*/ {\n // return decode(image, null)\n // }\n /**\n *Convenience method that can decode a QR Code represented as a 2D array of booleans.\n * \"true\" is taken to mean a black module.
\n *\n * @param image booleans representing white/black QR Code modules\n * @param hints decoding hints that should be used to influence decoding\n * @return text and bytes encoded within the QR Code\n * @throws FormatException if the QR Code cannot be decoded\n * @throws ChecksumException if error correction fails\n */\n decodeBooleanArray(image, hints) {\n return this.decodeBitMatrix(BitMatrix.parseFromBooleanArray(image), hints);\n }\n // public decodeBitMatrix(bits: BitMatrix): DecoderResult /*throws ChecksumException, FormatException*/ {\n // return decode(bits, null)\n // }\n /**\n *Decodes a QR Code represented as a {@link BitMatrix}. A 1 or \"true\" is taken to mean a black module.
\n *\n * @param bits booleans representing white/black QR Code modules\n * @param hints decoding hints that should be used to influence decoding\n * @return text and bytes encoded within the QR Code\n * @throws FormatException if the QR Code cannot be decoded\n * @throws ChecksumException if error correction fails\n */\n decodeBitMatrix(bits, hints) {\n // Construct a parser and read version, error-correction level\n const parser = new BitMatrixParser$1(bits);\n let ex = null;\n try {\n return this.decodeBitMatrixParser(parser, hints);\n }\n catch (e /*: FormatException, ChecksumException*/) {\n ex = e;\n }\n try {\n // Revert the bit matrix\n parser.remask();\n // Will be attempting a mirrored reading of the version and format info.\n parser.setMirror(true);\n // Preemptively read the version.\n parser.readVersion();\n // Preemptively read the format information.\n parser.readFormatInformation();\n /*\n * Since we're here, this means we have successfully detected some kind\n * of version and format information when mirrored. This is a good sign,\n * that the QR code may be mirrored, and we should try once more with a\n * mirrored content.\n */\n // Prepare for a mirrored reading.\n parser.mirror();\n const result = this.decodeBitMatrixParser(parser, hints);\n // Success! Notify the caller that the code was mirrored.\n result.setOther(new QRCodeDecoderMetaData(true));\n return result;\n }\n catch (e /*FormatException | ChecksumException*/) {\n // Throw the exception from the original reading\n if (ex !== null) {\n throw ex;\n }\n throw e;\n }\n }\n decodeBitMatrixParser(parser, hints) {\n const version = parser.readVersion();\n const ecLevel = parser.readFormatInformation().getErrorCorrectionLevel();\n // Read codewords\n const codewords = parser.readCodewords();\n // Separate into data blocks\n const dataBlocks = DataBlock$1.getDataBlocks(codewords, version, ecLevel);\n // Count total number of data bytes\n let totalBytes = 0;\n for (const dataBlock of dataBlocks) {\n totalBytes += dataBlock.getNumDataCodewords();\n }\n const resultBytes = new Uint8Array(totalBytes);\n let resultOffset = 0;\n // Error-correct and copy data blocks together into a stream of bytes\n for (const dataBlock of dataBlocks) {\n const codewordBytes = dataBlock.getCodewords();\n const numDataCodewords = dataBlock.getNumDataCodewords();\n this.correctErrors(codewordBytes, numDataCodewords);\n for (let i = 0; i < numDataCodewords; i++) {\n resultBytes[resultOffset++] = codewordBytes[i];\n }\n }\n // Decode the contents of that stream of bytes\n return DecodedBitStreamParser$1.decode(resultBytes, version, ecLevel, hints);\n }\n /**\n *Given data and error-correction codewords received, possibly corrupted by errors, attempts to\n * correct the errors in-place using Reed-Solomon error correction.
\n *\n * @param codewordBytes data and error correction codewords\n * @param numDataCodewords number of codewords that are data bytes\n * @throws ChecksumException if error correction fails\n */\n correctErrors(codewordBytes, numDataCodewords /*int*/) {\n // const numCodewords = codewordBytes.length;\n // First read into an array of ints\n const codewordsInts = new Int32Array(codewordBytes);\n // TYPESCRIPTPORT: not realy necessary to transform to ints? could redesign everything to work with unsigned bytes?\n // const codewordsInts = new Int32Array(numCodewords)\n // for (let i = 0; i < numCodewords; i++) {\n // codewordsInts[i] = codewordBytes[i] & 0xFF\n // }\n try {\n this.rsDecoder.decode(codewordsInts, codewordBytes.length - numDataCodewords);\n }\n catch (ignored /*: ReedSolomonException*/) {\n throw new ChecksumException();\n }\n // Copy back into array of bytes -- only need to worry about the bytes that were data\n // We don't care about errors in the error-correction codewords\n for (let i = 0; i < numDataCodewords; i++) {\n codewordBytes[i] = /*(byte) */ codewordsInts[i];\n }\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *Encapsulates an alignment pattern, which are the smaller square patterns found in\n * all but the simplest QR Codes.
\n *\n * @author Sean Owen\n */\n class AlignmentPattern extends ResultPoint {\n constructor(posX /*float*/, posY /*float*/, estimatedModuleSize /*float*/) {\n super(posX, posY);\n this.estimatedModuleSize = estimatedModuleSize;\n }\n /**\n *Determines if this alignment pattern \"about equals\" an alignment pattern at the stated\n * position and size -- meaning, it is at nearly the same center with nearly the same size.
\n */\n aboutEquals(moduleSize /*float*/, i /*float*/, j /*float*/) {\n if (Math.abs(i - this.getY()) <= moduleSize && Math.abs(j - this.getX()) <= moduleSize) {\n const moduleSizeDiff = Math.abs(moduleSize - this.estimatedModuleSize);\n return moduleSizeDiff <= 1.0 || moduleSizeDiff <= this.estimatedModuleSize;\n }\n return false;\n }\n /**\n * Combines this object's current estimate of a finder pattern position and module size\n * with a new estimate. It returns a new {@code FinderPattern} containing an average of the two.\n */\n combineEstimate(i /*float*/, j /*float*/, newModuleSize /*float*/) {\n const combinedX = (this.getX() + j) / 2.0;\n const combinedY = (this.getY() + i) / 2.0;\n const combinedModuleSize = (this.estimatedModuleSize + newModuleSize) / 2.0;\n return new AlignmentPattern(combinedX, combinedY, combinedModuleSize);\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /*import java.util.ArrayList;*/\n /*import java.util.List;*/\n /**\n *This class attempts to find alignment patterns in a QR Code. Alignment patterns look like finder\n * patterns but are smaller and appear at regular intervals throughout the image.
\n *\n *At the moment this only looks for the bottom-right alignment pattern.
\n *\n *This is mostly a simplified copy of {@link FinderPatternFinder}. It is copied,\n * pasted and stripped down here for maximum performance but does unfortunately duplicate\n * some code.
\n *\n *This class is thread-safe but not reentrant. Each thread must allocate its own object.
\n *\n * @author Sean Owen\n */\n class AlignmentPatternFinder {\n /**\n *Creates a finder that will look in a portion of the whole image.
\n *\n * @param image image to search\n * @param startX left column from which to start searching\n * @param startY top row from which to start searching\n * @param width width of region to search\n * @param height height of region to search\n * @param moduleSize estimated module size so far\n */\n constructor(image, startX /*int*/, startY /*int*/, width /*int*/, height /*int*/, moduleSize /*float*/, resultPointCallback) {\n this.image = image;\n this.startX = startX;\n this.startY = startY;\n this.width = width;\n this.height = height;\n this.moduleSize = moduleSize;\n this.resultPointCallback = resultPointCallback;\n this.possibleCenters = []; // new ArrayThis method attempts to find the bottom-right alignment pattern in the image. It is a bit messy since\n * it's pretty performance-critical and so is written to be fast foremost.
\n *\n * @return {@link AlignmentPattern} if found\n * @throws NotFoundException if not found\n */\n find() {\n const startX = this.startX;\n const height = this.height;\n const width = this.width;\n const maxJ = startX + width;\n const middleI = this.startY + (height / 2);\n // We are looking for black/white/black modules in 1:1:1 ratio\n // this tracks the number of black/white/black modules seen so far\n const stateCount = new Int32Array(3);\n const image = this.image;\n for (let iGen = 0; iGen < height; iGen++) {\n // Search from middle outwards\n const i = middleI + ((iGen & 0x01) === 0 ? Math.floor((iGen + 1) / 2) : -Math.floor((iGen + 1) / 2));\n stateCount[0] = 0;\n stateCount[1] = 0;\n stateCount[2] = 0;\n let j = startX;\n // Burn off leading white pixels before anything else; if we start in the middle of\n // a white run, it doesn't make sense to count its length, since we don't know if the\n // white run continued to the left of the start point\n while (j < maxJ && !image.get(j, i)) {\n j++;\n }\n let currentState = 0;\n while (j < maxJ) {\n if (image.get(j, i)) {\n // Black pixel\n if (currentState === 1) { // Counting black pixels\n stateCount[1]++;\n }\n else { // Counting white pixels\n if (currentState === 2) { // A winner?\n if (this.foundPatternCross(stateCount)) { // Yes\n const confirmed = this.handlePossibleCenter(stateCount, i, j);\n if (confirmed !== null) {\n return confirmed;\n }\n }\n stateCount[0] = stateCount[2];\n stateCount[1] = 1;\n stateCount[2] = 0;\n currentState = 1;\n }\n else {\n stateCount[++currentState]++;\n }\n }\n }\n else { // White pixel\n if (currentState === 1) { // Counting black pixels\n currentState++;\n }\n stateCount[currentState]++;\n }\n j++;\n }\n if (this.foundPatternCross(stateCount)) {\n const confirmed = this.handlePossibleCenter(stateCount, i, maxJ);\n if (confirmed !== null) {\n return confirmed;\n }\n }\n }\n // Hmm, nothing we saw was observed and confirmed twice. If we had\n // any guess at all, return it.\n if (this.possibleCenters.length !== 0) {\n return this.possibleCenters[0];\n }\n throw new NotFoundException();\n }\n /**\n * Given a count of black/white/black pixels just seen and an end position,\n * figures the location of the center of this black/white/black run.\n */\n static centerFromEnd(stateCount, end /*int*/) {\n return (end - stateCount[2]) - stateCount[1] / 2.0;\n }\n /**\n * @param stateCount count of black/white/black pixels just read\n * @return true iff the proportions of the counts is close enough to the 1/1/1 ratios\n * used by alignment patterns to be considered a match\n */\n foundPatternCross(stateCount) {\n const moduleSize = this.moduleSize;\n const maxVariance = moduleSize / 2.0;\n for (let i = 0; i < 3; i++) {\n if (Math.abs(moduleSize - stateCount[i]) >= maxVariance) {\n return false;\n }\n }\n return true;\n }\n /**\n *After a horizontal scan finds a potential alignment pattern, this method\n * \"cross-checks\" by scanning down vertically through the center of the possible\n * alignment pattern to see if the same proportion is detected.
\n *\n * @param startI row where an alignment pattern was detected\n * @param centerJ center of the section that appears to cross an alignment pattern\n * @param maxCount maximum reasonable number of modules that should be\n * observed in any reading state, based on the results of the horizontal scan\n * @return vertical center of alignment pattern, or {@link Float#NaN} if not found\n */\n crossCheckVertical(startI /*int*/, centerJ /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n const image = this.image;\n const maxI = image.getHeight();\n const stateCount = this.crossCheckStateCount;\n stateCount[0] = 0;\n stateCount[1] = 0;\n stateCount[2] = 0;\n // Start counting up from center\n let i = startI;\n while (i >= 0 && image.get(centerJ, i) && stateCount[1] <= maxCount) {\n stateCount[1]++;\n i--;\n }\n // If already too many modules in this state or ran off the edge:\n if (i < 0 || stateCount[1] > maxCount) {\n return NaN;\n }\n while (i >= 0 && !image.get(centerJ, i) && stateCount[0] <= maxCount) {\n stateCount[0]++;\n i--;\n }\n if (stateCount[0] > maxCount) {\n return NaN;\n }\n // Now also count down from center\n i = startI + 1;\n while (i < maxI && image.get(centerJ, i) && stateCount[1] <= maxCount) {\n stateCount[1]++;\n i++;\n }\n if (i === maxI || stateCount[1] > maxCount) {\n return NaN;\n }\n while (i < maxI && !image.get(centerJ, i) && stateCount[2] <= maxCount) {\n stateCount[2]++;\n i++;\n }\n if (stateCount[2] > maxCount) {\n return NaN;\n }\n const stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2];\n if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= 2 * originalStateCountTotal) {\n return NaN;\n }\n return this.foundPatternCross(stateCount) ? AlignmentPatternFinder.centerFromEnd(stateCount, i) : NaN;\n }\n /**\n *This is called when a horizontal scan finds a possible alignment pattern. It will\n * cross check with a vertical scan, and if successful, will see if this pattern had been\n * found on a previous horizontal scan. If so, we consider it confirmed and conclude we have\n * found the alignment pattern.
\n *\n * @param stateCount reading state module counts from horizontal scan\n * @param i row where alignment pattern may be found\n * @param j end of possible alignment pattern in row\n * @return {@link AlignmentPattern} if we have found the same pattern twice, or null if not\n */\n handlePossibleCenter(stateCount, i /*int*/, j /*int*/) {\n const stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2];\n const centerJ = AlignmentPatternFinder.centerFromEnd(stateCount, j);\n const centerI = this.crossCheckVertical(i, /*(int) */ centerJ, 2 * stateCount[1], stateCountTotal);\n if (!isNaN(centerI)) {\n const estimatedModuleSize = (stateCount[0] + stateCount[1] + stateCount[2]) / 3.0;\n for (const center of this.possibleCenters) {\n // Look for about the same center and module size:\n if (center.aboutEquals(estimatedModuleSize, centerI, centerJ)) {\n return center.combineEstimate(centerI, centerJ, estimatedModuleSize);\n }\n }\n // Hadn't found this before; save it\n const point = new AlignmentPattern(centerJ, centerI, estimatedModuleSize);\n this.possibleCenters.push(point);\n if (this.resultPointCallback !== null && this.resultPointCallback !== undefined) {\n this.resultPointCallback.foundPossibleResultPoint(point);\n }\n }\n return null;\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *Encapsulates a finder pattern, which are the three square patterns found in\n * the corners of QR Codes. It also encapsulates a count of similar finder patterns,\n * as a convenience to the finder's bookkeeping.
\n *\n * @author Sean Owen\n */\n class FinderPattern$1 extends ResultPoint {\n // FinderPattern(posX: number/*float*/, posY: number/*float*/, estimatedModuleSize: number/*float*/) {\n // this(posX, posY, estimatedModuleSize, 1)\n // }\n constructor(posX /*float*/, posY /*float*/, estimatedModuleSize /*float*/, count /*int*/) {\n super(posX, posY);\n this.estimatedModuleSize = estimatedModuleSize;\n this.count = count;\n if (undefined === count) {\n this.count = 1;\n }\n }\n getEstimatedModuleSize() {\n return this.estimatedModuleSize;\n }\n getCount() {\n return this.count;\n }\n /*\n void incrementCount() {\n this.count++\n }\n */\n /**\n *Determines if this finder pattern \"about equals\" a finder pattern at the stated\n * position and size -- meaning, it is at nearly the same center with nearly the same size.
\n */\n aboutEquals(moduleSize /*float*/, i /*float*/, j /*float*/) {\n if (Math.abs(i - this.getY()) <= moduleSize && Math.abs(j - this.getX()) <= moduleSize) {\n const moduleSizeDiff = Math.abs(moduleSize - this.estimatedModuleSize);\n return moduleSizeDiff <= 1.0 || moduleSizeDiff <= this.estimatedModuleSize;\n }\n return false;\n }\n /**\n * Combines this object's current estimate of a finder pattern position and module size\n * with a new estimate. It returns a new {@code FinderPattern} containing a weighted average\n * based on count.\n */\n combineEstimate(i /*float*/, j /*float*/, newModuleSize /*float*/) {\n const combinedCount = this.count + 1;\n const combinedX = (this.count * this.getX() + j) / combinedCount;\n const combinedY = (this.count * this.getY() + i) / combinedCount;\n const combinedModuleSize = (this.count * this.estimatedModuleSize + newModuleSize) / combinedCount;\n return new FinderPattern$1(combinedX, combinedY, combinedModuleSize, combinedCount);\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *Encapsulates information about finder patterns in an image, including the location of\n * the three finder patterns, and their estimated module size.
\n *\n * @author Sean Owen\n */\n class FinderPatternInfo {\n constructor(patternCenters) {\n this.bottomLeft = patternCenters[0];\n this.topLeft = patternCenters[1];\n this.topRight = patternCenters[2];\n }\n getBottomLeft() {\n return this.bottomLeft;\n }\n getTopLeft() {\n return this.topLeft;\n }\n getTopRight() {\n return this.topRight;\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /*import java.io.Serializable;*/\n /*import java.util.ArrayList;*/\n /*import java.util.Collections;*/\n /*import java.util.Comparator;*/\n /*import java.util.List;*/\n /*import java.util.Map;*/\n /**\n *This class attempts to find finder patterns in a QR Code. Finder patterns are the square\n * markers at three corners of a QR Code.
\n *\n *This class is thread-safe but not reentrant. Each thread must allocate its own object.\n *\n * @author Sean Owen\n */\n class FinderPatternFinder {\n /**\n *
Creates a finder that will search the image for three finder patterns.
\n *\n * @param image image to search\n */\n // public constructor(image: BitMatrix) {\n // this(image, null)\n // }\n constructor(image, resultPointCallback) {\n this.image = image;\n this.resultPointCallback = resultPointCallback;\n this.possibleCenters = [];\n this.crossCheckStateCount = new Int32Array(5);\n this.resultPointCallback = resultPointCallback;\n }\n getImage() {\n return this.image;\n }\n getPossibleCenters() {\n return this.possibleCenters;\n }\n find(hints) {\n const tryHarder = (hints !== null && hints !== undefined) && undefined !== hints.get(DecodeHintType$1.TRY_HARDER);\n const pureBarcode = (hints !== null && hints !== undefined) && undefined !== hints.get(DecodeHintType$1.PURE_BARCODE);\n const image = this.image;\n const maxI = image.getHeight();\n const maxJ = image.getWidth();\n // We are looking for black/white/black/white/black modules in\n // 1:1:3:1:1 ratio; this tracks the number of such modules seen so far\n // Let's assume that the maximum version QR Code we support takes up 1/4 the height of the\n // image, and then account for the center being 3 modules in size. This gives the smallest\n // number of pixels the center could be, so skip this often. When trying harder, look for all\n // QR versions regardless of how dense they are.\n let iSkip = Math.floor((3 * maxI) / (4 * FinderPatternFinder.MAX_MODULES));\n if (iSkip < FinderPatternFinder.MIN_SKIP || tryHarder) {\n iSkip = FinderPatternFinder.MIN_SKIP;\n }\n let done = false;\n const stateCount = new Int32Array(5);\n for (let i = iSkip - 1; i < maxI && !done; i += iSkip) {\n // Get a row of black/white values\n stateCount[0] = 0;\n stateCount[1] = 0;\n stateCount[2] = 0;\n stateCount[3] = 0;\n stateCount[4] = 0;\n let currentState = 0;\n for (let j = 0; j < maxJ; j++) {\n if (image.get(j, i)) {\n // Black pixel\n if ((currentState & 1) === 1) { // Counting white pixels\n currentState++;\n }\n stateCount[currentState]++;\n }\n else { // White pixel\n if ((currentState & 1) === 0) { // Counting black pixels\n if (currentState === 4) { // A winner?\n if (FinderPatternFinder.foundPatternCross(stateCount)) { // Yes\n const confirmed = this.handlePossibleCenter(stateCount, i, j, pureBarcode);\n if (confirmed === true) {\n // Start examining every other line. Checking each line turned out to be too\n // expensive and didn't improve performance.\n iSkip = 2;\n if (this.hasSkipped === true) {\n done = this.haveMultiplyConfirmedCenters();\n }\n else {\n const rowSkip = this.findRowSkip();\n if (rowSkip > stateCount[2]) {\n // Skip rows between row of lower confirmed center\n // and top of presumed third confirmed center\n // but back up a bit to get a full chance of detecting\n // it, entire width of center of finder pattern\n // Skip by rowSkip, but back off by stateCount[2] (size of last center\n // of pattern we saw) to be conservative, and also back off by iSkip which\n // is about to be re-added\n i += rowSkip - stateCount[2] - iSkip;\n j = maxJ - 1;\n }\n }\n }\n else {\n stateCount[0] = stateCount[2];\n stateCount[1] = stateCount[3];\n stateCount[2] = stateCount[4];\n stateCount[3] = 1;\n stateCount[4] = 0;\n currentState = 3;\n continue;\n }\n // Clear state to start looking again\n currentState = 0;\n stateCount[0] = 0;\n stateCount[1] = 0;\n stateCount[2] = 0;\n stateCount[3] = 0;\n stateCount[4] = 0;\n }\n else { // No, shift counts back by two\n stateCount[0] = stateCount[2];\n stateCount[1] = stateCount[3];\n stateCount[2] = stateCount[4];\n stateCount[3] = 1;\n stateCount[4] = 0;\n currentState = 3;\n }\n }\n else {\n stateCount[++currentState]++;\n }\n }\n else { // Counting white pixels\n stateCount[currentState]++;\n }\n }\n }\n if (FinderPatternFinder.foundPatternCross(stateCount)) {\n const confirmed = this.handlePossibleCenter(stateCount, i, maxJ, pureBarcode);\n if (confirmed === true) {\n iSkip = stateCount[0];\n if (this.hasSkipped) {\n // Found a third one\n done = this.haveMultiplyConfirmedCenters();\n }\n }\n }\n }\n const patternInfo = this.selectBestPatterns();\n ResultPoint.orderBestPatterns(patternInfo);\n return new FinderPatternInfo(patternInfo);\n }\n /**\n * Given a count of black/white/black/white/black pixels just seen and an end position,\n * figures the location of the center of this run.\n */\n static centerFromEnd(stateCount, end /*int*/) {\n return (end - stateCount[4] - stateCount[3]) - stateCount[2] / 2.0;\n }\n /**\n * @param stateCount count of black/white/black/white/black pixels just read\n * @return true iff the proportions of the counts is close enough to the 1/1/3/1/1 ratios\n * used by finder patterns to be considered a match\n */\n static foundPatternCross(stateCount) {\n let totalModuleSize = 0;\n for (let i = 0; i < 5; i++) {\n const count = stateCount[i];\n if (count === 0) {\n return false;\n }\n totalModuleSize += count;\n }\n if (totalModuleSize < 7) {\n return false;\n }\n const moduleSize = totalModuleSize / 7.0;\n const maxVariance = moduleSize / 2.0;\n // Allow less than 50% variance from 1-1-3-1-1 proportions\n return Math.abs(moduleSize - stateCount[0]) < maxVariance &&\n Math.abs(moduleSize - stateCount[1]) < maxVariance &&\n Math.abs(3.0 * moduleSize - stateCount[2]) < 3 * maxVariance &&\n Math.abs(moduleSize - stateCount[3]) < maxVariance &&\n Math.abs(moduleSize - stateCount[4]) < maxVariance;\n }\n getCrossCheckStateCount() {\n const crossCheckStateCount = this.crossCheckStateCount;\n crossCheckStateCount[0] = 0;\n crossCheckStateCount[1] = 0;\n crossCheckStateCount[2] = 0;\n crossCheckStateCount[3] = 0;\n crossCheckStateCount[4] = 0;\n return crossCheckStateCount;\n }\n /**\n * After a vertical and horizontal scan finds a potential finder pattern, this method\n * \"cross-cross-cross-checks\" by scanning down diagonally through the center of the possible\n * finder pattern to see if the same proportion is detected.\n *\n * @param startI row where a finder pattern was detected\n * @param centerJ center of the section that appears to cross a finder pattern\n * @param maxCount maximum reasonable number of modules that should be\n * observed in any reading state, based on the results of the horizontal scan\n * @param originalStateCountTotal The original state count total.\n * @return true if proportions are withing expected limits\n */\n crossCheckDiagonal(startI /*int*/, centerJ /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n const stateCount = this.getCrossCheckStateCount();\n // Start counting up, left from center finding black center mass\n let i = 0;\n const image = this.image;\n while (startI >= i && centerJ >= i && image.get(centerJ - i, startI - i)) {\n stateCount[2]++;\n i++;\n }\n if (startI < i || centerJ < i) {\n return false;\n }\n // Continue up, left finding white space\n while (startI >= i && centerJ >= i && !image.get(centerJ - i, startI - i) &&\n stateCount[1] <= maxCount) {\n stateCount[1]++;\n i++;\n }\n // If already too many modules in this state or ran off the edge:\n if (startI < i || centerJ < i || stateCount[1] > maxCount) {\n return false;\n }\n // Continue up, left finding black border\n while (startI >= i && centerJ >= i && image.get(centerJ - i, startI - i) &&\n stateCount[0] <= maxCount) {\n stateCount[0]++;\n i++;\n }\n if (stateCount[0] > maxCount) {\n return false;\n }\n const maxI = image.getHeight();\n const maxJ = image.getWidth();\n // Now also count down, right from center\n i = 1;\n while (startI + i < maxI && centerJ + i < maxJ && image.get(centerJ + i, startI + i)) {\n stateCount[2]++;\n i++;\n }\n // Ran off the edge?\n if (startI + i >= maxI || centerJ + i >= maxJ) {\n return false;\n }\n while (startI + i < maxI && centerJ + i < maxJ && !image.get(centerJ + i, startI + i) &&\n stateCount[3] < maxCount) {\n stateCount[3]++;\n i++;\n }\n if (startI + i >= maxI || centerJ + i >= maxJ || stateCount[3] >= maxCount) {\n return false;\n }\n while (startI + i < maxI && centerJ + i < maxJ && image.get(centerJ + i, startI + i) &&\n stateCount[4] < maxCount) {\n stateCount[4]++;\n i++;\n }\n if (stateCount[4] >= maxCount) {\n return false;\n }\n // If we found a finder-pattern-like section, but its size is more than 100% different than\n // the original, assume it's a false positive\n const stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] + stateCount[4];\n return Math.abs(stateCountTotal - originalStateCountTotal) < 2 * originalStateCountTotal &&\n FinderPatternFinder.foundPatternCross(stateCount);\n }\n /**\n *After a horizontal scan finds a potential finder pattern, this method\n * \"cross-checks\" by scanning down vertically through the center of the possible\n * finder pattern to see if the same proportion is detected.
\n *\n * @param startI row where a finder pattern was detected\n * @param centerJ center of the section that appears to cross a finder pattern\n * @param maxCount maximum reasonable number of modules that should be\n * observed in any reading state, based on the results of the horizontal scan\n * @return vertical center of finder pattern, or {@link Float#NaN} if not found\n */\n crossCheckVertical(startI /*int*/, centerJ /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n const image = this.image;\n const maxI = image.getHeight();\n const stateCount = this.getCrossCheckStateCount();\n // Start counting up from center\n let i = startI;\n while (i >= 0 && image.get(centerJ, i)) {\n stateCount[2]++;\n i--;\n }\n if (i < 0) {\n return NaN;\n }\n while (i >= 0 && !image.get(centerJ, i) && stateCount[1] <= maxCount) {\n stateCount[1]++;\n i--;\n }\n // If already too many modules in this state or ran off the edge:\n if (i < 0 || stateCount[1] > maxCount) {\n return NaN;\n }\n while (i >= 0 && image.get(centerJ, i) && stateCount[0] <= maxCount) {\n stateCount[0]++;\n i--;\n }\n if (stateCount[0] > maxCount) {\n return NaN;\n }\n // Now also count down from center\n i = startI + 1;\n while (i < maxI && image.get(centerJ, i)) {\n stateCount[2]++;\n i++;\n }\n if (i === maxI) {\n return NaN;\n }\n while (i < maxI && !image.get(centerJ, i) && stateCount[3] < maxCount) {\n stateCount[3]++;\n i++;\n }\n if (i === maxI || stateCount[3] >= maxCount) {\n return NaN;\n }\n while (i < maxI && image.get(centerJ, i) && stateCount[4] < maxCount) {\n stateCount[4]++;\n i++;\n }\n if (stateCount[4] >= maxCount) {\n return NaN;\n }\n // If we found a finder-pattern-like section, but its size is more than 40% different than\n // the original, assume it's a false positive\n const stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] +\n stateCount[4];\n if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= 2 * originalStateCountTotal) {\n return NaN;\n }\n return FinderPatternFinder.foundPatternCross(stateCount) ? FinderPatternFinder.centerFromEnd(stateCount, i) : NaN;\n }\n /**\n *Like {@link #crossCheckVertical(int, int, int, int)}, and in fact is basically identical,\n * except it reads horizontally instead of vertically. This is used to cross-cross\n * check a vertical cross check and locate the real center of the alignment pattern.
\n */\n crossCheckHorizontal(startJ /*int*/, centerI /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {\n const image = this.image;\n const maxJ = image.getWidth();\n const stateCount = this.getCrossCheckStateCount();\n let j = startJ;\n while (j >= 0 && image.get(j, centerI)) {\n stateCount[2]++;\n j--;\n }\n if (j < 0) {\n return NaN;\n }\n while (j >= 0 && !image.get(j, centerI) && stateCount[1] <= maxCount) {\n stateCount[1]++;\n j--;\n }\n if (j < 0 || stateCount[1] > maxCount) {\n return NaN;\n }\n while (j >= 0 && image.get(j, centerI) && stateCount[0] <= maxCount) {\n stateCount[0]++;\n j--;\n }\n if (stateCount[0] > maxCount) {\n return NaN;\n }\n j = startJ + 1;\n while (j < maxJ && image.get(j, centerI)) {\n stateCount[2]++;\n j++;\n }\n if (j === maxJ) {\n return NaN;\n }\n while (j < maxJ && !image.get(j, centerI) && stateCount[3] < maxCount) {\n stateCount[3]++;\n j++;\n }\n if (j === maxJ || stateCount[3] >= maxCount) {\n return NaN;\n }\n while (j < maxJ && image.get(j, centerI) && stateCount[4] < maxCount) {\n stateCount[4]++;\n j++;\n }\n if (stateCount[4] >= maxCount) {\n return NaN;\n }\n // If we found a finder-pattern-like section, but its size is significantly different than\n // the original, assume it's a false positive\n const stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] +\n stateCount[4];\n if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= originalStateCountTotal) {\n return NaN;\n }\n return FinderPatternFinder.foundPatternCross(stateCount) ? FinderPatternFinder.centerFromEnd(stateCount, j) : NaN;\n }\n /**\n *This is called when a horizontal scan finds a possible alignment pattern. It will\n * cross check with a vertical scan, and if successful, will, ah, cross-cross-check\n * with another horizontal scan. This is needed primarily to locate the real horizontal\n * center of the pattern in cases of extreme skew.\n * And then we cross-cross-cross check with another diagonal scan.
\n *\n *If that succeeds the finder pattern location is added to a list that tracks\n * the number of times each location has been nearly-matched as a finder pattern.\n * Each additional find is more evidence that the location is in fact a finder\n * pattern center\n *\n * @param stateCount reading state module counts from horizontal scan\n * @param i row where finder pattern may be found\n * @param j end of possible finder pattern in row\n * @param pureBarcode true if in \"pure barcode\" mode\n * @return true if a finder pattern candidate was found this time\n */\n handlePossibleCenter(stateCount, i /*int*/, j /*int*/, pureBarcode) {\n const stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] +\n stateCount[4];\n let centerJ = FinderPatternFinder.centerFromEnd(stateCount, j);\n let centerI = this.crossCheckVertical(i, /*(int) */ Math.floor(centerJ), stateCount[2], stateCountTotal);\n if (!isNaN(centerI)) {\n // Re-cross check\n centerJ = this.crossCheckHorizontal(/*(int) */ Math.floor(centerJ), /*(int) */ Math.floor(centerI), stateCount[2], stateCountTotal);\n if (!isNaN(centerJ) &&\n (!pureBarcode || this.crossCheckDiagonal(/*(int) */ Math.floor(centerI), /*(int) */ Math.floor(centerJ), stateCount[2], stateCountTotal))) {\n const estimatedModuleSize = stateCountTotal / 7.0;\n let found = false;\n const possibleCenters = this.possibleCenters;\n for (let index = 0, length = possibleCenters.length; index < length; index++) {\n const center = possibleCenters[index];\n // Look for about the same center and module size:\n if (center.aboutEquals(estimatedModuleSize, centerI, centerJ)) {\n possibleCenters[index] = center.combineEstimate(centerI, centerJ, estimatedModuleSize);\n found = true;\n break;\n }\n }\n if (!found) {\n const point = new FinderPattern$1(centerJ, centerI, estimatedModuleSize);\n possibleCenters.push(point);\n if (this.resultPointCallback !== null && this.resultPointCallback !== undefined) {\n this.resultPointCallback.foundPossibleResultPoint(point);\n }\n }\n return true;\n }\n }\n return false;\n }\n /**\n * @return number of rows we could safely skip during scanning, based on the first\n * two finder patterns that have been located. In some cases their position will\n * allow us to infer that the third pattern must lie below a certain point farther\n * down in the image.\n */\n findRowSkip() {\n const max = this.possibleCenters.length;\n if (max <= 1) {\n return 0;\n }\n let firstConfirmedCenter = null;\n for (const center of this.possibleCenters) {\n if (center.getCount() >= FinderPatternFinder.CENTER_QUORUM) {\n if (firstConfirmedCenter == null) {\n firstConfirmedCenter = center;\n }\n else {\n // We have two confirmed centers\n // How far down can we skip before resuming looking for the next\n // pattern? In the worst case, only the difference between the\n // difference in the x / y coordinates of the two centers.\n // This is the case where you find top left last.\n this.hasSkipped = true;\n return /*(int) */ Math.floor((Math.abs(firstConfirmedCenter.getX() - center.getX()) -\n Math.abs(firstConfirmedCenter.getY() - center.getY())) / 2);\n }\n }\n }\n return 0;\n }\n /**\n * @return true iff we have found at least 3 finder patterns that have been detected\n * at least {@link #CENTER_QUORUM} times each, and, the estimated module size of the\n * candidates is \"pretty similar\"\n */\n haveMultiplyConfirmedCenters() {\n let confirmedCount = 0;\n let totalModuleSize = 0.0;\n const max = this.possibleCenters.length;\n for (const pattern of this.possibleCenters) {\n if (pattern.getCount() >= FinderPatternFinder.CENTER_QUORUM) {\n confirmedCount++;\n totalModuleSize += pattern.getEstimatedModuleSize();\n }\n }\n if (confirmedCount < 3) {\n return false;\n }\n // OK, we have at least 3 confirmed centers, but, it's possible that one is a \"false positive\"\n // and that we need to keep looking. We detect this by asking if the estimated module sizes\n // vary too much. We arbitrarily say that when the total deviation from average exceeds\n // 5% of the total module size estimates, it's too much.\n const average = totalModuleSize / max;\n let totalDeviation = 0.0;\n for (const pattern of this.possibleCenters) {\n totalDeviation += Math.abs(pattern.getEstimatedModuleSize() - average);\n }\n return totalDeviation <= 0.05 * totalModuleSize;\n }\n /**\n * @return the 3 best {@link FinderPattern}s from our list of candidates. The \"best\" are\n * those that have been detected at least {@link #CENTER_QUORUM} times, and whose module\n * size differs from the average among those patterns the least\n * @throws NotFoundException if 3 such finder patterns do not exist\n */\n selectBestPatterns() {\n const startSize = this.possibleCenters.length;\n if (startSize < 3) {\n // Couldn't find enough finder patterns\n throw new NotFoundException();\n }\n const possibleCenters = this.possibleCenters;\n let average;\n // Filter outlier possibilities whose module size is too different\n if (startSize > 3) {\n // But we can only afford to do so if we have at least 4 possibilities to choose from\n let totalModuleSize = 0.0;\n let square = 0.0;\n for (const center of this.possibleCenters) {\n const size = center.getEstimatedModuleSize();\n totalModuleSize += size;\n square += size * size;\n }\n average = totalModuleSize / startSize;\n let stdDev = Math.sqrt(square / startSize - average * average);\n possibleCenters.sort(\n /**\n *
Orders by furthest from average
\n */\n // FurthestFromAverageComparator implements ComparatorOrders by {@link FinderPattern#getCount()}, descending.
\n */\n // CenterComparator implements ComparatorEncapsulates logic that can detect a QR Code in an image, even if the QR Code\n * is rotated or skewed, or partially obscured.
\n *\n * @author Sean Owen\n */\n class Detector$2 {\n constructor(image) {\n this.image = image;\n }\n getImage() {\n return this.image;\n }\n getResultPointCallback() {\n return this.resultPointCallback;\n }\n /**\n *Detects a QR Code in an image.
\n *\n * @return {@link DetectorResult} encapsulating results of detecting a QR Code\n * @throws NotFoundException if QR Code cannot be found\n * @throws FormatException if a QR Code cannot be decoded\n */\n // public detect(): DetectorResult /*throws NotFoundException, FormatException*/ {\n // return detect(null)\n // }\n /**\n *Detects a QR Code in an image.
\n *\n * @param hints optional hints to detector\n * @return {@link DetectorResult} encapsulating results of detecting a QR Code\n * @throws NotFoundException if QR Code cannot be found\n * @throws FormatException if a QR Code cannot be decoded\n */\n detect(hints) {\n this.resultPointCallback = (hints === null || hints === undefined) ? null :\n /*(ResultPointCallback) */ hints.get(DecodeHintType$1.NEED_RESULT_POINT_CALLBACK);\n const finder = new FinderPatternFinder(this.image, this.resultPointCallback);\n const info = finder.find(hints);\n return this.processFinderPatternInfo(info);\n }\n processFinderPatternInfo(info) {\n const topLeft = info.getTopLeft();\n const topRight = info.getTopRight();\n const bottomLeft = info.getBottomLeft();\n const moduleSize = this.calculateModuleSize(topLeft, topRight, bottomLeft);\n if (moduleSize < 1.0) {\n throw new NotFoundException('No pattern found in proccess finder.');\n }\n const dimension = Detector$2.computeDimension(topLeft, topRight, bottomLeft, moduleSize);\n const provisionalVersion = Version$1.getProvisionalVersionForDimension(dimension);\n const modulesBetweenFPCenters = provisionalVersion.getDimensionForVersion() - 7;\n let alignmentPattern = null;\n // Anything above version 1 has an alignment pattern\n if (provisionalVersion.getAlignmentPatternCenters().length > 0) {\n // Guess where a \"bottom right\" finder pattern would have been\n const bottomRightX = topRight.getX() - topLeft.getX() + bottomLeft.getX();\n const bottomRightY = topRight.getY() - topLeft.getY() + bottomLeft.getY();\n // Estimate that alignment pattern is closer by 3 modules\n // from \"bottom right\" to known top left location\n const correctionToTopLeft = 1.0 - 3.0 / modulesBetweenFPCenters;\n const estAlignmentX = /*(int) */ Math.floor(topLeft.getX() + correctionToTopLeft * (bottomRightX - topLeft.getX()));\n const estAlignmentY = /*(int) */ Math.floor(topLeft.getY() + correctionToTopLeft * (bottomRightY - topLeft.getY()));\n // Kind of arbitrary -- expand search radius before giving up\n for (let i = 4; i <= 16; i <<= 1) {\n try {\n alignmentPattern = this.findAlignmentInRegion(moduleSize, estAlignmentX, estAlignmentY, i);\n break;\n }\n catch (re /*NotFoundException*/) {\n if (!(re instanceof NotFoundException)) {\n throw re;\n }\n // try next round\n }\n }\n // If we didn't find alignment pattern... well try anyway without it\n }\n const transform = Detector$2.createTransform(topLeft, topRight, bottomLeft, alignmentPattern, dimension);\n const bits = Detector$2.sampleGrid(this.image, transform, dimension);\n let points;\n if (alignmentPattern === null) {\n points = [bottomLeft, topLeft, topRight];\n }\n else {\n points = [bottomLeft, topLeft, topRight, alignmentPattern];\n }\n return new DetectorResult(bits, points);\n }\n static createTransform(topLeft, topRight, bottomLeft, alignmentPattern, dimension /*int*/) {\n const dimMinusThree = dimension - 3.5;\n let bottomRightX; /*float*/\n let bottomRightY; /*float*/\n let sourceBottomRightX; /*float*/\n let sourceBottomRightY; /*float*/\n if (alignmentPattern !== null) {\n bottomRightX = alignmentPattern.getX();\n bottomRightY = alignmentPattern.getY();\n sourceBottomRightX = dimMinusThree - 3.0;\n sourceBottomRightY = sourceBottomRightX;\n }\n else {\n // Don't have an alignment pattern, just make up the bottom-right point\n bottomRightX = (topRight.getX() - topLeft.getX()) + bottomLeft.getX();\n bottomRightY = (topRight.getY() - topLeft.getY()) + bottomLeft.getY();\n sourceBottomRightX = dimMinusThree;\n sourceBottomRightY = dimMinusThree;\n }\n return PerspectiveTransform.quadrilateralToQuadrilateral(3.5, 3.5, dimMinusThree, 3.5, sourceBottomRightX, sourceBottomRightY, 3.5, dimMinusThree, topLeft.getX(), topLeft.getY(), topRight.getX(), topRight.getY(), bottomRightX, bottomRightY, bottomLeft.getX(), bottomLeft.getY());\n }\n static sampleGrid(image, transform, dimension /*int*/) {\n const sampler = GridSamplerInstance.getInstance();\n return sampler.sampleGridWithTransform(image, dimension, dimension, transform);\n }\n /**\n *Computes the dimension (number of modules on a size) of the QR Code based on the position\n * of the finder patterns and estimated module size.
\n */\n static computeDimension(topLeft, topRight, bottomLeft, moduleSize /*float*/) {\n const tltrCentersDimension = MathUtils.round(ResultPoint.distance(topLeft, topRight) / moduleSize);\n const tlblCentersDimension = MathUtils.round(ResultPoint.distance(topLeft, bottomLeft) / moduleSize);\n let dimension = Math.floor((tltrCentersDimension + tlblCentersDimension) / 2) + 7;\n switch (dimension & 0x03) { // mod 4\n case 0:\n dimension++;\n break;\n // 1? do nothing\n case 2:\n dimension--;\n break;\n case 3:\n throw new NotFoundException('Dimensions could be not found.');\n }\n return dimension;\n }\n /**\n *Computes an average estimated module size based on estimated derived from the positions\n * of the three finder patterns.
\n *\n * @param topLeft detected top-left finder pattern center\n * @param topRight detected top-right finder pattern center\n * @param bottomLeft detected bottom-left finder pattern center\n * @return estimated module size\n */\n calculateModuleSize(topLeft, topRight, bottomLeft) {\n // Take the average\n return (this.calculateModuleSizeOneWay(topLeft, topRight) +\n this.calculateModuleSizeOneWay(topLeft, bottomLeft)) / 2.0;\n }\n /**\n *Estimates module size based on two finder patterns -- it uses\n * {@link #sizeOfBlackWhiteBlackRunBothWays(int, int, int, int)} to figure the\n * width of each, measuring along the axis between their centers.
\n */\n calculateModuleSizeOneWay(pattern, otherPattern) {\n const moduleSizeEst1 = this.sizeOfBlackWhiteBlackRunBothWays(/*(int) */ Math.floor(pattern.getX()), \n /*(int) */ Math.floor(pattern.getY()), \n /*(int) */ Math.floor(otherPattern.getX()), \n /*(int) */ Math.floor(otherPattern.getY()));\n const moduleSizeEst2 = this.sizeOfBlackWhiteBlackRunBothWays(/*(int) */ Math.floor(otherPattern.getX()), \n /*(int) */ Math.floor(otherPattern.getY()), \n /*(int) */ Math.floor(pattern.getX()), \n /*(int) */ Math.floor(pattern.getY()));\n if (isNaN(moduleSizeEst1)) {\n return moduleSizeEst2 / 7.0;\n }\n if (isNaN(moduleSizeEst2)) {\n return moduleSizeEst1 / 7.0;\n }\n // Average them, and divide by 7 since we've counted the width of 3 black modules,\n // and 1 white and 1 black module on either side. Ergo, divide sum by 14.\n return (moduleSizeEst1 + moduleSizeEst2) / 14.0;\n }\n /**\n * See {@link #sizeOfBlackWhiteBlackRun(int, int, int, int)}; computes the total width of\n * a finder pattern by looking for a black-white-black run from the center in the direction\n * of another point (another finder pattern center), and in the opposite direction too.\n */\n sizeOfBlackWhiteBlackRunBothWays(fromX /*int*/, fromY /*int*/, toX /*int*/, toY /*int*/) {\n let result = this.sizeOfBlackWhiteBlackRun(fromX, fromY, toX, toY);\n // Now count other way -- don't run off image though of course\n let scale = 1.0;\n let otherToX = fromX - (toX - fromX);\n if (otherToX < 0) {\n scale = fromX / /*(float) */ (fromX - otherToX);\n otherToX = 0;\n }\n else if (otherToX >= this.image.getWidth()) {\n scale = (this.image.getWidth() - 1 - fromX) / /*(float) */ (otherToX - fromX);\n otherToX = this.image.getWidth() - 1;\n }\n let otherToY = /*(int) */ Math.floor(fromY - (toY - fromY) * scale);\n scale = 1.0;\n if (otherToY < 0) {\n scale = fromY / /*(float) */ (fromY - otherToY);\n otherToY = 0;\n }\n else if (otherToY >= this.image.getHeight()) {\n scale = (this.image.getHeight() - 1 - fromY) / /*(float) */ (otherToY - fromY);\n otherToY = this.image.getHeight() - 1;\n }\n otherToX = /*(int) */ Math.floor(fromX + (otherToX - fromX) * scale);\n result += this.sizeOfBlackWhiteBlackRun(fromX, fromY, otherToX, otherToY);\n // Middle pixel is double-counted this way; subtract 1\n return result - 1.0;\n }\n /**\n *This method traces a line from a point in the image, in the direction towards another point.\n * It begins in a black region, and keeps going until it finds white, then black, then white again.\n * It reports the distance from the start to this point.
\n *\n *This is used when figuring out how wide a finder pattern is, when the finder pattern\n * may be skewed or rotated.
\n */\n sizeOfBlackWhiteBlackRun(fromX /*int*/, fromY /*int*/, toX /*int*/, toY /*int*/) {\n // Mild variant of Bresenham's algorithm\n // see http://en.wikipedia.org/wiki/Bresenham's_line_algorithm\n const steep = Math.abs(toY - fromY) > Math.abs(toX - fromX);\n if (steep) {\n let temp = fromX;\n fromX = fromY;\n fromY = temp;\n temp = toX;\n toX = toY;\n toY = temp;\n }\n const dx = Math.abs(toX - fromX);\n const dy = Math.abs(toY - fromY);\n let error = -dx / 2;\n const xstep = fromX < toX ? 1 : -1;\n const ystep = fromY < toY ? 1 : -1;\n // In black pixels, looking for white, first or second time.\n let state = 0;\n // Loop up until x == toX, but not beyond\n const xLimit = toX + xstep;\n for (let x = fromX, y = fromY; x !== xLimit; x += xstep) {\n const realX = steep ? y : x;\n const realY = steep ? x : y;\n // Does current pixel mean we have moved white to black or vice versa?\n // Scanning black in state 0,2 and white in state 1, so if we find the wrong\n // color, advance to next state or end if we are in state 2 already\n if ((state === 1) === this.image.get(realX, realY)) {\n if (state === 2) {\n return MathUtils.distance(x, y, fromX, fromY);\n }\n state++;\n }\n error += dy;\n if (error > 0) {\n if (y === toY) {\n break;\n }\n y += ystep;\n error -= dx;\n }\n }\n // Found black-white-black; give the benefit of the doubt that the next pixel outside the image\n // is \"white\" so this last point at (toX+xStep,toY) is the right ending. This is really a\n // small approximation; (toX+xStep,toY+yStep) might be really correct. Ignore this.\n if (state === 2) {\n return MathUtils.distance(toX + xstep, toY, fromX, fromY);\n }\n // else we didn't find even black-white-black; no estimate is really possible\n return NaN;\n }\n /**\n *Attempts to locate an alignment pattern in a limited region of the image, which is\n * guessed to contain it. This method uses {@link AlignmentPattern}.
\n *\n * @param overallEstModuleSize estimated module size so far\n * @param estAlignmentX x coordinate of center of area probably containing alignment pattern\n * @param estAlignmentY y coordinate of above\n * @param allowanceFactor number of pixels in all directions to search from the center\n * @return {@link AlignmentPattern} if found, or null otherwise\n * @throws NotFoundException if an unexpected error occurs during detection\n */\n findAlignmentInRegion(overallEstModuleSize /*float*/, estAlignmentX /*int*/, estAlignmentY /*int*/, allowanceFactor /*float*/) {\n // Look for an alignment pattern (3 modules in size) around where it\n // should be\n const allowance = /*(int) */ Math.floor(allowanceFactor * overallEstModuleSize);\n const alignmentAreaLeftX = Math.max(0, estAlignmentX - allowance);\n const alignmentAreaRightX = Math.min(this.image.getWidth() - 1, estAlignmentX + allowance);\n if (alignmentAreaRightX - alignmentAreaLeftX < overallEstModuleSize * 3) {\n throw new NotFoundException('Alignment top exceeds estimated module size.');\n }\n const alignmentAreaTopY = Math.max(0, estAlignmentY - allowance);\n const alignmentAreaBottomY = Math.min(this.image.getHeight() - 1, estAlignmentY + allowance);\n if (alignmentAreaBottomY - alignmentAreaTopY < overallEstModuleSize * 3) {\n throw new NotFoundException('Alignment bottom exceeds estimated module size.');\n }\n const alignmentFinder = new AlignmentPatternFinder(this.image, alignmentAreaLeftX, alignmentAreaTopY, alignmentAreaRightX - alignmentAreaLeftX, alignmentAreaBottomY - alignmentAreaTopY, overallEstModuleSize, this.resultPointCallback);\n return alignmentFinder.find();\n }\n }\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /*import java.util.List;*/\n /*import java.util.Map;*/\n /**\n * This implementation can detect and decode QR Codes in an image.\n *\n * @author Sean Owen\n */\n class QRCodeReader {\n constructor() {\n this.decoder = new Decoder$2();\n }\n getDecoder() {\n return this.decoder;\n }\n /**\n * Locates and decodes a QR code in an image.\n *\n * @return a representing: string the content encoded by the QR code\n * @throws NotFoundException if a QR code cannot be found\n * @throws FormatException if a QR code cannot be decoded\n * @throws ChecksumException if error correction fails\n */\n /*@Override*/\n // public decode(image: BinaryBitmap): Result /*throws NotFoundException, ChecksumException, FormatException */ {\n // return this.decode(image, null)\n // }\n /*@Override*/\n decode(image, hints) {\n let decoderResult;\n let points;\n if (hints !== undefined && hints !== null && undefined !== hints.get(DecodeHintType$1.PURE_BARCODE)) {\n const bits = QRCodeReader.extractPureBits(image.getBlackMatrix());\n decoderResult = this.decoder.decodeBitMatrix(bits, hints);\n points = QRCodeReader.NO_POINTS;\n }\n else {\n const detectorResult = new Detector$2(image.getBlackMatrix()).detect(hints);\n decoderResult = this.decoder.decodeBitMatrix(detectorResult.getBits(), hints);\n points = detectorResult.getPoints();\n }\n // If the code was mirrored: swap the bottom-left and the top-right points.\n if (decoderResult.getOther() instanceof QRCodeDecoderMetaData) {\n decoderResult.getOther().applyMirroredCorrection(points);\n }\n const result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), undefined, points, BarcodeFormat$1.QR_CODE, undefined);\n const byteSegments = decoderResult.getByteSegments();\n if (byteSegments !== null) {\n result.putMetadata(ResultMetadataType$1.BYTE_SEGMENTS, byteSegments);\n }\n const ecLevel = decoderResult.getECLevel();\n if (ecLevel !== null) {\n result.putMetadata(ResultMetadataType$1.ERROR_CORRECTION_LEVEL, ecLevel);\n }\n if (decoderResult.hasStructuredAppend()) {\n result.putMetadata(ResultMetadataType$1.STRUCTURED_APPEND_SEQUENCE, decoderResult.getStructuredAppendSequenceNumber());\n result.putMetadata(ResultMetadataType$1.STRUCTURED_APPEND_PARITY, decoderResult.getStructuredAppendParity());\n }\n return result;\n }\n /*@Override*/\n reset() {\n // do nothing\n }\n /**\n * This method detects a code in a \"pure\" image -- that is, pure monochrome image\n * which contains only an unrotated, unskewed, image of a code, with some white border\n * around it. This is a specialized method that works exceptionally fast in this special\n * case.\n *\n * @see com.google.zxing.datamatrix.DataMatrixReader#extractPureBits(BitMatrix)\n */\n static extractPureBits(image) {\n const leftTopBlack = image.getTopLeftOnBit();\n const rightBottomBlack = image.getBottomRightOnBit();\n if (leftTopBlack === null || rightBottomBlack === null) {\n throw new NotFoundException();\n }\n const moduleSize = this.moduleSize(leftTopBlack, image);\n let top = leftTopBlack[1];\n let bottom = rightBottomBlack[1];\n let left = leftTopBlack[0];\n let right = rightBottomBlack[0];\n // Sanity check!\n if (left >= right || top >= bottom) {\n throw new NotFoundException();\n }\n if (bottom - top !== right - left) {\n // Special case, where bottom-right module wasn't black so we found something else in the last row\n // Assume it's a square, so use height as the width\n right = left + (bottom - top);\n if (right >= image.getWidth()) {\n // Abort if that would not make sense -- off image\n throw new NotFoundException();\n }\n }\n const matrixWidth = Math.round((right - left + 1) / moduleSize);\n const matrixHeight = Math.round((bottom - top + 1) / moduleSize);\n if (matrixWidth <= 0 || matrixHeight <= 0) {\n throw new NotFoundException();\n }\n if (matrixHeight !== matrixWidth) {\n // Only possibly decode square regions\n throw new NotFoundException();\n }\n // Push in the \"border\" by half the module width so that we start\n // sampling in the middle of the module. Just in case the image is a\n // little off, this will help recover.\n const nudge = /*(int) */ Math.floor(moduleSize / 2.0);\n top += nudge;\n left += nudge;\n // But careful that this does not sample off the edge\n // \"right\" is the farthest-right valid pixel location -- right+1 is not necessarily\n // This is positive by how much the inner x loop below would be too large\n const nudgedTooFarRight = left + /*(int) */ Math.floor((matrixWidth - 1) * moduleSize) - right;\n if (nudgedTooFarRight > 0) {\n if (nudgedTooFarRight > nudge) {\n // Neither way fits; abort\n throw new NotFoundException();\n }\n left -= nudgedTooFarRight;\n }\n // See logic above\n const nudgedTooFarDown = top + /*(int) */ Math.floor((matrixHeight - 1) * moduleSize) - bottom;\n if (nudgedTooFarDown > 0) {\n if (nudgedTooFarDown > nudge) {\n // Neither way fits; abort\n throw new NotFoundException();\n }\n top -= nudgedTooFarDown;\n }\n // Now just read off the bits\n const bits = new BitMatrix(matrixWidth, matrixHeight);\n for (let y = 0; y < matrixHeight; y++) {\n const iOffset = top + /*(int) */ Math.floor(y * moduleSize);\n for (let x = 0; x < matrixWidth; x++) {\n if (image.get(left + /*(int) */ Math.floor(x * moduleSize), iOffset)) {\n bits.set(x, y);\n }\n }\n }\n return bits;\n }\n static moduleSize(leftTopBlack, image) {\n const height = image.getHeight();\n const width = image.getWidth();\n let x = leftTopBlack[0];\n let y = leftTopBlack[1];\n let inBlack = true;\n let transitions = 0;\n while (x < width && y < height) {\n if (inBlack !== image.get(x, y)) {\n if (++transitions === 5) {\n break;\n }\n inBlack = !inBlack;\n }\n x++;\n y++;\n }\n if (x === width || y === height) {\n throw new NotFoundException();\n }\n return (x - leftTopBlack[0]) / 7.0;\n }\n }\n QRCodeReader.NO_POINTS = new Array();\n\n /*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * @author SITA Lab (kevin.osullivan@sita.aero)\n * @author Guenther Grau\n */\n /*public final*/ class PDF417Common {\n PDF417Common() {\n }\n /**\n * @param moduleBitCount values to sum\n * @return sum of values\n * @deprecated call {@link MathUtils#sum(int[])}\n */\n // @Deprecated\n static getBitCountSum(moduleBitCount) {\n return MathUtils.sum(moduleBitCount);\n }\n static toIntArray(list) {\n if (list == null || !list.length) {\n return PDF417Common.EMPTY_INT_ARRAY;\n }\n const result = new Int32Array(list.length);\n let i = 0;\n for (const integer of list) {\n result[i++] = integer;\n }\n return result;\n }\n /**\n * @param symbol encoded symbol to translate to a codeword\n * @return the codeword corresponding to the symbol.\n */\n static getCodeword(symbol /*int*/) {\n const i = Arrays.binarySearch(PDF417Common.SYMBOL_TABLE, symbol & 0x3FFFF);\n if (i < 0) {\n return -1;\n }\n return (PDF417Common.CODEWORD_TABLE[i] - 1) % PDF417Common.NUMBER_OF_CODEWORDS;\n }\n }\n PDF417Common.NUMBER_OF_CODEWORDS = 929;\n // Maximum Codewords (Data + Error).\n PDF417Common.MAX_CODEWORDS_IN_BARCODE = PDF417Common.NUMBER_OF_CODEWORDS - 1;\n PDF417Common.MIN_ROWS_IN_BARCODE = 3;\n PDF417Common.MAX_ROWS_IN_BARCODE = 90;\n // One left row indication column + max 30 data columns + one right row indicator column\n // public static /*final*/ MAX_CODEWORDS_IN_ROW: /*int*/ number = 32;\n PDF417Common.MODULES_IN_CODEWORD = 17;\n PDF417Common.MODULES_IN_STOP_PATTERN = 18;\n PDF417Common.BARS_IN_MODULE = 8;\n PDF417Common.EMPTY_INT_ARRAY = new Int32Array([]);\n /**\n * The sorted table of all possible symbols. Extracted from the PDF417\n * specification. The index of a symbol in this table corresponds to the\n * index into the codeword table.\n */\n PDF417Common.SYMBOL_TABLE = Int32Array.from([\n 0x1025e, 0x1027a, 0x1029e, 0x102bc, 0x102f2, 0x102f4, 0x1032e, 0x1034e, 0x1035c, 0x10396, 0x103a6, 0x103ac,\n 0x10422, 0x10428, 0x10436, 0x10442, 0x10444, 0x10448, 0x10450, 0x1045e, 0x10466, 0x1046c, 0x1047a, 0x10482,\n 0x1049e, 0x104a0, 0x104bc, 0x104c6, 0x104d8, 0x104ee, 0x104f2, 0x104f4, 0x10504, 0x10508, 0x10510, 0x1051e,\n 0x10520, 0x1053c, 0x10540, 0x10578, 0x10586, 0x1058c, 0x10598, 0x105b0, 0x105be, 0x105ce, 0x105dc, 0x105e2,\n 0x105e4, 0x105e8, 0x105f6, 0x1062e, 0x1064e, 0x1065c, 0x1068e, 0x1069c, 0x106b8, 0x106de, 0x106fa, 0x10716,\n 0x10726, 0x1072c, 0x10746, 0x1074c, 0x10758, 0x1076e, 0x10792, 0x10794, 0x107a2, 0x107a4, 0x107a8, 0x107b6,\n 0x10822, 0x10828, 0x10842, 0x10848, 0x10850, 0x1085e, 0x10866, 0x1086c, 0x1087a, 0x10882, 0x10884, 0x10890,\n 0x1089e, 0x108a0, 0x108bc, 0x108c6, 0x108cc, 0x108d8, 0x108ee, 0x108f2, 0x108f4, 0x10902, 0x10908, 0x1091e,\n 0x10920, 0x1093c, 0x10940, 0x10978, 0x10986, 0x10998, 0x109b0, 0x109be, 0x109ce, 0x109dc, 0x109e2, 0x109e4,\n 0x109e8, 0x109f6, 0x10a08, 0x10a10, 0x10a1e, 0x10a20, 0x10a3c, 0x10a40, 0x10a78, 0x10af0, 0x10b06, 0x10b0c,\n 0x10b18, 0x10b30, 0x10b3e, 0x10b60, 0x10b7c, 0x10b8e, 0x10b9c, 0x10bb8, 0x10bc2, 0x10bc4, 0x10bc8, 0x10bd0,\n 0x10bde, 0x10be6, 0x10bec, 0x10c2e, 0x10c4e, 0x10c5c, 0x10c62, 0x10c64, 0x10c68, 0x10c76, 0x10c8e, 0x10c9c,\n 0x10cb8, 0x10cc2, 0x10cc4, 0x10cc8, 0x10cd0, 0x10cde, 0x10ce6, 0x10cec, 0x10cfa, 0x10d0e, 0x10d1c, 0x10d38,\n 0x10d70, 0x10d7e, 0x10d82, 0x10d84, 0x10d88, 0x10d90, 0x10d9e, 0x10da0, 0x10dbc, 0x10dc6, 0x10dcc, 0x10dd8,\n 0x10dee, 0x10df2, 0x10df4, 0x10e16, 0x10e26, 0x10e2c, 0x10e46, 0x10e58, 0x10e6e, 0x10e86, 0x10e8c, 0x10e98,\n 0x10eb0, 0x10ebe, 0x10ece, 0x10edc, 0x10f0a, 0x10f12, 0x10f14, 0x10f22, 0x10f28, 0x10f36, 0x10f42, 0x10f44,\n 0x10f48, 0x10f50, 0x10f5e, 0x10f66, 0x10f6c, 0x10fb2, 0x10fb4, 0x11022, 0x11028, 0x11042, 0x11048, 0x11050,\n 0x1105e, 0x1107a, 0x11082, 0x11084, 0x11090, 0x1109e, 0x110a0, 0x110bc, 0x110c6, 0x110cc, 0x110d8, 0x110ee,\n 0x110f2, 0x110f4, 0x11102, 0x1111e, 0x11120, 0x1113c, 0x11140, 0x11178, 0x11186, 0x11198, 0x111b0, 0x111be,\n 0x111ce, 0x111dc, 0x111e2, 0x111e4, 0x111e8, 0x111f6, 0x11208, 0x1121e, 0x11220, 0x11278, 0x112f0, 0x1130c,\n 0x11330, 0x1133e, 0x11360, 0x1137c, 0x1138e, 0x1139c, 0x113b8, 0x113c2, 0x113c8, 0x113d0, 0x113de, 0x113e6,\n 0x113ec, 0x11408, 0x11410, 0x1141e, 0x11420, 0x1143c, 0x11440, 0x11478, 0x114f0, 0x115e0, 0x1160c, 0x11618,\n 0x11630, 0x1163e, 0x11660, 0x1167c, 0x116c0, 0x116f8, 0x1171c, 0x11738, 0x11770, 0x1177e, 0x11782, 0x11784,\n 0x11788, 0x11790, 0x1179e, 0x117a0, 0x117bc, 0x117c6, 0x117cc, 0x117d8, 0x117ee, 0x1182e, 0x11834, 0x1184e,\n 0x1185c, 0x11862, 0x11864, 0x11868, 0x11876, 0x1188e, 0x1189c, 0x118b8, 0x118c2, 0x118c8, 0x118d0, 0x118de,\n 0x118e6, 0x118ec, 0x118fa, 0x1190e, 0x1191c, 0x11938, 0x11970, 0x1197e, 0x11982, 0x11984, 0x11990, 0x1199e,\n 0x119a0, 0x119bc, 0x119c6, 0x119cc, 0x119d8, 0x119ee, 0x119f2, 0x119f4, 0x11a0e, 0x11a1c, 0x11a38, 0x11a70,\n 0x11a7e, 0x11ae0, 0x11afc, 0x11b08, 0x11b10, 0x11b1e, 0x11b20, 0x11b3c, 0x11b40, 0x11b78, 0x11b8c, 0x11b98,\n 0x11bb0, 0x11bbe, 0x11bce, 0x11bdc, 0x11be2, 0x11be4, 0x11be8, 0x11bf6, 0x11c16, 0x11c26, 0x11c2c, 0x11c46,\n 0x11c4c, 0x11c58, 0x11c6e, 0x11c86, 0x11c98, 0x11cb0, 0x11cbe, 0x11cce, 0x11cdc, 0x11ce2, 0x11ce4, 0x11ce8,\n 0x11cf6, 0x11d06, 0x11d0c, 0x11d18, 0x11d30, 0x11d3e, 0x11d60, 0x11d7c, 0x11d8e, 0x11d9c, 0x11db8, 0x11dc4,\n 0x11dc8, 0x11dd0, 0x11dde, 0x11de6, 0x11dec, 0x11dfa, 0x11e0a, 0x11e12, 0x11e14, 0x11e22, 0x11e24, 0x11e28,\n 0x11e36, 0x11e42, 0x11e44, 0x11e50, 0x11e5e, 0x11e66, 0x11e6c, 0x11e82, 0x11e84, 0x11e88, 0x11e90, 0x11e9e,\n 0x11ea0, 0x11ebc, 0x11ec6, 0x11ecc, 0x11ed8, 0x11eee, 0x11f1a, 0x11f2e, 0x11f32, 0x11f34, 0x11f4e, 0x11f5c,\n 0x11f62, 0x11f64, 0x11f68, 0x11f76, 0x12048, 0x1205e, 0x12082, 0x12084, 0x12090, 0x1209e, 0x120a0, 0x120bc,\n 0x120d8, 0x120f2, 0x120f4, 0x12108, 0x1211e, 0x12120, 0x1213c, 0x12140, 0x12178, 0x12186, 0x12198, 0x121b0,\n 0x121be, 0x121e2, 0x121e4, 0x121e8, 0x121f6, 0x12204, 0x12210, 0x1221e, 0x12220, 0x12278, 0x122f0, 0x12306,\n 0x1230c, 0x12330, 0x1233e, 0x12360, 0x1237c, 0x1238e, 0x1239c, 0x123b8, 0x123c2, 0x123c8, 0x123d0, 0x123e6,\n 0x123ec, 0x1241e, 0x12420, 0x1243c, 0x124f0, 0x125e0, 0x12618, 0x1263e, 0x12660, 0x1267c, 0x126c0, 0x126f8,\n 0x12738, 0x12770, 0x1277e, 0x12782, 0x12784, 0x12790, 0x1279e, 0x127a0, 0x127bc, 0x127c6, 0x127cc, 0x127d8,\n 0x127ee, 0x12820, 0x1283c, 0x12840, 0x12878, 0x128f0, 0x129e0, 0x12bc0, 0x12c18, 0x12c30, 0x12c3e, 0x12c60,\n 0x12c7c, 0x12cc0, 0x12cf8, 0x12df0, 0x12e1c, 0x12e38, 0x12e70, 0x12e7e, 0x12ee0, 0x12efc, 0x12f04, 0x12f08,\n 0x12f10, 0x12f20, 0x12f3c, 0x12f40, 0x12f78, 0x12f86, 0x12f8c, 0x12f98, 0x12fb0, 0x12fbe, 0x12fce, 0x12fdc,\n 0x1302e, 0x1304e, 0x1305c, 0x13062, 0x13068, 0x1308e, 0x1309c, 0x130b8, 0x130c2, 0x130c8, 0x130d0, 0x130de,\n 0x130ec, 0x130fa, 0x1310e, 0x13138, 0x13170, 0x1317e, 0x13182, 0x13184, 0x13190, 0x1319e, 0x131a0, 0x131bc,\n 0x131c6, 0x131cc, 0x131d8, 0x131f2, 0x131f4, 0x1320e, 0x1321c, 0x13270, 0x1327e, 0x132e0, 0x132fc, 0x13308,\n 0x1331e, 0x13320, 0x1333c, 0x13340, 0x13378, 0x13386, 0x13398, 0x133b0, 0x133be, 0x133ce, 0x133dc, 0x133e2,\n 0x133e4, 0x133e8, 0x133f6, 0x1340e, 0x1341c, 0x13438, 0x13470, 0x1347e, 0x134e0, 0x134fc, 0x135c0, 0x135f8,\n 0x13608, 0x13610, 0x1361e, 0x13620, 0x1363c, 0x13640, 0x13678, 0x136f0, 0x1370c, 0x13718, 0x13730, 0x1373e,\n 0x13760, 0x1377c, 0x1379c, 0x137b8, 0x137c2, 0x137c4, 0x137c8, 0x137d0, 0x137de, 0x137e6, 0x137ec, 0x13816,\n 0x13826, 0x1382c, 0x13846, 0x1384c, 0x13858, 0x1386e, 0x13874, 0x13886, 0x13898, 0x138b0, 0x138be, 0x138ce,\n 0x138dc, 0x138e2, 0x138e4, 0x138e8, 0x13906, 0x1390c, 0x13930, 0x1393e, 0x13960, 0x1397c, 0x1398e, 0x1399c,\n 0x139b8, 0x139c8, 0x139d0, 0x139de, 0x139e6, 0x139ec, 0x139fa, 0x13a06, 0x13a0c, 0x13a18, 0x13a30, 0x13a3e,\n 0x13a60, 0x13a7c, 0x13ac0, 0x13af8, 0x13b0e, 0x13b1c, 0x13b38, 0x13b70, 0x13b7e, 0x13b88, 0x13b90, 0x13b9e,\n 0x13ba0, 0x13bbc, 0x13bcc, 0x13bd8, 0x13bee, 0x13bf2, 0x13bf4, 0x13c12, 0x13c14, 0x13c22, 0x13c24, 0x13c28,\n 0x13c36, 0x13c42, 0x13c48, 0x13c50, 0x13c5e, 0x13c66, 0x13c6c, 0x13c82, 0x13c84, 0x13c90, 0x13c9e, 0x13ca0,\n 0x13cbc, 0x13cc6, 0x13ccc, 0x13cd8, 0x13cee, 0x13d02, 0x13d04, 0x13d08, 0x13d10, 0x13d1e, 0x13d20, 0x13d3c,\n 0x13d40, 0x13d78, 0x13d86, 0x13d8c, 0x13d98, 0x13db0, 0x13dbe, 0x13dce, 0x13ddc, 0x13de4, 0x13de8, 0x13df6,\n 0x13e1a, 0x13e2e, 0x13e32, 0x13e34, 0x13e4e, 0x13e5c, 0x13e62, 0x13e64, 0x13e68, 0x13e76, 0x13e8e, 0x13e9c,\n 0x13eb8, 0x13ec2, 0x13ec4, 0x13ec8, 0x13ed0, 0x13ede, 0x13ee6, 0x13eec, 0x13f26, 0x13f2c, 0x13f3a, 0x13f46,\n 0x13f4c, 0x13f58, 0x13f6e, 0x13f72, 0x13f74, 0x14082, 0x1409e, 0x140a0, 0x140bc, 0x14104, 0x14108, 0x14110,\n 0x1411e, 0x14120, 0x1413c, 0x14140, 0x14178, 0x1418c, 0x14198, 0x141b0, 0x141be, 0x141e2, 0x141e4, 0x141e8,\n 0x14208, 0x14210, 0x1421e, 0x14220, 0x1423c, 0x14240, 0x14278, 0x142f0, 0x14306, 0x1430c, 0x14318, 0x14330,\n 0x1433e, 0x14360, 0x1437c, 0x1438e, 0x143c2, 0x143c4, 0x143c8, 0x143d0, 0x143e6, 0x143ec, 0x14408, 0x14410,\n 0x1441e, 0x14420, 0x1443c, 0x14440, 0x14478, 0x144f0, 0x145e0, 0x1460c, 0x14618, 0x14630, 0x1463e, 0x14660,\n 0x1467c, 0x146c0, 0x146f8, 0x1471c, 0x14738, 0x14770, 0x1477e, 0x14782, 0x14784, 0x14788, 0x14790, 0x147a0,\n 0x147bc, 0x147c6, 0x147cc, 0x147d8, 0x147ee, 0x14810, 0x14820, 0x1483c, 0x14840, 0x14878, 0x148f0, 0x149e0,\n 0x14bc0, 0x14c30, 0x14c3e, 0x14c60, 0x14c7c, 0x14cc0, 0x14cf8, 0x14df0, 0x14e38, 0x14e70, 0x14e7e, 0x14ee0,\n 0x14efc, 0x14f04, 0x14f08, 0x14f10, 0x14f1e, 0x14f20, 0x14f3c, 0x14f40, 0x14f78, 0x14f86, 0x14f8c, 0x14f98,\n 0x14fb0, 0x14fce, 0x14fdc, 0x15020, 0x15040, 0x15078, 0x150f0, 0x151e0, 0x153c0, 0x15860, 0x1587c, 0x158c0,\n 0x158f8, 0x159f0, 0x15be0, 0x15c70, 0x15c7e, 0x15ce0, 0x15cfc, 0x15dc0, 0x15df8, 0x15e08, 0x15e10, 0x15e20,\n 0x15e40, 0x15e78, 0x15ef0, 0x15f0c, 0x15f18, 0x15f30, 0x15f60, 0x15f7c, 0x15f8e, 0x15f9c, 0x15fb8, 0x1604e,\n 0x1605c, 0x1608e, 0x1609c, 0x160b8, 0x160c2, 0x160c4, 0x160c8, 0x160de, 0x1610e, 0x1611c, 0x16138, 0x16170,\n 0x1617e, 0x16184, 0x16188, 0x16190, 0x1619e, 0x161a0, 0x161bc, 0x161c6, 0x161cc, 0x161d8, 0x161f2, 0x161f4,\n 0x1620e, 0x1621c, 0x16238, 0x16270, 0x1627e, 0x162e0, 0x162fc, 0x16304, 0x16308, 0x16310, 0x1631e, 0x16320,\n 0x1633c, 0x16340, 0x16378, 0x16386, 0x1638c, 0x16398, 0x163b0, 0x163be, 0x163ce, 0x163dc, 0x163e2, 0x163e4,\n 0x163e8, 0x163f6, 0x1640e, 0x1641c, 0x16438, 0x16470, 0x1647e, 0x164e0, 0x164fc, 0x165c0, 0x165f8, 0x16610,\n 0x1661e, 0x16620, 0x1663c, 0x16640, 0x16678, 0x166f0, 0x16718, 0x16730, 0x1673e, 0x16760, 0x1677c, 0x1678e,\n 0x1679c, 0x167b8, 0x167c2, 0x167c4, 0x167c8, 0x167d0, 0x167de, 0x167e6, 0x167ec, 0x1681c, 0x16838, 0x16870,\n 0x168e0, 0x168fc, 0x169c0, 0x169f8, 0x16bf0, 0x16c10, 0x16c1e, 0x16c20, 0x16c3c, 0x16c40, 0x16c78, 0x16cf0,\n 0x16de0, 0x16e18, 0x16e30, 0x16e3e, 0x16e60, 0x16e7c, 0x16ec0, 0x16ef8, 0x16f1c, 0x16f38, 0x16f70, 0x16f7e,\n 0x16f84, 0x16f88, 0x16f90, 0x16f9e, 0x16fa0, 0x16fbc, 0x16fc6, 0x16fcc, 0x16fd8, 0x17026, 0x1702c, 0x17046,\n 0x1704c, 0x17058, 0x1706e, 0x17086, 0x1708c, 0x17098, 0x170b0, 0x170be, 0x170ce, 0x170dc, 0x170e8, 0x17106,\n 0x1710c, 0x17118, 0x17130, 0x1713e, 0x17160, 0x1717c, 0x1718e, 0x1719c, 0x171b8, 0x171c2, 0x171c4, 0x171c8,\n 0x171d0, 0x171de, 0x171e6, 0x171ec, 0x171fa, 0x17206, 0x1720c, 0x17218, 0x17230, 0x1723e, 0x17260, 0x1727c,\n 0x172c0, 0x172f8, 0x1730e, 0x1731c, 0x17338, 0x17370, 0x1737e, 0x17388, 0x17390, 0x1739e, 0x173a0, 0x173bc,\n 0x173cc, 0x173d8, 0x173ee, 0x173f2, 0x173f4, 0x1740c, 0x17418, 0x17430, 0x1743e, 0x17460, 0x1747c, 0x174c0,\n 0x174f8, 0x175f0, 0x1760e, 0x1761c, 0x17638, 0x17670, 0x1767e, 0x176e0, 0x176fc, 0x17708, 0x17710, 0x1771e,\n 0x17720, 0x1773c, 0x17740, 0x17778, 0x17798, 0x177b0, 0x177be, 0x177dc, 0x177e2, 0x177e4, 0x177e8, 0x17822,\n 0x17824, 0x17828, 0x17836, 0x17842, 0x17844, 0x17848, 0x17850, 0x1785e, 0x17866, 0x1786c, 0x17882, 0x17884,\n 0x17888, 0x17890, 0x1789e, 0x178a0, 0x178bc, 0x178c6, 0x178cc, 0x178d8, 0x178ee, 0x178f2, 0x178f4, 0x17902,\n 0x17904, 0x17908, 0x17910, 0x1791e, 0x17920, 0x1793c, 0x17940, 0x17978, 0x17986, 0x1798c, 0x17998, 0x179b0,\n 0x179be, 0x179ce, 0x179dc, 0x179e2, 0x179e4, 0x179e8, 0x179f6, 0x17a04, 0x17a08, 0x17a10, 0x17a1e, 0x17a20,\n 0x17a3c, 0x17a40, 0x17a78, 0x17af0, 0x17b06, 0x17b0c, 0x17b18, 0x17b30, 0x17b3e, 0x17b60, 0x17b7c, 0x17b8e,\n 0x17b9c, 0x17bb8, 0x17bc4, 0x17bc8, 0x17bd0, 0x17bde, 0x17be6, 0x17bec, 0x17c2e, 0x17c32, 0x17c34, 0x17c4e,\n 0x17c5c, 0x17c62, 0x17c64, 0x17c68, 0x17c76, 0x17c8e, 0x17c9c, 0x17cb8, 0x17cc2, 0x17cc4, 0x17cc8, 0x17cd0,\n 0x17cde, 0x17ce6, 0x17cec, 0x17d0e, 0x17d1c, 0x17d38, 0x17d70, 0x17d82, 0x17d84, 0x17d88, 0x17d90, 0x17d9e,\n 0x17da0, 0x17dbc, 0x17dc6, 0x17dcc, 0x17dd8, 0x17dee, 0x17e26, 0x17e2c, 0x17e3a, 0x17e46, 0x17e4c, 0x17e58,\n 0x17e6e, 0x17e72, 0x17e74, 0x17e86, 0x17e8c, 0x17e98, 0x17eb0, 0x17ece, 0x17edc, 0x17ee2, 0x17ee4, 0x17ee8,\n 0x17ef6, 0x1813a, 0x18172, 0x18174, 0x18216, 0x18226, 0x1823a, 0x1824c, 0x18258, 0x1826e, 0x18272, 0x18274,\n 0x18298, 0x182be, 0x182e2, 0x182e4, 0x182e8, 0x182f6, 0x1835e, 0x1837a, 0x183ae, 0x183d6, 0x18416, 0x18426,\n 0x1842c, 0x1843a, 0x18446, 0x18458, 0x1846e, 0x18472, 0x18474, 0x18486, 0x184b0, 0x184be, 0x184ce, 0x184dc,\n 0x184e2, 0x184e4, 0x184e8, 0x184f6, 0x18506, 0x1850c, 0x18518, 0x18530, 0x1853e, 0x18560, 0x1857c, 0x1858e,\n 0x1859c, 0x185b8, 0x185c2, 0x185c4, 0x185c8, 0x185d0, 0x185de, 0x185e6, 0x185ec, 0x185fa, 0x18612, 0x18614,\n 0x18622, 0x18628, 0x18636, 0x18642, 0x18650, 0x1865e, 0x1867a, 0x18682, 0x18684, 0x18688, 0x18690, 0x1869e,\n 0x186a0, 0x186bc, 0x186c6, 0x186cc, 0x186d8, 0x186ee, 0x186f2, 0x186f4, 0x1872e, 0x1874e, 0x1875c, 0x18796,\n 0x187a6, 0x187ac, 0x187d2, 0x187d4, 0x18826, 0x1882c, 0x1883a, 0x18846, 0x1884c, 0x18858, 0x1886e, 0x18872,\n 0x18874, 0x18886, 0x18898, 0x188b0, 0x188be, 0x188ce, 0x188dc, 0x188e2, 0x188e4, 0x188e8, 0x188f6, 0x1890c,\n 0x18930, 0x1893e, 0x18960, 0x1897c, 0x1898e, 0x189b8, 0x189c2, 0x189c8, 0x189d0, 0x189de, 0x189e6, 0x189ec,\n 0x189fa, 0x18a18, 0x18a30, 0x18a3e, 0x18a60, 0x18a7c, 0x18ac0, 0x18af8, 0x18b1c, 0x18b38, 0x18b70, 0x18b7e,\n 0x18b82, 0x18b84, 0x18b88, 0x18b90, 0x18b9e, 0x18ba0, 0x18bbc, 0x18bc6, 0x18bcc, 0x18bd8, 0x18bee, 0x18bf2,\n 0x18bf4, 0x18c22, 0x18c24, 0x18c28, 0x18c36, 0x18c42, 0x18c48, 0x18c50, 0x18c5e, 0x18c66, 0x18c7a, 0x18c82,\n 0x18c84, 0x18c90, 0x18c9e, 0x18ca0, 0x18cbc, 0x18ccc, 0x18cf2, 0x18cf4, 0x18d04, 0x18d08, 0x18d10, 0x18d1e,\n 0x18d20, 0x18d3c, 0x18d40, 0x18d78, 0x18d86, 0x18d98, 0x18dce, 0x18de2, 0x18de4, 0x18de8, 0x18e2e, 0x18e32,\n 0x18e34, 0x18e4e, 0x18e5c, 0x18e62, 0x18e64, 0x18e68, 0x18e8e, 0x18e9c, 0x18eb8, 0x18ec2, 0x18ec4, 0x18ec8,\n 0x18ed0, 0x18efa, 0x18f16, 0x18f26, 0x18f2c, 0x18f46, 0x18f4c, 0x18f58, 0x18f6e, 0x18f8a, 0x18f92, 0x18f94,\n 0x18fa2, 0x18fa4, 0x18fa8, 0x18fb6, 0x1902c, 0x1903a, 0x19046, 0x1904c, 0x19058, 0x19072, 0x19074, 0x19086,\n 0x19098, 0x190b0, 0x190be, 0x190ce, 0x190dc, 0x190e2, 0x190e8, 0x190f6, 0x19106, 0x1910c, 0x19130, 0x1913e,\n 0x19160, 0x1917c, 0x1918e, 0x1919c, 0x191b8, 0x191c2, 0x191c8, 0x191d0, 0x191de, 0x191e6, 0x191ec, 0x191fa,\n 0x19218, 0x1923e, 0x19260, 0x1927c, 0x192c0, 0x192f8, 0x19338, 0x19370, 0x1937e, 0x19382, 0x19384, 0x19390,\n 0x1939e, 0x193a0, 0x193bc, 0x193c6, 0x193cc, 0x193d8, 0x193ee, 0x193f2, 0x193f4, 0x19430, 0x1943e, 0x19460,\n 0x1947c, 0x194c0, 0x194f8, 0x195f0, 0x19638, 0x19670, 0x1967e, 0x196e0, 0x196fc, 0x19702, 0x19704, 0x19708,\n 0x19710, 0x19720, 0x1973c, 0x19740, 0x19778, 0x19786, 0x1978c, 0x19798, 0x197b0, 0x197be, 0x197ce, 0x197dc,\n 0x197e2, 0x197e4, 0x197e8, 0x19822, 0x19824, 0x19842, 0x19848, 0x19850, 0x1985e, 0x19866, 0x1987a, 0x19882,\n 0x19884, 0x19890, 0x1989e, 0x198a0, 0x198bc, 0x198cc, 0x198f2, 0x198f4, 0x19902, 0x19908, 0x1991e, 0x19920,\n 0x1993c, 0x19940, 0x19978, 0x19986, 0x19998, 0x199ce, 0x199e2, 0x199e4, 0x199e8, 0x19a08, 0x19a10, 0x19a1e,\n 0x19a20, 0x19a3c, 0x19a40, 0x19a78, 0x19af0, 0x19b18, 0x19b3e, 0x19b60, 0x19b9c, 0x19bc2, 0x19bc4, 0x19bc8,\n 0x19bd0, 0x19be6, 0x19c2e, 0x19c34, 0x19c4e, 0x19c5c, 0x19c62, 0x19c64, 0x19c68, 0x19c8e, 0x19c9c, 0x19cb8,\n 0x19cc2, 0x19cc8, 0x19cd0, 0x19ce6, 0x19cfa, 0x19d0e, 0x19d1c, 0x19d38, 0x19d70, 0x19d7e, 0x19d82, 0x19d84,\n 0x19d88, 0x19d90, 0x19da0, 0x19dcc, 0x19df2, 0x19df4, 0x19e16, 0x19e26, 0x19e2c, 0x19e46, 0x19e4c, 0x19e58,\n 0x19e74, 0x19e86, 0x19e8c, 0x19e98, 0x19eb0, 0x19ebe, 0x19ece, 0x19ee2, 0x19ee4, 0x19ee8, 0x19f0a, 0x19f12,\n 0x19f14, 0x19f22, 0x19f24, 0x19f28, 0x19f42, 0x19f44, 0x19f48, 0x19f50, 0x19f5e, 0x19f6c, 0x19f9a, 0x19fae,\n 0x19fb2, 0x19fb4, 0x1a046, 0x1a04c, 0x1a072, 0x1a074, 0x1a086, 0x1a08c, 0x1a098, 0x1a0b0, 0x1a0be, 0x1a0e2,\n 0x1a0e4, 0x1a0e8, 0x1a0f6, 0x1a106, 0x1a10c, 0x1a118, 0x1a130, 0x1a13e, 0x1a160, 0x1a17c, 0x1a18e, 0x1a19c,\n 0x1a1b8, 0x1a1c2, 0x1a1c4, 0x1a1c8, 0x1a1d0, 0x1a1de, 0x1a1e6, 0x1a1ec, 0x1a218, 0x1a230, 0x1a23e, 0x1a260,\n 0x1a27c, 0x1a2c0, 0x1a2f8, 0x1a31c, 0x1a338, 0x1a370, 0x1a37e, 0x1a382, 0x1a384, 0x1a388, 0x1a390, 0x1a39e,\n 0x1a3a0, 0x1a3bc, 0x1a3c6, 0x1a3cc, 0x1a3d8, 0x1a3ee, 0x1a3f2, 0x1a3f4, 0x1a418, 0x1a430, 0x1a43e, 0x1a460,\n 0x1a47c, 0x1a4c0, 0x1a4f8, 0x1a5f0, 0x1a61c, 0x1a638, 0x1a670, 0x1a67e, 0x1a6e0, 0x1a6fc, 0x1a702, 0x1a704,\n 0x1a708, 0x1a710, 0x1a71e, 0x1a720, 0x1a73c, 0x1a740, 0x1a778, 0x1a786, 0x1a78c, 0x1a798, 0x1a7b0, 0x1a7be,\n 0x1a7ce, 0x1a7dc, 0x1a7e2, 0x1a7e4, 0x1a7e8, 0x1a830, 0x1a860, 0x1a87c, 0x1a8c0, 0x1a8f8, 0x1a9f0, 0x1abe0,\n 0x1ac70, 0x1ac7e, 0x1ace0, 0x1acfc, 0x1adc0, 0x1adf8, 0x1ae04, 0x1ae08, 0x1ae10, 0x1ae20, 0x1ae3c, 0x1ae40,\n 0x1ae78, 0x1aef0, 0x1af06, 0x1af0c, 0x1af18, 0x1af30, 0x1af3e, 0x1af60, 0x1af7c, 0x1af8e, 0x1af9c, 0x1afb8,\n 0x1afc4, 0x1afc8, 0x1afd0, 0x1afde, 0x1b042, 0x1b05e, 0x1b07a, 0x1b082, 0x1b084, 0x1b088, 0x1b090, 0x1b09e,\n 0x1b0a0, 0x1b0bc, 0x1b0cc, 0x1b0f2, 0x1b0f4, 0x1b102, 0x1b104, 0x1b108, 0x1b110, 0x1b11e, 0x1b120, 0x1b13c,\n 0x1b140, 0x1b178, 0x1b186, 0x1b198, 0x1b1ce, 0x1b1e2, 0x1b1e4, 0x1b1e8, 0x1b204, 0x1b208, 0x1b210, 0x1b21e,\n 0x1b220, 0x1b23c, 0x1b240, 0x1b278, 0x1b2f0, 0x1b30c, 0x1b33e, 0x1b360, 0x1b39c, 0x1b3c2, 0x1b3c4, 0x1b3c8,\n 0x1b3d0, 0x1b3e6, 0x1b410, 0x1b41e, 0x1b420, 0x1b43c, 0x1b440, 0x1b478, 0x1b4f0, 0x1b5e0, 0x1b618, 0x1b660,\n 0x1b67c, 0x1b6c0, 0x1b738, 0x1b782, 0x1b784, 0x1b788, 0x1b790, 0x1b79e, 0x1b7a0, 0x1b7cc, 0x1b82e, 0x1b84e,\n 0x1b85c, 0x1b88e, 0x1b89c, 0x1b8b8, 0x1b8c2, 0x1b8c4, 0x1b8c8, 0x1b8d0, 0x1b8e6, 0x1b8fa, 0x1b90e, 0x1b91c,\n 0x1b938, 0x1b970, 0x1b97e, 0x1b982, 0x1b984, 0x1b988, 0x1b990, 0x1b99e, 0x1b9a0, 0x1b9cc, 0x1b9f2, 0x1b9f4,\n 0x1ba0e, 0x1ba1c, 0x1ba38, 0x1ba70, 0x1ba7e, 0x1bae0, 0x1bafc, 0x1bb08, 0x1bb10, 0x1bb20, 0x1bb3c, 0x1bb40,\n 0x1bb98, 0x1bbce, 0x1bbe2, 0x1bbe4, 0x1bbe8, 0x1bc16, 0x1bc26, 0x1bc2c, 0x1bc46, 0x1bc4c, 0x1bc58, 0x1bc72,\n 0x1bc74, 0x1bc86, 0x1bc8c, 0x1bc98, 0x1bcb0, 0x1bcbe, 0x1bcce, 0x1bce2, 0x1bce4, 0x1bce8, 0x1bd06, 0x1bd0c,\n 0x1bd18, 0x1bd30, 0x1bd3e, 0x1bd60, 0x1bd7c, 0x1bd9c, 0x1bdc2, 0x1bdc4, 0x1bdc8, 0x1bdd0, 0x1bde6, 0x1bdfa,\n 0x1be12, 0x1be14, 0x1be22, 0x1be24, 0x1be28, 0x1be42, 0x1be44, 0x1be48, 0x1be50, 0x1be5e, 0x1be66, 0x1be82,\n 0x1be84, 0x1be88, 0x1be90, 0x1be9e, 0x1bea0, 0x1bebc, 0x1becc, 0x1bef4, 0x1bf1a, 0x1bf2e, 0x1bf32, 0x1bf34,\n 0x1bf4e, 0x1bf5c, 0x1bf62, 0x1bf64, 0x1bf68, 0x1c09a, 0x1c0b2, 0x1c0b4, 0x1c11a, 0x1c132, 0x1c134, 0x1c162,\n 0x1c164, 0x1c168, 0x1c176, 0x1c1ba, 0x1c21a, 0x1c232, 0x1c234, 0x1c24e, 0x1c25c, 0x1c262, 0x1c264, 0x1c268,\n 0x1c276, 0x1c28e, 0x1c2c2, 0x1c2c4, 0x1c2c8, 0x1c2d0, 0x1c2de, 0x1c2e6, 0x1c2ec, 0x1c2fa, 0x1c316, 0x1c326,\n 0x1c33a, 0x1c346, 0x1c34c, 0x1c372, 0x1c374, 0x1c41a, 0x1c42e, 0x1c432, 0x1c434, 0x1c44e, 0x1c45c, 0x1c462,\n 0x1c464, 0x1c468, 0x1c476, 0x1c48e, 0x1c49c, 0x1c4b8, 0x1c4c2, 0x1c4c8, 0x1c4d0, 0x1c4de, 0x1c4e6, 0x1c4ec,\n 0x1c4fa, 0x1c51c, 0x1c538, 0x1c570, 0x1c57e, 0x1c582, 0x1c584, 0x1c588, 0x1c590, 0x1c59e, 0x1c5a0, 0x1c5bc,\n 0x1c5c6, 0x1c5cc, 0x1c5d8, 0x1c5ee, 0x1c5f2, 0x1c5f4, 0x1c616, 0x1c626, 0x1c62c, 0x1c63a, 0x1c646, 0x1c64c,\n 0x1c658, 0x1c66e, 0x1c672, 0x1c674, 0x1c686, 0x1c68c, 0x1c698, 0x1c6b0, 0x1c6be, 0x1c6ce, 0x1c6dc, 0x1c6e2,\n 0x1c6e4, 0x1c6e8, 0x1c712, 0x1c714, 0x1c722, 0x1c728, 0x1c736, 0x1c742, 0x1c744, 0x1c748, 0x1c750, 0x1c75e,\n 0x1c766, 0x1c76c, 0x1c77a, 0x1c7ae, 0x1c7d6, 0x1c7ea, 0x1c81a, 0x1c82e, 0x1c832, 0x1c834, 0x1c84e, 0x1c85c,\n 0x1c862, 0x1c864, 0x1c868, 0x1c876, 0x1c88e, 0x1c89c, 0x1c8b8, 0x1c8c2, 0x1c8c8, 0x1c8d0, 0x1c8de, 0x1c8e6,\n 0x1c8ec, 0x1c8fa, 0x1c90e, 0x1c938, 0x1c970, 0x1c97e, 0x1c982, 0x1c984, 0x1c990, 0x1c99e, 0x1c9a0, 0x1c9bc,\n 0x1c9c6, 0x1c9cc, 0x1c9d8, 0x1c9ee, 0x1c9f2, 0x1c9f4, 0x1ca38, 0x1ca70, 0x1ca7e, 0x1cae0, 0x1cafc, 0x1cb02,\n 0x1cb04, 0x1cb08, 0x1cb10, 0x1cb20, 0x1cb3c, 0x1cb40, 0x1cb78, 0x1cb86, 0x1cb8c, 0x1cb98, 0x1cbb0, 0x1cbbe,\n 0x1cbce, 0x1cbdc, 0x1cbe2, 0x1cbe4, 0x1cbe8, 0x1cbf6, 0x1cc16, 0x1cc26, 0x1cc2c, 0x1cc3a, 0x1cc46, 0x1cc58,\n 0x1cc72, 0x1cc74, 0x1cc86, 0x1ccb0, 0x1ccbe, 0x1ccce, 0x1cce2, 0x1cce4, 0x1cce8, 0x1cd06, 0x1cd0c, 0x1cd18,\n 0x1cd30, 0x1cd3e, 0x1cd60, 0x1cd7c, 0x1cd9c, 0x1cdc2, 0x1cdc4, 0x1cdc8, 0x1cdd0, 0x1cdde, 0x1cde6, 0x1cdfa,\n 0x1ce22, 0x1ce28, 0x1ce42, 0x1ce50, 0x1ce5e, 0x1ce66, 0x1ce7a, 0x1ce82, 0x1ce84, 0x1ce88, 0x1ce90, 0x1ce9e,\n 0x1cea0, 0x1cebc, 0x1cecc, 0x1cef2, 0x1cef4, 0x1cf2e, 0x1cf32, 0x1cf34, 0x1cf4e, 0x1cf5c, 0x1cf62, 0x1cf64,\n 0x1cf68, 0x1cf96, 0x1cfa6, 0x1cfac, 0x1cfca, 0x1cfd2, 0x1cfd4, 0x1d02e, 0x1d032, 0x1d034, 0x1d04e, 0x1d05c,\n 0x1d062, 0x1d064, 0x1d068, 0x1d076, 0x1d08e, 0x1d09c, 0x1d0b8, 0x1d0c2, 0x1d0c4, 0x1d0c8, 0x1d0d0, 0x1d0de,\n 0x1d0e6, 0x1d0ec, 0x1d0fa, 0x1d11c, 0x1d138, 0x1d170, 0x1d17e, 0x1d182, 0x1d184, 0x1d188, 0x1d190, 0x1d19e,\n 0x1d1a0, 0x1d1bc, 0x1d1c6, 0x1d1cc, 0x1d1d8, 0x1d1ee, 0x1d1f2, 0x1d1f4, 0x1d21c, 0x1d238, 0x1d270, 0x1d27e,\n 0x1d2e0, 0x1d2fc, 0x1d302, 0x1d304, 0x1d308, 0x1d310, 0x1d31e, 0x1d320, 0x1d33c, 0x1d340, 0x1d378, 0x1d386,\n 0x1d38c, 0x1d398, 0x1d3b0, 0x1d3be, 0x1d3ce, 0x1d3dc, 0x1d3e2, 0x1d3e4, 0x1d3e8, 0x1d3f6, 0x1d470, 0x1d47e,\n 0x1d4e0, 0x1d4fc, 0x1d5c0, 0x1d5f8, 0x1d604, 0x1d608, 0x1d610, 0x1d620, 0x1d640, 0x1d678, 0x1d6f0, 0x1d706,\n 0x1d70c, 0x1d718, 0x1d730, 0x1d73e, 0x1d760, 0x1d77c, 0x1d78e, 0x1d79c, 0x1d7b8, 0x1d7c2, 0x1d7c4, 0x1d7c8,\n 0x1d7d0, 0x1d7de, 0x1d7e6, 0x1d7ec, 0x1d826, 0x1d82c, 0x1d83a, 0x1d846, 0x1d84c, 0x1d858, 0x1d872, 0x1d874,\n 0x1d886, 0x1d88c, 0x1d898, 0x1d8b0, 0x1d8be, 0x1d8ce, 0x1d8e2, 0x1d8e4, 0x1d8e8, 0x1d8f6, 0x1d90c, 0x1d918,\n 0x1d930, 0x1d93e, 0x1d960, 0x1d97c, 0x1d99c, 0x1d9c2, 0x1d9c4, 0x1d9c8, 0x1d9d0, 0x1d9e6, 0x1d9fa, 0x1da0c,\n 0x1da18, 0x1da30, 0x1da3e, 0x1da60, 0x1da7c, 0x1dac0, 0x1daf8, 0x1db38, 0x1db82, 0x1db84, 0x1db88, 0x1db90,\n 0x1db9e, 0x1dba0, 0x1dbcc, 0x1dbf2, 0x1dbf4, 0x1dc22, 0x1dc42, 0x1dc44, 0x1dc48, 0x1dc50, 0x1dc5e, 0x1dc66,\n 0x1dc7a, 0x1dc82, 0x1dc84, 0x1dc88, 0x1dc90, 0x1dc9e, 0x1dca0, 0x1dcbc, 0x1dccc, 0x1dcf2, 0x1dcf4, 0x1dd04,\n 0x1dd08, 0x1dd10, 0x1dd1e, 0x1dd20, 0x1dd3c, 0x1dd40, 0x1dd78, 0x1dd86, 0x1dd98, 0x1ddce, 0x1dde2, 0x1dde4,\n 0x1dde8, 0x1de2e, 0x1de32, 0x1de34, 0x1de4e, 0x1de5c, 0x1de62, 0x1de64, 0x1de68, 0x1de8e, 0x1de9c, 0x1deb8,\n 0x1dec2, 0x1dec4, 0x1dec8, 0x1ded0, 0x1dee6, 0x1defa, 0x1df16, 0x1df26, 0x1df2c, 0x1df46, 0x1df4c, 0x1df58,\n 0x1df72, 0x1df74, 0x1df8a, 0x1df92, 0x1df94, 0x1dfa2, 0x1dfa4, 0x1dfa8, 0x1e08a, 0x1e092, 0x1e094, 0x1e0a2,\n 0x1e0a4, 0x1e0a8, 0x1e0b6, 0x1e0da, 0x1e10a, 0x1e112, 0x1e114, 0x1e122, 0x1e124, 0x1e128, 0x1e136, 0x1e142,\n 0x1e144, 0x1e148, 0x1e150, 0x1e166, 0x1e16c, 0x1e17a, 0x1e19a, 0x1e1b2, 0x1e1b4, 0x1e20a, 0x1e212, 0x1e214,\n 0x1e222, 0x1e224, 0x1e228, 0x1e236, 0x1e242, 0x1e248, 0x1e250, 0x1e25e, 0x1e266, 0x1e26c, 0x1e27a, 0x1e282,\n 0x1e284, 0x1e288, 0x1e290, 0x1e2a0, 0x1e2bc, 0x1e2c6, 0x1e2cc, 0x1e2d8, 0x1e2ee, 0x1e2f2, 0x1e2f4, 0x1e31a,\n 0x1e332, 0x1e334, 0x1e35c, 0x1e362, 0x1e364, 0x1e368, 0x1e3ba, 0x1e40a, 0x1e412, 0x1e414, 0x1e422, 0x1e428,\n 0x1e436, 0x1e442, 0x1e448, 0x1e450, 0x1e45e, 0x1e466, 0x1e46c, 0x1e47a, 0x1e482, 0x1e484, 0x1e490, 0x1e49e,\n 0x1e4a0, 0x1e4bc, 0x1e4c6, 0x1e4cc, 0x1e4d8, 0x1e4ee, 0x1e4f2, 0x1e4f4, 0x1e502, 0x1e504, 0x1e508, 0x1e510,\n 0x1e51e, 0x1e520, 0x1e53c, 0x1e540, 0x1e578, 0x1e586, 0x1e58c, 0x1e598, 0x1e5b0, 0x1e5be, 0x1e5ce, 0x1e5dc,\n 0x1e5e2, 0x1e5e4, 0x1e5e8, 0x1e5f6, 0x1e61a, 0x1e62e, 0x1e632, 0x1e634, 0x1e64e, 0x1e65c, 0x1e662, 0x1e668,\n 0x1e68e, 0x1e69c, 0x1e6b8, 0x1e6c2, 0x1e6c4, 0x1e6c8, 0x1e6d0, 0x1e6e6, 0x1e6fa, 0x1e716, 0x1e726, 0x1e72c,\n 0x1e73a, 0x1e746, 0x1e74c, 0x1e758, 0x1e772, 0x1e774, 0x1e792, 0x1e794, 0x1e7a2, 0x1e7a4, 0x1e7a8, 0x1e7b6,\n 0x1e812, 0x1e814, 0x1e822, 0x1e824, 0x1e828, 0x1e836, 0x1e842, 0x1e844, 0x1e848, 0x1e850, 0x1e85e, 0x1e866,\n 0x1e86c, 0x1e87a, 0x1e882, 0x1e884, 0x1e888, 0x1e890, 0x1e89e, 0x1e8a0, 0x1e8bc, 0x1e8c6, 0x1e8cc, 0x1e8d8,\n 0x1e8ee, 0x1e8f2, 0x1e8f4, 0x1e902, 0x1e904, 0x1e908, 0x1e910, 0x1e920, 0x1e93c, 0x1e940, 0x1e978, 0x1e986,\n 0x1e98c, 0x1e998, 0x1e9b0, 0x1e9be, 0x1e9ce, 0x1e9dc, 0x1e9e2, 0x1e9e4, 0x1e9e8, 0x1e9f6, 0x1ea04, 0x1ea08,\n 0x1ea10, 0x1ea20, 0x1ea40, 0x1ea78, 0x1eaf0, 0x1eb06, 0x1eb0c, 0x1eb18, 0x1eb30, 0x1eb3e, 0x1eb60, 0x1eb7c,\n 0x1eb8e, 0x1eb9c, 0x1ebb8, 0x1ebc2, 0x1ebc4, 0x1ebc8, 0x1ebd0, 0x1ebde, 0x1ebe6, 0x1ebec, 0x1ec1a, 0x1ec2e,\n 0x1ec32, 0x1ec34, 0x1ec4e, 0x1ec5c, 0x1ec62, 0x1ec64, 0x1ec68, 0x1ec8e, 0x1ec9c, 0x1ecb8, 0x1ecc2, 0x1ecc4,\n 0x1ecc8, 0x1ecd0, 0x1ece6, 0x1ecfa, 0x1ed0e, 0x1ed1c, 0x1ed38, 0x1ed70, 0x1ed7e, 0x1ed82, 0x1ed84, 0x1ed88,\n 0x1ed90, 0x1ed9e, 0x1eda0, 0x1edcc, 0x1edf2, 0x1edf4, 0x1ee16, 0x1ee26, 0x1ee2c, 0x1ee3a, 0x1ee46, 0x1ee4c,\n 0x1ee58, 0x1ee6e, 0x1ee72, 0x1ee74, 0x1ee86, 0x1ee8c, 0x1ee98, 0x1eeb0, 0x1eebe, 0x1eece, 0x1eedc, 0x1eee2,\n 0x1eee4, 0x1eee8, 0x1ef12, 0x1ef22, 0x1ef24, 0x1ef28, 0x1ef36, 0x1ef42, 0x1ef44, 0x1ef48, 0x1ef50, 0x1ef5e,\n 0x1ef66, 0x1ef6c, 0x1ef7a, 0x1efae, 0x1efb2, 0x1efb4, 0x1efd6, 0x1f096, 0x1f0a6, 0x1f0ac, 0x1f0ba, 0x1f0ca,\n 0x1f0d2, 0x1f0d4, 0x1f116, 0x1f126, 0x1f12c, 0x1f13a, 0x1f146, 0x1f14c, 0x1f158, 0x1f16e, 0x1f172, 0x1f174,\n 0x1f18a, 0x1f192, 0x1f194, 0x1f1a2, 0x1f1a4, 0x1f1a8, 0x1f1da, 0x1f216, 0x1f226, 0x1f22c, 0x1f23a, 0x1f246,\n 0x1f258, 0x1f26e, 0x1f272, 0x1f274, 0x1f286, 0x1f28c, 0x1f298, 0x1f2b0, 0x1f2be, 0x1f2ce, 0x1f2dc, 0x1f2e2,\n 0x1f2e4, 0x1f2e8, 0x1f2f6, 0x1f30a, 0x1f312, 0x1f314, 0x1f322, 0x1f328, 0x1f342, 0x1f344, 0x1f348, 0x1f350,\n 0x1f35e, 0x1f366, 0x1f37a, 0x1f39a, 0x1f3ae, 0x1f3b2, 0x1f3b4, 0x1f416, 0x1f426, 0x1f42c, 0x1f43a, 0x1f446,\n 0x1f44c, 0x1f458, 0x1f46e, 0x1f472, 0x1f474, 0x1f486, 0x1f48c, 0x1f498, 0x1f4b0, 0x1f4be, 0x1f4ce, 0x1f4dc,\n 0x1f4e2, 0x1f4e4, 0x1f4e8, 0x1f4f6, 0x1f506, 0x1f50c, 0x1f518, 0x1f530, 0x1f53e, 0x1f560, 0x1f57c, 0x1f58e,\n 0x1f59c, 0x1f5b8, 0x1f5c2, 0x1f5c4, 0x1f5c8, 0x1f5d0, 0x1f5de, 0x1f5e6, 0x1f5ec, 0x1f5fa, 0x1f60a, 0x1f612,\n 0x1f614, 0x1f622, 0x1f624, 0x1f628, 0x1f636, 0x1f642, 0x1f644, 0x1f648, 0x1f650, 0x1f65e, 0x1f666, 0x1f67a,\n 0x1f682, 0x1f684, 0x1f688, 0x1f690, 0x1f69e, 0x1f6a0, 0x1f6bc, 0x1f6cc, 0x1f6f2, 0x1f6f4, 0x1f71a, 0x1f72e,\n 0x1f732, 0x1f734, 0x1f74e, 0x1f75c, 0x1f762, 0x1f764, 0x1f768, 0x1f776, 0x1f796, 0x1f7a6, 0x1f7ac, 0x1f7ba,\n 0x1f7d2, 0x1f7d4, 0x1f89a, 0x1f8ae, 0x1f8b2, 0x1f8b4, 0x1f8d6, 0x1f8ea, 0x1f91a, 0x1f92e, 0x1f932, 0x1f934,\n 0x1f94e, 0x1f95c, 0x1f962, 0x1f964, 0x1f968, 0x1f976, 0x1f996, 0x1f9a6, 0x1f9ac, 0x1f9ba, 0x1f9ca, 0x1f9d2,\n 0x1f9d4, 0x1fa1a, 0x1fa2e, 0x1fa32, 0x1fa34, 0x1fa4e, 0x1fa5c, 0x1fa62, 0x1fa64, 0x1fa68, 0x1fa76, 0x1fa8e,\n 0x1fa9c, 0x1fab8, 0x1fac2, 0x1fac4, 0x1fac8, 0x1fad0, 0x1fade, 0x1fae6, 0x1faec, 0x1fb16, 0x1fb26, 0x1fb2c,\n 0x1fb3a, 0x1fb46, 0x1fb4c, 0x1fb58, 0x1fb6e, 0x1fb72, 0x1fb74, 0x1fb8a, 0x1fb92, 0x1fb94, 0x1fba2, 0x1fba4,\n 0x1fba8, 0x1fbb6, 0x1fbda\n ]);\n /**\n * This table contains to codewords for all symbols.\n */\n PDF417Common.CODEWORD_TABLE = Int32Array.from([\n 2627, 1819, 2622, 2621, 1813, 1812, 2729, 2724, 2723, 2779, 2774, 2773, 902, 896, 908, 868, 865, 861, 859, 2511,\n 873, 871, 1780, 835, 2493, 825, 2491, 842, 837, 844, 1764, 1762, 811, 810, 809, 2483, 807, 2482, 806, 2480, 815,\n 814, 813, 812, 2484, 817, 816, 1745, 1744, 1742, 1746, 2655, 2637, 2635, 2626, 2625, 2623, 2628, 1820, 2752,\n 2739, 2737, 2728, 2727, 2725, 2730, 2785, 2783, 2778, 2777, 2775, 2780, 787, 781, 747, 739, 736, 2413, 754, 752,\n 1719, 692, 689, 681, 2371, 678, 2369, 700, 697, 694, 703, 1688, 1686, 642, 638, 2343, 631, 2341, 627, 2338, 651,\n 646, 643, 2345, 654, 652, 1652, 1650, 1647, 1654, 601, 599, 2322, 596, 2321, 594, 2319, 2317, 611, 610, 608, 606,\n 2324, 603, 2323, 615, 614, 612, 1617, 1616, 1614, 1612, 616, 1619, 1618, 2575, 2538, 2536, 905, 901, 898, 909,\n 2509, 2507, 2504, 870, 867, 864, 860, 2512, 875, 872, 1781, 2490, 2489, 2487, 2485, 1748, 836, 834, 832, 830,\n 2494, 827, 2492, 843, 841, 839, 845, 1765, 1763, 2701, 2676, 2674, 2653, 2648, 2656, 2634, 2633, 2631, 2629,\n 1821, 2638, 2636, 2770, 2763, 2761, 2750, 2745, 2753, 2736, 2735, 2733, 2731, 1848, 2740, 2738, 2786, 2784, 591,\n 588, 576, 569, 566, 2296, 1590, 537, 534, 526, 2276, 522, 2274, 545, 542, 539, 548, 1572, 1570, 481, 2245, 466,\n 2242, 462, 2239, 492, 485, 482, 2249, 496, 494, 1534, 1531, 1528, 1538, 413, 2196, 406, 2191, 2188, 425, 419,\n 2202, 415, 2199, 432, 430, 427, 1472, 1467, 1464, 433, 1476, 1474, 368, 367, 2160, 365, 2159, 362, 2157, 2155,\n 2152, 378, 377, 375, 2166, 372, 2165, 369, 2162, 383, 381, 379, 2168, 1419, 1418, 1416, 1414, 385, 1411, 384,\n 1423, 1422, 1420, 1424, 2461, 802, 2441, 2439, 790, 786, 783, 794, 2409, 2406, 2403, 750, 742, 738, 2414, 756,\n 753, 1720, 2367, 2365, 2362, 2359, 1663, 693, 691, 684, 2373, 680, 2370, 702, 699, 696, 704, 1690, 1687, 2337,\n 2336, 2334, 2332, 1624, 2329, 1622, 640, 637, 2344, 634, 2342, 630, 2340, 650, 648, 645, 2346, 655, 653, 1653,\n 1651, 1649, 1655, 2612, 2597, 2595, 2571, 2568, 2565, 2576, 2534, 2529, 2526, 1787, 2540, 2537, 907, 904, 900,\n 910, 2503, 2502, 2500, 2498, 1768, 2495, 1767, 2510, 2508, 2506, 869, 866, 863, 2513, 876, 874, 1782, 2720, 2713,\n 2711, 2697, 2694, 2691, 2702, 2672, 2670, 2664, 1828, 2678, 2675, 2647, 2646, 2644, 2642, 1823, 2639, 1822, 2654,\n 2652, 2650, 2657, 2771, 1855, 2765, 2762, 1850, 1849, 2751, 2749, 2747, 2754, 353, 2148, 344, 342, 336, 2142,\n 332, 2140, 345, 1375, 1373, 306, 2130, 299, 2128, 295, 2125, 319, 314, 311, 2132, 1354, 1352, 1349, 1356, 262,\n 257, 2101, 253, 2096, 2093, 274, 273, 267, 2107, 263, 2104, 280, 278, 275, 1316, 1311, 1308, 1320, 1318, 2052,\n 202, 2050, 2044, 2040, 219, 2063, 212, 2060, 208, 2055, 224, 221, 2066, 1260, 1258, 1252, 231, 1248, 229, 1266,\n 1264, 1261, 1268, 155, 1998, 153, 1996, 1994, 1991, 1988, 165, 164, 2007, 162, 2006, 159, 2003, 2000, 172, 171,\n 169, 2012, 166, 2010, 1186, 1184, 1182, 1179, 175, 1176, 173, 1192, 1191, 1189, 1187, 176, 1194, 1193, 2313,\n 2307, 2305, 592, 589, 2294, 2292, 2289, 578, 572, 568, 2297, 580, 1591, 2272, 2267, 2264, 1547, 538, 536, 529,\n 2278, 525, 2275, 547, 544, 541, 1574, 1571, 2237, 2235, 2229, 1493, 2225, 1489, 478, 2247, 470, 2244, 465, 2241,\n 493, 488, 484, 2250, 498, 495, 1536, 1533, 1530, 1539, 2187, 2186, 2184, 2182, 1432, 2179, 1430, 2176, 1427, 414,\n 412, 2197, 409, 2195, 405, 2193, 2190, 426, 424, 421, 2203, 418, 2201, 431, 429, 1473, 1471, 1469, 1466, 434,\n 1477, 1475, 2478, 2472, 2470, 2459, 2457, 2454, 2462, 803, 2437, 2432, 2429, 1726, 2443, 2440, 792, 789, 785,\n 2401, 2399, 2393, 1702, 2389, 1699, 2411, 2408, 2405, 745, 741, 2415, 758, 755, 1721, 2358, 2357, 2355, 2353,\n 1661, 2350, 1660, 2347, 1657, 2368, 2366, 2364, 2361, 1666, 690, 687, 2374, 683, 2372, 701, 698, 705, 1691, 1689,\n 2619, 2617, 2610, 2608, 2605, 2613, 2593, 2588, 2585, 1803, 2599, 2596, 2563, 2561, 2555, 1797, 2551, 1795, 2573,\n 2570, 2567, 2577, 2525, 2524, 2522, 2520, 1786, 2517, 1785, 2514, 1783, 2535, 2533, 2531, 2528, 1788, 2541, 2539,\n 906, 903, 911, 2721, 1844, 2715, 2712, 1838, 1836, 2699, 2696, 2693, 2703, 1827, 1826, 1824, 2673, 2671, 2669,\n 2666, 1829, 2679, 2677, 1858, 1857, 2772, 1854, 1853, 1851, 1856, 2766, 2764, 143, 1987, 139, 1986, 135, 133,\n 131, 1984, 128, 1983, 125, 1981, 138, 137, 136, 1985, 1133, 1132, 1130, 112, 110, 1974, 107, 1973, 104, 1971,\n 1969, 122, 121, 119, 117, 1977, 114, 1976, 124, 1115, 1114, 1112, 1110, 1117, 1116, 84, 83, 1953, 81, 1952, 78,\n 1950, 1948, 1945, 94, 93, 91, 1959, 88, 1958, 85, 1955, 99, 97, 95, 1961, 1086, 1085, 1083, 1081, 1078, 100,\n 1090, 1089, 1087, 1091, 49, 47, 1917, 44, 1915, 1913, 1910, 1907, 59, 1926, 56, 1925, 53, 1922, 1919, 66, 64,\n 1931, 61, 1929, 1042, 1040, 1038, 71, 1035, 70, 1032, 68, 1048, 1047, 1045, 1043, 1050, 1049, 12, 10, 1869, 1867,\n 1864, 1861, 21, 1880, 19, 1877, 1874, 1871, 28, 1888, 25, 1886, 22, 1883, 982, 980, 977, 974, 32, 30, 991, 989,\n 987, 984, 34, 995, 994, 992, 2151, 2150, 2147, 2146, 2144, 356, 355, 354, 2149, 2139, 2138, 2136, 2134, 1359,\n 343, 341, 338, 2143, 335, 2141, 348, 347, 346, 1376, 1374, 2124, 2123, 2121, 2119, 1326, 2116, 1324, 310, 308,\n 305, 2131, 302, 2129, 298, 2127, 320, 318, 316, 313, 2133, 322, 321, 1355, 1353, 1351, 1357, 2092, 2091, 2089,\n 2087, 1276, 2084, 1274, 2081, 1271, 259, 2102, 256, 2100, 252, 2098, 2095, 272, 269, 2108, 266, 2106, 281, 279,\n 277, 1317, 1315, 1313, 1310, 282, 1321, 1319, 2039, 2037, 2035, 2032, 1203, 2029, 1200, 1197, 207, 2053, 205,\n 2051, 201, 2049, 2046, 2043, 220, 218, 2064, 215, 2062, 211, 2059, 228, 226, 223, 2069, 1259, 1257, 1254, 232,\n 1251, 230, 1267, 1265, 1263, 2316, 2315, 2312, 2311, 2309, 2314, 2304, 2303, 2301, 2299, 1593, 2308, 2306, 590,\n 2288, 2287, 2285, 2283, 1578, 2280, 1577, 2295, 2293, 2291, 579, 577, 574, 571, 2298, 582, 581, 1592, 2263, 2262,\n 2260, 2258, 1545, 2255, 1544, 2252, 1541, 2273, 2271, 2269, 2266, 1550, 535, 532, 2279, 528, 2277, 546, 543, 549,\n 1575, 1573, 2224, 2222, 2220, 1486, 2217, 1485, 2214, 1482, 1479, 2238, 2236, 2234, 2231, 1496, 2228, 1492, 480,\n 477, 2248, 473, 2246, 469, 2243, 490, 487, 2251, 497, 1537, 1535, 1532, 2477, 2476, 2474, 2479, 2469, 2468, 2466,\n 2464, 1730, 2473, 2471, 2453, 2452, 2450, 2448, 1729, 2445, 1728, 2460, 2458, 2456, 2463, 805, 804, 2428, 2427,\n 2425, 2423, 1725, 2420, 1724, 2417, 1722, 2438, 2436, 2434, 2431, 1727, 2444, 2442, 793, 791, 788, 795, 2388,\n 2386, 2384, 1697, 2381, 1696, 2378, 1694, 1692, 2402, 2400, 2398, 2395, 1703, 2392, 1701, 2412, 2410, 2407, 751,\n 748, 744, 2416, 759, 757, 1807, 2620, 2618, 1806, 1805, 2611, 2609, 2607, 2614, 1802, 1801, 1799, 2594, 2592,\n 2590, 2587, 1804, 2600, 2598, 1794, 1793, 1791, 1789, 2564, 2562, 2560, 2557, 1798, 2554, 1796, 2574, 2572, 2569,\n 2578, 1847, 1846, 2722, 1843, 1842, 1840, 1845, 2716, 2714, 1835, 1834, 1832, 1830, 1839, 1837, 2700, 2698, 2695,\n 2704, 1817, 1811, 1810, 897, 862, 1777, 829, 826, 838, 1760, 1758, 808, 2481, 1741, 1740, 1738, 1743, 2624, 1818,\n 2726, 2776, 782, 740, 737, 1715, 686, 679, 695, 1682, 1680, 639, 628, 2339, 647, 644, 1645, 1643, 1640, 1648,\n 602, 600, 597, 595, 2320, 593, 2318, 609, 607, 604, 1611, 1610, 1608, 1606, 613, 1615, 1613, 2328, 926, 924, 892,\n 886, 899, 857, 850, 2505, 1778, 824, 823, 821, 819, 2488, 818, 2486, 833, 831, 828, 840, 1761, 1759, 2649, 2632,\n 2630, 2746, 2734, 2732, 2782, 2781, 570, 567, 1587, 531, 527, 523, 540, 1566, 1564, 476, 467, 463, 2240, 486,\n 483, 1524, 1521, 1518, 1529, 411, 403, 2192, 399, 2189, 423, 416, 1462, 1457, 1454, 428, 1468, 1465, 2210, 366,\n 363, 2158, 360, 2156, 357, 2153, 376, 373, 370, 2163, 1410, 1409, 1407, 1405, 382, 1402, 380, 1417, 1415, 1412,\n 1421, 2175, 2174, 777, 774, 771, 784, 732, 725, 722, 2404, 743, 1716, 676, 674, 668, 2363, 665, 2360, 685, 1684,\n 1681, 626, 624, 622, 2335, 620, 2333, 617, 2330, 641, 635, 649, 1646, 1644, 1642, 2566, 928, 925, 2530, 2527,\n 894, 891, 888, 2501, 2499, 2496, 858, 856, 854, 851, 1779, 2692, 2668, 2665, 2645, 2643, 2640, 2651, 2768, 2759,\n 2757, 2744, 2743, 2741, 2748, 352, 1382, 340, 337, 333, 1371, 1369, 307, 300, 296, 2126, 315, 312, 1347, 1342,\n 1350, 261, 258, 250, 2097, 246, 2094, 271, 268, 264, 1306, 1301, 1298, 276, 1312, 1309, 2115, 203, 2048, 195,\n 2045, 191, 2041, 213, 209, 2056, 1246, 1244, 1238, 225, 1234, 222, 1256, 1253, 1249, 1262, 2080, 2079, 154, 1997,\n 150, 1995, 147, 1992, 1989, 163, 160, 2004, 156, 2001, 1175, 1174, 1172, 1170, 1167, 170, 1164, 167, 1185, 1183,\n 1180, 1177, 174, 1190, 1188, 2025, 2024, 2022, 587, 586, 564, 559, 556, 2290, 573, 1588, 520, 518, 512, 2268,\n 508, 2265, 530, 1568, 1565, 461, 457, 2233, 450, 2230, 446, 2226, 479, 471, 489, 1526, 1523, 1520, 397, 395,\n 2185, 392, 2183, 389, 2180, 2177, 410, 2194, 402, 422, 1463, 1461, 1459, 1456, 1470, 2455, 799, 2433, 2430, 779,\n 776, 773, 2397, 2394, 2390, 734, 728, 724, 746, 1717, 2356, 2354, 2351, 2348, 1658, 677, 675, 673, 670, 667, 688,\n 1685, 1683, 2606, 2589, 2586, 2559, 2556, 2552, 927, 2523, 2521, 2518, 2515, 1784, 2532, 895, 893, 890, 2718,\n 2709, 2707, 2689, 2687, 2684, 2663, 2662, 2660, 2658, 1825, 2667, 2769, 1852, 2760, 2758, 142, 141, 1139, 1138,\n 134, 132, 129, 126, 1982, 1129, 1128, 1126, 1131, 113, 111, 108, 105, 1972, 101, 1970, 120, 118, 115, 1109, 1108,\n 1106, 1104, 123, 1113, 1111, 82, 79, 1951, 75, 1949, 72, 1946, 92, 89, 86, 1956, 1077, 1076, 1074, 1072, 98,\n 1069, 96, 1084, 1082, 1079, 1088, 1968, 1967, 48, 45, 1916, 42, 1914, 39, 1911, 1908, 60, 57, 54, 1923, 50, 1920,\n 1031, 1030, 1028, 1026, 67, 1023, 65, 1020, 62, 1041, 1039, 1036, 1033, 69, 1046, 1044, 1944, 1943, 1941, 11, 9,\n 1868, 7, 1865, 1862, 1859, 20, 1878, 16, 1875, 13, 1872, 970, 968, 966, 963, 29, 960, 26, 23, 983, 981, 978, 975,\n 33, 971, 31, 990, 988, 985, 1906, 1904, 1902, 993, 351, 2145, 1383, 331, 330, 328, 326, 2137, 323, 2135, 339,\n 1372, 1370, 294, 293, 291, 289, 2122, 286, 2120, 283, 2117, 309, 303, 317, 1348, 1346, 1344, 245, 244, 242, 2090,\n 239, 2088, 236, 2085, 2082, 260, 2099, 249, 270, 1307, 1305, 1303, 1300, 1314, 189, 2038, 186, 2036, 183, 2033,\n 2030, 2026, 206, 198, 2047, 194, 216, 1247, 1245, 1243, 1240, 227, 1237, 1255, 2310, 2302, 2300, 2286, 2284,\n 2281, 565, 563, 561, 558, 575, 1589, 2261, 2259, 2256, 2253, 1542, 521, 519, 517, 514, 2270, 511, 533, 1569,\n 1567, 2223, 2221, 2218, 2215, 1483, 2211, 1480, 459, 456, 453, 2232, 449, 474, 491, 1527, 1525, 1522, 2475, 2467,\n 2465, 2451, 2449, 2446, 801, 800, 2426, 2424, 2421, 2418, 1723, 2435, 780, 778, 775, 2387, 2385, 2382, 2379,\n 1695, 2375, 1693, 2396, 735, 733, 730, 727, 749, 1718, 2616, 2615, 2604, 2603, 2601, 2584, 2583, 2581, 2579,\n 1800, 2591, 2550, 2549, 2547, 2545, 1792, 2542, 1790, 2558, 929, 2719, 1841, 2710, 2708, 1833, 1831, 2690, 2688,\n 2686, 1815, 1809, 1808, 1774, 1756, 1754, 1737, 1736, 1734, 1739, 1816, 1711, 1676, 1674, 633, 629, 1638, 1636,\n 1633, 1641, 598, 1605, 1604, 1602, 1600, 605, 1609, 1607, 2327, 887, 853, 1775, 822, 820, 1757, 1755, 1584, 524,\n 1560, 1558, 468, 464, 1514, 1511, 1508, 1519, 408, 404, 400, 1452, 1447, 1444, 417, 1458, 1455, 2208, 364, 361,\n 358, 2154, 1401, 1400, 1398, 1396, 374, 1393, 371, 1408, 1406, 1403, 1413, 2173, 2172, 772, 726, 723, 1712, 672,\n 669, 666, 682, 1678, 1675, 625, 623, 621, 618, 2331, 636, 632, 1639, 1637, 1635, 920, 918, 884, 880, 889, 849,\n 848, 847, 846, 2497, 855, 852, 1776, 2641, 2742, 2787, 1380, 334, 1367, 1365, 301, 297, 1340, 1338, 1335, 1343,\n 255, 251, 247, 1296, 1291, 1288, 265, 1302, 1299, 2113, 204, 196, 192, 2042, 1232, 1230, 1224, 214, 1220, 210,\n 1242, 1239, 1235, 1250, 2077, 2075, 151, 148, 1993, 144, 1990, 1163, 1162, 1160, 1158, 1155, 161, 1152, 157,\n 1173, 1171, 1168, 1165, 168, 1181, 1178, 2021, 2020, 2018, 2023, 585, 560, 557, 1585, 516, 509, 1562, 1559, 458,\n 447, 2227, 472, 1516, 1513, 1510, 398, 396, 393, 390, 2181, 386, 2178, 407, 1453, 1451, 1449, 1446, 420, 1460,\n 2209, 769, 764, 720, 712, 2391, 729, 1713, 664, 663, 661, 659, 2352, 656, 2349, 671, 1679, 1677, 2553, 922, 919,\n 2519, 2516, 885, 883, 881, 2685, 2661, 2659, 2767, 2756, 2755, 140, 1137, 1136, 130, 127, 1125, 1124, 1122, 1127,\n 109, 106, 102, 1103, 1102, 1100, 1098, 116, 1107, 1105, 1980, 80, 76, 73, 1947, 1068, 1067, 1065, 1063, 90, 1060,\n 87, 1075, 1073, 1070, 1080, 1966, 1965, 46, 43, 40, 1912, 36, 1909, 1019, 1018, 1016, 1014, 58, 1011, 55, 1008,\n 51, 1029, 1027, 1024, 1021, 63, 1037, 1034, 1940, 1939, 1937, 1942, 8, 1866, 4, 1863, 1, 1860, 956, 954, 952,\n 949, 946, 17, 14, 969, 967, 964, 961, 27, 957, 24, 979, 976, 972, 1901, 1900, 1898, 1896, 986, 1905, 1903, 350,\n 349, 1381, 329, 327, 324, 1368, 1366, 292, 290, 287, 284, 2118, 304, 1341, 1339, 1337, 1345, 243, 240, 237, 2086,\n 233, 2083, 254, 1297, 1295, 1293, 1290, 1304, 2114, 190, 187, 184, 2034, 180, 2031, 177, 2027, 199, 1233, 1231,\n 1229, 1226, 217, 1223, 1241, 2078, 2076, 584, 555, 554, 552, 550, 2282, 562, 1586, 507, 506, 504, 502, 2257, 499,\n 2254, 515, 1563, 1561, 445, 443, 441, 2219, 438, 2216, 435, 2212, 460, 454, 475, 1517, 1515, 1512, 2447, 798,\n 797, 2422, 2419, 770, 768, 766, 2383, 2380, 2376, 721, 719, 717, 714, 731, 1714, 2602, 2582, 2580, 2548, 2546,\n 2543, 923, 921, 2717, 2706, 2705, 2683, 2682, 2680, 1771, 1752, 1750, 1733, 1732, 1731, 1735, 1814, 1707, 1670,\n 1668, 1631, 1629, 1626, 1634, 1599, 1598, 1596, 1594, 1603, 1601, 2326, 1772, 1753, 1751, 1581, 1554, 1552, 1504,\n 1501, 1498, 1509, 1442, 1437, 1434, 401, 1448, 1445, 2206, 1392, 1391, 1389, 1387, 1384, 359, 1399, 1397, 1394,\n 1404, 2171, 2170, 1708, 1672, 1669, 619, 1632, 1630, 1628, 1773, 1378, 1363, 1361, 1333, 1328, 1336, 1286, 1281,\n 1278, 248, 1292, 1289, 2111, 1218, 1216, 1210, 197, 1206, 193, 1228, 1225, 1221, 1236, 2073, 2071, 1151, 1150,\n 1148, 1146, 152, 1143, 149, 1140, 145, 1161, 1159, 1156, 1153, 158, 1169, 1166, 2017, 2016, 2014, 2019, 1582,\n 510, 1556, 1553, 452, 448, 1506, 1500, 394, 391, 387, 1443, 1441, 1439, 1436, 1450, 2207, 765, 716, 713, 1709,\n 662, 660, 657, 1673, 1671, 916, 914, 879, 878, 877, 882, 1135, 1134, 1121, 1120, 1118, 1123, 1097, 1096, 1094,\n 1092, 103, 1101, 1099, 1979, 1059, 1058, 1056, 1054, 77, 1051, 74, 1066, 1064, 1061, 1071, 1964, 1963, 1007,\n 1006, 1004, 1002, 999, 41, 996, 37, 1017, 1015, 1012, 1009, 52, 1025, 1022, 1936, 1935, 1933, 1938, 942, 940,\n 938, 935, 932, 5, 2, 955, 953, 950, 947, 18, 943, 15, 965, 962, 958, 1895, 1894, 1892, 1890, 973, 1899, 1897,\n 1379, 325, 1364, 1362, 288, 285, 1334, 1332, 1330, 241, 238, 234, 1287, 1285, 1283, 1280, 1294, 2112, 188, 185,\n 181, 178, 2028, 1219, 1217, 1215, 1212, 200, 1209, 1227, 2074, 2072, 583, 553, 551, 1583, 505, 503, 500, 513,\n 1557, 1555, 444, 442, 439, 436, 2213, 455, 451, 1507, 1505, 1502, 796, 763, 762, 760, 767, 711, 710, 708, 706,\n 2377, 718, 715, 1710, 2544, 917, 915, 2681, 1627, 1597, 1595, 2325, 1769, 1749, 1747, 1499, 1438, 1435, 2204,\n 1390, 1388, 1385, 1395, 2169, 2167, 1704, 1665, 1662, 1625, 1623, 1620, 1770, 1329, 1282, 1279, 2109, 1214, 1207,\n 1222, 2068, 2065, 1149, 1147, 1144, 1141, 146, 1157, 1154, 2013, 2011, 2008, 2015, 1579, 1549, 1546, 1495, 1487,\n 1433, 1431, 1428, 1425, 388, 1440, 2205, 1705, 658, 1667, 1664, 1119, 1095, 1093, 1978, 1057, 1055, 1052, 1062,\n 1962, 1960, 1005, 1003, 1000, 997, 38, 1013, 1010, 1932, 1930, 1927, 1934, 941, 939, 936, 933, 6, 930, 3, 951,\n 948, 944, 1889, 1887, 1884, 1881, 959, 1893, 1891, 35, 1377, 1360, 1358, 1327, 1325, 1322, 1331, 1277, 1275,\n 1272, 1269, 235, 1284, 2110, 1205, 1204, 1201, 1198, 182, 1195, 179, 1213, 2070, 2067, 1580, 501, 1551, 1548,\n 440, 437, 1497, 1494, 1490, 1503, 761, 709, 707, 1706, 913, 912, 2198, 1386, 2164, 2161, 1621, 1766, 2103, 1208,\n 2058, 2054, 1145, 1142, 2005, 2002, 1999, 2009, 1488, 1429, 1426, 2200, 1698, 1659, 1656, 1975, 1053, 1957, 1954,\n 1001, 998, 1924, 1921, 1918, 1928, 937, 934, 931, 1879, 1876, 1873, 1870, 945, 1885, 1882, 1323, 1273, 1270,\n 2105, 1202, 1199, 1196, 1211, 2061, 2057, 1576, 1543, 1540, 1484, 1481, 1478, 1491, 1700\n ]);\n\n /*\n * Copyright 2007 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n // import java.util.List;\n /**\n * @author Guenther Grau\n */\n /*public final*/ class PDF417DetectorResult {\n constructor(bits, points) {\n this.bits = bits;\n this.points = points;\n }\n getBits() {\n return this.bits;\n }\n getPoints() {\n return this.points;\n }\n }\n\n /*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n // import java.util.ArrayList;\n // import java.util.Arrays;\n // import java.util.List;\n // import java.util.Map;\n /**\n *Encapsulates logic that can detect a PDF417 Code in an image, even if the\n * PDF417 Code is rotated or skewed, or partially obscured.
\n *\n * @author SITA Lab (kevin.osullivan@sita.aero)\n * @author dswitkin@google.com (Daniel Switkin)\n * @author Guenther Grau\n */\n /*public*/ /*final*/ class Detector$3 {\n /**\n *Detects a PDF417 Code in an image. Only checks 0 and 180 degree rotations.
\n *\n * @param image barcode image to decode\n * @param hints optional hints to detector\n * @param multiple if true, then the image is searched for multiple codes. If false, then at most one code will\n * be found and returned\n * @return {@link PDF417DetectorResult} encapsulating results of detecting a PDF417 code\n * @throws NotFoundException if no PDF417 Code can be found\n */\n static detectMultiple(image, hints, multiple) {\n // TODO detection improvement, tryHarder could try several different luminance thresholds/blackpoints or even\n // different binarizers\n // boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER);\n let bitMatrix = image.getBlackMatrix();\n let barcodeCoordinates = Detector$3.detect(multiple, bitMatrix);\n if (!barcodeCoordinates.length) {\n bitMatrix = bitMatrix.clone();\n bitMatrix.rotate180();\n barcodeCoordinates = Detector$3.detect(multiple, bitMatrix);\n }\n return new PDF417DetectorResult(bitMatrix, barcodeCoordinates);\n }\n /**\n * Detects PDF417 codes in an image. Only checks 0 degree rotation\n * @param multiple if true, then the image is searched for multiple codes. If false, then at most one code will\n * be found and returned\n * @param bitMatrix bit matrix to detect barcodes in\n * @return List of ResultPoint arrays containing the coordinates of found barcodes\n */\n static detect(multiple, bitMatrix) {\n const barcodeCoordinates = new Array();\n let row = 0;\n let column = 0;\n let foundBarcodeInRow = false;\n while (row < bitMatrix.getHeight()) {\n const vertices = Detector$3.findVertices(bitMatrix, row, column);\n if (vertices[0] == null && vertices[3] == null) {\n if (!foundBarcodeInRow) {\n // we didn't find any barcode so that's the end of searching\n break;\n }\n // we didn't find a barcode starting at the given column and row. Try again from the first column and slightly\n // below the lowest barcode we found so far.\n foundBarcodeInRow = false;\n column = 0;\n for (const barcodeCoordinate of barcodeCoordinates) {\n if (barcodeCoordinate[1] != null) {\n row = Math.trunc(Math.max(row, barcodeCoordinate[1].getY()));\n }\n if (barcodeCoordinate[3] != null) {\n row = Math.max(row, Math.trunc(barcodeCoordinate[3].getY()));\n }\n }\n row += Detector$3.ROW_STEP;\n continue;\n }\n foundBarcodeInRow = true;\n barcodeCoordinates.push(vertices);\n if (!multiple) {\n break;\n }\n // if we didn't find a right row indicator column, then continue the search for the next barcode after the\n // start pattern of the barcode just found.\n if (vertices[2] != null) {\n column = Math.trunc(vertices[2].getX());\n row = Math.trunc(vertices[2].getY());\n }\n else {\n column = Math.trunc(vertices[4].getX());\n row = Math.trunc(vertices[4].getY());\n }\n }\n return barcodeCoordinates;\n }\n /**\n * Locate the vertices and the codewords area of a black blob using the Start\n * and Stop patterns as locators.\n *\n * @param matrix the scanned barcode image.\n * @return an array containing the vertices:\n * vertices[0] x, y top left barcode\n * vertices[1] x, y bottom left barcode\n * vertices[2] x, y top right barcode\n * vertices[3] x, y bottom right barcode\n * vertices[4] x, y top left codeword area\n * vertices[5] x, y bottom left codeword area\n * vertices[6] x, y top right codeword area\n * vertices[7] x, y bottom right codeword area\n */\n static findVertices(matrix, startRow, startColumn) {\n const height = matrix.getHeight();\n const width = matrix.getWidth();\n // const result = new ResultPoint[8];\n const result = new Array(8);\n Detector$3.copyToResult(result, Detector$3.findRowsWithPattern(matrix, height, width, startRow, startColumn, Detector$3.START_PATTERN), Detector$3.INDEXES_START_PATTERN);\n if (result[4] != null) {\n startColumn = Math.trunc(result[4].getX());\n startRow = Math.trunc(result[4].getY());\n }\n Detector$3.copyToResult(result, Detector$3.findRowsWithPattern(matrix, height, width, startRow, startColumn, Detector$3.STOP_PATTERN), Detector$3.INDEXES_STOP_PATTERN);\n return result;\n }\n static copyToResult(result, tmpResult, destinationIndexes) {\n for (let i = 0; i < destinationIndexes.length; i++) {\n result[destinationIndexes[i]] = tmpResult[i];\n }\n }\n static findRowsWithPattern(matrix, height, width, startRow, startColumn, pattern) {\n // const result = new ResultPoint[4];\n const result = new Array(4);\n let found = false;\n const counters = new Int32Array(pattern.length);\n for (; startRow < height; startRow += Detector$3.ROW_STEP) {\n let loc = Detector$3.findGuardPattern(matrix, startColumn, startRow, width, false, pattern, counters);\n if (loc != null) {\n while (startRow > 0) {\n const previousRowLoc = Detector$3.findGuardPattern(matrix, startColumn, --startRow, width, false, pattern, counters);\n if (previousRowLoc != null) {\n loc = previousRowLoc;\n }\n else {\n startRow++;\n break;\n }\n }\n result[0] = new ResultPoint(loc[0], startRow);\n result[1] = new ResultPoint(loc[1], startRow);\n found = true;\n break;\n }\n }\n let stopRow = startRow + 1;\n // Last row of the current symbol that contains pattern\n if (found) {\n let skippedRowCount = 0;\n let previousRowLoc = Int32Array.from([Math.trunc(result[0].getX()), Math.trunc(result[1].getX())]);\n for (; stopRow < height; stopRow++) {\n const loc = Detector$3.findGuardPattern(matrix, previousRowLoc[0], stopRow, width, false, pattern, counters);\n // a found pattern is only considered to belong to the same barcode if the start and end positions\n // don't differ too much. Pattern drift should be not bigger than two for consecutive rows. With\n // a higher number of skipped rows drift could be larger. To keep it simple for now, we allow a slightly\n // larger drift and don't check for skipped rows.\n if (loc != null &&\n Math.abs(previousRowLoc[0] - loc[0]) < Detector$3.MAX_PATTERN_DRIFT &&\n Math.abs(previousRowLoc[1] - loc[1]) < Detector$3.MAX_PATTERN_DRIFT) {\n previousRowLoc = loc;\n skippedRowCount = 0;\n }\n else {\n if (skippedRowCount > Detector$3.SKIPPED_ROW_COUNT_MAX) {\n break;\n }\n else {\n skippedRowCount++;\n }\n }\n }\n stopRow -= skippedRowCount + 1;\n result[2] = new ResultPoint(previousRowLoc[0], stopRow);\n result[3] = new ResultPoint(previousRowLoc[1], stopRow);\n }\n if (stopRow - startRow < Detector$3.BARCODE_MIN_HEIGHT) {\n Arrays.fill(result, null);\n }\n return result;\n }\n /**\n * @param matrix row of black/white values to search\n * @param column x position to start search\n * @param row y position to start search\n * @param width the number of pixels to search on this row\n * @param pattern pattern of counts of number of black and white pixels that are\n * being searched for as a pattern\n * @param counters array of counters, as long as pattern, to re-use\n * @return start/end horizontal offset of guard pattern, as an array of two ints.\n */\n static findGuardPattern(matrix, column, row, width, whiteFirst, pattern, counters) {\n Arrays.fillWithin(counters, 0, counters.length, 0);\n let patternStart = column;\n let pixelDrift = 0;\n // if there are black pixels left of the current pixel shift to the left, but only for MAX_PIXEL_DRIFT pixels\n while (matrix.get(patternStart, row) && patternStart > 0 && pixelDrift++ < Detector$3.MAX_PIXEL_DRIFT) {\n patternStart--;\n }\n let x = patternStart;\n let counterPosition = 0;\n let patternLength = pattern.length;\n for (let isWhite = whiteFirst; x < width; x++) {\n let pixel = matrix.get(x, row);\n if (pixel !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === patternLength - 1) {\n if (Detector$3.patternMatchVariance(counters, pattern, Detector$3.MAX_INDIVIDUAL_VARIANCE) < Detector$3.MAX_AVG_VARIANCE) {\n return new Int32Array([patternStart, x]);\n }\n patternStart += counters[0] + counters[1];\n System.arraycopy(counters, 2, counters, 0, counterPosition - 1);\n counters[counterPosition - 1] = 0;\n counters[counterPosition] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n if (counterPosition === patternLength - 1 &&\n Detector$3.patternMatchVariance(counters, pattern, Detector$3.MAX_INDIVIDUAL_VARIANCE) < Detector$3.MAX_AVG_VARIANCE) {\n return new Int32Array([patternStart, x - 1]);\n }\n return null;\n }\n /**\n * Determines how closely a set of observed counts of runs of black/white\n * values matches a given target pattern. This is reported as the ratio of\n * the total variance from the expected pattern proportions across all\n * pattern elements, to the length of the pattern.\n *\n * @param counters observed counters\n * @param pattern expected pattern\n * @param maxIndividualVariance The most any counter can differ before we give up\n * @return ratio of total variance between counters and pattern compared to total pattern size\n */\n static patternMatchVariance(counters, pattern, maxIndividualVariance) {\n let numCounters = counters.length;\n let total = 0;\n let patternLength = 0;\n for (let i = 0; i < numCounters; i++) {\n total += counters[i];\n patternLength += pattern[i];\n }\n if (total < patternLength) {\n // If we don't even have one pixel per unit of bar width, assume this\n // is too small to reliably match, so fail:\n return /*Float.POSITIVE_INFINITY*/ Infinity;\n }\n // We're going to fake floating-point math in integers. We just need to use more bits.\n // Scale up patternLength so that intermediate values below like scaledCounter will have\n // more \"significant digits\".\n let unitBarWidth = total / patternLength;\n maxIndividualVariance *= unitBarWidth;\n let totalVariance = 0.0;\n for (let x = 0; x < numCounters; x++) {\n let counter = counters[x];\n let scaledPattern = pattern[x] * unitBarWidth;\n let variance = counter > scaledPattern ? counter - scaledPattern : scaledPattern - counter;\n if (variance > maxIndividualVariance) {\n return /*Float.POSITIVE_INFINITY*/ Infinity;\n }\n totalVariance += variance;\n }\n return totalVariance / total;\n }\n }\n Detector$3.INDEXES_START_PATTERN = Int32Array.from([0, 4, 1, 5]);\n Detector$3.INDEXES_STOP_PATTERN = Int32Array.from([6, 2, 7, 3]);\n Detector$3.MAX_AVG_VARIANCE = 0.42;\n Detector$3.MAX_INDIVIDUAL_VARIANCE = 0.8;\n // B S B S B S B S Bar/Space pattern\n // 11111111 0 1 0 1 0 1 000\n Detector$3.START_PATTERN = Int32Array.from([8, 1, 1, 1, 1, 1, 1, 3]);\n // 1111111 0 1 000 1 0 1 00 1\n Detector$3.STOP_PATTERN = Int32Array.from([7, 1, 1, 3, 1, 1, 1, 2, 1]);\n Detector$3.MAX_PIXEL_DRIFT = 3;\n Detector$3.MAX_PATTERN_DRIFT = 5;\n // if we set the value too low, then we don't detect the correct height of the bar if the start patterns are damaged.\n // if we set the value too high, then we might detect the start pattern from a neighbor barcode.\n Detector$3.SKIPPED_ROW_COUNT_MAX = 25;\n // A PDF471 barcode should have at least 3 rows, with each row being >= 3 times the module width. Therefore it should be at least\n // 9 pixels tall. To be conservative, we use about half the size to ensure we don't miss it.\n Detector$3.ROW_STEP = 5;\n Detector$3.BARCODE_MIN_HEIGHT = 10;\n\n /*\n * Copyright 2012 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * @author Sean Owen\n * @see com.google.zxing.common.reedsolomon.GenericGFPoly\n */\n /*final*/ class ModulusPoly {\n constructor(field, coefficients) {\n if (coefficients.length === 0) {\n throw new IllegalArgumentException();\n }\n this.field = field;\n let coefficientsLength = /*int*/ coefficients.length;\n if (coefficientsLength > 1 && coefficients[0] === 0) {\n // Leading term must be non-zero for anything except the constant polynomial \"0\"\n let firstNonZero = /*int*/ 1;\n while (firstNonZero < coefficientsLength && coefficients[firstNonZero] === 0) {\n firstNonZero++;\n }\n if (firstNonZero === coefficientsLength) {\n this.coefficients = new Int32Array([0]);\n }\n else {\n this.coefficients = new Int32Array(coefficientsLength - firstNonZero);\n System.arraycopy(coefficients, firstNonZero, this.coefficients, 0, this.coefficients.length);\n }\n }\n else {\n this.coefficients = coefficients;\n }\n }\n getCoefficients() {\n return this.coefficients;\n }\n /**\n * @return degree of this polynomial\n */\n getDegree() {\n return this.coefficients.length - 1;\n }\n /**\n * @return true iff this polynomial is the monomial \"0\"\n */\n isZero() {\n return this.coefficients[0] === 0;\n }\n /**\n * @return coefficient of x^degree term in this polynomial\n */\n getCoefficient(degree) {\n return this.coefficients[this.coefficients.length - 1 - degree];\n }\n /**\n * @return evaluation of this polynomial at a given point\n */\n evaluateAt(a) {\n if (a === 0) {\n // Just return the x^0 coefficient\n return this.getCoefficient(0);\n }\n if (a === 1) {\n // Just the sum of the coefficients\n let sum = /*int*/ 0;\n for (let coefficient /*int*/ of this.coefficients) {\n sum = this.field.add(sum, coefficient);\n }\n return sum;\n }\n let result = /*int*/ this.coefficients[0];\n let size = /*int*/ this.coefficients.length;\n for (let i /*int*/ = 1; i < size; i++) {\n result = this.field.add(this.field.multiply(a, result), this.coefficients[i]);\n }\n return result;\n }\n add(other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException('ModulusPolys do not have same ModulusGF field');\n }\n if (this.isZero()) {\n return other;\n }\n if (other.isZero()) {\n return this;\n }\n let smallerCoefficients = this.coefficients;\n let largerCoefficients = other.coefficients;\n if (smallerCoefficients.length > largerCoefficients.length) {\n let temp = smallerCoefficients;\n smallerCoefficients = largerCoefficients;\n largerCoefficients = temp;\n }\n let sumDiff = new Int32Array(largerCoefficients.length);\n let lengthDiff = /*int*/ largerCoefficients.length - smallerCoefficients.length;\n // Copy high-order terms only found in higher-degree polynomial's coefficients\n System.arraycopy(largerCoefficients, 0, sumDiff, 0, lengthDiff);\n for (let i /*int*/ = lengthDiff; i < largerCoefficients.length; i++) {\n sumDiff[i] = this.field.add(smallerCoefficients[i - lengthDiff], largerCoefficients[i]);\n }\n return new ModulusPoly(this.field, sumDiff);\n }\n subtract(other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException('ModulusPolys do not have same ModulusGF field');\n }\n if (other.isZero()) {\n return this;\n }\n return this.add(other.negative());\n }\n multiply(other) {\n if (other instanceof ModulusPoly) {\n return this.multiplyOther(other);\n }\n return this.multiplyScalar(other);\n }\n multiplyOther(other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException('ModulusPolys do not have same ModulusGF field');\n }\n if (this.isZero() || other.isZero()) {\n // return this.field.getZero();\n return new ModulusPoly(this.field, new Int32Array([0]));\n }\n let aCoefficients = this.coefficients;\n let aLength = /*int*/ aCoefficients.length;\n let bCoefficients = other.coefficients;\n let bLength = /*int*/ bCoefficients.length;\n let product = new Int32Array(aLength + bLength - 1);\n for (let i /*int*/ = 0; i < aLength; i++) {\n let aCoeff = /*int*/ aCoefficients[i];\n for (let j /*int*/ = 0; j < bLength; j++) {\n product[i + j] = this.field.add(product[i + j], this.field.multiply(aCoeff, bCoefficients[j]));\n }\n }\n return new ModulusPoly(this.field, product);\n }\n negative() {\n let size = /*int*/ this.coefficients.length;\n let negativeCoefficients = new Int32Array(size);\n for (let i /*int*/ = 0; i < size; i++) {\n negativeCoefficients[i] = this.field.subtract(0, this.coefficients[i]);\n }\n return new ModulusPoly(this.field, negativeCoefficients);\n }\n multiplyScalar(scalar) {\n if (scalar === 0) {\n return new ModulusPoly(this.field, new Int32Array([0]));\n }\n if (scalar === 1) {\n return this;\n }\n let size = /*int*/ this.coefficients.length;\n let product = new Int32Array(size);\n for (let i /*int*/ = 0; i < size; i++) {\n product[i] = this.field.multiply(this.coefficients[i], scalar);\n }\n return new ModulusPoly(this.field, product);\n }\n multiplyByMonomial(degree, coefficient) {\n if (degree < 0) {\n throw new IllegalArgumentException();\n }\n if (coefficient === 0) {\n return new ModulusPoly(this.field, new Int32Array([0]));\n }\n let size = /*int*/ this.coefficients.length;\n let product = new Int32Array(size + degree);\n for (let i /*int*/ = 0; i < size; i++) {\n product[i] = this.field.multiply(this.coefficients[i], coefficient);\n }\n return new ModulusPoly(this.field, product);\n }\n /*\n ModulusPoly[] divide(other: ModulusPoly) {\n if (!field.equals(other.field)) {\n throw new IllegalArgumentException(\"ModulusPolys do not have same ModulusGF field\");\n }\n if (other.isZero()) {\n throw new IllegalArgumentException(\"Divide by 0\");\n }\n \n let quotient: ModulusPoly = field.getZero();\n let remainder: ModulusPoly = this;\n \n let denominatorLeadingTerm: /*int/ number = other.getCoefficient(other.getDegree());\n let inverseDenominatorLeadingTerm: /*int/ number = field.inverse(denominatorLeadingTerm);\n \n while (remainder.getDegree() >= other.getDegree() && !remainder.isZero()) {\n let degreeDifference: /*int/ number = remainder.getDegree() - other.getDegree();\n let scale: /*int/ number = field.multiply(remainder.getCoefficient(remainder.getDegree()), inverseDenominatorLeadingTerm);\n let term: ModulusPoly = other.multiplyByMonomial(degreeDifference, scale);\n let iterationQuotient: ModulusPoly = field.buildMonomial(degreeDifference, scale);\n quotient = quotient.add(iterationQuotient);\n remainder = remainder.subtract(term);\n }\n \n return new ModulusPoly[] { quotient, remainder };\n }\n */\n // @Override\n toString() {\n let result = new StringBuilder( /*8 * this.getDegree()*/); // dynamic string size in JS\n for (let degree /*int*/ = this.getDegree(); degree >= 0; degree--) {\n let coefficient = /*int*/ this.getCoefficient(degree);\n if (coefficient !== 0) {\n if (coefficient < 0) {\n result.append(' - ');\n coefficient = -coefficient;\n }\n else {\n if (result.length() > 0) {\n result.append(' + ');\n }\n }\n if (degree === 0 || coefficient !== 1) {\n result.append(coefficient);\n }\n if (degree !== 0) {\n if (degree === 1) {\n result.append('x');\n }\n else {\n result.append('x^');\n result.append(degree);\n }\n }\n }\n }\n return result.toString();\n }\n }\n\n class ModulusBase {\n add(a, b) {\n return (a + b) % this.modulus;\n }\n subtract(a, b) {\n return (this.modulus + a - b) % this.modulus;\n }\n exp(a) {\n return this.expTable[a];\n }\n log(a) {\n if (a === 0) {\n throw new IllegalArgumentException();\n }\n return this.logTable[a];\n }\n inverse(a) {\n if (a === 0) {\n throw new ArithmeticException();\n }\n return this.expTable[this.modulus - this.logTable[a] - 1];\n }\n multiply(a, b) {\n if (a === 0 || b === 0) {\n return 0;\n }\n return this.expTable[(this.logTable[a] + this.logTable[b]) % (this.modulus - 1)];\n }\n getSize() {\n return this.modulus;\n }\n equals(o) {\n return o === this;\n }\n }\n\n /*\n * Copyright 2012 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *A field based on powers of a generator integer, modulo some modulus.
\n *\n * @author Sean Owen\n * @see com.google.zxing.common.reedsolomon.GenericGF\n */\n /*public final*/ class ModulusGF extends ModulusBase {\n // private /*final*/ modulus: /*int*/ number;\n constructor(modulus, generator) {\n super();\n this.modulus = modulus;\n this.expTable = new Int32Array(modulus);\n this.logTable = new Int32Array(modulus);\n let x = /*int*/ 1;\n for (let i /*int*/ = 0; i < modulus; i++) {\n this.expTable[i] = x;\n x = (x * generator) % modulus;\n }\n for (let i /*int*/ = 0; i < modulus - 1; i++) {\n this.logTable[this.expTable[i]] = i;\n }\n // logTable[0] == 0 but this should never be used\n this.zero = new ModulusPoly(this, new Int32Array([0]));\n this.one = new ModulusPoly(this, new Int32Array([1]));\n }\n getZero() {\n return this.zero;\n }\n getOne() {\n return this.one;\n }\n buildMonomial(degree, coefficient) {\n if (degree < 0) {\n throw new IllegalArgumentException();\n }\n if (coefficient === 0) {\n return this.zero;\n }\n let coefficients = new Int32Array(degree + 1);\n coefficients[0] = coefficient;\n return new ModulusPoly(this, coefficients);\n }\n }\n ModulusGF.PDF417_GF = new ModulusGF(PDF417Common.NUMBER_OF_CODEWORDS, 3);\n\n /*\n * Copyright 2012 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n *PDF417 error correction implementation.
\n *\n *This example\n * is quite useful in understanding the algorithm.
\n *\n * @author Sean Owen\n * @see com.google.zxing.common.reedsolomon.ReedSolomonDecoder\n */\n /*public final*/ class ErrorCorrection {\n constructor() {\n this.field = ModulusGF.PDF417_GF;\n }\n /**\n * @param received received codewords\n * @param numECCodewords number of those codewords used for EC\n * @param erasures location of erasures\n * @return number of errors\n * @throws ChecksumException if errors cannot be corrected, maybe because of too many errors\n */\n decode(received, numECCodewords, erasures) {\n let poly = new ModulusPoly(this.field, received);\n let S = new Int32Array(numECCodewords);\n let error = false;\n for (let i /*int*/ = numECCodewords; i > 0; i--) {\n let evaluation = poly.evaluateAt(this.field.exp(i));\n S[numECCodewords - i] = evaluation;\n if (evaluation !== 0) {\n error = true;\n }\n }\n if (!error) {\n return 0;\n }\n let knownErrors = this.field.getOne();\n if (erasures != null) {\n for (const erasure of erasures) {\n let b = this.field.exp(received.length - 1 - erasure);\n // Add (1 - bx) term:\n let term = new ModulusPoly(this.field, new Int32Array([this.field.subtract(0, b), 1]));\n knownErrors = knownErrors.multiply(term);\n }\n }\n let syndrome = new ModulusPoly(this.field, S);\n // syndrome = syndrome.multiply(knownErrors);\n let sigmaOmega = this.runEuclideanAlgorithm(this.field.buildMonomial(numECCodewords, 1), syndrome, numECCodewords);\n let sigma = sigmaOmega[0];\n let omega = sigmaOmega[1];\n // sigma = sigma.multiply(knownErrors);\n let errorLocations = this.findErrorLocations(sigma);\n let errorMagnitudes = this.findErrorMagnitudes(omega, sigma, errorLocations);\n for (let i /*int*/ = 0; i < errorLocations.length; i++) {\n let position = received.length - 1 - this.field.log(errorLocations[i]);\n if (position < 0) {\n throw ChecksumException.getChecksumInstance();\n }\n received[position] = this.field.subtract(received[position], errorMagnitudes[i]);\n }\n return errorLocations.length;\n }\n /**\n *\n * @param ModulusPoly\n * @param a\n * @param ModulusPoly\n * @param b\n * @param int\n * @param R\n * @throws ChecksumException\n */\n runEuclideanAlgorithm(a, b, R) {\n // Assume a's degree is >= b's\n if (a.getDegree() < b.getDegree()) {\n let temp = a;\n a = b;\n b = temp;\n }\n let rLast = a;\n let r = b;\n let tLast = this.field.getZero();\n let t = this.field.getOne();\n // Run Euclidean algorithm until r's degree is less than R/2\n while (r.getDegree() >= Math.round(R / 2)) {\n let rLastLast = rLast;\n let tLastLast = tLast;\n rLast = r;\n tLast = t;\n // Divide rLastLast by rLast, with quotient in q and remainder in r\n if (rLast.isZero()) {\n // Oops, Euclidean algorithm already terminated?\n throw ChecksumException.getChecksumInstance();\n }\n r = rLastLast;\n let q = this.field.getZero();\n let denominatorLeadingTerm = rLast.getCoefficient(rLast.getDegree());\n let dltInverse = this.field.inverse(denominatorLeadingTerm);\n while (r.getDegree() >= rLast.getDegree() && !r.isZero()) {\n let degreeDiff = r.getDegree() - rLast.getDegree();\n let scale = this.field.multiply(r.getCoefficient(r.getDegree()), dltInverse);\n q = q.add(this.field.buildMonomial(degreeDiff, scale));\n r = r.subtract(rLast.multiplyByMonomial(degreeDiff, scale));\n }\n t = q.multiply(tLast).subtract(tLastLast).negative();\n }\n let sigmaTildeAtZero = t.getCoefficient(0);\n if (sigmaTildeAtZero === 0) {\n throw ChecksumException.getChecksumInstance();\n }\n let inverse = this.field.inverse(sigmaTildeAtZero);\n let sigma = t.multiply(inverse);\n let omega = r.multiply(inverse);\n return [sigma, omega];\n }\n /**\n *\n * @param errorLocator\n * @throws ChecksumException\n */\n findErrorLocations(errorLocator) {\n // This is a direct application of Chien's search\n let numErrors = errorLocator.getDegree();\n let result = new Int32Array(numErrors);\n let e = 0;\n for (let i /*int*/ = 1; i < this.field.getSize() && e < numErrors; i++) {\n if (errorLocator.evaluateAt(i) === 0) {\n result[e] = this.field.inverse(i);\n e++;\n }\n }\n if (e !== numErrors) {\n throw ChecksumException.getChecksumInstance();\n }\n return result;\n }\n findErrorMagnitudes(errorEvaluator, errorLocator, errorLocations) {\n let errorLocatorDegree = errorLocator.getDegree();\n let formalDerivativeCoefficients = new Int32Array(errorLocatorDegree);\n for (let i /*int*/ = 1; i <= errorLocatorDegree; i++) {\n formalDerivativeCoefficients[errorLocatorDegree - i] =\n this.field.multiply(i, errorLocator.getCoefficient(i));\n }\n let formalDerivative = new ModulusPoly(this.field, formalDerivativeCoefficients);\n // This is directly applying Forney's Formula\n let s = errorLocations.length;\n let result = new Int32Array(s);\n for (let i /*int*/ = 0; i < s; i++) {\n let xiInverse = this.field.inverse(errorLocations[i]);\n let numerator = this.field.subtract(0, errorEvaluator.evaluateAt(xiInverse));\n let denominator = this.field.inverse(formalDerivative.evaluateAt(xiInverse));\n result[i] = this.field.multiply(numerator, denominator);\n }\n return result;\n }\n }\n\n /*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * @author Guenther Grau\n */\n /*final*/ class BoundingBox {\n constructor(image, topLeft, bottomLeft, topRight, bottomRight) {\n if (image instanceof BoundingBox) {\n this.constructor_2(image);\n }\n else {\n this.constructor_1(image, topLeft, bottomLeft, topRight, bottomRight);\n }\n }\n /**\n *\n * @param image\n * @param topLeft\n * @param bottomLeft\n * @param topRight\n * @param bottomRight\n *\n * @throws NotFoundException\n */\n constructor_1(image, topLeft, bottomLeft, topRight, bottomRight) {\n const leftUnspecified = topLeft == null || bottomLeft == null;\n const rightUnspecified = topRight == null || bottomRight == null;\n if (leftUnspecified && rightUnspecified) {\n throw new NotFoundException();\n }\n if (leftUnspecified) {\n topLeft = new ResultPoint(0, topRight.getY());\n bottomLeft = new ResultPoint(0, bottomRight.getY());\n }\n else if (rightUnspecified) {\n topRight = new ResultPoint(image.getWidth() - 1, topLeft.getY());\n bottomRight = new ResultPoint(image.getWidth() - 1, bottomLeft.getY());\n }\n this.image = image;\n this.topLeft = topLeft;\n this.bottomLeft = bottomLeft;\n this.topRight = topRight;\n this.bottomRight = bottomRight;\n this.minX = Math.trunc(Math.min(topLeft.getX(), bottomLeft.getX()));\n this.maxX = Math.trunc(Math.max(topRight.getX(), bottomRight.getX()));\n this.minY = Math.trunc(Math.min(topLeft.getY(), topRight.getY()));\n this.maxY = Math.trunc(Math.max(bottomLeft.getY(), bottomRight.getY()));\n }\n constructor_2(boundingBox) {\n this.image = boundingBox.image;\n this.topLeft = boundingBox.getTopLeft();\n this.bottomLeft = boundingBox.getBottomLeft();\n this.topRight = boundingBox.getTopRight();\n this.bottomRight = boundingBox.getBottomRight();\n this.minX = boundingBox.getMinX();\n this.maxX = boundingBox.getMaxX();\n this.minY = boundingBox.getMinY();\n this.maxY = boundingBox.getMaxY();\n }\n /**\n * @throws NotFoundException\n */\n static merge(leftBox, rightBox) {\n if (leftBox == null) {\n return rightBox;\n }\n if (rightBox == null) {\n return leftBox;\n }\n return new BoundingBox(leftBox.image, leftBox.topLeft, leftBox.bottomLeft, rightBox.topRight, rightBox.bottomRight);\n }\n /**\n * @throws NotFoundException\n */\n addMissingRows(missingStartRows, missingEndRows, isLeft) {\n let newTopLeft = this.topLeft;\n let newBottomLeft = this.bottomLeft;\n let newTopRight = this.topRight;\n let newBottomRight = this.bottomRight;\n if (missingStartRows > 0) {\n let top = isLeft ? this.topLeft : this.topRight;\n let newMinY = Math.trunc(top.getY() - missingStartRows);\n if (newMinY < 0) {\n newMinY = 0;\n }\n let newTop = new ResultPoint(top.getX(), newMinY);\n if (isLeft) {\n newTopLeft = newTop;\n }\n else {\n newTopRight = newTop;\n }\n }\n if (missingEndRows > 0) {\n let bottom = isLeft ? this.bottomLeft : this.bottomRight;\n let newMaxY = Math.trunc(bottom.getY() + missingEndRows);\n if (newMaxY >= this.image.getHeight()) {\n newMaxY = this.image.getHeight() - 1;\n }\n let newBottom = new ResultPoint(bottom.getX(), newMaxY);\n if (isLeft) {\n newBottomLeft = newBottom;\n }\n else {\n newBottomRight = newBottom;\n }\n }\n return new BoundingBox(this.image, newTopLeft, newBottomLeft, newTopRight, newBottomRight);\n }\n getMinX() {\n return this.minX;\n }\n getMaxX() {\n return this.maxX;\n }\n getMinY() {\n return this.minY;\n }\n getMaxY() {\n return this.maxY;\n }\n getTopLeft() {\n return this.topLeft;\n }\n getTopRight() {\n return this.topRight;\n }\n getBottomLeft() {\n return this.bottomLeft;\n }\n getBottomRight() {\n return this.bottomRight;\n }\n }\n\n /*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n // package com.google.zxing.pdf417.decoder;\n /**\n * @author Guenther Grau\n */\n /*final*/ class BarcodeMetadata {\n constructor(columnCount, rowCountUpperPart, rowCountLowerPart, errorCorrectionLevel) {\n this.columnCount = columnCount;\n this.errorCorrectionLevel = errorCorrectionLevel;\n this.rowCountUpperPart = rowCountUpperPart;\n this.rowCountLowerPart = rowCountLowerPart;\n this.rowCount = rowCountUpperPart + rowCountLowerPart;\n }\n getColumnCount() {\n return this.columnCount;\n }\n getErrorCorrectionLevel() {\n return this.errorCorrectionLevel;\n }\n getRowCount() {\n return this.rowCount;\n }\n getRowCountUpperPart() {\n return this.rowCountUpperPart;\n }\n getRowCountLowerPart() {\n return this.rowCountLowerPart;\n }\n }\n\n /**\n * Java Formatter class polyfill that works in the JS way.\n */\n class Formatter {\n constructor() {\n this.buffer = '';\n }\n /**\n *\n * @see https://stackoverflow.com/a/13439711/4367683\n *\n * @param str\n * @param arr\n */\n static form(str, arr) {\n let i = -1;\n function callback(exp, p0, p1, p2, p3, p4) {\n if (exp === '%%')\n return '%';\n if (arr[++i] === undefined)\n return undefined;\n exp = p2 ? parseInt(p2.substr(1)) : undefined;\n let base = p3 ? parseInt(p3.substr(1)) : undefined;\n let val;\n switch (p4) {\n case 's':\n val = arr[i];\n break;\n case 'c':\n val = arr[i][0];\n break;\n case 'f':\n val = parseFloat(arr[i]).toFixed(exp);\n break;\n case 'p':\n val = parseFloat(arr[i]).toPrecision(exp);\n break;\n case 'e':\n val = parseFloat(arr[i]).toExponential(exp);\n break;\n case 'x':\n val = parseInt(arr[i]).toString(base ? base : 16);\n break;\n case 'd':\n val = parseFloat(parseInt(arr[i], base ? base : 10).toPrecision(exp)).toFixed(0);\n break;\n }\n val = typeof val === 'object' ? JSON.stringify(val) : (+val).toString(base);\n let size = parseInt(p1); /* padding size */\n let ch = p1 && (p1[0] + '') === '0' ? '0' : ' '; /* isnull? */\n while (val.length < size)\n val = p0 !== undefined ? val + ch : ch + val; /* isminus? */\n return val;\n }\n let regex = /%(-)?(0?[0-9]+)?([.][0-9]+)?([#][0-9]+)?([scfpexd%])/g;\n return str.replace(regex, callback);\n }\n /**\n *\n * @param append The new string to append.\n * @param args Argumets values to be formated.\n */\n format(append, ...args) {\n this.buffer += Formatter.form(append, args);\n }\n /**\n * Returns the Formatter string value.\n */\n toString() {\n return this.buffer;\n }\n }\n\n /*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * @author Guenther Grau\n */\n class DetectionResultColumn {\n constructor(boundingBox) {\n this.boundingBox = new BoundingBox(boundingBox);\n // this.codewords = new Codeword[boundingBox.getMaxY() - boundingBox.getMinY() + 1];\n this.codewords = new Array(boundingBox.getMaxY() - boundingBox.getMinY() + 1);\n }\n /*final*/ getCodewordNearby(imageRow) {\n let codeword = this.getCodeword(imageRow);\n if (codeword != null) {\n return codeword;\n }\n for (let i = 1; i < DetectionResultColumn.MAX_NEARBY_DISTANCE; i++) {\n let nearImageRow = this.imageRowToCodewordIndex(imageRow) - i;\n if (nearImageRow >= 0) {\n codeword = this.codewords[nearImageRow];\n if (codeword != null) {\n return codeword;\n }\n }\n nearImageRow = this.imageRowToCodewordIndex(imageRow) + i;\n if (nearImageRow < this.codewords.length) {\n codeword = this.codewords[nearImageRow];\n if (codeword != null) {\n return codeword;\n }\n }\n }\n return null;\n }\n /*final int*/ imageRowToCodewordIndex(imageRow) {\n return imageRow - this.boundingBox.getMinY();\n }\n /*final void*/ setCodeword(imageRow, codeword) {\n this.codewords[this.imageRowToCodewordIndex(imageRow)] = codeword;\n }\n /*final*/ getCodeword(imageRow) {\n return this.codewords[this.imageRowToCodewordIndex(imageRow)];\n }\n /*final*/ getBoundingBox() {\n return this.boundingBox;\n }\n /*final*/ getCodewords() {\n return this.codewords;\n }\n // @Override\n toString() {\n const formatter = new Formatter();\n let row = 0;\n for (const codeword of this.codewords) {\n if (codeword == null) {\n formatter.format('%3d: | %n', row++);\n continue;\n }\n formatter.format('%3d: %3d|%3d%n', row++, codeword.getRowNumber(), codeword.getValue());\n }\n return formatter.toString();\n }\n }\n DetectionResultColumn.MAX_NEARBY_DISTANCE = 5;\n\n /*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n // import java.util.ArrayList;\n // import java.util.Collection;\n // import java.util.HashMap;\n // import java.util.Map;\n // import java.util.Map.Entry;\n /**\n * @author Guenther Grau\n */\n /*final*/ class BarcodeValue {\n constructor() {\n this.values = new Map();\n }\n /**\n * Add an occurrence of a value\n */\n setValue(value) {\n value = Math.trunc(value);\n let confidence = this.values.get(value);\n if (confidence == null) {\n confidence = 0;\n }\n confidence++;\n this.values.set(value, confidence);\n }\n /**\n * Determines the maximum occurrence of a set value and returns all values which were set with this occurrence.\n * @return an array of int, containing the values with the highest occurrence, or null, if no value was set\n */\n getValue() {\n let maxConfidence = -1;\n let result = new Array();\n for (const [key, value] of this.values.entries()) {\n const entry = {\n getKey: () => key,\n getValue: () => value,\n };\n if (entry.getValue() > maxConfidence) {\n maxConfidence = entry.getValue();\n result = [];\n result.push(entry.getKey());\n }\n else if (entry.getValue() === maxConfidence) {\n result.push(entry.getKey());\n }\n }\n return PDF417Common.toIntArray(result);\n }\n getConfidence(value) {\n return this.values.get(value);\n }\n }\n\n /*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * @author Guenther Grau\n */\n /*final*/ class DetectionResultRowIndicatorColumn extends DetectionResultColumn {\n constructor(boundingBox, isLeft) {\n super(boundingBox);\n this._isLeft = isLeft;\n }\n setRowNumbers() {\n for (let codeword /*Codeword*/ of this.getCodewords()) {\n if (codeword != null) {\n codeword.setRowNumberAsRowIndicatorColumn();\n }\n }\n }\n // TODO implement properly\n // TODO maybe we should add missing codewords to store the correct row number to make\n // finding row numbers for other columns easier\n // use row height count to make detection of invalid row numbers more reliable\n adjustCompleteIndicatorColumnRowNumbers(barcodeMetadata) {\n let codewords = this.getCodewords();\n this.setRowNumbers();\n this.removeIncorrectCodewords(codewords, barcodeMetadata);\n let boundingBox = this.getBoundingBox();\n let top = this._isLeft ? boundingBox.getTopLeft() : boundingBox.getTopRight();\n let bottom = this._isLeft ? boundingBox.getBottomLeft() : boundingBox.getBottomRight();\n let firstRow = this.imageRowToCodewordIndex(Math.trunc(top.getY()));\n let lastRow = this.imageRowToCodewordIndex(Math.trunc(bottom.getY()));\n // We need to be careful using the average row height. Barcode could be skewed so that we have smaller and\n // taller rows\n // float averageRowHeight = (lastRow - firstRow) / /*(float)*/ barcodeMetadata.getRowCount();\n let barcodeRow = -1;\n let maxRowHeight = 1;\n let currentRowHeight = 0;\n for (let codewordsRow /*int*/ = firstRow; codewordsRow < lastRow; codewordsRow++) {\n if (codewords[codewordsRow] == null) {\n continue;\n }\n let codeword = codewords[codewordsRow];\n // float expectedRowNumber = (codewordsRow - firstRow) / averageRowHeight;\n // if (Math.abs(codeword.getRowNumber() - expectedRowNumber) > 2) {\n // SimpleLog.log(LEVEL.WARNING,\n // \"Removing codeword, rowNumberSkew too high, codeword[\" + codewordsRow + \"]: Expected Row: \" +\n // expectedRowNumber + \", RealRow: \" + codeword.getRowNumber() + \", value: \" + codeword.getValue());\n // codewords[codewordsRow] = null;\n // }\n let rowDifference = codeword.getRowNumber() - barcodeRow;\n // TODO improve handling with case where first row indicator doesn't start with 0\n if (rowDifference === 0) {\n currentRowHeight++;\n }\n else if (rowDifference === 1) {\n maxRowHeight = Math.max(maxRowHeight, currentRowHeight);\n currentRowHeight = 1;\n barcodeRow = codeword.getRowNumber();\n }\n else if (rowDifference < 0 ||\n codeword.getRowNumber() >= barcodeMetadata.getRowCount() ||\n rowDifference > codewordsRow) {\n codewords[codewordsRow] = null;\n }\n else {\n let checkedRows;\n if (maxRowHeight > 2) {\n checkedRows = (maxRowHeight - 2) * rowDifference;\n }\n else {\n checkedRows = rowDifference;\n }\n let closePreviousCodewordFound = checkedRows >= codewordsRow;\n for (let i /*int*/ = 1; i <= checkedRows && !closePreviousCodewordFound; i++) {\n // there must be (height * rowDifference) number of codewords missing. For now we assume height = 1.\n // This should hopefully get rid of most problems already.\n closePreviousCodewordFound = codewords[codewordsRow - i] != null;\n }\n if (closePreviousCodewordFound) {\n codewords[codewordsRow] = null;\n }\n else {\n barcodeRow = codeword.getRowNumber();\n currentRowHeight = 1;\n }\n }\n }\n // return (int) (averageRowHeight + 0.5);\n }\n getRowHeights() {\n let barcodeMetadata = this.getBarcodeMetadata();\n if (barcodeMetadata == null) {\n return null;\n }\n this.adjustIncompleteIndicatorColumnRowNumbers(barcodeMetadata);\n let result = new Int32Array(barcodeMetadata.getRowCount());\n for (let codeword /*Codeword*/ of this.getCodewords()) {\n if (codeword != null) {\n let rowNumber = codeword.getRowNumber();\n if (rowNumber >= result.length) {\n // We have more rows than the barcode metadata allows for, ignore them.\n continue;\n }\n result[rowNumber]++;\n } // else throw exception?\n }\n return result;\n }\n // TODO maybe we should add missing codewords to store the correct row number to make\n // finding row numbers for other columns easier\n // use row height count to make detection of invalid row numbers more reliable\n adjustIncompleteIndicatorColumnRowNumbers(barcodeMetadata) {\n let boundingBox = this.getBoundingBox();\n let top = this._isLeft ? boundingBox.getTopLeft() : boundingBox.getTopRight();\n let bottom = this._isLeft ? boundingBox.getBottomLeft() : boundingBox.getBottomRight();\n let firstRow = this.imageRowToCodewordIndex(Math.trunc(top.getY()));\n let lastRow = this.imageRowToCodewordIndex(Math.trunc(bottom.getY()));\n // float averageRowHeight = (lastRow - firstRow) / /*(float)*/ barcodeMetadata.getRowCount();\n let codewords = this.getCodewords();\n let barcodeRow = -1;\n for (let codewordsRow /*int*/ = firstRow; codewordsRow < lastRow; codewordsRow++) {\n if (codewords[codewordsRow] == null) {\n continue;\n }\n let codeword = codewords[codewordsRow];\n codeword.setRowNumberAsRowIndicatorColumn();\n let rowDifference = codeword.getRowNumber() - barcodeRow;\n // TODO improve handling with case where first row indicator doesn't start with 0\n if (rowDifference === 0) ;\n else if (rowDifference === 1) {\n barcodeRow = codeword.getRowNumber();\n }\n else if (codeword.getRowNumber() >= barcodeMetadata.getRowCount()) {\n codewords[codewordsRow] = null;\n }\n else {\n barcodeRow = codeword.getRowNumber();\n }\n }\n // return (int) (averageRowHeight + 0.5);\n }\n getBarcodeMetadata() {\n let codewords = this.getCodewords();\n let barcodeColumnCount = new BarcodeValue();\n let barcodeRowCountUpperPart = new BarcodeValue();\n let barcodeRowCountLowerPart = new BarcodeValue();\n let barcodeECLevel = new BarcodeValue();\n for (let codeword /*Codeword*/ of codewords) {\n if (codeword == null) {\n continue;\n }\n codeword.setRowNumberAsRowIndicatorColumn();\n let rowIndicatorValue = codeword.getValue() % 30;\n let codewordRowNumber = codeword.getRowNumber();\n if (!this._isLeft) {\n codewordRowNumber += 2;\n }\n switch (codewordRowNumber % 3) {\n case 0:\n barcodeRowCountUpperPart.setValue(rowIndicatorValue * 3 + 1);\n break;\n case 1:\n barcodeECLevel.setValue(rowIndicatorValue / 3);\n barcodeRowCountLowerPart.setValue(rowIndicatorValue % 3);\n break;\n case 2:\n barcodeColumnCount.setValue(rowIndicatorValue + 1);\n break;\n }\n }\n // Maybe we should check if we have ambiguous values?\n if ((barcodeColumnCount.getValue().length === 0) ||\n (barcodeRowCountUpperPart.getValue().length === 0) ||\n (barcodeRowCountLowerPart.getValue().length === 0) ||\n (barcodeECLevel.getValue().length === 0) ||\n barcodeColumnCount.getValue()[0] < 1 ||\n barcodeRowCountUpperPart.getValue()[0] + barcodeRowCountLowerPart.getValue()[0] < PDF417Common.MIN_ROWS_IN_BARCODE ||\n barcodeRowCountUpperPart.getValue()[0] + barcodeRowCountLowerPart.getValue()[0] > PDF417Common.MAX_ROWS_IN_BARCODE) {\n return null;\n }\n let barcodeMetadata = new BarcodeMetadata(barcodeColumnCount.getValue()[0], barcodeRowCountUpperPart.getValue()[0], barcodeRowCountLowerPart.getValue()[0], barcodeECLevel.getValue()[0]);\n this.removeIncorrectCodewords(codewords, barcodeMetadata);\n return barcodeMetadata;\n }\n removeIncorrectCodewords(codewords, barcodeMetadata) {\n // Remove codewords which do not match the metadata\n // TODO Maybe we should keep the incorrect codewords for the start and end positions?\n for (let codewordRow /*int*/ = 0; codewordRow < codewords.length; codewordRow++) {\n let codeword = codewords[codewordRow];\n if (codewords[codewordRow] == null) {\n continue;\n }\n let rowIndicatorValue = codeword.getValue() % 30;\n let codewordRowNumber = codeword.getRowNumber();\n if (codewordRowNumber > barcodeMetadata.getRowCount()) {\n codewords[codewordRow] = null;\n continue;\n }\n if (!this._isLeft) {\n codewordRowNumber += 2;\n }\n switch (codewordRowNumber % 3) {\n case 0:\n if (rowIndicatorValue * 3 + 1 !== barcodeMetadata.getRowCountUpperPart()) {\n codewords[codewordRow] = null;\n }\n break;\n case 1:\n if (Math.trunc(rowIndicatorValue / 3) !== barcodeMetadata.getErrorCorrectionLevel() ||\n rowIndicatorValue % 3 !== barcodeMetadata.getRowCountLowerPart()) {\n codewords[codewordRow] = null;\n }\n break;\n case 2:\n if (rowIndicatorValue + 1 !== barcodeMetadata.getColumnCount()) {\n codewords[codewordRow] = null;\n }\n break;\n }\n }\n }\n isLeft() {\n return this._isLeft;\n }\n // @Override\n toString() {\n return 'IsLeft: ' + this._isLeft + '\\n' + super.toString();\n }\n }\n\n /*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * @author Guenther Grau\n */\n /*final*/ class DetectionResult {\n constructor(barcodeMetadata, boundingBox) {\n /*final*/ this.ADJUST_ROW_NUMBER_SKIP = 2;\n this.barcodeMetadata = barcodeMetadata;\n this.barcodeColumnCount = barcodeMetadata.getColumnCount();\n this.boundingBox = boundingBox;\n // this.detectionResultColumns = new DetectionResultColumn[this.barcodeColumnCount + 2];\n this.detectionResultColumns = new Array(this.barcodeColumnCount + 2);\n }\n getDetectionResultColumns() {\n this.adjustIndicatorColumnRowNumbers(this.detectionResultColumns[0]);\n this.adjustIndicatorColumnRowNumbers(this.detectionResultColumns[this.barcodeColumnCount + 1]);\n let unadjustedCodewordCount = PDF417Common.MAX_CODEWORDS_IN_BARCODE;\n let previousUnadjustedCount;\n do {\n previousUnadjustedCount = unadjustedCodewordCount;\n unadjustedCodewordCount = this.adjustRowNumbersAndGetCount();\n } while (unadjustedCodewordCount > 0 && unadjustedCodewordCount < previousUnadjustedCount);\n return this.detectionResultColumns;\n }\n adjustIndicatorColumnRowNumbers(detectionResultColumn) {\n if (detectionResultColumn != null) {\n detectionResultColumn\n .adjustCompleteIndicatorColumnRowNumbers(this.barcodeMetadata);\n }\n }\n // TODO ensure that no detected codewords with unknown row number are left\n // we should be able to estimate the row height and use it as a hint for the row number\n // we should also fill the rows top to bottom and bottom to top\n /**\n * @return number of codewords which don't have a valid row number. Note that the count is not accurate as codewords\n * will be counted several times. It just serves as an indicator to see when we can stop adjusting row numbers\n */\n adjustRowNumbersAndGetCount() {\n let unadjustedCount = this.adjustRowNumbersByRow();\n if (unadjustedCount === 0) {\n return 0;\n }\n for (let barcodeColumn /*int*/ = 1; barcodeColumn < this.barcodeColumnCount + 1; barcodeColumn++) {\n let codewords = this.detectionResultColumns[barcodeColumn].getCodewords();\n for (let codewordsRow /*int*/ = 0; codewordsRow < codewords.length; codewordsRow++) {\n if (codewords[codewordsRow] == null) {\n continue;\n }\n if (!codewords[codewordsRow].hasValidRowNumber()) {\n this.adjustRowNumbers(barcodeColumn, codewordsRow, codewords);\n }\n }\n }\n return unadjustedCount;\n }\n adjustRowNumbersByRow() {\n this.adjustRowNumbersFromBothRI();\n // TODO we should only do full row adjustments if row numbers of left and right row indicator column match.\n // Maybe it's even better to calculated the height (rows: d) and divide it by the number of barcode\n // rows. This, together with the LRI and RRI row numbers should allow us to get a good estimate where a row\n // number starts and ends.\n let unadjustedCount = this.adjustRowNumbersFromLRI();\n return unadjustedCount + this.adjustRowNumbersFromRRI();\n }\n adjustRowNumbersFromBothRI() {\n if (this.detectionResultColumns[0] == null || this.detectionResultColumns[this.barcodeColumnCount + 1] == null) {\n return;\n }\n let LRIcodewords = this.detectionResultColumns[0].getCodewords();\n let RRIcodewords = this.detectionResultColumns[this.barcodeColumnCount + 1].getCodewords();\n for (let codewordsRow /*int*/ = 0; codewordsRow < LRIcodewords.length; codewordsRow++) {\n if (LRIcodewords[codewordsRow] != null &&\n RRIcodewords[codewordsRow] != null &&\n LRIcodewords[codewordsRow].getRowNumber() === RRIcodewords[codewordsRow].getRowNumber()) {\n for (let barcodeColumn /*int*/ = 1; barcodeColumn <= this.barcodeColumnCount; barcodeColumn++) {\n let codeword = this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow];\n if (codeword == null) {\n continue;\n }\n codeword.setRowNumber(LRIcodewords[codewordsRow].getRowNumber());\n if (!codeword.hasValidRowNumber()) {\n this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow] = null;\n }\n }\n }\n }\n }\n adjustRowNumbersFromRRI() {\n if (this.detectionResultColumns[this.barcodeColumnCount + 1] == null) {\n return 0;\n }\n let unadjustedCount = 0;\n let codewords = this.detectionResultColumns[this.barcodeColumnCount + 1].getCodewords();\n for (let codewordsRow /*int*/ = 0; codewordsRow < codewords.length; codewordsRow++) {\n if (codewords[codewordsRow] == null) {\n continue;\n }\n let rowIndicatorRowNumber = codewords[codewordsRow].getRowNumber();\n let invalidRowCounts = 0;\n for (let barcodeColumn /*int*/ = this.barcodeColumnCount + 1; barcodeColumn > 0 && invalidRowCounts < this.ADJUST_ROW_NUMBER_SKIP; barcodeColumn--) {\n let codeword = this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow];\n if (codeword != null) {\n invalidRowCounts = DetectionResult.adjustRowNumberIfValid(rowIndicatorRowNumber, invalidRowCounts, codeword);\n if (!codeword.hasValidRowNumber()) {\n unadjustedCount++;\n }\n }\n }\n }\n return unadjustedCount;\n }\n adjustRowNumbersFromLRI() {\n if (this.detectionResultColumns[0] == null) {\n return 0;\n }\n let unadjustedCount = 0;\n let codewords = this.detectionResultColumns[0].getCodewords();\n for (let codewordsRow /*int*/ = 0; codewordsRow < codewords.length; codewordsRow++) {\n if (codewords[codewordsRow] == null) {\n continue;\n }\n let rowIndicatorRowNumber = codewords[codewordsRow].getRowNumber();\n let invalidRowCounts = 0;\n for (let barcodeColumn /*int*/ = 1; barcodeColumn < this.barcodeColumnCount + 1 && invalidRowCounts < this.ADJUST_ROW_NUMBER_SKIP; barcodeColumn++) {\n let codeword = this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow];\n if (codeword != null) {\n invalidRowCounts = DetectionResult.adjustRowNumberIfValid(rowIndicatorRowNumber, invalidRowCounts, codeword);\n if (!codeword.hasValidRowNumber()) {\n unadjustedCount++;\n }\n }\n }\n }\n return unadjustedCount;\n }\n static adjustRowNumberIfValid(rowIndicatorRowNumber, invalidRowCounts, codeword) {\n if (codeword == null) {\n return invalidRowCounts;\n }\n if (!codeword.hasValidRowNumber()) {\n if (codeword.isValidRowNumber(rowIndicatorRowNumber)) {\n codeword.setRowNumber(rowIndicatorRowNumber);\n invalidRowCounts = 0;\n }\n else {\n ++invalidRowCounts;\n }\n }\n return invalidRowCounts;\n }\n adjustRowNumbers(barcodeColumn, codewordsRow, codewords) {\n if (!this.detectionResultColumns[barcodeColumn - 1]) {\n return;\n }\n let codeword = codewords[codewordsRow];\n let previousColumnCodewords = this.detectionResultColumns[barcodeColumn - 1].getCodewords();\n let nextColumnCodewords = previousColumnCodewords;\n if (this.detectionResultColumns[barcodeColumn + 1] != null) {\n nextColumnCodewords = this.detectionResultColumns[barcodeColumn + 1].getCodewords();\n }\n // let otherCodewords: Codeword[] = new Codeword[14];\n let otherCodewords = new Array(14);\n otherCodewords[2] = previousColumnCodewords[codewordsRow];\n otherCodewords[3] = nextColumnCodewords[codewordsRow];\n if (codewordsRow > 0) {\n otherCodewords[0] = codewords[codewordsRow - 1];\n otherCodewords[4] = previousColumnCodewords[codewordsRow - 1];\n otherCodewords[5] = nextColumnCodewords[codewordsRow - 1];\n }\n if (codewordsRow > 1) {\n otherCodewords[8] = codewords[codewordsRow - 2];\n otherCodewords[10] = previousColumnCodewords[codewordsRow - 2];\n otherCodewords[11] = nextColumnCodewords[codewordsRow - 2];\n }\n if (codewordsRow < codewords.length - 1) {\n otherCodewords[1] = codewords[codewordsRow + 1];\n otherCodewords[6] = previousColumnCodewords[codewordsRow + 1];\n otherCodewords[7] = nextColumnCodewords[codewordsRow + 1];\n }\n if (codewordsRow < codewords.length - 2) {\n otherCodewords[9] = codewords[codewordsRow + 2];\n otherCodewords[12] = previousColumnCodewords[codewordsRow + 2];\n otherCodewords[13] = nextColumnCodewords[codewordsRow + 2];\n }\n for (let otherCodeword of otherCodewords) {\n if (DetectionResult.adjustRowNumber(codeword, otherCodeword)) {\n return;\n }\n }\n }\n /**\n * @return true, if row number was adjusted, false otherwise\n */\n static adjustRowNumber(codeword, otherCodeword) {\n if (otherCodeword == null) {\n return false;\n }\n if (otherCodeword.hasValidRowNumber() && otherCodeword.getBucket() === codeword.getBucket()) {\n codeword.setRowNumber(otherCodeword.getRowNumber());\n return true;\n }\n return false;\n }\n getBarcodeColumnCount() {\n return this.barcodeColumnCount;\n }\n getBarcodeRowCount() {\n return this.barcodeMetadata.getRowCount();\n }\n getBarcodeECLevel() {\n return this.barcodeMetadata.getErrorCorrectionLevel();\n }\n setBoundingBox(boundingBox) {\n this.boundingBox = boundingBox;\n }\n getBoundingBox() {\n return this.boundingBox;\n }\n setDetectionResultColumn(barcodeColumn, detectionResultColumn) {\n this.detectionResultColumns[barcodeColumn] = detectionResultColumn;\n }\n getDetectionResultColumn(barcodeColumn) {\n return this.detectionResultColumns[barcodeColumn];\n }\n // @Override\n toString() {\n let rowIndicatorColumn = this.detectionResultColumns[0];\n if (rowIndicatorColumn == null) {\n rowIndicatorColumn = this.detectionResultColumns[this.barcodeColumnCount + 1];\n }\n // try (\n let formatter = new Formatter();\n // ) {\n for (let codewordsRow /*int*/ = 0; codewordsRow < rowIndicatorColumn.getCodewords().length; codewordsRow++) {\n formatter.format('CW %3d:', codewordsRow);\n for (let barcodeColumn /*int*/ = 0; barcodeColumn < this.barcodeColumnCount + 2; barcodeColumn++) {\n if (this.detectionResultColumns[barcodeColumn] == null) {\n formatter.format(' | ');\n continue;\n }\n let codeword = this.detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow];\n if (codeword == null) {\n formatter.format(' | ');\n continue;\n }\n formatter.format(' %3d|%3d', codeword.getRowNumber(), codeword.getValue());\n }\n formatter.format('%n');\n }\n return formatter.toString();\n // }\n }\n }\n\n /*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n // package com.google.zxing.pdf417.decoder;\n /**\n * @author Guenther Grau\n */\n /*final*/ class Codeword {\n constructor(startX, endX, bucket, value) {\n this.rowNumber = Codeword.BARCODE_ROW_UNKNOWN;\n this.startX = Math.trunc(startX);\n this.endX = Math.trunc(endX);\n this.bucket = Math.trunc(bucket);\n this.value = Math.trunc(value);\n }\n hasValidRowNumber() {\n return this.isValidRowNumber(this.rowNumber);\n }\n isValidRowNumber(rowNumber) {\n return rowNumber !== Codeword.BARCODE_ROW_UNKNOWN && this.bucket === (rowNumber % 3) * 3;\n }\n setRowNumberAsRowIndicatorColumn() {\n this.rowNumber = Math.trunc((Math.trunc(this.value / 30)) * 3 + Math.trunc(this.bucket / 3));\n }\n getWidth() {\n return this.endX - this.startX;\n }\n getStartX() {\n return this.startX;\n }\n getEndX() {\n return this.endX;\n }\n getBucket() {\n return this.bucket;\n }\n getValue() {\n return this.value;\n }\n getRowNumber() {\n return this.rowNumber;\n }\n setRowNumber(rowNumber) {\n this.rowNumber = rowNumber;\n }\n // @Override\n toString() {\n return this.rowNumber + '|' + this.value;\n }\n }\n Codeword.BARCODE_ROW_UNKNOWN = -1;\n\n /*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * @author Guenther Grau\n * @author creatale GmbH (christoph.schulz@creatale.de)\n */\n /*final*/ class PDF417CodewordDecoder {\n /* @note\n * this action have to be performed before first use of class\n * - static constructor\n * working with 32bit float (based from Java logic)\n */\n static initialize() {\n // Pre-computes the symbol ratio table.\n for ( /*int*/let i = 0; i < PDF417Common.SYMBOL_TABLE.length; i++) {\n let currentSymbol = PDF417Common.SYMBOL_TABLE[i];\n let currentBit = currentSymbol & 0x1;\n for ( /*int*/let j = 0; j < PDF417Common.BARS_IN_MODULE; j++) {\n let size = 0.0;\n while ((currentSymbol & 0x1) === currentBit) {\n size += 1.0;\n currentSymbol >>= 1;\n }\n currentBit = currentSymbol & 0x1;\n if (!PDF417CodewordDecoder.RATIOS_TABLE[i]) {\n PDF417CodewordDecoder.RATIOS_TABLE[i] = new Array(PDF417Common.BARS_IN_MODULE);\n }\n PDF417CodewordDecoder.RATIOS_TABLE[i][PDF417Common.BARS_IN_MODULE - j - 1] = Math.fround(size / PDF417Common.MODULES_IN_CODEWORD);\n }\n }\n this.bSymbolTableReady = true;\n }\n static getDecodedValue(moduleBitCount) {\n let decodedValue = PDF417CodewordDecoder.getDecodedCodewordValue(PDF417CodewordDecoder.sampleBitCounts(moduleBitCount));\n if (decodedValue !== -1) {\n return decodedValue;\n }\n return PDF417CodewordDecoder.getClosestDecodedValue(moduleBitCount);\n }\n static sampleBitCounts(moduleBitCount) {\n let bitCountSum = MathUtils.sum(moduleBitCount);\n let result = new Int32Array(PDF417Common.BARS_IN_MODULE);\n let bitCountIndex = 0;\n let sumPreviousBits = 0;\n for ( /*int*/let i = 0; i < PDF417Common.MODULES_IN_CODEWORD; i++) {\n let sampleIndex = bitCountSum / (2 * PDF417Common.MODULES_IN_CODEWORD) +\n (i * bitCountSum) / PDF417Common.MODULES_IN_CODEWORD;\n if (sumPreviousBits + moduleBitCount[bitCountIndex] <= sampleIndex) {\n sumPreviousBits += moduleBitCount[bitCountIndex];\n bitCountIndex++;\n }\n result[bitCountIndex]++;\n }\n return result;\n }\n static getDecodedCodewordValue(moduleBitCount) {\n let decodedValue = PDF417CodewordDecoder.getBitValue(moduleBitCount);\n return PDF417Common.getCodeword(decodedValue) === -1 ? -1 : decodedValue;\n }\n static getBitValue(moduleBitCount) {\n let result = /*long*/ 0;\n for (let /*int*/ i = 0; i < moduleBitCount.length; i++) {\n for ( /*int*/let bit = 0; bit < moduleBitCount[i]; bit++) {\n result = (result << 1) | (i % 2 === 0 ? 1 : 0);\n }\n }\n return Math.trunc(result);\n }\n // working with 32bit float (as in Java)\n static getClosestDecodedValue(moduleBitCount) {\n let bitCountSum = MathUtils.sum(moduleBitCount);\n let bitCountRatios = new Array(PDF417Common.BARS_IN_MODULE);\n if (bitCountSum > 1) {\n for (let /*int*/ i = 0; i < bitCountRatios.length; i++) {\n bitCountRatios[i] = Math.fround(moduleBitCount[i] / bitCountSum);\n }\n }\n let bestMatchError = Float.MAX_VALUE;\n let bestMatch = -1;\n if (!this.bSymbolTableReady) {\n PDF417CodewordDecoder.initialize();\n }\n for ( /*int*/let j = 0; j < PDF417CodewordDecoder.RATIOS_TABLE.length; j++) {\n let error = 0.0;\n let ratioTableRow = PDF417CodewordDecoder.RATIOS_TABLE[j];\n for ( /*int*/let k = 0; k < PDF417Common.BARS_IN_MODULE; k++) {\n let diff = Math.fround(ratioTableRow[k] - bitCountRatios[k]);\n error += Math.fround(diff * diff);\n if (error >= bestMatchError) {\n break;\n }\n }\n if (error < bestMatchError) {\n bestMatchError = error;\n bestMatch = PDF417Common.SYMBOL_TABLE[j];\n }\n }\n return bestMatch;\n }\n }\n // flag that the table is ready for use\n PDF417CodewordDecoder.bSymbolTableReady = false;\n PDF417CodewordDecoder.RATIOS_TABLE = new Array(PDF417Common.SYMBOL_TABLE.length).map(x => x = new Array(PDF417Common.BARS_IN_MODULE));\n\n /*\n * Copyright 2013 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n // package com.google.zxing.pdf417;\n /**\n * @author Guenther Grau\n */\n /*public final*/ class PDF417ResultMetadata {\n constructor() {\n this.segmentCount = -1;\n this.fileSize = -1;\n this.timestamp = -1;\n this.checksum = -1;\n }\n /**\n * The Segment ID represents the segment of the whole file distributed over different symbols.\n *\n * @return File segment index\n */\n getSegmentIndex() {\n return this.segmentIndex;\n }\n setSegmentIndex(segmentIndex) {\n this.segmentIndex = segmentIndex;\n }\n /**\n * Is the same for each related PDF417 symbol\n *\n * @return File ID\n */\n getFileId() {\n return this.fileId;\n }\n setFileId(fileId) {\n this.fileId = fileId;\n }\n /**\n * @return always null\n * @deprecated use dedicated already parsed fields\n */\n // @Deprecated\n getOptionalData() {\n return this.optionalData;\n }\n /**\n * @param optionalData old optional data format as int array\n * @deprecated parse and use new fields\n */\n // @Deprecated\n setOptionalData(optionalData) {\n this.optionalData = optionalData;\n }\n /**\n * @return true if it is the last segment\n */\n isLastSegment() {\n return this.lastSegment;\n }\n setLastSegment(lastSegment) {\n this.lastSegment = lastSegment;\n }\n /**\n * @return count of segments, -1 if not set\n */\n getSegmentCount() {\n return this.segmentCount;\n }\n setSegmentCount(segmentCount /*int*/) {\n this.segmentCount = segmentCount;\n }\n getSender() {\n return this.sender || null;\n }\n setSender(sender) {\n this.sender = sender;\n }\n getAddressee() {\n return this.addressee || null;\n }\n setAddressee(addressee) {\n this.addressee = addressee;\n }\n /**\n * Filename of the encoded file\n *\n * @return filename\n */\n getFileName() {\n return this.fileName;\n }\n setFileName(fileName) {\n this.fileName = fileName;\n }\n /**\n * filesize in bytes of the encoded file\n *\n * @return filesize in bytes, -1 if not set\n */\n getFileSize() {\n return this.fileSize;\n }\n setFileSize(fileSize /*long*/) {\n this.fileSize = fileSize;\n }\n /**\n * 16-bit CRC checksum using CCITT-16\n *\n * @return crc checksum, -1 if not set\n */\n getChecksum() {\n return this.checksum;\n }\n setChecksum(checksum /*int*/) {\n this.checksum = checksum;\n }\n /**\n * unix epock timestamp, elapsed seconds since 1970-01-01\n *\n * @return elapsed seconds, -1 if not set\n */\n getTimestamp() {\n return this.timestamp;\n }\n setTimestamp(timestamp /*long*/) {\n this.timestamp = timestamp;\n }\n }\n\n /**\n * Ponyfill for Java's Long class.\n */\n class Long {\n /**\n * Parses a string to a number, since JS has no really Int64.\n *\n * @param num Numeric string.\n * @param radix Destination radix.\n */\n static parseLong(num, radix = undefined) {\n return parseInt(num, radix);\n }\n }\n\n /**\n * Custom Error class of type Exception.\n */\n class NullPointerException extends Exception {\n }\n NullPointerException.kind = 'NullPointerException';\n\n /*\n * Copyright (c) 1994, 2004, Oracle and/or its affiliates. All rights reserved.\n * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.\n *\n * This code is free software; you can redistribute it and/or modify it\n * under the terms of the GNU General Public License version 2 only, as\n * published by the Free Software Foundation. Oracle designates this\n * particular file as subject to the \"Classpath\" exception as provided\n * by Oracle in the LICENSE file that accompanied this code.\n *\n * This code is distributed in the hope that it will be useful, but WITHOUT\n * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\n * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n * version 2 for more details (a copy is included in the LICENSE file that\n * accompanied this code).\n *\n * You should have received a copy of the GNU General Public License version\n * 2 along with this work; if not, write to the Free Software Foundation,\n * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.\n *\n * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA\n * or visit www.oracle.com if you need additional information or have any\n * questions.\n */\n // package java.io;\n /**\n * This abstract class is the superclass of all classes representing\n * an output stream of bytes. An output stream accepts output bytes\n * and sends them to some sink.\n *\n * Applications that need to define a subclass of\n * OutputStream
must always provide at least a method\n * that writes one byte of output.\n *\n * @author Arthur van Hoff\n * @see java.io.BufferedOutputStream\n * @see java.io.ByteArrayOutputStream\n * @see java.io.DataOutputStream\n * @see java.io.FilterOutputStream\n * @see java.io.InputStream\n * @see java.io.OutputStream#write(int)\n * @since JDK1.0\n */\n /*public*/ class OutputStream /*implements Closeable, Flushable*/ {\n /**\n * Writes b.length
bytes from the specified byte array\n * to this output stream. The general contract for write(b)
\n * is that it should have exactly the same effect as the call\n * write(b, 0, b.length)
.\n *\n * @param b the data.\n * @exception IOException if an I/O error occurs.\n * @see java.io.OutputStream#write(byte[], int, int)\n */\n writeBytes(b) {\n this.writeBytesOffset(b, 0, b.length);\n }\n /**\n * Writes len
bytes from the specified byte array\n * starting at offset off
to this output stream.\n * The general contract for write(b, off, len)
is that\n * some of the bytes in the array b
are written to the\n * output stream in order; element b[off]
is the first\n * byte written and b[off+len-1]
is the last byte written\n * by this operation.\n *
\n * The write
method of OutputStream
calls\n * the write method of one argument on each of the bytes to be\n * written out. Subclasses are encouraged to override this method and\n * provide a more efficient implementation.\n *
\n * If b
is null
, a\n * NullPointerException
is thrown.\n *
\n * If off
is negative, or len
is negative, or\n * off+len
is greater than the length of the array\n * b
, then an IndexOutOfBoundsException is thrown.\n *\n * @param b the data.\n * @param off the start offset in the data.\n * @param len the number of bytes to write.\n * @exception IOException if an I/O error occurs. In particular,\n * an IOException
is thrown if the output\n * stream is closed.\n */\n writeBytesOffset(b, off, len) {\n if (b == null) {\n throw new NullPointerException();\n }\n else if ((off < 0) || (off > b.length) || (len < 0) ||\n ((off + len) > b.length) || ((off + len) < 0)) {\n throw new IndexOutOfBoundsException();\n }\n else if (len === 0) {\n return;\n }\n for (let i = 0; i < len; i++) {\n this.write(b[off + i]);\n }\n }\n /**\n * Flushes this output stream and forces any buffered output bytes\n * to be written out. The general contract of flush
is\n * that calling it is an indication that, if any bytes previously\n * written have been buffered by the implementation of the output\n * stream, such bytes should immediately be written to their\n * intended destination.\n *
\n * If the intended destination of this stream is an abstraction provided by\n * the underlying operating system, for example a file, then flushing the\n * stream guarantees only that bytes previously written to the stream are\n * passed to the operating system for writing; it does not guarantee that\n * they are actually written to a physical device such as a disk drive.\n *
\n * The flush
method of OutputStream
does nothing.\n *\n * @exception IOException if an I/O error occurs.\n */\n flush() {\n }\n /**\n * Closes this output stream and releases any system resources\n * associated with this stream. The general contract of close
\n * is that it closes the output stream. A closed stream cannot perform\n * output operations and cannot be reopened.\n *
\n * The close
method of OutputStream
does nothing.\n *\n * @exception IOException if an I/O error occurs.\n */\n close() {\n }\n }\n\n /**\n * Custom Error class of type Exception.\n */\n class OutOfMemoryError extends Exception {\n }\n\n /*\n * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.\n * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.\n *\n * This code is free software; you can redistribute it and/or modify it\n * under the terms of the GNU General Public License version 2 only, as\n * published by the Free Software Foundation. Oracle designates this\n * particular file as subject to the \"Classpath\" exception as provided\n * by Oracle in the LICENSE file that accompanied this code.\n *\n * This code is distributed in the hope that it will be useful, but WITHOUT\n * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\n * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License\n * version 2 for more details (a copy is included in the LICENSE file that\n * accompanied this code).\n *\n * You should have received a copy of the GNU General Public License version\n * 2 along with this work; if not, write to the Free Software Foundation,\n * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.\n *\n * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA\n * or visit www.oracle.com if you need additional information or have any\n * questions.\n */\n /**\n * This class implements an output stream in which the data is\n * written into a byte array. The buffer automatically grows as data\n * is written to it.\n * The data can be retrieved using toByteArray()
and\n * toString()
.\n *
\n * Closing a ByteArrayOutputStream has no effect. The methods in\n * this class can be called after the stream has been closed without\n * generating an IOException.\n *\n * @author Arthur van Hoff\n * @since JDK1.0\n */\n /*public*/ class ByteArrayOutputStream extends OutputStream {\n /**\n * Creates a new byte array output stream. The buffer capacity is\n * initially 32 bytes, though its size increases if necessary.\n */\n // public constructor() {\n // this(32);\n // }\n /**\n * Creates a new byte array output stream, with a buffer capacity of\n * the specified size, in bytes.\n *\n * @param size the initial size.\n * @exception IllegalArgumentException if size is negative.\n */\n constructor(size = 32) {\n super();\n /**\n * The number of valid bytes in the buffer.\n */\n this.count = 0;\n if (size < 0) {\n throw new IllegalArgumentException('Negative initial size: '\n + size);\n }\n this.buf = new Uint8Array(size);\n }\n /**\n * Increases the capacity if necessary to ensure that it can hold\n * at least the number of elements specified by the minimum\n * capacity argument.\n *\n * @param minCapacity the desired minimum capacity\n * @throws OutOfMemoryError if {@code minCapacity < 0}. This is\n * interpreted as a request for the unsatisfiably large capacity\n * {@code (long) Integer.MAX_VALUE + (minCapacity - Integer.MAX_VALUE)}.\n */\n ensureCapacity(minCapacity) {\n // overflow-conscious code\n if (minCapacity - this.buf.length > 0)\n this.grow(minCapacity);\n }\n /**\n * Increases the capacity to ensure that it can hold at least the\n * number of elements specified by the minimum capacity argument.\n *\n * @param minCapacity the desired minimum capacity\n */\n grow(minCapacity) {\n // overflow-conscious code\n let oldCapacity = this.buf.length;\n let newCapacity = oldCapacity << 1;\n if (newCapacity - minCapacity < 0)\n newCapacity = minCapacity;\n if (newCapacity < 0) {\n if (minCapacity < 0) // overflow\n throw new OutOfMemoryError();\n newCapacity = Integer.MAX_VALUE;\n }\n this.buf = Arrays.copyOfUint8Array(this.buf, newCapacity);\n }\n /**\n * Writes the specified byte to this byte array output stream.\n *\n * @param b the byte to be written.\n */\n write(b) {\n this.ensureCapacity(this.count + 1);\n this.buf[this.count] = /*(byte)*/ b;\n this.count += 1;\n }\n /**\n * Writes len
bytes from the specified byte array\n * starting at offset off
to this byte array output stream.\n *\n * @param b the data.\n * @param off the start offset in the data.\n * @param len the number of bytes to write.\n */\n writeBytesOffset(b, off, len) {\n if ((off < 0) || (off > b.length) || (len < 0) ||\n ((off + len) - b.length > 0)) {\n throw new IndexOutOfBoundsException();\n }\n this.ensureCapacity(this.count + len);\n System.arraycopy(b, off, this.buf, this.count, len);\n this.count += len;\n }\n /**\n * Writes the complete contents of this byte array output stream to\n * the specified output stream argument, as if by calling the output\n * stream's write method using out.write(buf, 0, count)
.\n *\n * @param out the output stream to which to write the data.\n * @exception IOException if an I/O error occurs.\n */\n writeTo(out) {\n out.writeBytesOffset(this.buf, 0, this.count);\n }\n /**\n * Resets the count
field of this byte array output\n * stream to zero, so that all currently accumulated output in the\n * output stream is discarded. The output stream can be used again,\n * reusing the already allocated buffer space.\n *\n * @see java.io.ByteArrayInputStream#count\n */\n reset() {\n this.count = 0;\n }\n /**\n * Creates a newly allocated byte array. Its size is the current\n * size of this output stream and the valid contents of the buffer\n * have been copied into it.\n *\n * @return the current contents of this output stream, as a byte array.\n * @see java.io.ByteArrayOutputStream#size()\n */\n toByteArray() {\n return Arrays.copyOfUint8Array(this.buf, this.count);\n }\n /**\n * Returns the current size of the buffer.\n *\n * @return the value of the count
field, which is the number\n * of valid bytes in this output stream.\n * @see java.io.ByteArrayOutputStream#count\n */\n size() {\n return this.count;\n }\n toString(param) {\n if (!param) {\n return this.toString_void();\n }\n if (typeof param === 'string') {\n return this.toString_string(param);\n }\n return this.toString_number(param);\n }\n /**\n * Converts the buffer's contents into a string decoding bytes using the\n * platform's default character set. The length of the new String\n * is a function of the character set, and hence may not be equal to the\n * size of the buffer.\n *\n *
This method always replaces malformed-input and unmappable-character\n * sequences with the default replacement string for the platform's\n * default character set. The {@linkplain java.nio.charset.CharsetDecoder}\n * class should be used when more control over the decoding process is\n * required.\n *\n * @return String decoded from the buffer's contents.\n * @since JDK1.1\n */\n toString_void() {\n return new String(this.buf /*, 0, this.count*/).toString();\n }\n /**\n * Converts the buffer's contents into a string by decoding the bytes using\n * the specified {@link java.nio.charset.Charset charsetName}. The length of\n * the new String is a function of the charset, and hence may not be\n * equal to the length of the byte array.\n *\n *
This method always replaces malformed-input and unmappable-character\n * sequences with this charset's default replacement string. The {@link\n * java.nio.charset.CharsetDecoder} class should be used when more control\n * over the decoding process is required.\n *\n * @param charsetName the name of a supported\n * {@linkplain java.nio.charset.Charset charset \n *\n * @throws IOException\n */\n close() {\n }\n }\n\n /*\n * Copyright 2009 ZXing authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /*private*/ var Mode$2;\n (function (Mode) {\n Mode[Mode[\"ALPHA\"] = 0] = \"ALPHA\";\n Mode[Mode[\"LOWER\"] = 1] = \"LOWER\";\n Mode[Mode[\"MIXED\"] = 2] = \"MIXED\";\n Mode[Mode[\"PUNCT\"] = 3] = \"PUNCT\";\n Mode[Mode[\"ALPHA_SHIFT\"] = 4] = \"ALPHA_SHIFT\";\n Mode[Mode[\"PUNCT_SHIFT\"] = 5] = \"PUNCT_SHIFT\";\n })(Mode$2 || (Mode$2 = {}));\n /**\n * Indirectly access the global BigInt constructor, it\n * allows browsers that doesn't support BigInt to run\n * the library without breaking due to \"undefined BigInt\"\n * errors.\n */\n function getBigIntConstructor() {\n if (typeof window !== 'undefined') {\n return window['BigInt'] || null;\n }\n if (typeof global !== 'undefined') {\n return global['BigInt'] || null;\n }\n if (typeof self !== 'undefined') {\n return self['BigInt'] || null;\n }\n throw new Error('Can\\'t search globals for BigInt!');\n }\n /**\n * Used to store the BigInt constructor.\n */\n let BigInteger;\n /**\n * This function creates a bigint value. It allows browsers\n * that doesn't support BigInt to run the rest of the library\n * by not directly accessing the BigInt constructor.\n */\n function createBigInt(num) {\n if (typeof BigInteger === 'undefined') {\n BigInteger = getBigIntConstructor();\n }\n if (BigInteger === null) {\n throw new Error('BigInt is not supported!');\n }\n return BigInteger(num);\n }\n function getEXP900() {\n // in Java - array with length = 16\n let EXP900 = [];\n EXP900[0] = createBigInt(1);\n let nineHundred = createBigInt(900);\n EXP900[1] = nineHundred;\n // in Java - array with length = 16\n for (let i /*int*/ = 2; i < 16; i++) {\n EXP900[i] = EXP900[i - 1] * nineHundred;\n }\n return EXP900;\n }\n /**\n * This class contains the methods for decoding the PDF417 codewords. Given data and error-correction codewords received, possibly corrupted by errors, attempts to\n * correct the errors in-place. Implements Reed-Solomon encoding, as the name implies. Encode a sequence of code words (symbols) using Reed-Solomon to allow decoders\n * to detect and correct errors that may have been introduced when the resulting\n * data is stored or transmitted.}\n * @return String decoded from the buffer's contents.\n * @exception UnsupportedEncodingException\n * If the named charset is not supported\n * @since JDK1.1\n */\n toString_string(charsetName) {\n return new String(this.buf /*, 0, this.count, charsetName*/).toString();\n }\n /**\n * Creates a newly allocated string. Its size is the current size of\n * the output stream and the valid contents of the buffer have been\n * copied into it. Each character c in the resulting string is\n * constructed from the corresponding element b in the byte\n * array such that:\n *
\n *\n * @deprecated This method does not properly convert bytes into characters.\n * As of JDK 1.1, the preferred way to do this is via the\n * \n * c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))\n *
toString(String enc)
method, which takes an encoding-name\n * argument, or the toString()
method, which uses the\n * platform's default character encoding.\n *\n * @param hibyte the high byte of each resulting Unicode character.\n * @return the current contents of the output stream, as a string.\n * @see java.io.ByteArrayOutputStream#size()\n * @see java.io.ByteArrayOutputStream#toString(String)\n * @see java.io.ByteArrayOutputStream#toString()\n */\n // @Deprecated\n toString_number(hibyte) {\n return new String(this.buf /*, hibyte, 0, this.count*/).toString();\n }\n /**\n * Closing a ByteArrayOutputStream has no effect. The methods in\n * this class can be called after the stream has been closed without\n * generating an IOException.\n *