{"version":3,"sources":["webpack:///./node_modules/@zxing/library/esm5/core/common/BitArray.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/@zxing/library/esm5/core/common/detector/WhiteRectangleDetector.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/encoder/BlockPair.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/detector/AlignmentPattern.js","webpack:///./node_modules/vue-session/index.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/iterate.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/shared.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/OneDReader.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/to-length.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/global.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/core-js/internals/to-index.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/@zxing/library/esm5/core/common/reedsolomon/GenericGFPoly.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/detector/FinderPatternInfo.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/task.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/rss/RSS14Reader.js","webpack:///./node_modules/xlsx/xlsx.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/DataBlock.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/EAN13Reader.js","webpack:///./node_modules/@zxing/library/esm5/browser/BrowserBarcodeReader.js","webpack:///./node_modules/core-js/internals/array-copy-within.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/@zxing/library/esm5/core/ReaderException.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/xlsx/jszip.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/encoder/ByteMatrix.js","webpack:///./node_modules/core-js/modules/es.typed-array.subarray.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/to-offset.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/perform.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/ECBlocks.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/@zxing/library/esm5/core/WriterException.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/Mode.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/@zxing/library/esm5/core/RGBLuminanceSource.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/UPCEANExtension2Support.js","webpack:///./node_modules/core-js/modules/es.typed-array.sort.js","webpack:///./node_modules/xlsx/dist/cpexcel.js","webpack:///./node_modules/@zxing/library/esm5/core/common/GlobalHistogramBinarizer.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/encoder/Encoder.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/vue-meta/node_modules/deepmerge/dist/cjs.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/@zxing/library/esm5/core/ChecksumException.js","webpack:///./node_modules/sdp/sdp.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/core-js/modules/es.typed-array.slice.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/vue-cookies/vue-cookies.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/vue-barcode-scanner/index.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/Code39Reader.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/@zxing/library/esm5/core/ArgumentException.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/Decoder.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/vue-moment/dist/vue-moment.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/@zxing/library/esm5/core/ArithmeticException.js","webpack:///./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/@zxing/library/esm5/core/ReedSolomonException.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/@zxing/library/esm5/core/BinaryBitmap.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/rss/FinderPattern.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/@zxing/library/esm5/core/Exception.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/UPCEANExtension5Support.js","webpack:///./node_modules/core-js/modules/es.typed-array.find-index.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/DataMask.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.typed-array.set.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/QRCodeDecoderMetaData.js","webpack:///./node_modules/@zxing/library/esm5/core/util/Arrays.js","webpack:///./node_modules/sweetalert2/dist/sweetalert2.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/modules/es.typed-array.map.js","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/@zxing/library/esm5/core/common/HybridBinarizer.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/MultiFormatOneDReader.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/@zxing/library/esm5/core/EncodeHintType.js","webpack:///./node_modules/vue-barcode-reader/src/components/StreamBarcodeReader.vue?dc9f","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/@zxing/library/esm5/browser/BrowserCodeReader.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/BitMatrixParser.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/@zxing/library/esm5/core/util/StringBuilder.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/ErrorCorrectionLevel.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/UPCEANExtensionSupport.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/components/virtual/virtual.js","webpack:///./node_modules/swiper/esm/components/keyboard/keyboard.js","webpack:///./node_modules/swiper/esm/components/mousewheel/mousewheel.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./node_modules/swiper/esm/components/scrollbar/scrollbar.js","webpack:///./node_modules/swiper/esm/components/parallax/parallax.js","webpack:///./node_modules/swiper/esm/components/zoom/zoom.js","webpack:///./node_modules/swiper/esm/components/lazy/lazy.js","webpack:///./node_modules/swiper/esm/components/controller/controller.js","webpack:///./node_modules/swiper/esm/components/a11y/a11y.js","webpack:///./node_modules/swiper/esm/components/history/history.js","webpack:///./node_modules/swiper/esm/components/hash-navigation/hash-navigation.js","webpack:///./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:///./node_modules/swiper/esm/components/effect-fade/effect-fade.js","webpack:///./node_modules/swiper/esm/components/effect-cube/effect-cube.js","webpack:///./node_modules/swiper/esm/components/effect-flip/effect-flip.js","webpack:///./node_modules/swiper/esm/components/effect-coverflow/effect-coverflow.js","webpack:///./node_modules/swiper/esm/components/thumbs/thumbs.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/@zxing/library/esm5/core/ResultMetadataType.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/@zxing/library/esm5/core/UnsupportedOperationException.js","webpack:///./node_modules/@zxing/library/esm5/core/datamatrix/decoder/DecodedBitStreamParser.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/vue-sweetalert2/dist/index.js","webpack:///./node_modules/vue-meta/dist/vue-meta.esm.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/microtask.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/@zxing/library/esm5/browser/BrowserDatamatrixCodeReader.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/DecodedBitStreamParser.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/modules/es.typed-array.join.js","webpack:///./node_modules/core-js/modules/es.typed-array.iterator.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/@zxing/library/esm5/core/common/DecoderResult.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/array-buffer.js","webpack:///./node_modules/@zxing/library/esm5/core/datamatrix/decoder/Version.js","webpack:///./node_modules/core-js/modules/es.typed-array.some.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/@zxing/library/esm5/core/common/GridSampler.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/object-create.js","webpack:///./node_modules/@zxing/library/esm5/core/datamatrix/decoder/BitMatrixParser.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/html.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/Code128Reader.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/detector/FinderPatternFinder.js","webpack:///./node_modules/@zxing/library/esm5/core/common/DefaultGridSampler.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/FormatInformation.js","webpack:///./node_modules/@zxing/library/esm5/core/common/reedsolomon/GenericGF.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/@zxing/library/esm5/core/common/StringUtils.js","webpack:///./node_modules/vue-awesome-swiper/dist/vue-awesome-swiper.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-string.js","webpack:///./node_modules/core-js/modules/es.typed-array.fill.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/@zxing/library/esm5/core/FormatException.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/@zxing/library/esm5/core/IllegalStateException.js","webpack:///./node_modules/core-js/internals/typed-array-constructor.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/@zxing/library/esm5/core/datamatrix/detector/Detector.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/ieee754.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/set-species.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/detector/AlignmentPatternFinder.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/set-global.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/@zxing/library/esm5/core/datamatrix/DataMatrixReader.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/webrtc-adapter/src/js/utils.js","webpack:///./node_modules/webrtc-adapter/src/js/chrome/getusermedia.js","webpack:///./node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js","webpack:///./node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js","webpack:///./node_modules/webrtc-adapter/src/js/edge/filtericeservers.js","webpack:///./node_modules/webrtc-adapter/src/js/edge/getusermedia.js","webpack:///./node_modules/webrtc-adapter/src/js/edge/getdisplaymedia.js","webpack:///./node_modules/webrtc-adapter/src/js/edge/edge_shim.js","webpack:///./node_modules/webrtc-adapter/src/js/firefox/getusermedia.js","webpack:///./node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js","webpack:///./node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js","webpack:///./node_modules/webrtc-adapter/src/js/safari/safari_shim.js","webpack:///./node_modules/webrtc-adapter/src/js/common_shim.js","webpack:///./node_modules/webrtc-adapter/src/js/adapter_factory.js","webpack:///./node_modules/webrtc-adapter/src/js/adapter_core.js","webpack:///./node_modules/vue-quaggajs/src/Scanner.vue?0933","webpack:///node_modules/vue-quaggajs/src/Scanner.vue","webpack:///./node_modules/vue-quaggajs/src/Scanner.vue?0562","webpack:///./node_modules/vue-quaggajs/src/Scanner.vue","webpack:///./node_modules/vue-quaggajs/src/index.js","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/modules/es.typed-array.includes.js","webpack:///./node_modules/@zxing/library/esm5/core/common/DetectorResult.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/encoder/MatrixUtil.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/EAN8Reader.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/quagga/dist/quagga.min.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/ITFReader.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/@zxing/library/esm5/core/ResultPoint.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/detector/Detector.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/@zxing/library/esm5/core/PlanarYUVLuminanceSource.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/vue-loading-overlay/dist/vue-loading.min.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/@zxing/library/esm5/core/Binarizer.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/QRCodeWriter.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/ts-custom-error/dist/custom-error.mjs","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/@zxing/library/esm5/core/Result.js","webpack:///./node_modules/@zxing/library/esm5/core/util/Float.js","webpack:///./node_modules/@zxing/library/esm5/core/common/reedsolomon/ReedSolomonDecoder.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/detector/FinderPattern.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/@zxing/library/esm5/core/common/reedsolomon/ReedSolomonEncoder.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/ECB.js","webpack:///./node_modules/core-js/internals/typed-array-from.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/decoder/Version.js","webpack:///./node_modules/@zxing/library/esm5/core/util/StringEncoding.js","webpack:///./node_modules/@zxing/library/esm5/browser/BrowserMultiFormatReader.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/vue-quaggajs/src/Scanner.vue?6fc8","webpack:///./node_modules/@zxing/library/esm5/core/common/CharacterSetECI.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/@zxing/library/esm5/core/util/System.js","webpack:///./node_modules/vue-toasted/dist/vue-toasted.min.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/fails.js","webpack:///./node_modules/@zxing/library/esm5/core/common/GridSamplerInstance.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/modules/es.typed-array.every.js","webpack:///./node_modules/core-js/internals/array-buffer-native.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/rss/Pair.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/@zxing/library/esm5/core/BarcodeFormat.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/UPCEANReader.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/is-object.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/@zxing/library/esm5/core/datamatrix/decoder/Decoder.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/@zxing/library/esm5/core/util/Integer.js","webpack:///./node_modules/core-js/modules/es.typed-array.filter.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/@zxing/library/esm5/core/NotFoundException.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/@zxing/library/esm5/core/LuminanceSource.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/encoder/MaskUtil.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/@zxing/library/esm5/core/MultiFormatWriter.js","webpack:///./node_modules/core-js/modules/es.typed-array.reverse.js","webpack:///./node_modules/@zxing/library/esm5/browser/HTMLCanvasElementLuminanceSource.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/@zxing/library/esm5/core/IllegalArgumentException.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/modules/es.typed-array.find.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/QRCodeReader.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/MultiFormatUPCEANReader.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/rss/RSSUtils.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/rss/AbstractRSSReader.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/modules/es.typed-array.for-each.js","webpack:///./node_modules/@zxing/library/esm5/core/common/detector/MathUtils.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/@zxing/library/esm5/core/oned/rss/DataCharacter.js","webpack:///./node_modules/@zxing/library/esm5/browser/VideoInputDevice.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/@zxing/library/esm5/core/DecodeHintType.js","webpack:///./node_modules/@zxing/library/esm5/core/InvertedLuminanceSource.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/@zxing/library/esm5/core/MultiFormatReader.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/@zxing/library/esm5/index.js","webpack:///./node_modules/core-js/internals/array-last-index-of.js","webpack:///./node_modules/@zxing/library/esm5/core/qrcode/encoder/QRCode.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.index-of.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/array-buffer-view-core.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/to-object.js","webpack:///./node_modules/@zxing/library/esm5/core/datamatrix/decoder/DataBlock.js","webpack:///./node_modules/@zxing/library/esm5/core/common/BitSource.js","webpack:///./node_modules/rtcpeerconnection-shim/rtcpeerconnection.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/vue-barcode-reader/src/components/ImageBarcodeReader.vue?f5f3","webpack:///node_modules/vue-barcode-reader/src/components/ImageBarcodeReader.vue","webpack:///./node_modules/vue-barcode-reader/src/components/ImageBarcodeReader.vue?57e3","webpack:///./node_modules/vue-barcode-reader/src/components/ImageBarcodeReader.vue","webpack:///./node_modules/vue-barcode-reader/src/components/StreamBarcodeReader.vue?7587","webpack:///node_modules/vue-barcode-reader/src/components/StreamBarcodeReader.vue","webpack:///./node_modules/vue-barcode-reader/src/components/StreamBarcodeReader.vue?9d92","webpack:///./node_modules/vue-barcode-reader/src/components/StreamBarcodeReader.vue","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/uid.js","webpack:///./node_modules/@zxing/library/esm5/browser/BrowserQRCodeReader.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/to-positive-integer.js","webpack:///./node_modules/@zxing/library/esm5/browser/BrowserQRCodeSvgWriter.js","webpack:///./node_modules/@zxing/library/esm5/core/common/PerspectiveTransform.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/@zxing/library/esm5/core/common/BitMatrix.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/core-js/internals/to-primitive.js"],"names":["Object","defineProperty","exports","value","System_1","Integer_1","Arrays_1","IllegalArgumentException_1","BitArray","size","bits","undefined","this","Int32Array","makeArray","prototype","getSize","getSizeInBytes","Math","floor","ensureCapacity","length","newBits","default","arraycopy","get","i","set","flip","getNextSet","from","bitsOffset","currentBits","result","numberOfTrailingZeros","getNextUnset","setBulk","setRange","start","end","firstInt","lastInt","firstBit","lastBit","mask","clear","max","isRange","appendBit","bit","appendBits","numBits","numBitsLeft","appendBitArray","other","otherSize","xor","length_1","toBytes","bitOffset","array","offset","numBytes","theByte","j","getBitArray","reverse","len","oldBitsLen","x","leftOffset","currentInt","nextInt","equals","o","hashCode","toString","clone","slice","IteratorPrototype","create","createPropertyDescriptor","setToStringTag","Iterators","returnThis","module","IteratorConstructor","NAME","next","TO_STRING_TAG","ResultPoint_1","MathUtils_1","NotFoundException_1","WhiteRectangleDetector","image","initSize","y","height","getHeight","width","getWidth","INIT_SIZE","halfsize","leftInit","rightInit","upInit","downInit","detect","left","right","up","down","sizeExceeded","aBlackPointFoundOnBorder","atLeastOneBlackPointFoundOnBorder","atLeastOneBlackPointFoundOnRight","atLeastOneBlackPointFoundOnBottom","atLeastOneBlackPointFoundOnLeft","atLeastOneBlackPointFoundOnTop","rightBorderNotWhite","containsBlackPoint","bottomBorderNotWhite","leftBorderNotWhite","topBorderNotWhite","maxSize","z","getBlackPointOnSegment","t","centerEdges","aX","aY","bX","bY","dist","round","distance","xStep","yStep","yi","getX","yj","getY","zi","zj","xi","xj","ti","tj","CORR","a","b","fixed","horizontal","wellKnownSymbol","test","String","store","functionToString","Function","inspectSource","it","call","aFunction","fn","that","c","apply","arguments","fails","BlockPair","dataBytes","errorCorrectionBytes","getDataBytes","getErrorCorrectionBytes","toIndexedObject","nativeGetOwnPropertyNames","f","windowNames","window","getOwnPropertyNames","getWindowNames","error","__extends","extendStatics","d","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","AlignmentPattern","_super","posX","posY","estimatedModuleSize","_this","aboutEquals","moduleSize","abs","moduleSizeDiff","combineEstimate","newModuleSize","combinedX","combinedY","combinedModuleSize","STORAGE","VueSession","key","flash_key","setAll","all","setItem","JSON","stringify","Vue","options","persist","localStorage","sessionStorage","$session","flash","parent","getAll","all_flash","flash_value","remove","parse","getItem","Date","now","renew","sessionId","exists","has","destroy","id","DESCRIPTORS","propertyIsEnumerableModule","toPrimitive","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","anObject","isArrayIteratorMethod","toLength","bind","getIteratorMethod","callWithSafeIterationClosing","Result","stopped","iterate","iterable","AS_ENTRIES","IS_ITERATOR","iterator","iterFn","index","step","boundFunction","TypeError","done","stop","IS_PURE","push","version","mode","copyright","BitArray_1","DecodeHintType_1","ResultMetadataType_1","OneDReader","decode","hints","doDecode","nfe","tryHarder","TRY_HARDER","isRotateSupported","rotatedImage","rotateCounterClockwise","metadata","getResultMetadata","orientation_1","ORIENTATION","putMetadata","points","getResultPoints","reset","maxLines","row","rowStep","middle","trunc","rowStepsAboveOrBelow","isAbove","rowNumber","getBlackRow","ignored","_loop_1","attempt","NEED_RESULT_POINT_CALLBACK","newHints_1","Map","forEach","hint","delete","this_1","decodeRow","re","state_1","recordPattern","counters","numCounters","isWhite","counterPosition","recordPatternInReverse","numTransitionsLeft","last","patternMatchVariance","pattern","maxIndividualVariance","total","patternLength","Number","POSITIVE_INFINITY","unitBarWidth","totalVariance","counter","scaledPattern","variance","toInteger","min","argument","check","globalThis","self","global","utils","buildURL","InterceptorManager","dispatchRequest","mergeConfig","Axios","instanceConfig","defaults","interceptors","request","response","config","url","method","toLowerCase","chain","promise","Promise","resolve","interceptor","unshift","fulfilled","rejected","then","shift","getUri","params","paramsSerializer","replace","data","number","RangeError","createElement","WeakMap","callback","arr","nativePropertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","1","V","descriptor","enumerable","GenericGF_1","GenericGFPoly","field","coefficients","coefficientsLength","firstNonZero","getCoefficients","getDegree","isZero","getCoefficient","degree","evaluateAt","coefficient","addOrSubtract","multiply","smallerCoefficients","largerCoefficients","temp","sumDiff","lengthDiff","getZero","aCoefficients","aLength","bCoefficients","bLength","product","aCoeff","multiplyScalar","scalar","multiplyByMonomial","divide","quotient","remainder","denominatorLeadingTerm","inverseDenominatorLeadingTerm","inverse","degreeDifference","scale","term","iterationQuotient","buildMonomial","alphaPower","log","path","variable","namespace","FinderPatternInfo","patternCenters","bottomLeft","topLeft","topRight","getBottomLeft","getTopLeft","getTopRight","defer","channel","port","classof","html","IS_IOS","location","setImmediate","clearImmediate","process","MessageChannel","Dispatch","queue","ONREADYSTATECHANGE","run","runner","listener","event","post","postMessage","protocol","host","args","nextTick","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","AbstractRSSReader_1","Pair_1","Result_1","StringBuilder_1","BarcodeFormat_1","FinderPattern_1","DataCharacter_1","RSSUtils_1","OneDReader_1","RSS14Reader","possibleLeftPairs","possibleRightPairs","leftPair","decodePair","addOrTally","rightPair","_i","_a","getCount","_b","_c","checkChecksum","constructResult","possiblePairs","pair","found","possiblePairs_1","getValue","incrementCount","symbolValue","text","buffer","append","checkDigit","digit","charAt","charCodeAt","leftPoints","getFinderPattern","rightPoints","RSS_14","getTime","checkValue","getChecksumPortion","targetCheckValue","startEnd","findFinderPattern","parseFoundFinderPattern","resultPointCallback","center","foundPossibleResultPoint","outside","decodeDataCharacter","inside","err","outsideChar","getDataCharacterCounters","getStartEnd","numModules","elementWidth","sum","oddCounts","getOddCounts","evenCounts","getEvenCounts","oddRoundingErrors","getOddRoundingErrors","evenRoundingErrors","getEvenRoundingErrors","count","adjustOddEvenCounts","oddSum","oddChecksumPortion","evenChecksumPortion","evenSum","checksumPortion","group","oddWidest","OUTSIDE_ODD_WIDEST","evenWidest","vOdd","getRSSvalue","vEven","tEven","OUTSIDE_EVEN_TOTAL_SUBSET","gSum","OUTSIDE_GSUM","INSIDE_ODD_WIDEST","tOdd","INSIDE_ODD_TOTAL_SUBSET","INSIDE_GSUM","rightFinderPattern","getDecodeFinderCounters","rowOffset","patternStart","isFinderPattern","firstIsBlack","firstElementStart","firstCounter","copy","parseFinderValue","FINDER_PATTERNS","incrementOdd","decrementOdd","incrementEven","decrementEven","mismatch","oddParityBad","evenParityBad","increment","decrement","make_xlsx_lib","XLSX","current_codepage","current_ansi","cptable","VALID_ANSI","CS2CP","0","2","77","128","129","130","134","136","161","162","163","177","178","186","204","222","238","255","69","set_ansi","cp","indexOf","reset_ansi","set_cp","reset_cp","char_codes","utf16leread","fromCharCode","join","utf16beread","debom","c1","c2","_getchar","_getansi","DENSE","DIF_XL","Base64","map","encode","input","c3","e1","e2","e3","e4","isNaN","has_buf","Buffer","versions","node","Buffer_from","nbfs","e","buf","enc","alloc","n","allocUnsafe","new_raw_buf","new_unsafe_buf","s2a","s","split","s2ab","ArrayBuffer","view","Uint8Array","a2s","isArray","a2u","Error","ab2a","bconcat","bufs","concat","chr0","chr1","SSF","make_ssf","_strrev","fill","l","pad0","v","pad_","rpad_","pad0r1","pad0r2","p2_32","pow","pad0r","isgeneral","days","months","init_table","table_fmt","default_map","defi","default_str","frac","D","mixed","sgn","B","P_2","P_1","Q_2","Q_1","Q","A","q","parse_date_code","opts","b2","date","time","dow","dout","out","T","u","m","H","M","S","date1904","setDate","getDate","getFullYear","getMonth","getDay","fix_hijri","basedate","dnthresh","base1904","datenum_local","epoch","getTimezoneOffset","general_fmt_int","_general_int","general_fmt_num","trailing_zeroes_and_decimal","strip_decimal","mantissa_zeroes_and_decimal","exp_with_single_digit","normalize_exp","small_exp","w","toFixed","toPrecision","toExponential","large_exp","general_fmt_num_base","LOG10E","substr","toUpperCase","general_fmt","format","write_date","type","fmt","val","ss0","ss","tt","outl","outstr","commaify","_general_num","_general","write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","match","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","r","aval","sign","den","parseInt","rr","base","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","str","cc","rnd","dd","dec","_frac","carry","flr","write_num_flt","ffmt","ri","ff","oa","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","lastIndexOf","split_fmt","in_str","_split","abstime","fmt_is_date","eval_fmt","flen","dt","lst","hr","ssm","bt","jj","nstr","myv","ostr","vv","decpt","lasti","retval","is_date","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","lat","m1","m2","dateNF","table","load_entry","load","_table","get_table","load_table","tbl","XLMLFormatMap","SSFImplicit","dateNFregex","dateNF_regex","RegExp","dateNF_fix","Y","datestr","timestr","CRC32","DO_NOT_EXPORT_CFB","factory","signed_crc_table","crc32_bstr","bstr","seed","C","L","crc32_buf","crc32_buf_8","crc32_str","_fs","CFB","fs","namecmp","R","Z","dirname","filename","write_dos_date","hms","getHours","getMinutes","getSeconds","write_shift","ymd","parse_dos_date","read_shift","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","parse_extra_field","blob","prep_blob","flags","sz","tgt","mtime","atime","ctime","mt","get_fs","file","parse_zip","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","mv","check_get_mver","header","check_shifts","dir_cnt","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","name","ENDOFCHAIN","files","Paths","FileIndex","FullPaths","read_directory","build_full_paths","raw","HEADER_SIGNATURE","nsectors","ceil","FI","FP","pl","dad","get_mfat_entry","entry","payload","mini","MSSZ","__readInt32LE","new_buf","cnt","sector","get_sector_list","chkd","buf_chain","modulus","addr","nodes","__toBuffer","sl","k","seen","minifat_store","namelen","__utf16le","color","clsid","state","ct","read_date","storage","content","__readUInt32LE","read_file","readFileSync","read","init_cfb","cfb","root","CLSID","seed_cfb","nm","find","rebuild_cfb","gc","_file","pop","HEADER_CLSID","sort","elt","_write","_opts","fileType","write_zip","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","UCFullPaths","UCPaths","UCPath","_zlib","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","write_file","writeFileSync","write","use_zlib","zlib","InflateRaw","InflRaw","_processChunk","_finishFlushFlag","bytesRead","console","message","_inflateRawSync","usz","_inflate","_deflateRawSync","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","bl","h","read_bits_3","read_bits_4","read_bits_5","read_bits_7","read_bits_n","realloc","zero_fill_array","_deflateRaw","boff","off","build_tree","clens","cmap","MAX","maxlen","ccode","bl_count","Uint16Array","ctree","cleni","fix_lmap","fix_dmap","dlens","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","next_code","hcodes","h1","h2","inflate","outbuf","woff","OL","max_len_1","max_len_2","code","len_eb","dst_eb","dst","warn_or_throw","wrn","msg","fcnt","start_cd","csz","efsz","fcsz","EF","parse_local_file","meth","crc32","_csz","_usz","ef","_crc32","cfb_add","unsafe","cdirs","compression","desc","fp","fi","crcs","sz_cd","namebuf","cfb_new","fpath","cfb_gc","cfb_del","splice","cfb_mov","old_name","new_name","writeFile","ReadShift","CheckField","_inflateRaw","blobify","write_dl","fname","utf8write","IE_SaveFile","Blob","navigator","msSaveBlob","saveAs","URL","document","createObjectURL","chrome","downloads","download","revokeObjectURL","href","body","click","$","File","Folder","open","encoding","close","read_binary","infile","keys","ks","o2","evert_key","obj","K","evert","evert_num","evert_arr","datenum","refdate","refoffset","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","cc2str","dup","fuzzynum","wt","fuzzydate","NaN","getYear","jszip","safe_split_regex","split_regex","def","getdatastr","asNodeBuffer","asBinary","_data","getContent","getdatabin","getdata","safegetzipfile","zip","g","getzipfile","getzipdata","safe","getzipstr","zipentries","zip_add_file","zip_new","zip_read","base64","resolve_path","target","JSZipSync","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","skip_LC","eq","quot","trim","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","escapexlml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","utf8read","orig","utf8readb","ww","corpus","utf8readc","matchtag","mtcache","htmldecode","entities","vtregex","vt_cache","vtvregex","vtmregex","parseVector","matches","baseType","res","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","xlsx","XMLNS","XLMLNS","read_double_le","Infinity","write_double_le","bs","av","isFinite","LN2","__lpp4","___lpp4","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__cpstr","___cpstr","__lpwstr","___lpwstr","__double","___double","__8lpp4","___8lpp4","is_buf","isBuffer","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","loc","oo","lens","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","cppayload","hexstr","fld","pos","parsenoop","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","ba","XLSBRE","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","range","encode_cell_xls","encode_cell","fix_col","fix_row","encode_range_xls","encode_row","encode_col","OFFCRYPTO","make_offcrypto","_crypto","crypto","rc4","md5","hex","createHash","update","digest","decode_row","rowstr","unfix_row","cstr","decode_col","colstr","unfix_col","col","split_cell","decode_cell","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","ws","_R","_C","origin","_origin","_range","__R","__C","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","write_StrRun","parse_RichStr","rgsStrRun","dwSizeStrRun","write_RichStr","parse_BrtCommentText","write_BrtCommentText","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","write_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","parse_BrtColor","xColorType","nTS","bR","bG","bB","auto","icv","XLSIcv","rgb","rgb2Hex","theme","tint","write_BrtColor","parse_FontFlags","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","write_FontFlags","font","grbit","italic","strike","outline","shadow","condense","extend","parse_ClipboardFormatOrString","ClipFmt","3","8","14","parse_ClipboardFormatOrAnsiString","parse_ClipboardFormatOrUnicodeString","VT_I2","VT_I4","VT_BOOL","VT_VARIANT","VT_UI4","VT_LPSTR","VT_FILETIME","VT_BLOB","VT_CF","VT_VECTOR","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","SpecialProperties","DocSummaryRE","SummaryRE","CountryEnum","XLSFillPattern","rgbify","_XLSIcv","BErr","RBErr","ct2type","CT_LIST","workbooks","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","styles","type2ct","new_ct","rels","links","coreprops","extprops","custprops","themes","calcchains","vba","drawings","TODO","xmlns","parse_ct","ctext","Extension","ContentType","PartName","CT","calcchain","sst","style","CTYPE_XML_ROOT","xsd","xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","VBA","get_rels_path","parse_rels","currentFilePath","hash","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","RELS_EXTERN","add_rels","rId","relobj","targetmode","CT_ODS","parse_manifest","Rn","FEtag","xlml_normalize","xlmlregex","exec","write_manifest","manifest","write_rdf_type","write_rdf_has","write_rdf","rdf","write_meta_ods","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","dc","dcterms","dcmitype","cp_doit","write_core_props","Props","CreatedDate","ModifiedDate","EXT_PROPS","PseudoPropsPairs","load_props_pairs","HP","TOP","props","hp","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","parse_ext_props","xml","HeadingPairs","TitlesOfParts","EXT_PROPS_XML_ROOT","vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","xlml_write_docprops","xlml_write_custprops","Custprops","BLACKLIST","parse_FILETIME","dwLowDateTime","dwHighDateTime","write_FILETIME","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtUnalignedString","parse_VtVecUnalignedLpstrValue","ret","parse_VtVecUnalignedLpstr","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_VtVecHeadingPair","parse_dictionary","CodePage","dict","parse_BLOB","bytes","parse_ClipboardData","Size","write_TypedPropertyValue","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","entries","RE","hdr","piao","prop","pr","pio","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet1","PSet0","rval","FMTID","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writezeroes","parslurp","writebool","parseuint16","writeuint16","parseuint16a","parse_Bes","write_Bes","parse_ShortXLUnicodeString","cch","fHighByte","parse_XLUnicodeRichExtendedString","cbExtRst","fExtSt","fRichSt","cRun","write_XLUnicodeRichExtendedString","xlstr","nfmts","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_ControlInfo","accel","parse_URLMoniker","extra","parse_FileMoniker","ansiPath","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","guid","fileTime","Loc","Tooltip","write_Hyperlink","hl","F","parse_LongRGBA","parse_LongRGB","parse_XLSCell","rw","ixfe","write_XLSCell","parse_frtHeader","rt","parse_OptXLUnicodeString","parse_XTI","iSupBook","itabFirst","itabLast","parse_RkRec","parse_AddinUdf","udfName","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","write_Ref8U","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtNts","fSharedNote","parse_FtCf","cf","parse_FtSkip","FtTab","parse_FtArray","fts","ft","parse_BOF","BIFFVer","write_BOF","wb","parse_InterfaceHdr","parse_WriteAccess","UserName","write_WriteAccess","b8","parse_WsBool","fDialog","parse_BoundSheet8","hidden","hs","write_BoundSheet8","parse_SST","ucnt","Count","Unique","write_SST","parse_ExtSST","extsst","dsst","parse_Row","miyRw","level","hpt","parse_ForceFullCalculation","fullcalc","parse_RecalcId","parse_DefaultRowHeight","fl","Unsynced","DyZero","ExAsc","ExDsc","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","Pos","Dim","Flags","CurTab","FirstTab","Selected","TabRatio","write_Window1","parse_Window2","RTL","write_Window2","parse_Pane","parse_Font","dyHeight","write_Font","b5","parse_LabelSst","isst","write_LabelSst","os","parse_Label","write_Label","parse_Format","fmtstr","write_Format","parse_BIFF2Format","parse_Dimensions","write_Dimensions","parse_RK","rkrec","rknum","parse_MulRk","rkrecs","lastcol","parse_MulBlank","ixfes","parse_CellStyleXF","patternType","cellStyles","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","icvFore","icvBack","fsxButton","parse_XF","fStyle","write_XF","ixfeP","parse_Guts","write_Guts","guts","parse_BoolErr","write_BoolErr","parse_Number","xnum","write_Number","parse_XLHeaderFooter","parse_SupBook","ctab","sbcch","virtPath","rgst","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_NameCmt","cchName","cchComment","comment","parse_ShrFmla","ref","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","write_MergeCells","parse_Obj","parse_BIFF5Obj","cmo","parse_BIFF5OT","parse_TxO","texts","lastobj","cchText","parse_HLink","hlink","write_HLink","parse_HLinkTooltip","wzTooltip","write_HLinkTooltip","TT","parse_Country","write_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","cxfs","crc","parse_ColInfo","coldx","parse_Setup","footer","parse_ShtProps","area","write_RRTabId","parse_Blank","parse_Scl","parse_String","parse_ImData","env","lcb","parse_BIFF2STR","parse_BIFF2NUM","num","write_BIFF2NUM","write_BIFF2Cell","parse_BIFF2INT","write_BIFF2INT","parse_BIFF2STRING","parse_BIFF2FONTXTRA","parse_RString","DBF","dbf_codepage_map","dbf_reverse_map","DBF_SUPPORTED_VERSIONS","dbf_to_aoa","memo","vfp","l7","nrow","fpos","rlen","current_cp","fields","hend","sheetRows","dbf_to_sheet","dbf_to_workbook","_RLEN","sheet_to_dbf","codepage","aoa","sheet_to_json","headers","hcnt","coltypes","guess","_guess","hf","_f","hb","rout","_s","to_workbook","to_sheet","from_sheet","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","5","6","7","sylk_char_regex","sylk_char_fn","_","decode_sylk_char","newcc","sylk_to_aoa","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","C_seen_K","C_seen_X","formula","rc_to_a1","F_seen","wch","process_col","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_workbook","write_ws_cell_sylk","a1_to_rc","write_ws_cols_sylk","cols","rec","wpx","width2px","px2char","write_ws_rows_sylk","rows","px2pt","sheet_to_sylk","preamble","RS","coord","DIF","dif_to_aoa","dif_to_aoa_str","dif_to_sheet","dif_to_workbook","sheet_to_dif","push_field","topic","push_value","ETH","eth_to_aoa","eth_to_sheet","eth_to_workbook","sep","meta","sheet_to_eth_data","sheet_to_eth","PRN","set_text_arr","prn_to_aoa_str","lines","guess_seps","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","sepcc","_re","finish_cell","fuzzyfmla","cellText","cellNF","outer","prn_to_sheet_str","prn_to_sheet","firstbyte","prn_to_workbook","sheet_to_prn","read_wb_ID","OLD_WTF","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook","lotus_to_workbook_buf","sidx","snames","refguess","WK3Enum","qpro","vers","parse_RANGE","parse_cell","parse_LABEL","parse_INTEGER","parse_NUMBER","parse_FORMULA","parse_cell_3","parse_LABEL_16","parse_NUMBER_18","parse_NUMBER_17","v1","v2","parse_FORMULA_19","parse_NUMBER_25","parse_NUMBER_27","parse_FORMULA_28","parse_rpr","rpr","pass","uval","family","valign","parse_rs","tregex","rpregex","parse_r","rregex","rend","rs","filter","rs_to_html","nlregex","parse_rpr2","intro","outro","align","r_to_html","terms","sitregex","sirregex","sirphregex","parse_si","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","main","sitag","parse_BrtBeginSst","parse_sst_bin","R_n","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceVersionInfo","U","parse_DataSpaceMapEntry","comps","parse_DataSpaceMap","parse_DataSpaceDefinition","parse_TransformInfoHeader","parse_Primary","ename","cmode","parse_EncryptionHeader","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncryptionInfo","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","verifier","KeyData","encryptedHmacKey","encryptedHmacValue","encs","uri","parse_RC4CryptoHeader","EncryptionVersionInfo","EncryptionHeader","EncryptionVerifier","parse_RC4Header","EncryptedVerifier","EncryptedVerifierHash","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordByte","Intermediate1","Intermediate2","Intermediate3","PasswordDecoded","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","password","Temp","PasswordLastChar","PadIndex","Index","ObfuscationArray","crypto_DecryptData_Method1","Data","XorArrayIndex","XorArray","Value","crypto_MakeXorDecryptor","parse_XORObfuscation","verificationBytes","insitu","parse_FilePassHeader","Info","parse_FilePass","RTF","rtf_to_sheet","rtf_to_sheet_str","rtf_to_workbook","sheet_to_rtf","hex2RGB","rgb2HSL","G","H6","L2","hsl2RGB","hsl","X","h6","rgb_tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","px","char2width","chr","cycle_width","collw","find_mdw_colw","delta","_MDW","coll","customWidth","DEF_PPI","PPI","pt","XLMLPatternTypeMap","parse_borders","Borders","border","diagonalUp","diagonalDown","parse_fills","Fills","bgColor","indexed","fgColor","parse_fonts","Fonts","bold","underline","vertAlign","scheme","themeElements","clrScheme","parse_numFmts","NumberFmt","formatCode","write_numFmts","NF","cellXF_uint","cellXF_bool","parse_cellXfs","xf","CellXf","alignment","vertical","textRotation","indent","wrapText","write_cellXfs","cellXfs","parse_sty_xml","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","STYLES_XML_ROOT","write_sty_xml","parse_BrtFmt","stFmtCode","write_BrtFmt","parse_BrtFont","bls","bCharSet","charset","write_BrtFont","sss","STY","XLSBFillPTNames","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","parse_BrtXF","ixfeParent","ifmt","write_BrtXF","flow","write_Blxf","parse_BrtBorder","write_BrtBorder","write_BrtStyle","xfId","builtinId","write_BrtBeginTableStyles","defTableStyle","defPivotStyle","parse_sty_bin","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","write_BORDERS_bin","write_CELLSTYLEXFS_bin","fontId","fillId","borderId","write_CELLXFS_bin","write_STYLES_bin","write_DXFS_bin","write_TABLESTYLES_bin","write_COLORPALETTE_bin","write_sty_bin","THEME","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","Themes","themeXLSX","parse_Theme","dwThemeVersion","themeXML","parse_ColorTheme","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","ext","update_xfext","xfext","xfe","parse_cc_xml","parse_BrtCalcChainItem$","parse_cc_bin","parse_xlink_xml","parse_xlink_bin","parse_drawing","IMG","DRAW","_shapeid","write_comments_vml","csize","bbox","joinstyle","gradientshapeok","coordsize","fillopts","angle","fillparm","fillxml","shadata","on","fillcolor","strokecolor","sheet_insert_comments","encoded","author","parse_comments_xml","authors","commentList","authtag","cmnttag","cm","authorId","textMatch","CMNT","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtBeginComment","rfx","write_BrtBeginComment","parse_BrtCommentAuthor","write_BrtCommentAuthor","parse_comments_bin","write_comments_bin","CT_VBA","make_vba_xls","newcfb","newpath","fill_vba_xls","VBAFMTS","parse_ds_bin","parse_ds_xml","parse_ms_bin","parse_ms_xml","DS","MS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_str","shift_formula_xlsx","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_RgceLocRel","parse_RgceLocRel_BIFF2","cl","rl","parse_PtgArea","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrIfError","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","tab","parsetab","Cetab","parse_PtgAttrSum","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgNameX_BIFF5","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgRefErr3d","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgTbl","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","PtgListRT","parse_PtgList","coltype","parse_PtgSxName","parse_PtgSheet","parse_PtgEndSheet","parse_PtgMemAreaN","parse_PtgMemNoMemN","parse_PtgAttrNoop","PtgTypes","PtgDupes","Ptg18","Ptg19","parse_RgbExtra","parse_Rgce","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","quoteCharacters","formula_quote_sheet_name","sname","get_ixti_raw","supbooks","XTI","SID","get_ixti","stringify_formula","stack","nameidx","last_sp","sp","fflen","argc","func","lbl","names","XLSXFutureFunctions","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","PtgNonDisp","_left","rgcb","parse_XLSCellParsedFormula","parse_FormulaValue","write_FormulaValue","parse_Formula","cbf","shared","write_Formula","o1","o3","bf","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","csf_to_ods_formula","ods_to_csf_3D","csf_to_ods_3D","_ssfopts","WS","browser_has_Map","get_sst_id","revarr","col_obj_w","default_margins","margins","defs","top","bottom","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fmtid","fillid","raw_rgb","check_ws","parse_ws_xml_dim","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","svsregex","parse_ws_xml","data1","data2","mtch","sheetPr","parse_ws_xml_sheetpr","ridx","svs","parse_ws_xml_sheetviews","columns","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","_merge","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","write_ws_xml_merges","codeName","CodeName","write_ws_xml_sheetpr","needed","vbaraw","cname","Workbook","outlineprops","summaryBelow","summaryRight","above","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_protection","Rel","tooltip","rng","margin","write_ws_xml_margins","seencol","coli","colm","colM","write_ws_xml_cols","write_ws_xml_autofilter","Names","Sheet","Ref","sviewregex","Views","zoomScale","zoom","rightToLeft","write_ws_xml_sheetviews","sview","workbookViewId","write_ws_xml_cell","oldt","oldv","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","sstr","ftag","cells","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","ht","outlineLevel","rslice","cellFormula","xlfn","___f","si","_tag","_r","write_ws_xml_data","_cell","customHeight","WS_XML_ROOT","write_ws_xml","rdata","_drawing","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","relc","ignoreEC","numberStoredAsText","sqref","parse_BrtRowHdr","write_BrtRowHdr","ncolspan","lcs","caddr","first","write_row_header","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsFmtInfo","parse_BrtWsProp","write_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","ncell","parse_BrtCellBool","fBool","write_BrtCellBool","parse_BrtCellError","bError","parse_BrtCellIsst","write_BrtCellIsst","parse_BrtCellReal","write_BrtCellReal","parse_BrtCellRk","write_BrtCellRk","parse_BrtCellSt","write_BrtCellSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","write_BrtMergeCell","write_BrtBeginMergeCells","parse_BrtHLink","relId","display","write_BrtHLink","locidx","parse_BrtPane","parse_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","write_BrtColInfo","BrtMarginKeys","parse_BrtMargins","write_BrtMargins","parse_BrtBeginWsView","write_BrtBeginWsView","write_BrtCellIgnoreEC","write_BrtSheetProtection","parse_BrtDVal","parse_BrtDVal14","parse_ws_bin","ai","af","aii","_d","write_ws_bin_cell","write_CELLTABLE","cap","write_MERGECELLS","write_COLINFOS","write_IGNOREECS","write_HLINKS","write_LEGACYDRAWING","write_AUTOFILTER","write_WSVIEWS2","write_WSFMTINFO","write_SHEETPROTECT","write_ws_bin","parse_Cache","nf","parse_chart","csheet","nc","cache","CHART","CHARTEX","CS","parse_cs_xml","parse_BrtCsProp","parse_cs_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","safe1904","badchars","check_ws_name","_good","check_wb_names","N","codes","cn","check_wb","wbnsregex","parse_wb_xml","dname","dnstart","Hidden","Comment","localSheetId","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","sheetId","parse_BrtBundleSh","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","filterPrivacy","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_BrtName","Ptg","parse_wb_bin","write_BUNDLESHS","viz","write_BrtFileVersion","write_BrtBookView","write_BOOKVIEWS","vistab","write_wb_bin","parse_wb","parse_ws","parse_cs","parse_ms","parse_ds","parse_sty","parse_theme","parse_sst","parse_cmnt","parse_cc","parse_xlink","write_wb","write_ws","write_sty","write_sst","write_cmnt","attregexg2","attregex2","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_format","xlml_set_custprop","oval","safe_format_xlml","process_style_xlml","stag","Interior","I","Pattern","ID","parse_xlml_data","csty","sid","StyleID","interiors","Parent","UTC","Formula","ArrayRange","xlml_clean_comment","parse_xlml_xml","opening","ishtml","HTML_","tmp","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","lastIndex","raw_Rn3","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_props_xlml","write_wb_xlml","write_sty_xlml","write_name_xlml","write_names_xlml","write_ws_xlml_names","write_ws_xlml_wsopts","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_comment","write_ws_xlml_cell","attr","mi","_v","write_ws_xlml_row","write_ws_xlml_table","skip","write_ws_xlml","write_xlml","parse_compobj","AnsiUserType","AnsiClipboardFormat","Reserved1","UnicodeClipboardFormat","Reserved2","slurp","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","lastcell","cmnt","rngC","rngR","temp_val","country","Directory","last_formula","cur_sheet","Preamble","last_cell","cell_valid","XFs","palette","get_rgb","process_cell_style","line","xfd","addcell","file_depth","afi","rrtabid","lastuser","winlocked","wtf","last_lbl","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","seen_codepage","RecordType","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","ExternCount","tmpri","fakebs8","_fr","_fc","_fe","_arraystart","_j","_ixfe","b4idx","b2idx","TxO","ImData","noteobj","Encryption","Metadata","Country","PSCLSID","SI","DSI","UDI","parse_xls_props","DocSummary","Summary","write_xls_props","Keys","DSEntries","SEntries","CEntries","CEntries2","parse_xlscfb","CompObj","WorkbookP","bookVBA","bookFiles","write_xlscfb","wbpath","write_biff_buf","XLSRE","write_biff_rec","write_biff_continue","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff2_cell","write_ws_biff2","write_biff2_buf","write_FONTS_biff8","write_FMTS_biff8","write_FEAT","write_CELLXFS_biff8","write_ws_biff8_hlinks","HL","write_ws_biff8_cell","write_ws_biff8","_WB","_sheet","MAX_ROWS","write_biff8_global","_sheets","_wb","blen","write_biff8_buf","fix_write_opts","html_to_sheet","mtch2","hd","midx","colspan","rowspan","_t","html_to_book","make_html_row","editable","make_html_preamble","_BEGIN","_END","sheet_to_html","_row","BEGIN","END","_preamble","sheet_add_dom","or_R","or_C","getElementsByTagName","is_dom_element_hidden","elts","hasAttribute","getAttribute","innerHTML","parse_dom_table","table_to_book","element","get_computed_style","get_get_computed_style_function","getPropertyValue","ownerDocument","defaultView","getComputedStyle","parse_content_xml","parse_text_p","number_formats","day","month","year","hours","minutes","seconds","era","quarter","sheetag","rowtag","textptag","NFtag","ctag","textp","textpidx","textR","row_ol","number_format_map","mrange","mR","mC","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","ods","write_styles_ods","write_content_ods","write_text_p","null_cell_xml","covered_cell_xml","_Fref","text_p","_tgt","write_automatic_styles_ods","fods","write_ods","write_sheet_index","write_obj_str","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","write_dbf_buf","write_eth_str","fix_opts_func","get_sheet_type","safe_parse_wbrels","wbrels","safe_parse_sheet","relsPath","sheetRels","stype","dfile","drelsp","draw","chartp","crelsp","strip_front_slash","binname","dir","link","propdata","deps","bookDeps","wbsheets","wbext","wbrelsi","wbrelsfile","nmode","wsloop","snjseen","snj","Deps","Styles","bin","parse_xlsxcfb","dsm","seds","einfo","decrypt_agile","decrypt_std76","foo","vbafmt","_sn","wsrels","_type","need_vml","rId1","read_cfb","read_zip","read_plaintext","read_plaintext_raw","read_utf16","bstrify","read_prn","readSync","ab","vu","write_cfb_ctr","write_zip_type","oopts","generate","encrypt_agile","write_cfb_type","write_string_type","bom","write_stxt_type","write_binary_type","writeSync","resolve_book_type","_BT","writeFileAsync","_cb","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","CC","blankrows","qreg","make_csv_row","FS","txt","forceQuotes","endregex","skipHidden","strip","sheet_to_formulae","cmds","sheet_add_json","js","skipHeader","JS","sheet_get_cell","json_to_sheet","get_formulae","make_csv","make_json","make_formulae","table_to_sheet","sheet_to_row_object_array","add_consts","get_default","ws_get_cell_stub","RC","wb_sheet_idx","sh","book_new","book_append_sheet","book_set_sheet_visibility","vis","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","rngstr","Readable","write_csv_stream","stream","BOM","_read","write_html_stream","write_json_stream","objectMode","to_json","to_html","to_csv","readFile","noGlobal","getProto","getPrototypeOf","flat","class2type","hasOwn","fnToString","ObjectFunctionString","support","isFunction","nodeType","isWindow","preservedScriptAttributes","src","nonce","noModule","DOMEval","doc","script","setAttribute","head","parentNode","toType","jQuery","selector","context","init","isArrayLike","jquery","toArray","pushStack","elems","merge","prevObject","each","elem","even","grep","_elem","odd","copyIsArray","deep","isPlainObject","expando","random","isReady","noop","proto","Ctor","isEmptyObject","globalEval","results","inArray","second","invert","callbackInverse","callbackExpect","arg","Symbol","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","rcssescape","fcssescape","ch","asCodePoint","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","childNodes","els","nid","groups","newSelector","newContext","getElementById","getElementsByClassName","qsa","testContext","scope","toSelector","querySelectorAll","qsaError","removeAttribute","cacheLength","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","matchIndexes","namespaceURI","documentElement","hasCompare","subWindow","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","elements","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","operator","what","_argument","simple","forward","ofType","_context","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","matched","matcher","unmatched","lang","elemLang","activeElement","hasFocus","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","submit","tokens","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","filters","parseOnly","soFar","preFilters","cached","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","targets","closest","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","rnothtmlwhite","createOptions","object","flag","Identity","Thrower","ex","adoptValue","reject","noValue","Callbacks","firing","memory","fired","locked","firingIndex","fire","once","stopOnFalse","empty","disable","lock","fireWith","Deferred","tuples","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","mightThrow","notifyWith","resolveWith","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","string","acceptData","owner","uid","configurable","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","dataAttr","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","css","adjustCSS","valueParts","tween","adjusted","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","fragment","createDocumentFragment","div","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","tr","td","_default","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","wrap","attached","htmlPrefilter","createTextNode","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","types","one","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","originalEvent","writable","noBubble","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","swap","old","rboxStyle","curCSS","computed","minWidth","maxWidth","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","trChild","trStyle","cssPrefixes","emptyStyle","vendorProps","vendorPropName","capName","finalPropName","final","cssProps","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","computedVal","getWidthOrHeight","boxSizingNeeded","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","getBoundingClientRect","scrollboxSizeBuggy","padding","prefix","suffix","expand","expanded","propHooks","percent","eased","duration","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","defaultPrefilter","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","properties","prefilters","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","complete","timer","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","isSuccess","conv2","current","conv","responseFields","dataFilter","throws","active","lastModified","etag","isLocal","processData","async","contentType","accepts","json","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","status","abort","statusText","finalText","crossDomain","hasContent","ifModified","beforeSend","success","send","nativeStatusText","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","1223","xhrSupported","cors","errorCallback","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","noConflict","DataBlock","numDataCodewords","codewords","getDataBlocks","rawCodewords","ecLevel","getTotalCodewords","ecBlocks","getECBlocksForLevel","totalBlocks","ecBlockArray","getECBlocks","ecBlockArray_1","ecBlock","numResultBlocks","ecBlockArray_2","getDataCodewords","numBlockCodewords","getECCodewordsPerBlock","shorterBlocksTotalCodewords","longerBlocksStartAt","numCodewords","shorterBlocksNumDataCodewords","rawCodewordsOffset","iOffset","getNumDataCodewords","getCodewords","UPCEANReader_1","EAN13Reader","decodeMiddleCounters","decodeMiddle","startRange","resultString","lgPatternFound","bestMatch","decodeDigit","L_AND_G_PATTERNS","counters_1","determineFirstDigit","middleRange","findGuardPattern","MIDDLE_PATTERN","L_PATTERNS","counters_2","getBarcodeFormat","EAN_13","FIRST_DIGIT_ENCODINGS","BrowserCodeReader_1","MultiFormatOneDReader_1","BrowserBarcodeReader","timeBetweenScansMillis","BrowserCodeReader","toObject","toAbsoluteIndex","copyWithin","inc","regexpExec","Exception_1","ReaderException","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","DO_NOT_EXPORT_JSZIP","require","_dereq_","_keyStr","utf8","chr2","chr3","enc1","enc2","enc3","enc4","output","CompressedObject","compressedSize","uncompressedSize","compressionMethod","compressedContent","getCompressedContent","STORE","magic","compress","uncompress","compressInputType","uncompressInputType","DEFLATE","4","getTypeOf","iTop","DataReader","checkOffset","checkIndex","newIndex","setIndex","byteAt","readInt","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","createFolders","string2binary","string2Uint8Array","uint8Array2String","string2Blob","arrayBuffer2Blob","outputType","checkSupport","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","isRegExp","USE_TYPEDARRAY","Uint32Array","pako","deflateRaw","inflateRaw","9","newObj","compressions","10","ZipEntries","zipEntries","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","11","12","Uint8ArrayReader","NodeBufferReader","13","signature","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","getBinaryData","nodebuffer","dataToString","asUTF8","utf8decode","utf8encode","ZipObject","_initialMetadata","asText","asUint8Array","asArrayBuffer","decToHex","prepareFileAttrs","fileAdd","parentFolder","folderAdd","substring","lastSlash","generateCompressedObjectFrom","generateZipParts","compressedObject","dosTime","dosDate","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","extraFields","unicodePathExtraField","unicodeCommentExtraField","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","search","relativePath","fileClone","regexp","folder","newFolder","kids","writer","zipData","localDirLength","centralDirLength","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","finalize","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","15","StringReader","16","17","arraybuffer","uint8array","Builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","getBlob","18","sig0","sig1","sig2","sig3","subarray","19","20","_utf8len","string2buf","m_pos","str_len","buf_len","utf8border","buf2string","c_len","utf16buf","applyFromCharCode","chunk","nextBoundary","21","identity","stringToArrayLike","arrayLikeToString","canUseApply","resultStr","arrayLikeToArrayLike","arrayFrom","arrayTo","transform","byteLength","inputType","supported","22","ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraFieldId","extraFieldLength","extraFieldValue","extraDataSize","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","23","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","24","assign","deflate","constants","25","zlib_deflate","strings","zstream","Z_NO_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","Deflate","chunkSize","windowBits","memLevel","strategy","gzip","ended","chunks","strm","avail_out","deflateInit2","deflateSetHeader","deflator","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","26","zlib_inflate","gzheader","Inflate","inflateInit2","inflateGetHeader","inflator","next_out_utf8","tail","utf8str","binstring2buf","arraySet","inflateEnd","ungzip","27","TYPED_OK","sources","fnTyped","src_offs","dest_offs","fnUntyped","setTyped","Buf16","Buf32","28","STR_APPLY_OK","STR_APPLY_UIA_OK","29","adler32","adler","s1","s2","30","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","31","makeTable","crcTable","32","trees","MAX_MEM_LEVEL","MAX_WBITS","DEF_MEM_LEVEL","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","rank","zero","flush_pending","pending","pending_buf","pending_out","total_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","limit","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_stored","flush","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","configuration_table","Config","good_length","max_lazy","nice_length","max_chain","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","deflateInit","old_flush","beg","hcrc","level_flags","bstate","_tr_align","_tr_stored_block","deflateInfo","33","GZheader","xflags","extra_len","34","BAD","TYPE","_in","_out","dmax","wsize","whave","wnext","lcode","dcode","lmask","dmask","here","op","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","35","inflate_fast","inflate_table","CODES","LENS","DISTS","Z_MEM_ERROR","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","ZSWAP32","InflateState","havedict","wbits","ncode","nlen","ndist","have","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit","lenfix","distfix","virgin","fixedtables","sym","updatewindow","put","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","order","inf_leave","inflateInfo","36","MAXBITS","lbase","lext","dbase","dext","lens_index","table_index","incr","low","curr","drop","used","huff","base_index","offs","extra_index","37","38","STORED_BLOCK","STATIC_TREES","DYN_TREES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","static_l_desc","static_d_desc","static_bl_desc","StaticTreeDesc","static_tree","extra_bits","extra_base","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","tree","bi_reverse","bi_flush","gen_bitlen","xbits","stree","gen_codes","tr_static_init","init_block","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lc","lx","scan_tree","curlen","prevlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","send_all_trees","lcodes","dcodes","blcodes","detect_data_type","black_mask","static_init_done","stored_len","opt_lenb","static_lenb","39","ZStream","ByteMatrix","getArray","setNumber","setBoolean","aByte","fillUint8Array","bytesY","otherBytesY","ArrayBufferViewCore","speciesConstructor","aTypedArray","exportTypedArrayMethod","begin","beginIndex","byteOffset","BYTES_PER_ELEMENT","$forEach","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","callbackfn","toPositiveInteger","BYTES","ECBlocks","ecCodewordsPerBlock","getNumBlocks","ecBlocks_1","getTotalECCodewords","redefine","setGlobal","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","Constructor","WriterException","getBuiltIn","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","thisArg","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","V8_VERSION","SPECIES","METHOD_NAME","Boolean","toByteArray","fromByteArray","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","ModeValues","Mode","stringValue","characterCountBitsForVersions","FOR_BITS","FOR_VALUE","forBits","getCharacterCountBits","versionNumber","getVersionNumber","getBits","TERMINATOR","NUMERIC","ALPHANUMERIC","STRUCTURED_APPEND","BYTE","ECI","KANJI","FNC1_FIRST_POSITION","FNC1_SECOND_POSITION","HANZI","getOwnPropertySymbols","InvertedLuminanceSource_1","LuminanceSource_1","RGBLuminanceSource","luminances","dataWidth","dataHeight","luminancesUint8Array","Uint8ClampedArray","pixel","g2","getRow","getMatrix","matrix","inputOffset","outputOffset","isCropSupported","crop","UPCEANExtension2Support","decodeRowStringBuffer","extensionStartRange","extensionData","parseExtensionString","resultPoints","extensionResult","UPC_EAN_EXTENSION","putAllMetadata","checkParity","ISSUE_NUMBER","$sort","comparefn","DO_NOT_EXPORT_CODEPAGE","cpt","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpdcache","cpecache","sfcc","cca","mdl","mdb","make_EE","E","EE","sbcs_encode","ofmt","sbcs_decode","DD","dbcs_encode","dbcs_decode","utf8_d","direct","encache","null_enc","cp_decache","decache","last_enc","last_cp","sbcs","dbcs","BM","SetD","isstr","dash","o64","hascp","Binarizer_1","BitMatrix_1","GlobalHistogramBinarizer","EMPTY","buckets","LUMINANCE_BUCKETS","getLuminanceSource","initArrays","localLuminances","localBuckets","LUMINANCE_SHIFT","blackPoint","estimateBlackPoint","getBlackMatrix","localLuminances_1","createBinarizer","luminanceSize","numBuckets","maxBucketCount","firstPeak","firstPeakSize","secondPeak","secondPeakScore","distanceToBiggest","score","bestValley","bestValleyScore","fromFirst","LUMINANCE_BITS","integer","internalObjectKeys","enumBugKeys","hiddenKeys","EncodeHintType_1","CharacterSetECI_1","ReedSolomonEncoder_1","Mode_1","Version_1","MaskUtil_1","ByteMatrix_1","QRCode_1","MatrixUtil_1","StringEncoding_1","BlockPair_1","WriterException_1","Encoder","calculateMaskPenalty","applyMaskPenaltyRule1","applyMaskPenaltyRule2","applyMaskPenaltyRule3","applyMaskPenaltyRule4","DEFAULT_BYTE_MODE_ENCODING","hasEncodingHint","CHARACTER_SET","chooseMode","headerBits","eci","getCharacterSetECIByName","appendECI","appendModeInfo","dataBits","appendBytes","QR_VERSION","getVersionForNumber","bitsNeeded","calculateBitsNeeded","willFit","recommendVersion","headerAndDataBits","numLetters","appendLengthInfo","numDataBytes","terminateBits","finalBits","interleaveWithECBytes","qrCode","setECLevel","setMode","setVersion","getDimensionForVersion","maskPattern","chooseMaskPattern","setMaskPattern","buildMatrix","setMatrix","provisionalBitsNeeded","provisionalVersion","chooseVersion","getAlphanumericCode","ALPHANUMERIC_TABLE","SJIS","getName","isOnlyDoubleByteKanji","hasNumeric","hasAlphanumeric","isDigit","minPenalty","MAX_SAFE_INTEGER","bestMaskPattern","NUM_MASK_PATTERNS","penalty","numInputBits","versionNum","numEcBytes","totalInputBytes","capacity","numBitsInLastByte","numPaddingBytes","getNumDataBytesAndNumECBytesForBlockID","numTotalBytes","numRSBlocks","blockID","numDataBytesInBlock","numECBytesInBlock","numRsBlocksInGroup2","numRsBlocksInGroup1","numTotalBytesInGroup1","numTotalBytesInGroup2","numDataBytesInGroup1","numDataBytesInGroup2","numEcBytesInGroup1","numEcBytesInGroup2","dataBytesOffset","maxNumDataBytes","maxNumEcBytes","blocks","numEcBytesInBlock","ecBytes","generateECBytes","blocks_1","block","blocks_2","toEncode","QR_CODE_FIELD_256","appendNumericBytes","appendAlphanumericBytes","append8BitBytes","appendKanjiBytes","getDigit","singleCharacter","num1","num2","num3","code1","code2","uee","length_2","subtracted","UTF8","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isUndefined","getDefaultAdapter","adapter","transformRequest","isFormData","isArrayBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","isObject","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","isMergeableObject","isNonNullObject","isSpecial","isReactElement","canUseSymbol","for","REACT_ELEMENT_TYPE","$$typeof","emptyTarget","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getMergeFunction","customMerge","getEnumerableOwnPropertySymbols","symbol","getKeys","propertyIsOnObject","property","propertyIsUnsafe","mergeObject","destination","arrayMerge","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","reduce","deepmerge_1","$reduceRight","replacement","feature","detection","normalize","POLYFILL","NATIVE","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","definePropertyModule","CONSTRUCTOR_NAME","ChecksumException","SDPUtils","localCName","generateIdentifier","splitLines","splitSections","part","getDescription","sections","getMediaSections","matchPrefix","parseCandidate","candidate","foundation","component","priority","ip","address","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","sdp","parseIceOptions","parseRtpMap","payloadType","clockRate","channels","numChannels","writeRtpMap","codec","preferredPayloadType","parseExtmap","direction","writeExtmap","headerExtension","preferredId","parseFmtp","kv","writeFmtp","parameters","parseRtcpFb","parameter","writeRtcpFb","rtcpFeedback","fb","parseSsrcMedia","ssrc","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","mid","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","parseCryptoLine","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","writeIceParameters","parseRtpParameters","description","codecs","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","writeRtpDescription","kind","caps","maxptime","extension","parseRtpEncodingParameters","secondarySsrc","encodingParameters","hasRed","hasUlpfec","primarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","maxBitrate","parseRtcpParameters","rtcpParameters","remoteSsrc","rsize","reducedSize","compound","mux","parseMsid","spec","track","planB","msidParts","parseSctpDescription","maxMessageSize","parseMLine","maxSizeLine","sctpPort","sctpMapLines","writeSctpDescription","media","sctp","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","user","writeMediaSection","transceiver","iceGatherer","getLocalParameters","dtlsTransport","rtpSender","rtpReceiver","msid","sendEncodingParameters","getDirection","getKind","isRejected","parseOLine","sessionVersion","netType","addressType","isValidSDP","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","_arrayLikeToArray","arr2","_arrayWithoutHoles","arrayLikeToArray","_iterableToArray","iter","_unsupportedIterableToArray","minLen","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","aTypedArrayConstructor","$slice","Int8Array","emptyObject","freeze","isUndef","isDef","isTrue","isFalse","isPrimitive","_toString","isValidArrayIndex","isPromise","toNumber","makeMap","expectsLowerCase","isReservedAttribute","item","hit","camelizeRE","camelize","capitalize","hyphenateRE","hyphenate","polyfillBind","ctx","boundFn","_length","nativeBind","_from","no","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","keysA","keysB","looseIndexOf","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","unicodeRegExp","isReserved","bailRE","parsePath","segments","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","userAgent","isIE","isIE9","isEdge","isIOS","isFF","nativeWatch","watch","supportsPassive","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","_Set","hasSymbol","Reflect","ownKeys","Set","Dep","subs","addSub","sub","removeSub","depend","addDep","targetStack","pushTarget","popTarget","VNode","elm","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","child","defineProperties","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","inserted","ob","__ob__","observeArray","dep","arrayKeys","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","observe","asRootData","isExtensible","_isVue","defineReactive$$1","customSetter","shallow","childOb","dependArray","newVal","del","items","strats","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","dedupeHooks","mergeAssets","key$1","methods","inject","provide","defaultStrat","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","directives","def$$1","mergeOptions","_base","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","_props","getType","isSameType","expectedTypes","handleError","$parent","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","isUsingMicroTask","callbacks","flushCallbacks","copies","MutationObserver","observer","textNode","characterData","_resolve","seenObjects","traverse","_traverse","isA","isFrozen","depId","normalizeEvent","passive","once$$1","createFnInvoker","invoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","checkProp","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","renderList","renderSlot","fallback","bindObject","scopedSlotFn","$scopedSlots","$slots","$createElement","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","installRenderHelpers","_o","_n","_l","_q","_m","_k","_e","_u","_g","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","needNormalization","listeners","injections","scopedSlots","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","componentVNodeHooks","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","updateChildComponent","_isMounted","callHook","queueActivatedComponent","activateChildComponent","deactivateChildComponent","$destroy","hooksToMerge","createComponent","baseCtor","cid","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","transformModel","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","pre","applyNS","registerDeepBindings","force","class","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","$nextTick","_render","ensureCtor","comp","__esModule","toStringTag","errorComp","resolved","owners","loading","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","$forceUpdate","reason","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","$off","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","i$1","cbs","$emit","setActiveInstance","prevActiveInstance","initLifecycle","$children","$refs","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","$el","prevVnode","restoreActiveInstance","__patch__","__vue__","_watchers","mountComponent","updateComponent","Watcher","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","$attrs","$listeners","propKeys","_propKeys","isInInactiveTree","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","createEvent","flushSchedulerQueue","watcher","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","emit","queueWatcher","uid$2","expOrFn","isRenderWatcher","lazy","dirty","newDeps","depIds","newDepIds","expression","cleanupDeps","oldValue","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initData","initComputed","initWatch","propsOptions","isRoot","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","stateMixin","dataDef","propsDef","$set","$delete","immediate","uid$3","initMixin","_init","_uid","initInternalComponent","_self","vnodeComponentOptions","_componentTag","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","components","latest","sealed","sealedOptions","initUse","use","plugin","installedPlugins","_installedPlugins","install","initMixin$1","mixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","definition","getComponentName","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","patternTypes","KeepAlive","include","exclude","created","destroyed","mounted","ref$1","builtInComponents","initGlobalAPI","configDef","util","defineReactive","observable","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","childNode","mergeClassData","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","query","querySelector","createElement$1","tagName","multiple","createElementNS","newNode","referenceNode","setTextContent","setStyleScope","nodeOps","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","modules","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","transition","activate","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","isRenderedModule","inVPre","hasChildNodes","childrenMatch","fullInvoke","isInitialPatch","isRealElement","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","setAttributeNS","__ieph","blocker","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","target$1","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","change","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","updateDOMListeners","svgContainer","updateDOMProps","oldProps","_value","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","_vModifiers","parseStyleText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","cssVarRE","importantRE","setProp","normalizedName","vendorNames","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","classList","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","directive","binding","_vOptions","setSelected","onCompositionStart","onCompositionEnd","prevOptions","curOptions","some","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","initEvent","dispatchEvent","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","placeholder","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","c$1","updated","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","moved","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","newPos","oldPos","dx","dy","platformComponents","defaultConfig","expires","domain","secure","sameSite","VueCookies","$cookies","expireTimes","decodeURIComponent","cookie","_expires","_expireTime","toUTCString","isKey","_keys","_index","VueBarcodeScanner","previousCode","barcode","setting","sound","soundSrc","scannerSensitivity","requiredAttr","controlSequenceKeys","callbackAfterTimeout","hasListener","pressedTime","isInControlSequence","eventBus","isProcessing","addListener","removeListener","onInputScanned","finishScanSequence","triggerSound","emitEvent","handleControlBoundaryKeydown","controlSequenceRegex","controlRegex","checkInputElapsedTime","barcodeIdentifier","getNamedItem","timestamp","timeElapsed","audio","Audio","play","sensitivity","$barcodeScanner","getPreviousCode","setSensitivity","v8","ChecksumException_1","FormatException_1","Code39Reader","usingCheckDigit","extendedMode","decodeRowResult","theCounters","decodedChar","lastStart","findAsteriskPattern","nextStart","toNarrowWidePattern","patternToChar","theCounters_1","lastPatternSize","theCounters_2","whiteSpaceAfterEnd","ALPHABET_STRING","decodeExtended","CODE_39","ASTERISK_ENCODING","wideCounters","maxNarrowCounter","minCounter","totalWideCountersWidth","CHARACTER_ENCODINGS","decoded","getOwnPropertyDescriptorModule","enhanceError","ArgumentException","ReedSolomonDecoder_1","BitMatrixParser_1","QRCodeDecoderMetaData_1","DataBlock_1","DecodedBitStreamParser_1","Decoder","rsDecoder","decodeBooleanArray","decodeBitMatrix","parseFromBooleanArray","parser","decodeBitMatrixParser","remask","setMirror","readVersion","readFormatInformation","mirror","setOther","getErrorCorrectionLevel","readCodewords","dataBlocks","totalBytes","dataBlocks_1","dataBlock","resultBytes","resultOffset","dataBlocks_2","codewordBytes","correctErrors","codewordsInts","__CANCEL__","commonjsGlobal","commonjsRequire","createCommonjsModule","moment","_typeof","hookCallback","setHookCallback","isObjectEmpty","isNumber","isDate","hasOwnProp","valueOf","createUTC","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","createInvalid","fun","momentProperties","copyConfig","_isAMomentObject","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","updateOffset","isMoment","absFloor","toInt","argumentForCoercion","coercedNumber","compareArrays","array1","array2","dontConvert","diffs","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecations","deprecateSimple","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","_calendar","defaultLongDateFormat","LTS","LT","LL","LLL","LLLL","longDateFormat","_longDateFormat","formatUpper","defaultInvalidDate","invalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","ordinal","_ordinal","defaultRelativeTime","future","past","mm","hh","MM","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","getPrioritizedUnits","unitsObj","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p1","p2","p3","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","isLeapYear","parseTwoDigitYear","getSetYear","makeGetSet","getIsLeapYear","keepTime","set$1","daysInMonth","stringGet","stringSet","prioritized","mod","modMonth","monthsShort","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","defaultLocaleMonths","localeMonths","_months","isFormat","defaultLocaleMonthsShort","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","dayOfMonth","getSetMonth","getDaysInMonth","defaultMonthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","createDate","ms","createUTCDate","getUTCFullYear","setUTCFullYear","firstWeekOffset","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","localeWeekdays","_weekdays","defaultLocaleWeekdaysShort","localeWeekdaysShort","_weekdaysShort","defaultLocaleWeekdaysMin","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","defaultWeekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","kInput","_isPm","isPM","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","localeMeridiem","isLower","globalLocale","getSetHour","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","normalizeLocale","chooseLocale","loadLocale","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","weekdayOverflow","GG","createLocal","curWeek","gg","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","createFromInputFallback","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","configFromObject","minute","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","weeks","isoWeek","milliseconds","_milliseconds","_days","_bubble","isDuration","absRound","separator","utcOffset","offsetFromString","chunkOffset","cloneWithOffset","local","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","dur","isAdding","invalid","getCalendarFormat","myMoment","calendar$1","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","keepOffset","toDate","zone","datetime","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toJSON","isValid$2","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","isoWeekYear","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","parseMs","getSetMillisecond","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","isoWeeks","isoWeeksInYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","withSuffix","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME_SECONDS","TIME_MS","vueMoment","moment$$1","$moment","_len","_len2","_key2","addends","addend","subtrahends","_obj","subtrahend","removeSuffix","referenceTime","float","_referenceTime","tz","_len3","_key3","durationChange","_duration","vueMoment_1","serializedParams","hashmarkIndex","ArithmeticException","$lastIndexOf","searchElement","ReedSolomonException","NativePromise","promiseResolve","NON_GENERIC","real","onFinally","objectKeys","Properties","BinaryBitmap","binarizer","newSource","rotateCounterClockwise45","isAxiosError","lineNumber","columnNumber","FinderPattern","isStandardBrowserEnv","originURL","msie","urlParsingNode","resolveURL","hostname","pathname","requestURL","isString","ts_custom_error_1","Exception","CustomError","UPCEANExtension5Support","CHECK_DIGIT_ENCODINGS","determineCheckDigit","extensionChecksum","parseExtension5String","SUGGESTED_PRICE","currency","rawAmount","unitsString","hundredths","hundredthsString","$findIndex","findIndex","predicate","DataMaskValues","DataMask","isMasked","unmaskBitMatrix","DATA_MASK_000","DATA_MASK_001","DATA_MASK_010","DATA_MASK_011","DATA_MASK_100","DATA_MASK_101","DATA_MASK_110","DATA_MASK_111","toOffset","arrayLike","InternalStateModule","defineIterator","STRING_ITERATOR","setInternalState","getInternalState","getterFor","iterated","point","QRCodeDecoderMetaData","mirrored","isMirrored","applyMirroredCorrection","Arrays","a_1","copyOf","newLength","binarySearch","ar","comparator","numberComparator","cmp","_classCallCheck","instance","_defineProperties","_createClass","protoProps","staticProps","_extends","_inherits","subClass","superClass","_setPrototypeOf","_getPrototypeOf","_isNativeReflectConstruct","construct","Proxy","_construct","Class","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","NewTarget","_superPropBase","_get","receiver","consolePrefix","uniqueArray","capitalizeFirstLetter","objectValues","nodeList","previousWarnOnceMessages","warnOnce","warnAboutDepreation","deprecatedParam","useInstead","callIfFunction","hasToPromiseFn","toPromise","asPromise","DismissReason","cancel","backdrop","esc","isJqueryElement","isElement","Element","argsToParams","swalPrefix","swalClasses","iconTypes","getContainer","elementBySelector","selectorString","elementByClass","getPopup","popup","getIcons","icon","getIcon","visibleIcon","isVisible","getTitle","title","getHtmlContainer","getImage","getProgressSteps","getValidationMessage","getConfirmButton","actions","confirm","getCancelButton","getActions","getHeader","getFooter","getTimerProgressBar","getCloseButton","focusable","getFocusableElements","focusableElementsWithTabindex","otherFocusableElements","isModal","isToast","isLoading","states","previousBodyPadding","setInnerHtml","removeCustomClasses","showClass","applyCustomClass","customClass","getInput","getChildByClass","oldInputVal","focusInput","condition","applyNumericalStyle","removeProperty","isScrollable","scrollHeight","clientHeight","hasCssAnimation","animDuration","transDuration","haystack","needle","animateTimerProgressBar","timerProgressBar","stopTimerProgressBar","timerProgressBarWidth","timerProgressBarFullWidth","timerProgressBarPercent","isNodeEnv","sweetHTML","question","warning","label","textarea","resetOldContainer","oldContainer","resetValidationMessage","Swal","addInputChangeListeners","rangeOutput","oninput","onchange","getTarget","setupAccessibility","toast","setupRTL","targetElement","rtl","oldContainerExisted","parseHtmlToContainer","handleObject","handleJqueryElem","testEl","transEndEventNames","WebkitAnimation","OAnimation","measureScrollbar","scrollDiv","scrollbarWidth","clientWidth","renderActions","confirmButton","cancelButton","showConfirmButton","showCancelButton","renderButton","buttonsStyling","handleButtonsStyling","styled","backgroundColor","borderLeftColor","borderRightColor","reverseButtons","confirmButtonColor","cancelButtonColor","confirmButtonBackgroundColor","buttonType","handleBackdropParam","background","handlePositionParam","handleGrowParam","grow","growClass","renderContainer","allowOutsideClick","queueStep","privateProps","innerParams","domCache","inputTypes","renderInput","rerender","inputClass","inputContainer","setAttributes","inputAttributes","showInput","setCustomClass","renderInputType","getInputContainer","removeAttributes","attrName","setInputPlaceholder","inputPlaceholder","email","tel","inputValue","rangeInput","checkboxContainer","initialPopupWidth","popupPadding","paddingLeft","paddingRight","outputsize","contentWidth","attributeFilter","renderContent","renderFooter","renderCloseButton","closeButton","closeButtonHtml","showCloseButton","closeButtonAriaLabel","renderIcon","hideAllIcons","setContent","adjustSuccessIconBackgoundColor","icons","popupBackgroundColor","successIconParts","iconHtml","iconContent","defaultIconHtml","renderImage","imageUrl","imageAlt","imageWidth","imageHeight","currentSteps","steps","resetAndResolve","queueResult","dismiss","getQueueStep","insertQueueStep","deleteQueueStep","createStepElement","stepEl","createLineElement","lineEl","progressStepsDistance","renderProgressSteps","progressStepsContainer","progressSteps","currentProgressStep","renderTitle","titleText","innerText","renderHeader","renderPopup","addClasses","modal","onRender","isVisible$1","clickConfirm","clickCancel","mixinParams","MixinSwal","showLoading","RESTORE_FOCUS_TIMEOUT","globalState","focusPreviousActiveElement","previousActiveElement","restoreActiveElement","scrollX","scrollY","restoreFocusTimeout","getTimerLeft","stopTimer","resumeTimer","toggleTimer","running","increaseTimer","increase","isTimerRunning","isRunning","defaultParams","hideClass","heightAuto","allowEscapeKey","allowEnterKey","stopKeydownPropagation","keydownListenerCapture","preConfirm","confirmButtonText","confirmButtonAriaLabel","cancelButtonText","cancelButtonAriaLabel","focusConfirm","focusCancel","showLoaderOnConfirm","inputOptions","inputAutoTrim","inputValidator","validationMessage","onBeforeOpen","onOpen","onClose","onAfterClose","onDestroy","scrollbarPadding","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isUpdatableParameter","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","showWarningsForParams","staticMethods","enableLoading","hideLoading","getInput$1","fixScrollbar","innerHeight","undoScrollbar","iOSfix","iOS","MSStream","maxTouchPoints","iosfix","lockBodyScroll","addBottomPaddingForTallPopups","safari","bottomPanelHeight","paddingBottom","preventTouchMove","ontouchstart","shouldPreventTouchMove","ontouchmove","undoIOSfix","isIE11","MSInputMethodContext","documentMode","fixVerticalPositionIE","offsetTop","alignItems","IEfix","undoIEfix","setAriaHidden","bodyChildren","unsetAriaHidden","privateMethods","swalPromiseResolve","removePopupAndResetState","isToast$$1","triggerOnAfterCloseAndDispose","keydownTarget","keydownHandler","keydownHandlerAdded","removeBodyClasses","shown","resolveValue","handlePopupAnimation","isDismissed","isConfirmed","animationIsSupported","animatePopup","swalCloseEventFinishedCallback","_destroy","setButtonsDisabled","setInputDisabled","radiosContainer","radios","enableButtons","disableButtons","enableInput","disableInput","showValidationMessage","popupComputedStyle","marginRight","inputerror","resetValidationMessage$1","getProgressSteps$1","Timer","started","defaultInputValidators","setDefaultInputValidators","validateCustomTargetElement","setParameters","openPopup","addClasses$1","setScrollingVisibility","fixScrollContainer","swalOpenAnimationFinished","handleInputOptionsAndValue","handleInputOptions","handleInputValue","getInputValue","getCheckboxValue","getRadioValue","getFileValue","processInputOptions","populateInputOptions","formatInputOptions","renderOption","optionLabel","optionValue","inputOption","radioLabel","radioInput","radioLabelElement","valueFormatted","handleConfirmButtonClick","handleConfirmWithInput","handleCancelButtonClick","dismissWith","validationPromise","checkValidity","succeedWith","closePopup","preConfirmPromise","preConfirmValue","addKeydownHandler","setFocus","focusableElements","arrowKeys","escKeys","handleEnter","handleTab","handleArrows","handleEsc","isComposing","outerHTML","btnIndex","handlePopupClick","handleToastClick","handleModalMousedown","handleContainerMousedown","handleModalClick","onclick","ignoreOutsideClick","onmousedown","onmouseup","_main","userParams","currentInstance","prepareParams","populateDomCache","swalPromise","setupTimer","initFocus","globalState$$1","blurActiveElement","validUpdatableParams","updatedParams","deferDisposalTimer","disposeSwal","unsetWeakMaps","instanceMethods","disableLoading","closeModal","closeToast","SweetAlert","outerParams","_currentInstance","Sweetalert2","swal","sweetAlert","$map","mapfn","GlobalHistogramBinarizer_1","HybridBinarizer","MINIMUM_DIMENSION","subWidth","BLOCK_SIZE_POWER","BLOCK_SIZE_MASK","subHeight","blackPoints","calculateBlackPoints","newMatrix","calculateThresholdForBlock","maxYOffset","BLOCK_SIZE","maxXOffset","yoffset","top_1","xoffset","blackRow","average","thresholdBlock","stride","xx","MIN_DYNAMIC_RANGE","averageNeighborBlackPoint","Code39Reader_1","Code128Reader_1","RSS14Reader_1","ITFReader_1","MultiFormatUPCEANReader_1","MultiFormatOneDReader","readers","possibleFormats","POSSIBLE_FORMATS","useCode39CheckDigit","ASSUME_CODE_39_CHECK_DIGIT","includes","EAN_8","CODE_128","ITF","arch","execPath","browser","argv","cwd","chdir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","EncodeHintType","UNSCOPABLES","ArrayPrototype","fixRegExpWellKnownSymbolLogic","requireObjectCoercible","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","rx","fullUnicode","unicode","matchStr","createError","__awaiter","_arguments","generator","__generator","sent","trys","ops","verb","ArgumentException_1","BinaryBitmap_1","HybridBinarizer_1","HTMLCanvasElementLuminanceSource_1","VideoInputDevice_1","_hints","_stopContinuousDecode","_stopAsyncDecode","_timeBetweenDecodingAttempts","hasNavigator","mediaDevices","isMediaDevicesSuported","enumerateDevices","millis","listVideoInputDevices","devices","videoDevices","devices_1","device","deviceId","groupId","videoDevice","canEnumerateDevices","getVideoInputDevices","VideoInputDevice","findDeviceById","decodeFromInputVideoDevice","videoSource","decodeOnceFromVideoDevice","videoConstraints","constraints","exact","facingMode","video","decodeOnceFromConstraints","getUserMedia","decodeOnceFromStream","attachStreamToVideo","decodeOnce","decodeFromInputVideoDeviceContinuously","callbackFn","decodeFromVideoDevice","decodeFromConstraints","decodeFromStream","decodeContinuously","stopAsyncDecode","stopContinuousDecode","videoElement","prepareVideoElement","addVideoSource","playVideoOnLoadAsync","playVideoOnLoad","videoEndedListener","stopStreams","videoCanPlayListener","tryPlayVideo","isVideoPlaying","paused","getMediaElement","mediaElementId","mediaElement","decodeFromImage","decodeFromImageUrl","decodeFromImageElement","decodeFromVideo","decodeFromVideoUrl","decodeFromVideoElement","decodeFromVideoContinuously","decodeFromVideoUrlContinuously","decodeFromVideoElementContinuously","task","prepareImageElement","imageElement","isImageLoaded","_decodeOnLoadImage","_decodeFromVideoElementSetup","_decodeOnLoadVideo","_decodeOnLoadVideoContinuously","decodeTask","imageLoadedListener","img","naturalWidth","imageSource","HTMLImageElement","HTMLVideoElement","retryIfNotFound","retryIfChecksumOrFormatError","ifNotFound","isChecksumOrFormatError","ifChecksumOrFormat","isNotFound","binaryBitmap","createBinaryBitmap","decodeBitmap","getCaptureCanvasContext","drawImageOnCanvas","canvas","getCaptureCanvas","luminanceSource","HTMLCanvasElementLuminanceSource","hybridBinarizer","captureCanvasContext","getContext","captureCanvas","createCaptureCanvas","canvasElementContext","srcElement","drawImage","_destroyCaptureCanvas","canvasElement","videoWidth","videoHeight","naturalHeight","getVideoTracks","_destroyVideoElement","_destroyImageElement","videoPlayingEventListener","cleanVideoSource","srcObject","FormatInformation_1","DataMask_1","BitMatrixParser","bitMatrix","parsedFormatInfo","formatInfoBits1","copyBit","formatInfoBits2","jMin","decodeFormatInformation","parsedVersion","versionBits","ijMin","theParsedVersion","decodeVersionInformation","isMirror","formatInfo","dataMask","getDataMask","functionPattern","buildFunctionPattern","readingUp","currentByte","bitsRead","defaultConstructor","StringBuilder","deleteCharAt","setCharAt","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","ErrorCorrectionLevelValues","ErrorCorrectionLevel","fromString","nativeDefineProperty","Attributes","createMethod","IS_INCLUDES","$this","fromIndex","UPCEANExtension5Support_1","UPCEANExtension2Support_1","UPCEANExtensionSupport","EXTENSION_START_PATTERN","fiveSupport","twoSupport","ssrDocument","importNode","getDocument","ssrWindow","history","replaceState","pushState","go","CustomEvent","Image","screen","matchMedia","cancelAnimationFrame","getWindow","_inheritsLoose","_isNativeFunction","_wrapNativeSuper","_cache","Wrapper","makeReactive","Dom7","_Array","arrayFlat","arrayFilter","arrayUnique","toCreate","tempParent","_el$classList","_el$classList2","_len4","_key4","_len5","_key5","eventType","targetSelector","handleLiveEvent","eventData","dom7EventData","_parents","handleEvent","_event","dom7LiveListeners","proxyListener","dom7Listeners","_len6","_key6","dom7proxy","_len9","_key9","dataIndex","transitionEnd","dom","fireCallBack","includeMargins","_styles","_styles2","clientTop","clientLeft","_prop","compareWith","previousSibling","returnIndex","newChild","tempDiv","nextElementSibling","nextEls","previousElementSibling","prevEls","_prev","_parent","foundElements","noTrigger","shortcut","eventHandler","Methods","outerWidth","outerHeight","methodName","deleteProps","currentStyle","getTranslate","axis","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","noExtend","nextSource","keysArray","nextIndex","nextKey","__swiper__","bindModuleMethods","subKey","classesToSelector","createElementIfNotDefined","$container","createElements","checkProps","calcSupport","touch","DocumentTouch","pointerEvents","PointerEvent","passiveListener","gestures","getSupport","calcDevice","_temp","_ref","ua","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","iPadScreens","getDevice","overrides","calcBrowser","isSafari","isWebView","getBrowser","ResizeObserver","swiper","resize","createObserver","initialized","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","removeObserver","unobserve","orientationChangeHandler","resizeObserver","attach","ObserverFunc","WebkitMutationObserver","mutations","observerUpdate","childList","observers","observeParents","containerParents","observeSlideChildren","$wrapperEl","disconnect","useParams","instanceParams","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsListeners","__emitterProxy","onAny","eventsAnyListeners","offAny","eventsArray","isHorizontal","isVertical","updateSlides","getDirectionLabel","getDirectionPropertyValue","swiperSize","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginTop","marginBottom","slidesPerColumn","slidesPerView","slidesPerColumnFill","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","slidesPerGroup","groupIndex","slideIndexInGroup","columnsInGroup","slideStyles","currentTransform","currentWebKitTransform","roundLengths","boxSizing","_slide$","swiperSlideSize","centeredSlides","slidesPerGroupSkip","effect","setWrapperSize","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","slideIndex","cssMode","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","_allSlidesSize","allSlidesOffset","snapIndex","watchOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","activeSlides","setTransition","getSlideByIndex","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","updateSize","getSwiperTranslate","virtualTranslate","currentTranslate","byController","newProgress","wrapperEl","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","_wrapperEl$scrollTo","isH","behavior","setTranslate","onTranslateToWrapperTransitionEnd","transitionStart","slideTo","indexAsNumber","isValidNumber","initialSlide","normalizedTranslate","normalizedGird","normalizedGridNext","allowSlideNext","allowSlidePrev","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","loopedSlides","slideNext","loopPreventsSlide","loopFix","_clientLeft","slidePrev","prevIndex","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","currentSnap","nextSnap","_currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","snapTranslate","slideChanged","_slideChanged","loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","onTouchStart","touchEventsData","$targetEl","touchEventsTarget","isTouchEvent","isTouched","isMoved","swipingClassHasValue","noSwipingClass","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","currentY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","startTranslate","allowMomentumBounce","grabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","freeModeMomentum","lastMoveEvent","velocityEvent","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","_increment","ratio","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","onResize","breakpoints","setBreakpoint","autoplay","preventClicks","preventClicksPropagation","onScroll","dummyEventAttached","dummyEventListener","attachEvents","touchEvents","onTouchMove","onClick","move","passiveListeners","updateOnWindowResize","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","containerModifierClass","emitContainerClasses","directionChanged","needsReLoop","changeDirection","isEnabled","enable","containerEl","currentHeight","minRatio","_points$i","prepareClasses","resultClasses","suffixes","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","onReady","isPicture","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","wasLocked","lastSlidePosition","uniqueNavElements","wrapperClass","_emitClasses","prototypes","modular","eventsEmitter","manipulation","images","extendedDefaults","Swiper","swipers","newParams","moduleParamName","swiperParams","passedParams","eventName","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","_proto","setProgress","getSlideClasses","slideEl","updates","spv","breakLoop","translated","translateValue","newDirection","needUpdate","currentDirection","mount","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","prototypeGroup","protoMethod","Virtual","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","previousTo","previousSlidesGrid","renderSlide","previousOffset","slidesAfter","slidesBefore","onRendered","renderExternal","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","$slideEl","numberOfNewSlides","cachedIndex","$cachedEl","cachedElIndex","beforeInit","overwriteParams","Keyboard","kc","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","isEventSupported","isSupported","hasFeature","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","eventsTarget","releaseOnEdges","rtlFactor","forceToAxis","positions","_newEvent","ignoreWheelEvents","_recentWheelEvents","_prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","newEvent","prevEvent","animateSlider","releaseScroll","thresholdDelta","thresholdTime","Navigation","toggleEl","disabledClass","_swiper$navigation","$nextEl","$prevEl","lockClass","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","toEdge","fromEdge","_swiper$navigation3","_swiper$navigation4","targetEl","pagination","clickable","isHidden","Pagination","paginationType","bullets","firstIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scaleX","scaleY","progressbarFillClass","renderCustom","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickableClass","modifierClass","progressbarOppositeClass","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","divider","moveDivider","getPointerPosition","setDragPosition","positionRatio","dragStartPos","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Parallax","setTransform","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","onGestureChange","scaleMove","onGestureEnd","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","in","touchX","touchY","translateX","translateY","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomedSlideClass","toggleGestures","slideSelector","enableGestures","gesturesEnabled","disableGestures","activeListenerWithCapture","touchStart","touchEnd","doubleTap","slideChange","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","$pictureEl","sourceEl","$source","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","scrollingElement","scrollElementWidth","scrollElementHeight","scrollHandlerAttached","checkInView","loadOnTransitionStart","scroll","Controller","LinearSpline","i1","i3","interpolate","getInterpolateFunction","controller","spline","_setTranslate","controlledTranslate","controlled","control","setControlledTranslate","by","setControlledTransition","A11y","getRandomNumber","randomChar","repeat","makeElFocusable","makeElNotFocusable","addElRole","addElRoleDescription","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","a11y","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","slideRole","ariaLabelMessage","slideLabelMessage","notificationClass","afterInit","paginationUpdate","History","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","urlOverride","pathArray","setHistory","slugify","currentState","slideHistory","HashNavigation","onHashChange","newHash","activeSlideHash","setHash","slideHash","watchState","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","attachMouseEvents","pauseOnMouseEnter","detachMouseEvents","beforeTransitionStart","sliderFirstMove","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Cube","$cubeShadowEl","cubeEffect","wrapperRotate","slideAngle","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","sin","scale1","scale2","zFactor","Flip","flipEffect","limitRotation","rotate","rotateY","rotateX","zIndex","Coverflow","coverflowEffect","slideOffset","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","Thumbs","thumbsParams","thumbs","SwiperClass","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","beforeDestroy","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","createProperty","argumentsLength","mapping","iteratorMethod","getOwnPropertySymbolsModule","IndexedObject","nativeAssign","alphabet","ResultMetadataType","transformData","isCancel","throwIfCancellationRequested","cancelToken","throwIfRequested","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","nativeReplace","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","symbols","UnsupportedOperationException","DecoderResult_1","BitSource_1","__1","IllegalStateException_1","DecodedBitStreamParser","resultTrailer","byteSegments","ASCII_ENCODE","decodeAsciiSegment","C40_ENCODE","decodeC40Segment","TEXT_ENCODE","decodeTextSegment","ANSIX12_ENCODE","decodeAnsiX12Segment","EDIFACT_ENCODE","decodeEdifactSegment","BASE256_ENCODE","decodeBase256Segment","PAD_ENCODE","available","upperShift","oneByte","readBits","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","bitsLeft","getBitOffset","codewordPosition","getByteOffset","d1","unrandomize255State","StringUtils","ISO88591","randomizedBase256Codeword","base256CodewordPosition","pseudoRandomNumber","tempVariable","getOwnPropertyNamesModule","VueSweetalert2","vue","swalLocalInstance","swalFunction","$swal","_defineProperty","enumerableOnly","_objectSpread2","getOwnPropertyDescriptors","_createForOfIteratorHelper","allowArrayLike","normalCompletion","didErr","return","isPureObject","hasGlobalWindowFn","hasGlobalWindow","_global","showWarningNotSupported","defaultInfo","titleChunk","titleTemplate","htmlAttrs","bodyAttrs","headAttrs","noscript","__dangerouslyDisableSanitizers","__dangerouslyDisableSanitizersByTagID","rootConfigKey","keyName","ssrAttribute","tagIDKeyName","metaTemplateKeyName","contentKeyName","ssrAppId","debounceWait","waitOnDestroyed","defaultOptions","defaultInfoKeys","disableOptionKeys","metaInfoOptionKeys","metaInfoAttributeKeys","tagsSupportingOnload","tagsWithoutEndTag","tagsWithInnerContent","tagAttributeAsInnerContent","tagProperties","commonDataAttributes","booleanHtmlAttributes","batchId","triggerUpdate","rootVm","hookName","initializing","pausing","batchUpdate","$meta","refresh","getTag","tags","getElementsKey","pbody","queryElements","_ref2","appId","queries","attributeValue","removeElementsByAppId","_ref3","attributeName","hasMetaInfo","inMetaInfoBranch","resume","addNavGuards","router","$router","navGuards","beforeEach","afterEach","_resume","metaInfo","afterNavigation","createMixin","updateOnLifecycleHook","wasServerRendered","_this2","rootKey","devtoolsEnabled","deprecationWarningShown","htmlTag","$metaInfo","$isServer","initializedSsr","_$root$$meta$refresh","refreshOnceOnNavigation","_hasMetaInfo","setInterval","clearInterval","lifecycleHook","setOptions","getOptions","optionsCopy","ensureIsArray","serverSequences","clientSequences","escapeOptions","escapeKeys","_escapeOptions$doEsca","doEscape","escaped","disableKey","tagId","escapedKey","escapeMetaInfo","escapeSequences","seq","applyTemplate","headObject","template","_arrayMerge","targetItem","targetIndex","sourceItem","targetTemplate","sourceTemplate","warningShown","attrKey","getComponentMetaInfo","getComponentOption","_options","childComponent","isDOMComplete","addCallback","addCallbacks","autoAddListeners","hasAsyncCallback","addListeners","applyCallbacks","matchElement","__vm_cb","__vm_l","__vm_ev","appsMetaInfo","attributeMap","updateAttribute","vueMetaAttrString","decodeURI","toUpdate","_attr","attrData","_toUpdate","_attr2","_attrData","attrValues","_appId","attrValue","updateTitle","updateTag","dataAttributes","newElements","queryOptions","currentElements","newElement","isBooleanAttribute","styleSheet","indexToDelete","oldElements","hasEqualElement","existingTag","isEqualNode","oldTags","newTags","updateClientMetaInfo","newInfo","addLoadListeners","tagsAdded","tagsRemoved","_updateTag","addApp","setMetaInfo","removeMetaInfo","_step","_iterator","clearAppsMetaInfo","getAppsMetaInfo","getMetaInfo","metaItem","hasVmid","isFirstItemForVmid","metaObject","rawInfo","changed","addedTags","removedTags","additionalAppId","attributeGenerator","addSsrAttribute","attributeStr","encodeURI","titleGenerator","generatorOptions","ln","tagGenerator","_ref2$isSSR","_ref2$body","_ref2$pbody","_ref2$ln","tagsStr","tagKeys","hasEndTag","generateServerInjector","globalInjectOptions","serverInjector","extraData","addInfo","callInjectors","injectors","bodyPrepend","bodyAppend","_loop","injectOptions","attributeData","_appId2","_data2","extraStr","newOptions","refreshNavKey","debounceWaitKey","waitOnDestroyedKey","__vuemeta_installed","macrotask","WebKitMutationObserver","IS_NODE","queueMicrotaskDescriptor","queueMicrotask","DataMatrixReader_1","BrowserDatamatrixCodeReader","StringUtils_1","symbolSequence","parityData","currentCharacterSetECI","fc1InEffect","modeBits","parseECIValue","getCharacterSetECIByValue","subset","countHanzi","GB2312_SUBSET","decodeHanziSegment","decodeNumericSegment","decodeAlphanumericSegment","decodeByteSegment","decodeKanjiSegment","iae","twoBytes","assembledTwoBytes","GB2312","SHIFT_JIS","readBytes","guessEncoding","toAlphaNumericChar","ALPHANUMERIC_CHARS","nextTwoCharsBits","threeDigitsBits","twoDigitsBits","digitBits","secondThirdBytes","bitmap","createTypedArrayConstructor","$join","ArrayIterators","arrayValues","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","DecoderResult","rawBytes","structuredAppendSequenceNumber","structuredAppendParity","getRawBytes","getNumBits","setNumBits","getByteSegments","getECLevel","getErrorsCorrected","errorsCorrected","setErrorsCorrected","getErasures","erasures","setErasures","getOther","hasStructuredAppend","getStructuredAppendParity","getStructuredAppendSequenceNumber","NATIVE_ARRAY_BUFFER","redefineAll","anInstance","toIndex","IEEE754","arrayFill","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_LENGTH","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","ObjectPrototype","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","isLittleEndian","intIndex","conversion","ArrayBufferPrototype","testView","nativeSetInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","DataView","ecCodewords","ecBlocks1","ecBlocks2","getECCodewords","ECB","dataCodewords","Version","symbolSizeRows","symbolSizeColumns","dataRegionSizeRows","dataRegionSizeColumns","ecbArray","ecbArray_1","totalCodewords","getSymbolSizeRows","getSymbolSizeColumns","getDataRegionSizeRows","getDataRegionSizeColumns","getVersionForDimensions","numRows","numColumns","VERSIONS","buildVersions","$some","CONVERT_TO_STRING","codeAt","PrototypeOfArrayIteratorPrototype","arrayIterator","BUGGY_SAFARI_ITERATORS","originalArray","GridSampler","checkAndNudgePoints","nudged","activeXDocument","documentCreateElement","sharedKey","GT","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","NullProtoObjectViaIFrame","iframeDocument","iframe","contentWindow","NullProtoObject","ActiveXObject","mappingBitMatrix","extractDataRegion","readMappingMatrix","getVersion","corner1Read","corner2Read","corner3Read","corner4Read","readUtah","readCorner4","readCorner3","readCorner2","readCorner1","readModule","numDataRegionsRow","numDataRegionsColumn","sizeDataRegionRow","sizeDataRegionColumn","bitMatrixWithoutAlignment","dataRegionRow","dataRegionRowOffset","dataRegionColumn","dataRegionColumnOffset","readRowOffset","writeRowOffset","readColumnOffset","writeColumnOffset","Code128Reader","findStartPattern","bestVariance","MAX_AVG_VARIANCE","startCode","CODE_START_A","CODE_START_C","CODE_PATTERNS","MAX_INDIVIDUAL_VARIANCE","decodeCode","codeSet","convertFNC1","ASSUME_GS1","startPatternInfo","currentRawCodesIndex","rawCodes","CODE_CODE_A","CODE_START_B","CODE_CODE_B","CODE_CODE_C","isNextShifted","lastCode","checksumTotal","lastCharacterWasPrintable","upperMode","shiftUpperMode","CODE_STOP","previous","CODE_FNC_1","CODE_FNC_2","CODE_FNC_3","CODE_FNC_4_A","CODE_SHIFT","CODE_FNC_4_B","resultLength","rawCodesSize","NATIVE_WEAK_MAP","objectHas","enforce","wmget","wmhas","wmset","STATE","FinderPatternInfo_1","FinderPatternFinder","possibleCenters","crossCheckStateCount","getPossibleCenters","pureBarcode","PURE_BARCODE","maxI","maxJ","iSkip","MAX_MODULES","MIN_SKIP","stateCount","foundPatternCross","confirmed","handlePossibleCenter","hasSkipped","haveMultiplyConfirmedCenters","rowSkip","findRowSkip","patternInfo","selectBestPatterns","orderBestPatterns","centerFromEnd","totalModuleSize","maxVariance","getCrossCheckStateCount","crossCheckDiagonal","startI","centerJ","maxCount","originalStateCountTotal","stateCountTotal","crossCheckVertical","crossCheckHorizontal","startJ","centerI","firstConfirmedCenter","CENTER_QUORUM","confirmedCount","getEstimatedModuleSize","totalDeviation","startSize","square","stdDev","center1","center2","dA","dB","possibleCenters_1","possibleCenter","GridSampler_1","PerspectiveTransform_1","DefaultGridSampler","sampleGrid","dimensionX","dimensionY","p1ToX","p1ToY","p2ToX","p2ToY","p3ToX","p3ToY","p4ToX","p4ToY","p1FromX","p1FromY","p2FromX","p2FromY","p3FromX","p3FromY","p4FromX","p4FromY","quadrilateralToQuadrilateral","sampleGridWithTransform","Float32Array","iValue","transformPoints","aioobe","ErrorCorrectionLevel_1","FormatInformation","errorCorrectionLevel","numBitsDiffering","bitCount","maskedFormatInfo1","maskedFormatInfo2","doDecodeFormatInformation","FORMAT_INFO_MASK_QR","bestDifference","bestFormatInfo","FORMAT_INFO_DECODE_LOOKUP","decodeInfo","targetInfo","bitsDifference","GenericGFPoly_1","ArithmeticException_1","GenericGF","primitive","generatorBase","expTable","logTable","getOne","exp","getGeneratorBase","toHexString","AZTEC_DATA_12","AZTEC_DATA_10","AZTEC_DATA_6","AZTEC_PARAM","DATA_MATRIX_FIELD_256","AZTEC_DATA_8","MAXICODE_FIELD_64","enforceInternalState","TEMPLATE","dummy","NewTargetPrototype","canBeISO88591","canBeShiftJIS","canBeUTF8","utf8BytesLeft","utf2BytesChars","utf3BytesChars","utf4BytesChars","sjisBytesLeft","sjisKatakanaChars","sjisCurKatakanaWordLength","sjisCurDoubleBytesWordLength","sjisMaxKatakanaWordLength","sjisMaxDoubleBytesWordLength","isoHighOther","utf8bom","ASSUME_SHIFT_JIS","PLATFORM_DEFAULT_ENCODING","ISO8859_1","EUC_JP","CoreNames","ComponentEvents","ComponentPropNames","DEFAULT_CLASSES","SWIPER_EVENTS","__spreadArrays","il","jl","SlotNames","kebabcase","handleClickSlideEvent","composedPath","slides_1","reallyIndex","dataset","swiperSlideIndex","reallyIndexValue","isInteger","ClickSlide","bindSwiperEvents","kebabcaseName","INSTANCE_NAME_KEY","getDirective","globalOptions","getStandardisedOptionByAttrs","getSwiperInstanceName","SwiperInstance","getSwiperInstance","instanceName","getSwipeOptions","getBooleanValueByInput","getEventEmiter","swiperOptions","vueContext","Ready","_h","autoUpdate","AutoUpdate","isLoop","autoDestroy","AutoDestroy","DeleteInstanceOnDestroy","CleanupStylesOnDestroy","getSwiperComponent","SwiperComponent","required","swiperInstance","handleSwiperClick","autoReLoopSwiper","updateSwiper","destroySwiper","initSwiper","activated","ParallaxBg","PrevButton","NextButton","SwiperSlideComponent","getInstaller","installed","SwiperDirective","exporter","VueAwesomeSwiper","SwiperSlide","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","$fill","FormatException","wrappedWellKnownSymbolModule","IllegalStateException","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferModule","typedArrayFrom","setSpecies","inheritIfRequired","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_TAG","TypedArray","TypedArrayPrototype","isTypedArray","fromList","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","typedArrayOffset","$length","$len","PromiseCapability","$$resolve","$$reject","DetectorResult_1","GridSamplerInstance_1","WhiteRectangleDetector_1","Detector","rectangleDetector","cornerPoints","pointA","pointB","pointC","pointD","transitions","transitionsBetween","ResultPointsAndTransitions","resultPointsAndTransitionsComparator","lSideOne","lSideTwo","pointCount","getFrom","getTo","maybeTopLeft","maybeBottomRight","corners","bottomRight","correctedTopRight","dimensionTop","getTransitions","dimensionRight","correctTopRightRectangular","correctTopRight","dimensionCorrected","corr","norm","l1","l2","sampler","getInstance","fromX","fromY","toX","toY","steep","ystep","xstep","inBlack","isBlack","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","nBits","TAG","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","AlignmentPattern_1","AlignmentPatternFinder","middleI","iGen","Cancel","toGMTString","createIteratorConstructor","IteratorsCore","KEYS","VALUES","ENTRIES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","Decoder_1","Detector_1","DataMatrixReader","decoder","decoderResult","extractPureBits","NO_POINTS","detectorResult","getPoints","DATA_MATRIX","currentTimeMillis","BYTE_SEGMENTS","ERROR_CORRECTION_LEVEL","leftTopBlack","getTopLeftOnBit","rightBottomBlack","getBottomRightOnBit","matrixWidth","matrixHeight","nudge","logDisabled_","deprecationWarnings_","extractVersion","uastring","wrapPeerConnectionEvent","eventNameToWrap","RTCPeerConnection","nativeAddEventListener","nativeEventName","wrappedCallback","modifiedEvent","_eventMap","nativeRemoveEventListener","unwrappedCb","disableLog","disableWarnings","deprecated","oldMethod","newMethod","detectBrowser","mozGetUserMedia","webkitGetUserMedia","isSecureContext","webkitRTCPeerConnection","RTCIceGatherer","supportsUnifiedPlan","RTCRtpTransceiver","compactObject","accumulator","isObj","walkStats","stats","resultSet","endsWith","filterStats","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","trackId","shimGetUserMedia","browserDetails","constraintsToChrome_","mandatory","optional","ideal","oldname_","oc","mix","advanced","shimConstraints_","remap","face","getSupportedFacingModeLies","getSupportedConstraints","dev","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraint","constraintName","getUserMedia_","onSuccess","onError","origGetUserMedia","getAudioTracks","getTracks","DOMException","shimGetDisplayMedia","getSourceId","getDisplayMedia","sourceId","widthSpecified","heightSpecified","frameRateSpecified","frameRate","chromeMediaSource","chromeMediaSourceId","maxFrameRate","maxHeight","shimMediaStream","MediaStream","webkitMediaStream","shimOnTrack","_ontrack","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","getReceivers","streams","shimGetSendersWithDtmf","shimSenderWithDtmf","pc","_dtmf","createDTMFSender","_pc","getSenders","_senders","origAddTrack","addTrack","sender","origRemoveTrack","removeTrack","origAddStream","addStream","origRemoveStream","removeStream","RTCRtpSender","origGetSenders","senders","shimGetStats","origGetStats","getStats","onSucc","onErr","fixChromeStats_","standardReport","reports","report","standardStats","localcandidate","remotecandidate","makeMapStats","successCallbackWrapper_","shimSenderReceiverGetStats","RTCRtpReceiver","origGetReceivers","receivers","MediaStreamTrack","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","streamId","alreadyExists","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","replaceInternalStreamId","internalId","externalStream","internalStream","RTCSessionDescription","replaceExternalStreamId","signalingState","oldStream","nativeMethod","methodObj","isLegacyCall","origSetLocalDescription","setLocalDescription","origLocalDescription","streamid","hasTrack","shimPeerConnection","addIceCandidateNullSupported","addIceCandidate","RTCIceCandidate","nativeAddIceCandidate","fixNegotiationNeeded","getConfiguration","sdpSemantics","filterIceServers","iceServers","edgeVersion","hasTurn","server","urls","validTurn","startsWith","origMSTEnabled","ev","RTCDtmfSender","RTCDTMFSender","RTCPeerConnectionShim","shimReplaceTrack","replaceTrack","setTrack","nativeGetUserMedia","getSettings","nativeGetSettings","applyConstraints","nativeApplyConstraints","preferredMediaSource","mediaSource","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","addTransceiver","setParametersPromises","initParameters","shouldPerformCheck","sendEncodings","encodingParam","ridRegex","scaleResolutionDownBy","maxFramerate","getParameters","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","createOffer","finally","shimCreateAnswer","origCreateAnswer","createAnswer","shimLocalStreamsAPI","_localStreams","_addTrack","tracks","shimRemoteStreamsAPI","getRemoteStreams","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","successCallback","failureCallback","withCallback","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","offerOptions","offerToReceiveAudio","audioTransceiver","getTransceivers","setDirection","offerToReceiveVideo","videoTransceiver","shimAudioContext","AudioContext","webkitAudioContext","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","sdpMid","sdpMLineIndex","shimMaxMessageSize","_sctp","sctpInDescription","mLine","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","isFirefox","canSendMMS","remoteMMS","shimSendThrowTypeError","wrapDcSend","origDataChannelSend","origCreateDataChannel","createDataChannel","dataChannel","shimConnectionState","checking","iceConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","connectionState","removeAllowExtmapMixed","nativeSRD","adapterFactory","shimChrome","shimFirefox","shimEdge","shimSafari","logging","commonShim","browserShim","_vm","onDetected","onProcessed","boxes","drawingCtx","clearRect","lineWidth","codeResult","readerTypes","readerSize","validator","aspectRatio","quaggaState","inputStream","locator","patchSize","halfSample","numOfWorkers","frequency","locate","newValue","Scanner","endPos","$includes","DetectorResult","isAbsoluteURL","combineURLs","baseURL","requestedURL","MatrixUtil","clearMatrix","embedBasicPatterns","embedTypeInfo","maybeEmbedVersionInfo","embedDataBits","embedPositionDetectionPatternsAndSeparators","embedDarkDotAtLeftBottomCorner","maybeEmbedPositionAdjustmentPatterns","embedTimingPatterns","typeInfoBits","makeTypeInfoBits","coordinates","TYPE_INFO_COORDINATES","versionInfoBits","makeVersionInfoBits","bitIndex","isEmpty","getDataMaskBit","findMSBSet","numberOfLeadingZeros","calculateBCHCode","poly","msbSetInPoly","isValidMaskPattern","typeInfo","bchCode","TYPE_INFO_POLY","maskBits","TYPE_INFO_MASK_PATTERN","VERSION_INFO_POLY","embedHorizontalSeparationPattern","xStart","yStart","embedVerticalSeparationPattern","embedPositionAdjustmentPattern","patternY","POSITION_ADJUSTMENT_PATTERN","embedPositionDetectionPattern","POSITION_DETECTION_PATTERN","pdpWidth","hspWidth","vspSize","POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE","propertyKey","EAN8Reader","supplements","_nextUnset","_matchPattern","SINGLE_CODE_ERROR","MAX_VALUE","_nextSet","_correctBars","_matchTrace","decodePattern","_decode","DIRECTION","REVERSE","FORWARD","FORMAT","_matchRange","_fillCounters","_toCounters","writeable","StartNotFoundException","CodeNotFoundException","PatternNotFoundException","CONFIG_KEYS","shuffle","toPointList","CODE_L_START","CODE_G_START","START_PATTERN","STOP_PATTERN","CODE_PATTERN","CODE_FREQUENCY","AVG_CODE_ERROR","_decodeCode","_findPattern","_findStart","_verifyTrailingWhitespace","_findEnd","_calculateFirstDigit","_decodePayload","_checksum","_decodeExtensions","decodedCodes","supplement","codeset","startInfo","drawRect","strokeStyle","fillStyle","beginPath","strokeRect","drawPath","moveTo","lineTo","closePath","stroke","getImageData","putImageData","__data__","toVec2","toVec3","fits","createPoint","singleChannel","small","medium","large","sx","sy","sw","inImageWithBorder","sample","clearArray","subImage","subImageAsCopy","copyTo","getSafe","indexMapping","zeroBorder","convolve","m00","m01","m10","m11","m02","m20","theta","rad","atan","vec","overlay","webpackPolyfill","searchDirections","cy","cx","trace","contourTracing","ALPHABETH_STRING","ALPHABET","ASTERISK","_toPattern","_patternToChar","_findNextWidth","eval","createVideoStream","createImageStream","createLiveStream","setInputStream","checkImageConstraints","getCanvasSize","barcodes","addResult","publish","decodeFromBoundingBoxes","busy","attachData","imageData","grab","worker","requestAnimFrame","Worker","ImageWrapper","setReaders","terminate","release","clearEventHandlers","subscribe","offDetected","unsubscribe","offProcessed","registerResultCollector","decodeSingle","sequence","ImageDebug","ResultCollector","CameraAccess","blacklist","frame","toDataURL","getResults","dot","getCenter","subscribers","originalSize","updateData","updateFrom","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","imul","code_128_reader","ean_reader","ean_5_reader","ean_2_reader","ean_8_reader","code_39_reader","code_39_vin_reader","codabar_reader","upc_reader","upc_e_reader","i2of5_reader","code_93_reader","getBarcodeLine","toBinaryLine","barcodeLine","decodeFromBoundingBox","DIR","UP","DOWN","debug","printFrequency","printPattern","fillColor","fillRect","minAspectRatio","facing","enumerateVideoDevices","getActiveStreamLabel","getActiveTrack","FileReader","readAsArrayBuffer","274","getConfig","getRealWidth","getRealHeight","getFrame","orientation","loaded","notLoaded","addImage","setWidth","setHeight","setCurrentTime","setTopRight","setCanvasSize","useWorker","transformMat2","rasterize","skeletonize","createContour2D","firstVertex","insideContours","nextpeer","prevpeer","CONTOUR_DIR","CW_DIR","CCW_DIR","UNKNOWN_DIR","OUTSIDE_EDGE","INSIDE_EDGE","drawContour","__webpack_exports__","__webpack_require__","Skeletonizer","stdlib","foreign","erode","inImagePtr","outImagePtr","yStart1","yStart2","xStart1","xStart2","aImagePtr","bImagePtr","bitwiseOr","countNonZero","imagePtr","dilate","memcpy","srcImagePtr","dstImagePtr","subImagePtr","erodedImagePtr","tempImagePtr","skelImagePtr","barSpaceRatio","_verifyCounterLength","_counters","START_END","MIN_ENCODED_CHARS","MAX_ACCEPTABLE","PADDING","startCounter","_isStartEnd","_verifyWhitespace","_validateResult","_sumCounters","_calculatePatternLength","_thresholdResultPattern","space","narrow","counts","wide","bar","_charToPattern","_computeAlternatingThreshold","endCounter","CODE_C","CODE_B","CODE_A","START_CODE_A","START_CODE_B","START_CODE_C","STOP_CODE","MODULE_INDICES","correction","_correct","endInfo","IOQ","AZ09","_checkChecksum","_verifyEnd","_verifyChecksums","_decodeExtended","_matchCheckChar","normalizeBarSpaceWidth","MAX_CORRECTION_FACTOR","_decodePair","_determineParity","_convertToUPCA","isConcatSpreadable","Cache","checkCorrectnessOfIteration","ITFReader","narrowLineWidth","decodeStart","endRange","decodeEnd","allowedLengths","ALLOWED_LENGTHS","DEFAULT_ALLOWED_LENGTHS","lengthOK","maxAllowedLength","allowedLengths_1","resultReturn","payloadStart","payloadEnd","counterDigitPair","counterBlack","counterWhite","twoK","counterDigit","endStart","skipWhiteSpace","startPattern","validateQuietZone","quietCount","endPattern","END_PATTERN_REVERSED","NotFoundException","PATTERNS","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","Float_1","ResultPoint","otherPoint","floatToIntBits","patterns","zeroOneDistance","oneTwoDistance","zeroTwoDistance","crossProductZ","pattern1","pattern2","isError","isRouterError","errorType","_isRouter","View","routerView","route","$route","_routerViewCache","inactive","_routerRoot","vnodeData","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","registerRouteInstance","instances","propsToPass","resolveProps","encodeReserveRE","encodeReserveReplacer","commaRE","resolveQuery","extraQuery","_parseQuery","parsedQuery","parseQuery","stringifyQuery","val2","trailingSlashRE","createRoute","redirectedFrom","fullPath","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","isObjectEqual","aKeys","bKeys","aVal","bVal","isIncludedRoute","queryIncludes","resolvePath","firstChar","segment","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","asterisk","partial","escapeGroup","escapeString","encodeURIComponentPretty","encodeAsterisk","attachKeys","sensitive","regexpToRegexp","arrayToRegexp","stringToRegexp","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","params$1","rawPath","parsedPath","basePath","_Vue","toTypes","eventTypes","Link","exactActiveClass","ariaCurrentValue","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","scopedSlot","navigate","isActive","isExactActive","findAnchor","aData","handler$1","event$1","aAttrs","registerInstance","callVal","_router","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","compileRouteRegex","redirect","childMatchAs","aliasRoute","createMatcher","addRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","genStateKey","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","absolutePath","stateCopy","handlePopState","handleScroll","isPop","app","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","getElementPosition","docEl","docRect","elRect","isValidPosition","normalizePosition","normalizeOffset","hashStartsWithNumberRE","supportsPushState","runQueue","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","isESModule","flatten","NavigationFailureType","redirected","aborted","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","propertiesToLog","normalizeBase","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","deactivated","extractGuards","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","poll","listen","errorCb","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","lastRouteIndex","lastCurrentIndex","beforeHooks","postEnterCbs","enterGuards","resolveHooks","setupListeners","teardownListeners","cleanupListener","HTML5History","_startLocation","getLocation","expectScroll","supportsScroll","handleRoutingEvent","fromRoute","getCurrentLocation","HashHistory","checkFallback","ensureSlash","getHash","replaceHash","pushHash","searchIndex","getUrl","AbstractHistory","VueRouter","apps","registerHook","createHref","beforeResolve","getMatchedComponents","normalizedTo","FinderPatternFinder_1","AlignmentPatternFinder_1","getResultPointCallback","finder","processFinderPatternInfo","calculateModuleSize","computeDimension","getProvisionalVersionForDimension","modulesBetweenFPCenters","alignmentPattern","getAlignmentPatternCenters","bottomRightX","bottomRightY","correctionToTopLeft","estAlignmentX","estAlignmentY","findAlignmentInRegion","createTransform","sourceBottomRightX","sourceBottomRightY","dimMinusThree","tltrCentersDimension","tlblCentersDimension","calculateModuleSizeOneWay","otherPattern","moduleSizeEst1","sizeOfBlackWhiteBlackRunBothWays","moduleSizeEst2","sizeOfBlackWhiteBlackRun","otherToX","otherToY","xLimit","realX","realY","overallEstModuleSize","allowanceFactor","allowance","alignmentAreaLeftX","alignmentAreaRightX","alignmentAreaTopY","alignmentAreaBottomY","alignmentFinder","CancelToken","executor","resolvePromise","PlanarYUVLuminanceSource","yuvData","reverseHorizontal","renderThumbnail","THUMBNAIL_SCALE_FACTOR","pixels","yuv","grey","getThumbnailWidth","getThumbnailHeight","rowStart","newPromiseCapability","promiseCapability","focusIn","isFullPage","parentElement","viewBox","repeatCount","calcMode","attributeType","programmatic","canCancel","onCancel","loader","Spinner","Dots","Bars","keyPress","$loading","postfix","isLE","mLen","nBytes","eLen","regexpFlags","stickyHelpers","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","sticky","charsAdded","strCopy","multiline","Binarizer","Encoder_1","QRCodeWriter","QR_CODE","quietZone","QUIET_ZONE_SIZE","ERROR_CORRECTION","MARGIN","renderResult","inputWidth","inputHeight","qrWidth","qrHeight","outputWidth","outputHeight","leftPadding","topPadding","inputY","outputY","inputX","outputX","setRegion","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegateResult","maybeInvokeDelegate","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","genFun","ctor","mark","awrap","skipTempReset","rootEntry","rootRecord","exception","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","fixProto","fixStack","captureStackTrace","_newTarget","customErrorFactory","aPossiblePrototype","CORRECT_SETTER","$copyWithin","CORRECT_PROTOTYPE_GETTER","returnMethod","resultMetadata","addResultPoints","newPoints","oldPoints","allPoints","getTimestamp","Float","ReedSolomonException_1","ReedSolomonDecoder","received","twoS","syndromeCoefficients","noError","evalResult","syndrome","sigmaOmega","runEuclideanAlgorithm","sigma","omega","errorLocations","findErrorLocations","errorMagnitudes","findErrorMagnitudes","rLast","tLast","rLastLast","tLastLast","dltInverse","degreeDiff","sigmaTildeAtZero","errorLocator","numErrors","errorEvaluator","xiInverse","denominator","termPlus1","combinedCount","ReedSolomonEncoder","cachedGenerators","buildGenerator","lastGenerator","nextGenerator","infoCoefficients","numZeroCoefficients","ECBlocks_1","ECB_1","alignmentPatternCenters","bestVersion","VERSION_DECODE_INFO","targetVersion","UnsupportedOperationException_1","StringEncoding","encodingName","TextDecoder","decodeFallback","isBrowser","EncoderConstructor","TextEncoder","NONSTANDARD_allowLegacyEncoding","encodeFallback","encodingCharacterSet","characterSet","ASCII","UnicodeBigUnmarked","encodedURIstring","btoa","unescape","charList","uintArray","MultiFormatReader_1","BrowserMultiFormatReader","setHints","decodeWithState","nativeObjectCreate","getOwnPropertyNamesExternal","defineWellKnownSymbol","HIDDEN","SYMBOL","TO_PRIMITIVE","$stringify","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","isSymbol","$defineProperty","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","FORCED_JSON_STRINGIFY","$replacer","CharacterSetValueIdentifiers","CharacterSetECI","valueIdentifier","valuesParam","otherEncodingNames","VALUE_IDENTIFIER_TO_ECI","NAME_TO_ECI","VALUES_TO_ECI","otherEncodingNames_1","otherName","getValueIdentifier","Cp437","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","Cp1250","Cp1251","Cp1252","Cp1256","Big5","GB18030","EUC_KR","INCORRECT_ITERATION","System","srcPos","destPos","nextValue","characters","shuffled","animateIn","animateOut","animateOutBottom","animateReset","animatePanning","animatePanEnd","clearAnimation","timeline","polyfill","cached_options","toasts","globalToasts","register","singleton","goAway","getGlobal","SYMBOL_PREFIX","initSymbol","symbolCounter_","initSymbolIterator","iteratorPrototype","iteratorFromArray","NodeList","HTMLCollection","und","fnc","numberOfItems","getTotalLength","getPointAtLength","pth","totalLength","numbers","elasticity","isPath","isColor","animatable","animatables","animations","reversed","seek","began","restart","finished","SVGElement","asin","In","Out","InOut","setDashoffset","bezier","easings","toasted","$toasted","Toasted","disposed","keepOnHover","fullWidth","action","fitToScreen","closeOnSwipe","iconPack","prevent_default","dontClose","gt","Et","manager","inputTarget","domHandler","Ot","At","St","pointers","changedPointers","Mt","Pt","Lt","isFirst","isFinal","session","recognize","prevInput","firstInput","firstMultiple","xt","deltaTime","offsetDirection","overallVelocityX","overallVelocityY","overallVelocity","rotation","maxPointers","srcEvent","offsetDelta","prevDelta","lastInterval","It","velocityX","velocityY","yt","jt","Nt","Xt","Dt","Yt","Ht","evEl","Vt","evWin","Wt","pressed","$t","Gt","evTarget","Qt","Jt","targetIds","kt","mouse","primaryTouch","lastTouches","ne","J","se","ue","ae","oe","fe","simultaneous","requireFail","ve","he","de","pe","et","nt","at","_timer","_input","st","ut","pTime","pCenter","lt","recognizers","preset","oldCssProps","touchAction","recognizeWith","requireFailure","Tt","Ct","Rt","Ft","zt","qt","mousedown","mousemove","mouseup","Ut","pointerdown","pointermove","pointerup","pointercancel","pointerout","Bt","MSPointerEvent","Zt","touchstart","touchmove","touchend","touchcancel","Kt","sourceCapabilities","firesTouchEvents","ie","le","CSS","supports","compute","getTouchAction","preventDefaults","prevented","preventSrc","me","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","attrTest","directionTest","taps","posThreshold","failTimeout","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","curRecognizer","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","Input","TouchAction","TouchInput","MouseInput","PointerEventInput","TouchMouseInput","SingleTouchInput","Recognizer","AttrRecognizer","Tap","Pan","Swipe","Pinch","Rotate","Press","inherit","bindFn","prefixed","Hammer","msCrypto","getRandomValues","esModule","locals","sourceMap","ssrId","DEBUG","DefaultGridSampler_1","GridSamplerInstance","setGridSampler","newGridSampler","gridSampler","$every","Pair","finderPattern","BarcodeFormat","ignoreCase","dotAll","thrower","ACCESSORS","argument0","argument1","FunctionPrototype","FunctionPrototypeToString","nameRE","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","requestData","auth","Authorization","responseURL","responseData","timeoutErrorMessage","xsrfValue","withCredentials","onDownloadProgress","onUploadProgress","upload","ieee754","typedArraySupport","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","fromArrayBuffer","fromObject","assertSize","isEncoding","fromArrayLike","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","thirdByte","fourthByte","tempCodePoint","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","_arr","MAX_ARGUMENTS_LENGTH","codePoints","toHex","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","leadSurrogate","byteArray","hi","lo","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","UPCEANExtensionSupport_1","UPCEANReader","widths","reversedWidths","findStartGuardPattern","foundStart","START_END_PATTERN","quietStart","startGuardRange","resultPoint_1","budello","resultPoint_2","resultPoint_3","quietEnd","resultPoint","decodeResult","extensionLength","allowedExtensions","ALLOWED_EAN_EXTENSIONS","UPC_A","checkStandardUPCEANChecksum","getStandardUPCEANChecksum","whiteFirst","END_PATTERN","db","dataBlocksCount","PREFERRED_STRING","Integer","MIN_VALUE_32_BITS","ignoreDuplicateOf","EXISTS","FormData","URLSearchParams","assignValue","stripBOM","SHARED","LuminanceSource","sourceRow","luminance","$indexOf","nativeIndexOf","NEGATIVE_ZERO","$reduce","MaskUtil","applyMaskPenaltyRule1Internal","arrayY","N2","numPenalties","isWhiteHorizontal","isWhiteVertical","N3","rowArray","numDarkCells","numTotalCells","fivePercentVariances","N4","intermediate","iLimit","jLimit","numSameBitCells","prevBit","N1","QRCodeWriter_1","MultiFormatWriter","tempCanvasElement","makeBufferFromCanvasImageData","toGrayscaleBuffer","imageBuffer","grayscaleBuffer","gray","alpha","pixelR","pixelG","pixelB","getTempCanvasElement","tempContext","angleRadians","DEGREE_TO_RADIANS","createInstance","axios","promises","spread","IllegalArgumentException","$find","QRCodeReader","getDecoder","STRUCTURED_APPEND_SEQUENCE","STRUCTURED_APPEND_PARITY","nudgedTooFarRight","nudgedTooFarDown","EAN13Reader_1","EAN8Reader_1","MultiFormatUPCEANReader","RSSUtils","noNarrow","widths_1","narrowMask","elmWidth","subVal","combins","lessVal","mxwElement","maxDenom","minDenom","AbstractRSSReader","decodeFinderCounters","dataCharacterCounters","finderPatterns","errors","biggestError","firstTwoSum","MIN_FINDER_PATTERN_RATIO","MAX_FINDER_PATTERN_RATIO","maxCounter","MIN_SAFE_INTEGER","IS_RIGHT","MathUtils","xDiff","yDiff","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","arg2","forceStringMethod","stringMethod","regexMethod","DataCharacter","DecodeHintType","InvertedLuminanceSource","invertedMatrix","QRCodeReader_1","ReaderException_1","MultiFormatReader","decodeInternal","addOneDReader","UPC_E","CODABAR","CODE_93","RSS_EXPANDED","ArrayIteratorMethods","ArrayValues","normalizeArray","allowAboveRoot","basename","matchedSlash","xs","resolvedAbsolute","isAbsolute","trailingSlash","fromParts","toParts","samePartsLength","outputParts","hasRoot","extname","startDot","startPart","preDotState","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","addToUnscopables","ARRAY_ITERATOR","Arguments","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","microtask","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newGenericPromiseCapability","DISPATCH_EVENT","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","GLOBAL_CORE_JS_PROMISE","PromiseRejectionEvent","FakePromise","isThenable","isReject","notified","reactions","ok","exited","reaction","rejection","onHandleUnhandled","onUnhandled","IS_UNHANDLED","isUnhandled","internalReject","internalResolve","fetch","capability","$promiseResolve","alreadyCalled","race","__export","MultiFormatWriter_1","PlanarYUVLuminanceSource_1","RGBLuminanceSource_1","BitMatrix","BitSource","PerspectiveTransform","QRCodeDecoderErrorCorrectionLevel","QRCodeEncoder","QRCodeEncoderQRCode","MultiformatReader","nativeLastIndexOf","QRCode","getMode","getMaskPattern","relativeURL","Int8ArrayPrototype","Uint8ClampedArrayPrototype","isPrototypeOf","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Int16Array","Float64Array","ARRAY","exportTypedArrayStaticMethod","longerBlocksTotalCodewords","longerBlocksNumDataCodewords","specialVersion","numLongerBlocks","jOffset","toRead","bitsToNotRead","fixStatsType","dtlsRole","_initialTrackId","getCommonCapabilities","localCapabilities","remoteCapabilities","commonCapabilities","findCodecByPayloadType","rtxCapabilityMatches","lRtx","rRtx","lCodecs","rCodecs","lCodec","rCodec","lHeaderExtension","rHeaderExtension","isActionAllowedInSignalingState","offer","answer","maybeAddCandidate","iceTransport","alreadyAdded","getRemoteCandidates","remoteCandidate","addRemoteCandidate","makeError","NotSupportedError","InvalidAccessError","OperationError","addTrackToStreamAndFireEvent","MediaStreamTrackEvent","removeTrackFromStreamAndFireEvent","fireAddTrack","trackEvent","_dispatchEvent","_eventTarget","canTrickleIceCandidates","needNegotiation","localStreams","remoteStreams","_localDescription","_remoteDescription","iceGatheringState","usingBundle","bundlePolicy","rtcpMuxPolicy","iceTransportPolicy","_iceGatherers","iceCandidatePoolSize","gatherPolicy","transceivers","_sdpSessionId","_sdpSessionVersion","_dtlsRole","_isClosed","onicecandidate","onaddstream","ontrack","onremovestream","onsignalingstatechange","oniceconnectionstatechange","onconnectionstatechange","onicegatheringstatechange","onnegotiationneeded","ondatachannel","_emitGatheringStateChange","_createTransceiver","doNotAdd","hasBundleTransport","recvEncodingParameters","associatedRemoteMediaStreams","wantReceive","_createIceAndDtlsTransports","_maybeFireNegotiationNeeded","clonedStream","clonedTrack","_createIceGatherer","bufferedCandidateEvents","bufferCandidates","_gather","onlocalcandidate","cand","serializedCandidate","RTCIceTransport","onicestatechange","_updateIceConnectionState","_updateConnectionState","RTCDtlsTransport","ondtlsstatechange","_disposeIceAndDtlsTransports","_transceive","recv","receive","isIceLite","remoteIceParameters","remoteDtlsParameters","_updateSignalingState","receiverList","iceOptions","remoteMsid","isComplete","cands","setTransport","setRemoteCandidates","hasRtx","getCapabilities","isNewTrack","nativeTrack","newState","closed","connected","disconnected","failed","new","connecting","numAudioTracks","numVideoTracks","remoteCodec","hdrExt","remoteExtensions","rHdrExt","getLocalCandidates","mediaSectionsInOffer","localTrack","candidateString","senderOrReceiver","allStats","ortcObjects","ortcObjectName","nativeGetstats","nativeStats","mapStats","onChangeInput","BrowserQRCodeReader","eject","BrowserQRCodeSvgWriter","writeToDom","containerElement","svgElement","createSVGElement","svgRectElement","createSvgRectElement","SVG_NS","a11","a21","a31","a12","a22","a32","a13","a23","a33","x0","y0","x3","y3","x0p","y0p","x1p","y1p","x2p","y2p","x3p","y3p","qToS","quadrilateralToSquare","sToQ","squareToQuadrilateral","times","transformPointsWithValues","xValues","yValues","dx3","dy3","dx1","dx2","dy1","dy2","buildAdjoint","nativeSlice","fin","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","rowSize","imageI","stringRepresentation","setString","unsetString","bitsPos","rowStartPos","rowLength","nRows","unset","getRowSize","setRow","rotate180","topRow","bottomRow","getEnclosingRectangle","x32","theBits","lineSeparator","buildToString"],"mappings":"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EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,GAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,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AG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,G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AE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GA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","file":"js/chunk-vendors.019475e8.js","sourcesContent":["\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common {*/\n/*import java.util.Arrays;*/\nvar System_1 = require(\"../util/System\");\nvar Integer_1 = require(\"../util/Integer\");\nvar Arrays_1 = require(\"../util/Arrays\");\nvar IllegalArgumentException_1 = require(\"../IllegalArgumentException\");\n/**\n *

A simple, fast array of bits, represented compactly by an array of ints internally.

\n *\n * @author Sean Owen\n */\nvar BitArray /*implements Cloneable*/ = /** @class */ (function () {\n // public constructor() {\n // this.size = 0\n // this.bits = new Int32Array(1)\n // }\n // public constructor(size?: number /*int*/) {\n // if (undefined === size) {\n // this.size = 0\n // } else {\n // this.size = size\n // }\n // this.bits = this.makeArray(size)\n // }\n // For testing only\n function BitArray(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 BitArray.prototype.getSize = function () {\n return this.size;\n };\n BitArray.prototype.getSizeInBytes = function () {\n return Math.floor((this.size + 7) / 8);\n };\n BitArray.prototype.ensureCapacity = function (size /*int*/) {\n if (size > this.bits.length * 32) {\n var newBits = BitArray.makeArray(size);\n System_1.default.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 BitArray.prototype.get = function (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 BitArray.prototype.set = function (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 BitArray.prototype.flip = function (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 BitArray.prototype.getNextSet = function (from /*int*/) {\n var size = this.size;\n if (from >= size) {\n return size;\n }\n var bits = this.bits;\n var bitsOffset = Math.floor(from / 32);\n var currentBits = bits[bitsOffset];\n // mask off lesser bits first\n currentBits &= ~((1 << (from & 0x1F)) - 1);\n var length = bits.length;\n while (currentBits === 0) {\n if (++bitsOffset === length) {\n return size;\n }\n currentBits = bits[bitsOffset];\n }\n var result = (bitsOffset * 32) + Integer_1.default.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 BitArray.prototype.getNextUnset = function (from /*int*/) {\n var size = this.size;\n if (from >= size) {\n return size;\n }\n var bits = this.bits;\n var bitsOffset = Math.floor(from / 32);\n var currentBits = ~bits[bitsOffset];\n // mask off lesser bits first\n currentBits &= ~((1 << (from & 0x1F)) - 1);\n var length = bits.length;\n while (currentBits === 0) {\n if (++bitsOffset === length) {\n return size;\n }\n currentBits = ~bits[bitsOffset];\n }\n var result = (bitsOffset * 32) + Integer_1.default.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 BitArray.prototype.setBulk = function (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 BitArray.prototype.setRange = function (start /*int*/, end /*int*/) {\n if (end < start || start < 0 || end > this.size) {\n throw new IllegalArgumentException_1.default();\n }\n if (end === start) {\n return;\n }\n end--; // will be easier to treat this as the last actually set bit -- inclusive\n var firstInt = Math.floor(start / 32);\n var lastInt = Math.floor(end / 32);\n var bits = this.bits;\n for (var i = firstInt; i <= lastInt; i++) {\n var firstBit = i > firstInt ? 0 : start & 0x1F;\n var lastBit = i < lastInt ? 31 : end & 0x1F;\n // Ones from firstBit to lastBit, inclusive\n var mask = (2 << lastBit) - (1 << firstBit);\n bits[i] |= mask;\n }\n };\n /**\n * Clears all bits (sets to false).\n */\n BitArray.prototype.clear = function () {\n var max = this.bits.length;\n var bits = this.bits;\n for (var 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 * @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 BitArray.prototype.isRange = function (start /*int*/, end /*int*/, value) {\n if (end < start || start < 0 || end > this.size) {\n throw new IllegalArgumentException_1.default();\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 var firstInt = Math.floor(start / 32);\n var lastInt = Math.floor(end / 32);\n var bits = this.bits;\n for (var i = firstInt; i <= lastInt; i++) {\n var firstBit = i > firstInt ? 0 : start & 0x1F;\n var lastBit = i < lastInt ? 31 : end & 0x1F;\n // Ones from firstBit to lastBit, inclusive\n var 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 BitArray.prototype.appendBit = function (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 BitArray.prototype.appendBits = function (value /*int*/, numBits /*int*/) {\n if (numBits < 0 || numBits > 32) {\n throw new IllegalArgumentException_1.default('Num bits must be between 0 and 32');\n }\n this.ensureCapacity(this.size + numBits);\n var appendBit = this.appendBit;\n for (var numBitsLeft = numBits; numBitsLeft > 0; numBitsLeft--) {\n this.appendBit(((value >> (numBitsLeft - 1)) & 0x01) === 1);\n }\n };\n BitArray.prototype.appendBitArray = function (other) {\n var otherSize = other.size;\n this.ensureCapacity(this.size + otherSize);\n var appendBit = this.appendBit;\n for (var i = 0; i < otherSize; i++) {\n this.appendBit(other.get(i));\n }\n };\n BitArray.prototype.xor = function (other) {\n if (this.size !== other.size) {\n throw new IllegalArgumentException_1.default('Sizes don\\'t match');\n }\n var bits = this.bits;\n for (var i = 0, length_1 = bits.length; i < length_1; 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 BitArray.prototype.toBytes = function (bitOffset /*int*/, array, offset /*int*/, numBytes /*int*/) {\n for (var i = 0; i < numBytes; i++) {\n var theByte = 0;\n for (var 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 BitArray.prototype.getBitArray = function () {\n return this.bits;\n };\n /**\n * Reverses all bits in the array.\n */\n BitArray.prototype.reverse = function () {\n var newBits = new Int32Array(this.bits.length);\n // reverse all int's first\n var len = Math.floor((this.size - 1) / 32);\n var oldBitsLen = len + 1;\n var bits = this.bits;\n for (var i = 0; i < oldBitsLen; i++) {\n var 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 var leftOffset = oldBitsLen * 32 - this.size;\n var currentInt = newBits[0] >>> leftOffset;\n for (var i = 1; i < oldBitsLen; i++) {\n var 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 BitArray.makeArray = function (size /*int*/) {\n return new Int32Array(Math.floor((size + 31) / 32));\n };\n /*@Override*/\n BitArray.prototype.equals = function (o) {\n if (!(o instanceof BitArray)) {\n return false;\n }\n var other = o;\n return this.size === other.size && Arrays_1.default.equals(this.bits, other.bits);\n };\n /*@Override*/\n BitArray.prototype.hashCode = function () {\n return 31 * this.size + Arrays_1.default.hashCode(this.bits);\n };\n /*@Override*/\n BitArray.prototype.toString = function () {\n var result = '';\n for (var 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 BitArray.prototype.clone = function () {\n return new BitArray(this.size, this.bits.slice());\n };\n return BitArray;\n}());\nexports.default = BitArray;\n//# sourceMappingURL=BitArray.js.map","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common.detector {*/\nvar ResultPoint_1 = require(\"../../ResultPoint\");\nvar MathUtils_1 = require(\"./MathUtils\");\nvar NotFoundException_1 = require(\"../../NotFoundException\");\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 */\nvar WhiteRectangleDetector = /** @class */ (function () {\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 function WhiteRectangleDetector(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 var 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_1.default();\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 WhiteRectangleDetector.prototype.detect = function () {\n var left = this.leftInit;\n var right = this.rightInit;\n var up = this.upInit;\n var down = this.downInit;\n var sizeExceeded = false;\n var aBlackPointFoundOnBorder = true;\n var atLeastOneBlackPointFoundOnBorder = false;\n var atLeastOneBlackPointFoundOnRight = false;\n var atLeastOneBlackPointFoundOnBottom = false;\n var atLeastOneBlackPointFoundOnLeft = false;\n var atLeastOneBlackPointFoundOnTop = false;\n var width = this.width;\n var height = this.height;\n while (aBlackPointFoundOnBorder) {\n aBlackPointFoundOnBorder = false;\n // .....\n // . |\n // .....\n var 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 var 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 var 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 var 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 var maxSize = right - left;\n var z = null;\n for (var 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_1.default();\n }\n var t = null;\n // go down right\n for (var 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_1.default();\n }\n var x = null;\n // go down left\n for (var 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_1.default();\n }\n var y = null;\n // go up left\n for (var 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_1.default();\n }\n return this.centerEdges(y, z, x, t);\n }\n else {\n throw new NotFoundException_1.default();\n }\n };\n WhiteRectangleDetector.prototype.getBlackPointOnSegment = function (aX /*float*/, aY /*float*/, bX /*float*/, bY /*float*/) {\n var dist = MathUtils_1.default.round(MathUtils_1.default.distance(aX, aY, bX, bY));\n var xStep = (bX - aX) / dist;\n var yStep = (bY - aY) / dist;\n var image = this.image;\n for (var i = 0; i < dist; i++) {\n var x = MathUtils_1.default.round(aX + i * xStep);\n var y = MathUtils_1.default.round(aY + i * yStep);\n if (image.get(x, y)) {\n return new ResultPoint_1.default(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 WhiteRectangleDetector.prototype.centerEdges = function (y, z, x, t) {\n //\n // t t\n // z x\n // x OR z\n // y y\n //\n var yi = y.getX();\n var yj = y.getY();\n var zi = z.getX();\n var zj = z.getY();\n var xi = x.getX();\n var xj = x.getY();\n var ti = t.getX();\n var tj = t.getY();\n var CORR = WhiteRectangleDetector.CORR;\n if (yi < this.width / 2.0) {\n return [\n new ResultPoint_1.default(ti - CORR, tj + CORR),\n new ResultPoint_1.default(zi + CORR, zj + CORR),\n new ResultPoint_1.default(xi - CORR, xj - CORR),\n new ResultPoint_1.default(yi + CORR, yj - CORR)\n ];\n }\n else {\n return [\n new ResultPoint_1.default(ti + CORR, tj + CORR),\n new ResultPoint_1.default(zi + CORR, zj - CORR),\n new ResultPoint_1.default(xi - CORR, xj + CORR),\n new ResultPoint_1.default(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 WhiteRectangleDetector.prototype.containsBlackPoint = function (a /*int*/, b /*int*/, fixed /*int*/, horizontal) {\n var image = this.image;\n if (horizontal) {\n for (var x = a; x <= b; x++) {\n if (image.get(x, fixed)) {\n return true;\n }\n }\n }\n else {\n for (var y = a; y <= b; y++) {\n if (image.get(fixed, y)) {\n return true;\n }\n }\n }\n return false;\n };\n WhiteRectangleDetector.INIT_SIZE = 10;\n WhiteRectangleDetector.CORR = 1;\n return WhiteRectangleDetector;\n}());\nexports.default = WhiteRectangleDetector;\n//# sourceMappingURL=WhiteRectangleDetector.js.map","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.encoder {*/\nvar BlockPair = /** @class */ (function () {\n function BlockPair(dataBytes, errorCorrectionBytes) {\n this.dataBytes = dataBytes;\n this.errorCorrectionBytes = errorCorrectionBytes;\n }\n BlockPair.prototype.getDataBytes = function () {\n return this.dataBytes;\n };\n BlockPair.prototype.getErrorCorrectionBytes = function () {\n return this.errorCorrectionBytes;\n };\n return BlockPair;\n}());\nexports.default = BlockPair;\n//# sourceMappingURL=BlockPair.js.map","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","\"use strict\";\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.detector {*/\nvar ResultPoint_1 = require(\"../../ResultPoint\");\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 */\nvar AlignmentPattern = /** @class */ (function (_super) {\n __extends(AlignmentPattern, _super);\n function AlignmentPattern(posX /*float*/, posY /*float*/, estimatedModuleSize /*float*/) {\n var _this = _super.call(this, posX, posY) || this;\n _this.estimatedModuleSize = estimatedModuleSize;\n return _this;\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 AlignmentPattern.prototype.aboutEquals = function (moduleSize /*float*/, i /*float*/, j /*float*/) {\n if (Math.abs(i - this.getY()) <= moduleSize && Math.abs(j - this.getX()) <= moduleSize) {\n var 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 AlignmentPattern.prototype.combineEstimate = function (i /*float*/, j /*float*/, newModuleSize /*float*/) {\n var combinedX = (this.getX() + j) / 2.0;\n var combinedY = (this.getY() + i) / 2.0;\n var combinedModuleSize = (this.estimatedModuleSize + newModuleSize) / 2.0;\n return new AlignmentPattern(combinedX, combinedY, combinedModuleSize);\n };\n return AlignmentPattern;\n}(ResultPoint_1.default));\nexports.default = AlignmentPattern;\n//# sourceMappingURL=AlignmentPattern.js.map","var STORAGE = null;\nvar VueSession = {\n key: 'vue-session-key',\n flash_key: 'vue-session-flash-key',\n setAll: function(all){\n STORAGE.setItem(VueSession.key,JSON.stringify(all));\n }\n}\n\nVueSession.install = function(Vue, options) {\n if(options && 'persist' in options && options.persist) STORAGE = window.localStorage;\n else STORAGE = window.sessionStorage;\n Vue.prototype.$session = {\n flash: {\n parent: function(){\n return Vue.prototype.$session;\n },\n get: function(key){\n var all = this.parent().getAll();\n var all_flash = all[VueSession.flash_key] || {};\n\n var flash_value = all_flash[key];\n\n this.remove(key);\n\n return flash_value;\n },\n set: function(key, value){\n var all = this.parent().getAll();\n var all_flash = all[VueSession.flash_key] || {};\n\n all_flash[key] = value;\n all[VueSession.flash_key] = all_flash;\n\n VueSession.setAll(all);\n },\n remove: function(key){\n var all = this.parent().getAll();\n var all_flash = all[VueSession.flash_key] || {};\n\n delete all_flash[key];\n\n all[VueSession.flash_key] = all_flash;\n VueSession.setAll(all);\n }\n },\n getAll: function(){\n var all = JSON.parse(STORAGE.getItem(VueSession.key));\n return all || {};\n },\n set: function(key,value){\n if(key == 'session-id') return false;\n var all = this.getAll();\n\n if(!('session-id' in all)){\n this.start();\n all = this.getAll();\n }\n\n all[key] = value;\n\n VueSession.setAll(all);\n },\n get: function(key){\n var all = this.getAll();\n return all[key];\n },\n start: function(){\n var all = this.getAll();\n all['session-id'] = 'sess:'+Date.now();\n\n VueSession.setAll(all);\n },\n renew: function(sessionId){\n var all = this.getAll();\n all['session-id'] = 'sess:' + sessionId;\n VueSession.setAll(all);\n },\n exists: function(){\n var all = this.getAll();\n return 'session-id' in all;\n },\n has: function(key){\n var all = this.getAll();\n return key in all;\n },\n remove: function(key){\n var all = this.getAll();\n delete all[key];\n\n VueSession.setAll(all);\n },\n clear: function(){\n var all = this.getAll();\n\n VueSession.setAll({'session-id': all['session-id']});\n },\n destroy: function(){\n VueSession.setAll({});\n },\n id: function(){\n return this.get('session-id');\n }\n }\n};\n\nmodule.exports = VueSession;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BitArray_1 = require(\"../common/BitArray\");\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\nvar ResultMetadataType_1 = require(\"../ResultMetadataType\");\nvar ResultPoint_1 = require(\"../ResultPoint\");\nvar NotFoundException_1 = require(\"../NotFoundException\");\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 */\nvar OneDReader = /** @class */ (function () {\n function OneDReader() {\n }\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 OneDReader.prototype.decode = function (image, hints) {\n try {\n return this.doDecode(image, hints);\n }\n catch (nfe) {\n var tryHarder = hints && (hints.get(DecodeHintType_1.default.TRY_HARDER) === true);\n if (tryHarder && image.isRotateSupported()) {\n var rotatedImage = image.rotateCounterClockwise();\n var result = this.doDecode(rotatedImage, hints);\n // Record that we found it rotated 90 degrees CCW / 270 degrees CW\n var metadata = result.getResultMetadata();\n var orientation_1 = 270;\n if (metadata !== null && (metadata.get(ResultMetadataType_1.default.ORIENTATION) === true)) {\n // But if we found it reversed in doDecode(), add in that result here:\n orientation_1 = (orientation_1 + metadata.get(ResultMetadataType_1.default.ORIENTATION) % 360);\n }\n result.putMetadata(ResultMetadataType_1.default.ORIENTATION, orientation_1);\n // Update result points\n var points = result.getResultPoints();\n if (points !== null) {\n var height = rotatedImage.getHeight();\n for (var i = 0; i < points.length; i++) {\n points[i] = new ResultPoint_1.default(height - points[i].getY() - 1, points[i].getX());\n }\n }\n return result;\n }\n else {\n throw new NotFoundException_1.default();\n }\n }\n };\n // @Override\n OneDReader.prototype.reset = function () {\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 OneDReader.prototype.doDecode = function (image, hints) {\n var width = image.getWidth();\n var height = image.getHeight();\n var row = new BitArray_1.default(width);\n var tryHarder = hints && (hints.get(DecodeHintType_1.default.TRY_HARDER) === true);\n var rowStep = Math.max(1, height >> (tryHarder ? 8 : 5));\n var 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 var middle = Math.trunc(height / 2);\n for (var x = 0; x < maxLines; x++) {\n // Scanning from the middle out. Determine which row we're looking at next:\n var rowStepsAboveOrBelow = Math.trunc((x + 1) / 2);\n var isAbove = (x & 0x01) === 0; // i.e. is x even?\n var 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 var _loop_1 = function (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.default.NEED_RESULT_POINT_CALLBACK) === true)) {\n var newHints_1 = new Map();\n hints.forEach(function (hint, key) { return newHints_1.set(key, hint); });\n newHints_1.delete(DecodeHintType_1.default.NEED_RESULT_POINT_CALLBACK);\n hints = newHints_1;\n }\n }\n try {\n // Look for a barcode\n var result = this_1.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.default.ORIENTATION, 180);\n // And remember to flip the result points horizontally.\n var points = result.getResultPoints();\n if (points !== null) {\n points[0] = new ResultPoint_1.default(width - points[0].getX() - 1, points[0].getY());\n points[1] = new ResultPoint_1.default(width - points[1].getX() - 1, points[1].getY());\n }\n }\n return { value: result };\n }\n catch (re) {\n // continue -- just couldn't decode this row\n }\n };\n var this_1 = this;\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 (var attempt = 0; attempt < 2; attempt++) {\n var state_1 = _loop_1(attempt);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n }\n throw new NotFoundException_1.default();\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 OneDReader.recordPattern = function (row, start, counters) {\n var numCounters = counters.length;\n for (var index = 0; index < numCounters; index++)\n counters[index] = 0;\n var end = row.getSize();\n if (start >= end) {\n throw new NotFoundException_1.default();\n }\n var isWhite = !row.get(start);\n var counterPosition = 0;\n var 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_1.default();\n }\n };\n OneDReader.recordPatternInReverse = function (row, start, counters) {\n // This could be more efficient I guess\n var numTransitionsLeft = counters.length;\n var 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_1.default();\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 OneDReader.patternMatchVariance = function (counters, pattern, maxIndividualVariance) {\n var numCounters = counters.length;\n var total = 0;\n var patternLength = 0;\n for (var 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 var unitBarWidth = total / patternLength;\n maxIndividualVariance *= unitBarWidth;\n var totalVariance = 0.0;\n for (var x = 0; x < numCounters; x++) {\n var counter = counters[x];\n var scaledPattern = pattern[x] * unitBarWidth;\n var 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 return OneDReader;\n}());\nexports.default = OneDReader;\n//# sourceMappingURL=OneDReader.js.map","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common.reedsolomon {*/\nvar GenericGF_1 = require(\"./GenericGF\");\nvar System_1 = require(\"../../util/System\");\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\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 */\nvar GenericGFPoly = /** @class */ (function () {\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 function GenericGFPoly(field, coefficients) {\n if (coefficients.length === 0) {\n throw new IllegalArgumentException_1.default();\n }\n this.field = field;\n var 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 var 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_1.default.arraycopy(coefficients, firstNonZero, this.coefficients, 0, this.coefficients.length);\n }\n }\n else {\n this.coefficients = coefficients;\n }\n }\n GenericGFPoly.prototype.getCoefficients = function () {\n return this.coefficients;\n };\n /**\n * @return degree of this polynomial\n */\n GenericGFPoly.prototype.getDegree = function () {\n return this.coefficients.length - 1;\n };\n /**\n * @return true iff this polynomial is the monomial \"0\"\n */\n GenericGFPoly.prototype.isZero = function () {\n return this.coefficients[0] === 0;\n };\n /**\n * @return coefficient of x^degree term in this polynomial\n */\n GenericGFPoly.prototype.getCoefficient = function (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 GenericGFPoly.prototype.evaluateAt = function (a /*int*/) {\n if (a === 0) {\n // Just return the x^0 coefficient\n return this.getCoefficient(0);\n }\n var coefficients = this.coefficients;\n var result;\n if (a === 1) {\n // Just the sum of the coefficients\n result = 0;\n for (var i = 0, length_1 = coefficients.length; i !== length_1; i++) {\n var coefficient = coefficients[i];\n result = GenericGF_1.default.addOrSubtract(result, coefficient);\n }\n return result;\n }\n result = coefficients[0];\n var size = coefficients.length;\n var field = this.field;\n for (var i = 1; i < size; i++) {\n result = GenericGF_1.default.addOrSubtract(field.multiply(a, result), coefficients[i]);\n }\n return result;\n };\n GenericGFPoly.prototype.addOrSubtract = function (other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException_1.default('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 var smallerCoefficients = this.coefficients;\n var largerCoefficients = other.coefficients;\n if (smallerCoefficients.length > largerCoefficients.length) {\n var temp = smallerCoefficients;\n smallerCoefficients = largerCoefficients;\n largerCoefficients = temp;\n }\n var sumDiff = new Int32Array(largerCoefficients.length);\n var lengthDiff = largerCoefficients.length - smallerCoefficients.length;\n // Copy high-order terms only found in higher-degree polynomial's coefficients\n System_1.default.arraycopy(largerCoefficients, 0, sumDiff, 0, lengthDiff);\n for (var i = lengthDiff; i < largerCoefficients.length; i++) {\n sumDiff[i] = GenericGF_1.default.addOrSubtract(smallerCoefficients[i - lengthDiff], largerCoefficients[i]);\n }\n return new GenericGFPoly(this.field, sumDiff);\n };\n GenericGFPoly.prototype.multiply = function (other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException_1.default('GenericGFPolys do not have same GenericGF field');\n }\n if (this.isZero() || other.isZero()) {\n return this.field.getZero();\n }\n var aCoefficients = this.coefficients;\n var aLength = aCoefficients.length;\n var bCoefficients = other.coefficients;\n var bLength = bCoefficients.length;\n var product = new Int32Array(aLength + bLength - 1);\n var field = this.field;\n for (var i = 0; i < aLength; i++) {\n var aCoeff = aCoefficients[i];\n for (var j = 0; j < bLength; j++) {\n product[i + j] = GenericGF_1.default.addOrSubtract(product[i + j], field.multiply(aCoeff, bCoefficients[j]));\n }\n }\n return new GenericGFPoly(field, product);\n };\n GenericGFPoly.prototype.multiplyScalar = function (scalar /*int*/) {\n if (scalar === 0) {\n return this.field.getZero();\n }\n if (scalar === 1) {\n return this;\n }\n var size = this.coefficients.length;\n var field = this.field;\n var product = new Int32Array(size);\n var coefficients = this.coefficients;\n for (var i = 0; i < size; i++) {\n product[i] = field.multiply(coefficients[i], scalar);\n }\n return new GenericGFPoly(field, product);\n };\n GenericGFPoly.prototype.multiplyByMonomial = function (degree /*int*/, coefficient /*int*/) {\n if (degree < 0) {\n throw new IllegalArgumentException_1.default();\n }\n if (coefficient === 0) {\n return this.field.getZero();\n }\n var coefficients = this.coefficients;\n var size = coefficients.length;\n var product = new Int32Array(size + degree);\n var field = this.field;\n for (var i = 0; i < size; i++) {\n product[i] = field.multiply(coefficients[i], coefficient);\n }\n return new GenericGFPoly(field, product);\n };\n GenericGFPoly.prototype.divide = function (other) {\n if (!this.field.equals(other.field)) {\n throw new IllegalArgumentException_1.default('GenericGFPolys do not have same GenericGF field');\n }\n if (other.isZero()) {\n throw new IllegalArgumentException_1.default('Divide by 0');\n }\n var field = this.field;\n var quotient = field.getZero();\n var remainder = this;\n var denominatorLeadingTerm = other.getCoefficient(other.getDegree());\n var inverseDenominatorLeadingTerm = field.inverse(denominatorLeadingTerm);\n while (remainder.getDegree() >= other.getDegree() && !remainder.isZero()) {\n var degreeDifference = remainder.getDegree() - other.getDegree();\n var scale = field.multiply(remainder.getCoefficient(remainder.getDegree()), inverseDenominatorLeadingTerm);\n var term = other.multiplyByMonomial(degreeDifference, scale);\n var iterationQuotient = field.buildMonomial(degreeDifference, scale);\n quotient = quotient.addOrSubtract(iterationQuotient);\n remainder = remainder.addOrSubtract(term);\n }\n return [quotient, remainder];\n };\n /*@Override*/\n GenericGFPoly.prototype.toString = function () {\n var result = '';\n for (var degree = this.getDegree(); degree >= 0; degree--) {\n var 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 var 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 return GenericGFPoly;\n}());\nexports.default = GenericGFPoly;\n//# sourceMappingURL=GenericGFPoly.js.map","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","module.exports = false;\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 */\nvar FinderPatternInfo = /** @class */ (function () {\n function FinderPatternInfo(patternCenters) {\n this.bottomLeft = patternCenters[0];\n this.topLeft = patternCenters[1];\n this.topRight = patternCenters[2];\n }\n FinderPatternInfo.prototype.getBottomLeft = function () {\n return this.bottomLeft;\n };\n FinderPatternInfo.prototype.getTopLeft = function () {\n return this.topLeft;\n };\n FinderPatternInfo.prototype.getTopRight = function () {\n return this.topRight;\n };\n return FinderPatternInfo;\n}());\nexports.default = FinderPatternInfo;\n//# sourceMappingURL=FinderPatternInfo.js.map","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar AbstractRSSReader_1 = require(\"./AbstractRSSReader\");\nvar Pair_1 = require(\"./Pair\");\nvar Result_1 = require(\"../../Result\");\nvar DecodeHintType_1 = require(\"../../DecodeHintType\");\nvar NotFoundException_1 = require(\"../../NotFoundException\");\nvar StringBuilder_1 = require(\"../../util/StringBuilder\");\nvar BarcodeFormat_1 = require(\"../../BarcodeFormat\");\nvar ResultPoint_1 = require(\"../../ResultPoint\");\nvar FinderPattern_1 = require(\"./FinderPattern\");\nvar DataCharacter_1 = require(\"./DataCharacter\");\nvar MathUtils_1 = require(\"../../common/detector/MathUtils\");\nvar RSSUtils_1 = require(\"./RSSUtils\");\nvar System_1 = require(\"../../util/System\");\nvar OneDReader_1 = require(\"../OneDReader\");\nvar RSS14Reader = /** @class */ (function (_super) {\n __extends(RSS14Reader, _super);\n function RSS14Reader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.possibleLeftPairs = [];\n _this.possibleRightPairs = [];\n return _this;\n }\n RSS14Reader.prototype.decodeRow = function (rowNumber, row, hints) {\n var leftPair = this.decodePair(row, false, rowNumber, hints);\n RSS14Reader.addOrTally(this.possibleLeftPairs, leftPair);\n row.reverse();\n var rightPair = this.decodePair(row, true, rowNumber, hints);\n RSS14Reader.addOrTally(this.possibleRightPairs, rightPair);\n row.reverse();\n for (var _i = 0, _a = this.possibleLeftPairs; _i < _a.length; _i++) {\n var left = _a[_i];\n if (left.getCount() > 1) {\n for (var _b = 0, _c = this.possibleRightPairs; _b < _c.length; _b++) {\n var right = _c[_b];\n if (right.getCount() > 1 && RSS14Reader.checkChecksum(left, right)) {\n return RSS14Reader.constructResult(left, right);\n }\n }\n }\n }\n throw new NotFoundException_1.default();\n };\n RSS14Reader.addOrTally = function (possiblePairs, pair) {\n if (pair == null) {\n return;\n }\n var found = false;\n for (var _i = 0, possiblePairs_1 = possiblePairs; _i < possiblePairs_1.length; _i++) {\n var other = possiblePairs_1[_i];\n if (other.getValue() === pair.getValue()) {\n other.incrementCount();\n found = true;\n break;\n }\n }\n if (!found) {\n possiblePairs.push(pair);\n }\n };\n RSS14Reader.prototype.reset = function () {\n this.possibleLeftPairs.length = 0;\n this.possibleRightPairs.length = 0;\n };\n RSS14Reader.constructResult = function (leftPair, rightPair) {\n var symbolValue = 4537077 * leftPair.getValue() + rightPair.getValue();\n var text = new String(symbolValue).toString();\n var buffer = new StringBuilder_1.default();\n for (var i = 13 - text.length; i > 0; i--) {\n buffer.append('0');\n }\n buffer.append(text);\n var checkDigit = 0;\n for (var i = 0; i < 13; i++) {\n var digit = buffer.charAt(i).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 buffer.append(checkDigit.toString());\n var leftPoints = leftPair.getFinderPattern().getResultPoints();\n var rightPoints = rightPair.getFinderPattern().getResultPoints();\n return new Result_1.default(buffer.toString(), null, 0, [leftPoints[0], leftPoints[1], rightPoints[0], rightPoints[1]], BarcodeFormat_1.default.RSS_14, new Date().getTime());\n };\n RSS14Reader.checkChecksum = function (leftPair, rightPair) {\n var checkValue = (leftPair.getChecksumPortion() + 16 * rightPair.getChecksumPortion()) % 79;\n var targetCheckValue = 9 * leftPair.getFinderPattern().getValue() + rightPair.getFinderPattern().getValue();\n if (targetCheckValue > 72) {\n targetCheckValue--;\n }\n if (targetCheckValue > 8) {\n targetCheckValue--;\n }\n return checkValue === targetCheckValue;\n };\n RSS14Reader.prototype.decodePair = function (row, right, rowNumber, hints) {\n try {\n var startEnd = this.findFinderPattern(row, right);\n var pattern = this.parseFoundFinderPattern(row, rowNumber, right, startEnd);\n var resultPointCallback = hints == null ? null : hints.get(DecodeHintType_1.default.NEED_RESULT_POINT_CALLBACK);\n if (resultPointCallback != null) {\n var center = (startEnd[0] + startEnd[1]) / 2.0;\n if (right) {\n // row is actually reversed\n center = row.getSize() - 1 - center;\n }\n resultPointCallback.foundPossibleResultPoint(new ResultPoint_1.default(center, rowNumber));\n }\n var outside = this.decodeDataCharacter(row, pattern, true);\n var inside = this.decodeDataCharacter(row, pattern, false);\n return new Pair_1.default(1597 * outside.getValue() + inside.getValue(), outside.getChecksumPortion() + 4 * inside.getChecksumPortion(), pattern);\n }\n catch (err) {\n return null;\n }\n };\n RSS14Reader.prototype.decodeDataCharacter = function (row, pattern, outsideChar) {\n var counters = this.getDataCharacterCounters();\n for (var x = 0; x < counters.length; x++) {\n counters[x] = 0;\n }\n if (outsideChar) {\n OneDReader_1.default.recordPatternInReverse(row, pattern.getStartEnd()[0], counters);\n }\n else {\n OneDReader_1.default.recordPattern(row, pattern.getStartEnd()[1] + 1, counters);\n // reverse it\n for (var i = 0, j = counters.length - 1; i < j; i++, j--) {\n var temp = counters[i];\n counters[i] = counters[j];\n counters[j] = temp;\n }\n }\n var numModules = outsideChar ? 16 : 15;\n var elementWidth = MathUtils_1.default.sum(new Int32Array(counters)) / numModules;\n var oddCounts = this.getOddCounts();\n var evenCounts = this.getEvenCounts();\n var oddRoundingErrors = this.getOddRoundingErrors();\n var evenRoundingErrors = this.getEvenRoundingErrors();\n for (var i = 0; i < counters.length; i++) {\n var value = counters[i] / elementWidth;\n var count = Math.floor(value + 0.5);\n if (count < 1) {\n count = 1;\n }\n else if (count > 8) {\n count = 8;\n }\n var offset = Math.floor(i / 2);\n if ((i & 0x01) === 0) {\n oddCounts[offset] = count;\n oddRoundingErrors[offset] = value - count;\n }\n else {\n evenCounts[offset] = count;\n evenRoundingErrors[offset] = value - count;\n }\n }\n this.adjustOddEvenCounts(outsideChar, numModules);\n var oddSum = 0;\n var oddChecksumPortion = 0;\n for (var i = oddCounts.length - 1; i >= 0; i--) {\n oddChecksumPortion *= 9;\n oddChecksumPortion += oddCounts[i];\n oddSum += oddCounts[i];\n }\n var evenChecksumPortion = 0;\n var evenSum = 0;\n for (var i = evenCounts.length - 1; i >= 0; i--) {\n evenChecksumPortion *= 9;\n evenChecksumPortion += evenCounts[i];\n evenSum += evenCounts[i];\n }\n var checksumPortion = oddChecksumPortion + 3 * evenChecksumPortion;\n if (outsideChar) {\n if ((oddSum & 0x01) !== 0 || oddSum > 12 || oddSum < 4) {\n throw new NotFoundException_1.default();\n }\n var group = (12 - oddSum) / 2;\n var oddWidest = RSS14Reader.OUTSIDE_ODD_WIDEST[group];\n var evenWidest = 9 - oddWidest;\n var vOdd = RSSUtils_1.default.getRSSvalue(oddCounts, oddWidest, false);\n var vEven = RSSUtils_1.default.getRSSvalue(evenCounts, evenWidest, true);\n var tEven = RSS14Reader.OUTSIDE_EVEN_TOTAL_SUBSET[group];\n var gSum = RSS14Reader.OUTSIDE_GSUM[group];\n return new DataCharacter_1.default(vOdd * tEven + vEven + gSum, checksumPortion);\n }\n else {\n if ((evenSum & 0x01) !== 0 || evenSum > 10 || evenSum < 4) {\n throw new NotFoundException_1.default();\n }\n var group = (10 - evenSum) / 2;\n var oddWidest = RSS14Reader.INSIDE_ODD_WIDEST[group];\n var evenWidest = 9 - oddWidest;\n var vOdd = RSSUtils_1.default.getRSSvalue(oddCounts, oddWidest, true);\n var vEven = RSSUtils_1.default.getRSSvalue(evenCounts, evenWidest, false);\n var tOdd = RSS14Reader.INSIDE_ODD_TOTAL_SUBSET[group];\n var gSum = RSS14Reader.INSIDE_GSUM[group];\n return new DataCharacter_1.default(vEven * tOdd + vOdd + gSum, checksumPortion);\n }\n };\n RSS14Reader.prototype.findFinderPattern = function (row, rightFinderPattern) {\n var counters = this.getDecodeFinderCounters();\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n var width = row.getSize();\n var isWhite = false;\n var rowOffset = 0;\n while (rowOffset < width) {\n isWhite = !row.get(rowOffset);\n if (rightFinderPattern === isWhite) {\n // Will encounter white first when searching for right finder pattern\n break;\n }\n rowOffset++;\n }\n var counterPosition = 0;\n var patternStart = rowOffset;\n for (var x = rowOffset; x < width; x++) {\n if (row.get(x) !== isWhite) {\n counters[counterPosition]++;\n }\n else {\n if (counterPosition === 3) {\n if (AbstractRSSReader_1.default.isFinderPattern(counters)) {\n return [patternStart, x];\n }\n patternStart += counters[0] + counters[1];\n counters[0] = counters[2];\n counters[1] = counters[3];\n counters[2] = 0;\n counters[3] = 0;\n counterPosition--;\n }\n else {\n counterPosition++;\n }\n counters[counterPosition] = 1;\n isWhite = !isWhite;\n }\n }\n throw new NotFoundException_1.default();\n };\n RSS14Reader.prototype.parseFoundFinderPattern = function (row, rowNumber, right, startEnd) {\n // Actually we found elements 2-5\n var firstIsBlack = row.get(startEnd[0]);\n var firstElementStart = startEnd[0] - 1;\n // Locate element 1\n while (firstElementStart >= 0 && firstIsBlack !== row.get(firstElementStart)) {\n firstElementStart--;\n }\n firstElementStart++;\n var firstCounter = startEnd[0] - firstElementStart;\n // Make 'counters' hold 1-4\n var counters = this.getDecodeFinderCounters();\n var copy = new Array(counters.length);\n System_1.default.arraycopy(counters, 0, copy, 1, counters.length - 1);\n copy[0] = firstCounter;\n var value = this.parseFinderValue(copy, RSS14Reader.FINDER_PATTERNS);\n var start = firstElementStart;\n var end = startEnd[1];\n if (right) {\n // row is actually reversed\n start = row.getSize() - 1 - start;\n end = row.getSize() - 1 - end;\n }\n return new FinderPattern_1.default(value, [firstElementStart, startEnd[1]], start, end, rowNumber);\n };\n RSS14Reader.prototype.adjustOddEvenCounts = function (outsideChar, numModules) {\n var oddSum = MathUtils_1.default.sum(new Int32Array(this.getOddCounts()));\n var evenSum = MathUtils_1.default.sum(new Int32Array(this.getEvenCounts()));\n var incrementOdd = false;\n var decrementOdd = false;\n var incrementEven = false;\n var decrementEven = false;\n if (outsideChar) {\n if (oddSum > 12) {\n decrementOdd = true;\n }\n else if (oddSum < 4) {\n incrementOdd = true;\n }\n if (evenSum > 12) {\n decrementEven = true;\n }\n else if (evenSum < 4) {\n incrementEven = true;\n }\n }\n else {\n if (oddSum > 11) {\n decrementOdd = true;\n }\n else if (oddSum < 5) {\n incrementOdd = true;\n }\n if (evenSum > 10) {\n decrementEven = true;\n }\n else if (evenSum < 4) {\n incrementEven = true;\n }\n }\n var mismatch = oddSum + evenSum - numModules;\n var oddParityBad = (oddSum & 0x01) === (outsideChar ? 1 : 0);\n var evenParityBad = (evenSum & 0x01) === 1;\n if (mismatch === 1) {\n if (oddParityBad) {\n if (evenParityBad) {\n throw new NotFoundException_1.default();\n }\n decrementOdd = true;\n }\n else {\n if (!evenParityBad) {\n throw new NotFoundException_1.default();\n }\n decrementEven = true;\n }\n }\n else if (mismatch === -1) {\n if (oddParityBad) {\n if (evenParityBad) {\n throw new NotFoundException_1.default();\n }\n incrementOdd = true;\n }\n else {\n if (!evenParityBad) {\n throw new NotFoundException_1.default();\n }\n incrementEven = true;\n }\n }\n else if (mismatch === 0) {\n if (oddParityBad) {\n if (!evenParityBad) {\n throw new NotFoundException_1.default();\n }\n // Both bad\n if (oddSum < evenSum) {\n incrementOdd = true;\n decrementEven = true;\n }\n else {\n decrementOdd = true;\n incrementEven = true;\n }\n }\n else {\n if (evenParityBad) {\n throw new NotFoundException_1.default();\n }\n // Nothing to do!\n }\n }\n else {\n throw new NotFoundException_1.default();\n }\n if (incrementOdd) {\n if (decrementOdd) {\n throw new NotFoundException_1.default();\n }\n AbstractRSSReader_1.default.increment(this.getOddCounts(), this.getOddRoundingErrors());\n }\n if (decrementOdd) {\n AbstractRSSReader_1.default.decrement(this.getOddCounts(), this.getOddRoundingErrors());\n }\n if (incrementEven) {\n if (decrementEven) {\n throw new NotFoundException_1.default();\n }\n AbstractRSSReader_1.default.increment(this.getEvenCounts(), this.getOddRoundingErrors());\n }\n if (decrementEven) {\n AbstractRSSReader_1.default.decrement(this.getEvenCounts(), this.getEvenRoundingErrors());\n }\n };\n RSS14Reader.OUTSIDE_EVEN_TOTAL_SUBSET = [1, 10, 34, 70, 126];\n RSS14Reader.INSIDE_ODD_TOTAL_SUBSET = [4, 20, 48, 81];\n RSS14Reader.OUTSIDE_GSUM = [0, 161, 961, 2015, 2715];\n RSS14Reader.INSIDE_GSUM = [0, 336, 1036, 1516];\n RSS14Reader.OUTSIDE_ODD_WIDEST = [8, 6, 4, 3, 1];\n RSS14Reader.INSIDE_ODD_WIDEST = [2, 4, 6, 8];\n RSS14Reader.FINDER_PATTERNS = [\n [3, 8, 2, 1],\n [3, 5, 5, 1],\n [3, 3, 7, 1],\n [3, 1, 9, 1],\n [2, 7, 4, 1],\n [2, 5, 6, 1],\n [2, 3, 8, 1],\n [1, 5, 7, 1],\n [1, 3, 9, 1],\n ];\n return RSS14Reader;\n}(AbstractRSSReader_1.default));\nexports.default = RSS14Reader;\n//# sourceMappingURL=RSS14Reader.js.map","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */\nvar XLSX = {};\nfunction make_xlsx_lib(XLSX){\nXLSX.version = '0.17.0';\nvar current_codepage = 1200, current_ansi = 1252;\n/*global cptable:true, window */\nif(typeof module !== \"undefined\" && typeof require !== 'undefined') {\n\tif(typeof cptable === 'undefined') {\n\t\tif(typeof global !== 'undefined') global.cptable = require('./dist/cpexcel.js');\n\t\telse if(typeof window !== 'undefined') window.cptable = require('./dist/cpexcel.js');\n\t}\n}\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950 ];\nfor(var i = 0; i <= 8; ++i) VALID_ANSI.push(1250 + i);\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n0: 1252, /* ANSI */\n1: 65001, /* DEFAULT */\n2: 65001, /* SYMBOL */\n77: 10000, /* MAC */\n128: 932, /* SHIFTJIS */\n129: 949, /* HANGUL */\n130: 1361, /* JOHAB */\n134: 936, /* GB2312 */\n136: 950, /* CHINESEBIG5 */\n161: 1253, /* GREEK */\n162: 1254, /* TURKISH */\n163: 1258, /* VIETNAMESE */\n177: 1255, /* HEBREW */\n178: 1256, /* ARABIC */\n186: 1257, /* BALTIC */\n204: 1251, /* RUSSIAN */\n222: 874, /* THAI */\n238: 1250, /* EASTEUROPE */\n255: 1252, /* OEM */\n69: 6969 /* MISC */\n});\n\nvar set_ansi = function(cp) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data) { var o = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data) {\n\tvar o = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data) {\n\tvar o = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data) {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x) { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x) { return String.fromCharCode(x); };\nif(typeof cptable !== 'undefined') {\n\tset_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x) {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x) {\n\t\treturn cptable.utils.decode(current_ansi, [x])[0];\n\t};\n}\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64 = (function make_b64(){\n\tvar map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\treturn {\n\t\tencode: function(input) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\n\t\t\tfor(var i = 0; i < input.length; ) {\n\t\t\t\tc1 = input.charCodeAt(i++);\n\t\t\t\te1 = (c1 >> 2);\n\n\t\t\t\tc2 = input.charCodeAt(i++);\n\t\t\t\te2 = ((c1 & 3) << 4) | (c2 >> 4);\n\n\t\t\t\tc3 = input.charCodeAt(i++);\n\t\t\t\te3 = ((c2 & 15) << 2) | (c3 >> 6);\n\t\t\t\te4 = (c3 & 63);\n\t\t\t\tif (isNaN(c2)) { e3 = e4 = 64; }\n\t\t\t\telse if (isNaN(c3)) { e4 = 64; }\n\t\t\t\to += map.charAt(e1) + map.charAt(e2) + map.charAt(e3) + map.charAt(e4);\n\t\t\t}\n\t\t\treturn o;\n\t\t},\n\t\tdecode: function b64_decode(input) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\n\t\t\tinput = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n\t\t\tfor(var i = 0; i < input.length;) {\n\t\t\t\te1 = map.indexOf(input.charAt(i++));\n\t\t\t\te2 = map.indexOf(input.charAt(i++));\n\t\t\t\tc1 = (e1 << 2) | (e2 >> 4);\n\t\t\t\to += String.fromCharCode(c1);\n\n\t\t\t\te3 = map.indexOf(input.charAt(i++));\n\t\t\t\tc2 = ((e2 & 15) << 4) | (e3 >> 2);\n\t\t\t\tif (e3 !== 64) { o += String.fromCharCode(c2); }\n\n\t\t\t\te4 = map.indexOf(input.charAt(i++));\n\t\t\t\tc3 = ((e3 & 3) << 6) | e4;\n\t\t\t\tif (e4 !== 64) { o += String.fromCharCode(c3); }\n\t\t\t}\n\t\t\treturn o;\n\t\t}\n\t};\n})();\nvar has_buf = (typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node);\n\nvar Buffer_from = function(){};\n\nif(typeof Buffer !== 'undefined') {\n\tvar nbfs = !Buffer.from;\n\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\tBuffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t// $FlowIgnore\n\tif(!Buffer.alloc) Buffer.alloc = function(n) { return new Buffer(n); };\n\t// $FlowIgnore\n\tif(!Buffer.allocUnsafe) Buffer.allocUnsafe = function(n) { return new Buffer(n); };\n}\n\nfunction new_raw_buf(len) {\n\t/* jshint -W056 */\n\treturn has_buf ? Buffer.alloc(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len) {\n\t/* jshint -W056 */\n\treturn has_buf ? Buffer.allocUnsafe(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s) {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x){ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s) {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data) {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data) {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data) {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\nvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = function(bufs) { return [].concat.apply([], bufs); };\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nvar SSF = ({});\nvar make_ssf = function make_ssf(SSF){\nSSF.version = '0.11.2';\nfunction _strrev(x) { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\nfunction pad0(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v,d){var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v,d){var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v,d){var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = Math.pow(2,32);\nfunction pad0r(v,d){if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\nfunction isgeneral(s, i) { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction init_table(t) {\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n}\n\nvar table_fmt = {};\ninit_table(table_fmt);\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar default_map = [];\nvar defi = 0;\n\n// 5 -> 37 ... 8 -> 40\nfor(defi = 5; defi <= 8; ++defi) default_map[defi] = 32 + defi;\n\n// 23 -> 0 ... 26 -> 0\nfor(defi = 23; defi <= 26; ++defi) default_map[defi] = 0;\n\n// 27 -> 14 ... 31 -> 14\nfor(defi = 27; defi <= 31; ++defi) default_map[defi] = 14;\n// 50 -> 14 ... 58 -> 14\nfor(defi = 50; defi <= 58; ++defi) default_map[defi] = 14;\n\n// 59 -> 1 ... 62 -> 4\nfor(defi = 59; defi <= 62; ++defi) default_map[defi] = defi - 58;\n// 67 -> 9 ... 68 -> 10\nfor(defi = 67; defi <= 68; ++defi) default_map[defi] = defi - 58;\n// 72 -> 14 ... 75 -> 17\nfor(defi = 72; defi <= 75; ++defi) default_map[defi] = defi - 58;\n\n// 69 -> 12 ... 71 -> 14\nfor(defi = 67; defi <= 68; ++defi) default_map[defi] = defi - 57;\n\n// 76 -> 20 ... 78 -> 22\nfor(defi = 76; defi <= 78; ++defi) default_map[defi] = defi - 56;\n\n// 79 -> 45 ... 81 -> 47\nfor(defi = 79; defi <= 81; ++defi) default_map[defi] = defi - 34;\n\n// 82 -> 0 ... 65536 -> 0 (omitted)\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar default_str = [];\n\n// 5 -- Currency, 0 decimal, black negative\ndefault_str[5] = default_str[63] = '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)';\n// 6 -- Currency, 0 decimal, red negative\ndefault_str[6] = default_str[64] = '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)';\n// 7 -- Currency, 2 decimal, black negative\ndefault_str[7] = default_str[65] = '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)';\n// 8 -- Currency, 2 decimal, red negative\ndefault_str[8] = default_str[66] = '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)';\n\n// 41 -- Accounting, 0 decimal, No Symbol\ndefault_str[41] = '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)';\n// 42 -- Accounting, 0 decimal, $ Symbol\ndefault_str[42] = '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)';\n// 43 -- Accounting, 2 decimal, No Symbol\ndefault_str[43] = '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)';\n// 44 -- Accounting, 2 decimal, $ Symbol\ndefault_str[44] = '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)';\nfunction frac(x, D, mixed) {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction parse_date_code(v,opts,b2) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nSSF.parse_date_code = parse_date_code;\nvar basedate = new Date(1899, 11, 31, 0, 0, 0);\nvar dnthresh = basedate.getTime();\nvar base1904 = new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= base1904) epoch += 24*60*60*1000;\n\treturn (epoch - (dnthresh + (v.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* The longest 32-bit integer text is \"-4294967296\", exactly 11 chars */\nfunction general_fmt_int(v) { return v.toString(10); }\nSSF._general_int = general_fmt_int;\n\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\nvar general_fmt_num = (function make_general_fmt_num() {\n\tvar trailing_zeroes_and_decimal = /(?:\\.0*|(\\.\\d*[1-9])0+)$/;\n\tfunction strip_decimal(o) {\n\t\treturn (o.indexOf(\".\") == -1) ? o : o.replace(trailing_zeroes_and_decimal, \"$1\");\n\t}\n\n\t/* General Exponential always shows 2 digits exp and trims the mantissa */\n\tvar mantissa_zeroes_and_decimal = /(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/;\n\tvar exp_with_single_digit = /(E[+-])(\\d)$/;\n\tfunction normalize_exp(o) {\n\t\tif(o.indexOf(\"E\") == -1) return o;\n\t\treturn o.replace(mantissa_zeroes_and_decimal,\"$1E\").replace(exp_with_single_digit,\"$10$2\");\n\t}\n\n\t/* exponent >= -9 and <= 9 */\n\tfunction small_exp(v) {\n\t\tvar w = (v<0?12:11);\n\t\tvar o = strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\t\to = v.toPrecision(10); if(o.length <= w) return o;\n\t\treturn v.toExponential(5);\n\t}\n\n\t/* exponent >= 11 or <= -10 likely exponential */\n\tfunction large_exp(v) {\n\t\tvar o = strip_decimal(v.toFixed(11));\n\t\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n\t}\n\n\tfunction general_fmt_num_base(v) {\n\t\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\t\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\t\telse if(Math.abs(V) <= 9) o = small_exp(v);\n\t\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\t\telse o = large_exp(v);\n\n\t\treturn strip_decimal(normalize_exp(o.toUpperCase()));\n\t}\n\n\treturn general_fmt_num_base;\n})();\nSSF._general_num = general_fmt_num;\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction general_fmt(v, opts) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : general_fmt_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\nSSF._general = general_fmt;\nfunction fix_hijri(date, o) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\n/*jshint -W086 */\nfunction write_date(type, fmt, val, ss0) {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\nif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n/*jshint +W086 */\nfunction commaify(s) {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar write_num = (function make_write_num(){\nvar pct1 = /%/g;\nfunction write_num_pct(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_cm(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_exp(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r, aval, sign) {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r, aval, sign) {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str) {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val, d) { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val, d) {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val, d) {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val) {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\no = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\nreturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\nSSF.is_date = fmt_is_date;\nfunction eval_fmt(fmt, v, opts, flen) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(abstime)) {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\nout[i].v = write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = general_fmt(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\nSSF._eval = eval_fmt;\nvar cfregex = /\\[[=<>]/;\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f, v) {\n\tvar fmt = split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(cfregex) != null || fmt[1].match(cfregex) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction format(fmt,v,o) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[default_map[fmt]]) || table_fmt[default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(isgeneral(sfmt,0)) return general_fmt(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(isgeneral(f[1])) return general_fmt(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction load_entry(fmt, idx) {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\nfor(var i = 0; i < 0x0188; ++i) {\nif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\nif(idx < 0) idx = 0x187;\n\t}\ntable_fmt[idx] = fmt;\n\treturn idx;\n}\nSSF.load = load_entry;\nSSF._table = table_fmt;\nSSF.get_table = function get_table() { return table_fmt; };\nSSF.load_table = function load_table(tbl) {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) load_entry(tbl[i], i);\n};\nSSF.init_table = init_table;\nSSF.format = format;\n};\nmake_ssf(SSF);\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*{[string]:string}*/ = ({\n\t\"General Number\": \"General\",\n\t\"General Date\": SSF._table[22],\n\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\"Medium Date\": SSF._table[15],\n\t\"Short Date\": SSF._table[14],\n\t\"Long Time\": SSF._table[19],\n\t\"Medium Time\": SSF._table[18],\n\t\"Short Time\": SSF._table[20],\n\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"Fixed\": SSF._table[2],\n\t\"Standard\": SSF._table[4],\n\t\"Percent\": SSF._table[10],\n\t\"Scientific\": SSF._table[11],\n\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n});\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n});\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF) {\n\tvar fmt = typeof dateNF == \"number\" ? SSF._table[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str, dateNF, match) {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\nvar DO_NOT_EXPORT_CFB = true;\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32;\n(function (factory) {\n\t/*jshint ignore:start */\n\t/*eslint-disable */\n\tfactory(CRC32 = {});\n\t/*eslint-enable */\n\t/*jshint ignore:end */\n}(function(CRC32) {\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table() {\n\tvar c = 0, table = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T = signed_crc_table();\nfunction crc32_bstr(bstr, seed) {\n\tvar C = seed ^ -1, L = bstr.length - 1;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t}\n\tif(i === L) C = (C>>>8) ^ T[(C ^ bstr.charCodeAt(i))&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf(buf, seed) {\n\tif(buf.length > 10000) return crc32_buf_8(buf, seed);\n\tvar C = seed ^ -1, L = buf.length - 3;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+3) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf_8(buf, seed) {\n\tvar C = seed ^ -1, L = buf.length - 7;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+7) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_str(str, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L=str.length, c, d; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T[(C ^ c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn C ^ -1;\n}\nCRC32.table = T;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\n}));\n/* [MS-CFB] v20171201 */\nvar CFB = (function _CFB(){\nvar exports = {};\nexports.version = '1.1.4';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l, r) {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p) {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p) {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf, date) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf) {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob) {\n\tprep_blob(blob, 0);\n\tvar o = {};\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs;\nfunction get_fs() { return fs || (fs = require('fs')); }\nfunction parse(file, options) {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob = file.slice(0,512);\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = file.slice(0,ssz); prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files = {}, Paths = [], FileIndex = [], FullPaths = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob) {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob, mver) {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file, ssz) {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI, FP, Paths) {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad = [], q = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry, payload, mini) {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size));\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0));\n\treturn (bconcat(o).slice(0, entry.size));\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) {\n\tvar q = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors, start, fat_addrs, ssz, chkd) {\n\tvar buf = [], buf_chain = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors, dir_start, fat_addrs, ssz) {\n\tvar sl = sectors.length, sector_list = ([]);\n\tvar chkd = [], buf = [], buf_chain = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])});\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob = sector.slice(i, i+128);\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size));\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob, offset) {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename, options) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob, options) {\n\tswitch(options && options.type || \"base64\") {\n\t\tcase \"file\": return read_file(blob, options);\n\t\tcase \"base64\": return parse(s2a(Base64.decode(blob)), options);\n\t\tcase \"binary\": return parse(s2a(blob), options);\n\t}\n\treturn parse(blob, options);\n}\n\nfunction init_cfb(cfb, opts) {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 });\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb) {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb, f) {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\tvar data = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = false;\n\t\tfor(j = 0; j < data.length; ++j) if(data[j][0] === dad) s = true;\n\t\tif(!s) data.push([dad, ({\n\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\ttype: 1,\n\t\t\tclsid: HEADER_CLSID,\n\t\t\tct: now, mt: now,\n\t\t\tcontent: null\n\t\t})]);\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb, options) {\n\tvar _opts = options || {};\n\trebuild_cfb(cfb);\n\tif(_opts.fileType == 'zip') return write_zip(cfb, _opts);\n\tvar L = (function(cfb){\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\nvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w) {\n\t\tfor(T += w; i> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\nflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\nif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\nif(file.size > 0 && file.size < 0x1000) {\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t}\n\t}\n\twhile(o.l < o.length) o.write_shift(1, 0);\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb, path) {\n\tvar UCFullPaths = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath = path.toUpperCase();\n\tvar w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb, filename, options) {\n\tget_fs();\n\tvar o = _write(cfb, options);\nfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o) {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb, options) {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type) {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o)); return o;\n\t\tcase \"binary\": return a2s(o);\n\t\tcase \"base64\": return Base64.encode(a2s(o));\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < b.length; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}var _deflate = (function() {\nvar _deflateRaw = (function() {\n\treturn function deflateRaw(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\t/* TODO: this is only type 0 stored */\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t};\n})();\n\nreturn function(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n};\n})();\n/* modified inflate function also moves original read head */\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX) {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\tif(typeof data.copy === 'function') {\n\t\t\t\t// $FlowIgnore\n\t\t\t\tdata.copy(outbuf, woff, boff>>>3, (boff>>>3)+sz);\n\t\t\t\twoff += sz; boff += 8*sz;\n\t\t\t} else while(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\tcontinue;\n\t\t} else if((header >>> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\treturn [usz ? outbuf : outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file, options) {\n\tvar blob = file;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex = [], FullPaths = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(blob.slice(blob.l+namelen, blob.l+namelen+efsz));\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob, csz, usz, o, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(blob.slice(blob.l, blob.l + efsz));\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break;\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\tvar _crc32 = CRC32.buf(data, 0);\n\tif((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb, options) {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(fi.content, 0);\n\n\t\tvar outbuf = fi.content;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : fi.content.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: encryption header ? */\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, fi.content.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, fi.content.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out)), bconcat(cdirs), o]));\n}\nfunction cfb_new(opts) {\n\tvar o = ({});\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb, name, content, opts) {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2});\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\nfile.content = (content);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb, name) {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb, old_name, new_name) {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb) { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nif(typeof require !== 'undefined' && typeof module !== 'undefined' && typeof DO_NOT_EXPORT_CFB === 'undefined') { module.exports = CFB; }\nvar _fs;\nif(typeof require !== 'undefined') try { _fs = require('fs'); } catch(e) {}\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname, payload, enc) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\nif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\nif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\nif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\nif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\na.download = fname; a.href = url; document.body.appendChild(a); a.click();\ndocument.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o) {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj, key) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = basedate.getTime() + (v.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = new Date();\nvar dnthresh = basedate.getTime() + (refdate.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\nvar refoffset = refdate.getTimezoneOffset();\nfunction numdate(v) {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date = new Date('2017-02-19T19:06:09.000Z');\nif(isNaN(good_pd_date.getFullYear())) good_pd_date = new Date('2/19/17');\nvar good_pd = good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str, fixdate) {\n\tvar d = new Date(str);\n\tif(good_pd) {\nif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr) {\n\tvar o = \"\";\n\tfor(var i = 0; i != arr.length; ++i) o += String.fromCharCode(arr[i]);\n\treturn o;\n}\n\nfunction dup(o) {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s) {\n\tvar v = Number(s);\n\tif(!isNaN(v)) return v;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nfunction fuzzydate(s) {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\nfunction split_regex(str, re, def) {\n\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\tvar p = str.split(re), o = [p[0]];\n\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\treturn o;\n}\nfunction getdatastr(data) {\n\tif(!data) return null;\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\tif(data.content && data.type) return debom(cc2str(data.content));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase(), g = f.replace(/\\//g,'\\\\');\n\tfor(var i=0; i\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg;\n\nif(!(XML_HEADER.match(tagregex))) tagregex = /<[^>]*>/g;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag, skip_root, skip_LC) {\n\tvar z = ({});\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x) { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml = (function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text) {\n\t\tvar s = text + '', i = s.indexOf(\"-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text){ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"
\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr = (function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$,$1) { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str) { return str.replace(entregex,entrepl); };\n})();\nvar xlml_unfixstr = (function() {\n\treturn function xlml_unfixstr(str) { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); };\n})();\n\nfunction parsexmlbool(value) {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nvar utf8read = function utf8reada(orig) {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n};\n\nvar utf8write = function(orig) {\n\tvar out = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\nif(has_buf) {\n\tvar utf8readb = function utf8readb(data) {\n\t\tvar out = Buffer.alloc(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\t\tfor(i = 0; i < data.length; i+=j) {\n\t\t\tj = 1;\n\t\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\t\telse { j = 4;\n\t\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t\t}\n\t\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t\t}\n\t\treturn out.slice(0,k).toString('ucs2');\n\t};\n\tvar corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\n\tif(utf8read(corpus) == utf8readb(corpus)) utf8read = utf8readb;\n\tvar utf8readc = function utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); };\n\tif(utf8read(corpus) == utf8readc(corpus)) utf8read = utf8readc;\n\n\tutf8write = function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); };\n}\n\n// matches ... extracts content\nvar matchtag = (function() {\n\tvar mtcache = ({});\n\treturn function matchtag(f,g) {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)',((g||\"\"))));\n\t};\n})();\n\nvar htmldecode = (function() {\n\tvar entities = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str) {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+ tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = (function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)' + g + ''; }\n\nfunction wxt_helper(h) { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f,g,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '';}\n\nfunction write_w3cdtf(d, t) { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx) {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nvar XMLNS = ({\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n});\n\nXMLNS.main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n});\nfunction read_double_le(b, idx) {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b, v, idx) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar __toBuffer = function(bufs) { var x=[],w=10240; for(var i=0;i 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___lpstr = __lpstr;\nvar __cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___cpstr = __cpstr;\nvar __lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___lpwstr = __lpwstr;\nvar __lpp4, ___lpp4;\n__lpp4 = ___lpp4 = function lpp4_(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar ___8lpp4 = __8lpp4;\nvar __double, ___double;\n__double = ___double = function(b, idx) { return read_double_le(b, idx);};\nvar is_buf = function is_buf_a(a) { return Array.isArray(a); };\n\nif(has_buf) {\n\t__utf16le = function(b,s,e) { if(!Buffer.isBuffer(b)) return ___utf16le(b,s,e); return b.toString('utf16le',s,e).replace(chr0,'')/*.replace(chr1,'!')*/; };\n\t__hexlify = function(b,s,l) { return Buffer.isBuffer(b) ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); };\n\t__lpstr = function lpstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b, i) { if(!Buffer.isBuffer(b)) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__utf8 = function utf8_b(b, s, e) { return (Buffer.isBuffer(b)) ? b.toString('utf8',s,e) : ___utf8(b,s,e); };\n\t__toBuffer = function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0]) : ___toBuffer(bufs);};\n\tbconcat = function(bufs) { return Buffer.isBuffer(bufs[0]) ? Buffer.concat(bufs) : [].concat.apply([], bufs); };\n\t__double = function double_(b, i) { if(Buffer.isBuffer(b)) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a); };\n}\n\n/* from js-xls */\nif(typeof cptable !== 'undefined') {\n\t__utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b,s,e) { return cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\n\nvar __readUInt8 = function(b, idx) { return b[idx]; };\nvar __readUInt16LE = function(b, idx) { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b, idx) { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b, idx) { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b, idx) { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b, idx) { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size, t) {\n\tvar o=\"\", oI, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof cptable !== 'undefined') o = cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof cptable !== 'undefined') {\n\t\t\t\to = cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t, val, f) {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\nfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\nfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\nval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\nfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\nthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\nvar end = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr, fld) {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos) {\n\tblob.l = pos;\n\tblob.read_shift = ReadShift;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length) { blob.l += length; }\n\nfunction new_buf(sz) {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb, opts) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = (R.f||parsenoop)(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R.n, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array() {\n\tvar bufs = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz) {\n\t\tvar o = (new_buf(sz));\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz) {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn __toBuffer([bufs]);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs });\n}\n\nfunction write_record(ba, type, payload, length) {\n\tvar t = +XLSBRE[type], l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell, tgt, opts) {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c, biff) {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts) {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nvar OFFCRYPTO = {};\n\nvar make_offcrypto = function(O, _crypto) {\n\tvar crypto;\n\tif(typeof _crypto !== 'undefined') crypto = _crypto;\n\telse if(typeof require !== 'undefined') {\n\t\ttry { crypto = require('crypto'); }\n\t\tcatch(e) { crypto = null; }\n\t}\n\n\tO.rc4 = function(key, data) {\n\t\tvar S = new Array(256);\n\t\tvar c = 0, i = 0, j = 0, t = 0;\n\t\tfor(i = 0; i != 256; ++i) S[i] = i;\n\t\tfor(i = 0; i != 256; ++i) {\n\t\t\tj = (j + S[i] + (key[i%key.length]).charCodeAt(0))&255;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t}\n\t\t// $FlowIgnore\n\t\ti = j = 0; var out = new_raw_buf(data.length);\n\t\tfor(c = 0; c != data.length; ++c) {\n\t\t\ti = (i + 1)&255;\n\t\t\tj = (j + S[i])%256;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t\tout[c] = (data[c] ^ S[(S[i]+S[j])&255]);\n\t\t}\n\t\treturn out;\n\t};\n\n\tO.md5 = function(hex) {\n\t\tif(!crypto) throw new Error(\"Unsupported crypto\");\n\t\treturn crypto.createHash('md5').update(hex).digest('hex');\n\t};\n};\n/*global crypto:true */\nmake_offcrypto(OFFCRYPTO, typeof crypto !== \"undefined\" ? crypto : undefined);\n\nfunction decode_row(rowstr) { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row) { return \"\" + (row + 1); }\nfunction fix_row(cstr) { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr) { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr) { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col) { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr) { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr) { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr) { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr) { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr) {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell) { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell) {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range) {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\nfunction encode_range(cs,ce) {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\nreturn encode_range(cs.s, cs.e);\n\t}\nif(typeof cs !== 'string') cs = encode_cell((cs));\n\tif(typeof ce !== 'string') ce = encode_cell((ce));\nreturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range) {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || range.charCodeAt(++i) === 58) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell, v) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF.format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF.format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell, v, o) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet, opts) {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws, data, opts) {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws = _ws || (dense ? ([]) : ({}));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell = ({v: data[R][C] });\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) { if(cell.f) cell.t = 'n'; else if(!o.sheetStubs) continue; else cell.t = 'z'; }\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF.format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF.format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data, opts) { return sheet_add_aoa(null, data, opts); }\n\nfunction write_UInt32LE(x, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data) {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length) {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str });\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str, o) {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str, o) {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data) {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell, o) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data) {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tb[0] &= 0xFC; // b[0] &= ~3;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, b[0], b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data ) {\n\tvar cell = ({ s: {}, e: {} });\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w) {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n0x01: { n: 'CodePage', t: VT_I2 },\n0x02: { n: 'Category', t: VT_STRING },\n0x03: { n: 'PresentationFormat', t: VT_STRING },\n0x04: { n: 'ByteCount', t: VT_I4 },\n0x05: { n: 'LineCount', t: VT_I4 },\n0x06: { n: 'ParagraphCount', t: VT_I4 },\n0x07: { n: 'SlideCount', t: VT_I4 },\n0x08: { n: 'NoteCount', t: VT_I4 },\n0x09: { n: 'HiddenCount', t: VT_I4 },\n0x0a: { n: 'MultimediaClipCount', t: VT_I4 },\n0x0b: { n: 'ScaleCrop', t: VT_BOOL },\n0x0c: { n: 'HeadingPairs', t: VT_VECTOR | VT_VARIANT },\n0x0d: { n: 'TitlesOfParts', t: VT_VECTOR | VT_LPSTR },\n0x0e: { n: 'Manager', t: VT_STRING },\n0x0f: { n: 'Company', t: VT_STRING },\n0x10: { n: 'LinksUpToDate', t: VT_BOOL },\n0x11: { n: 'CharacterCount', t: VT_I4 },\n0x13: { n: 'SharedDoc', t: VT_BOOL },\n0x16: { n: 'HyperlinksChanged', t: VT_BOOL },\n0x17: { n: 'AppVersion', t: VT_I4, p: 'version' },\n0x18: { n: 'DigSig', t: VT_BLOB },\n0x1A: { n: 'ContentType', t: VT_STRING },\n0x1B: { n: 'ContentStatus', t: VT_STRING },\n0x1C: { n: 'Language', t: VT_STRING },\n0x1D: { n: 'Version', t: VT_STRING },\n0xFF: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n0x01: { n: 'CodePage', t: VT_I2 },\n0x02: { n: 'Title', t: VT_STRING },\n0x03: { n: 'Subject', t: VT_STRING },\n0x04: { n: 'Author', t: VT_STRING },\n0x05: { n: 'Keywords', t: VT_STRING },\n0x06: { n: 'Comments', t: VT_STRING },\n0x07: { n: 'Template', t: VT_STRING },\n0x08: { n: 'LastAuthor', t: VT_STRING },\n0x09: { n: 'RevNumber', t: VT_STRING },\n0x0A: { n: 'EditTime', t: VT_FILETIME },\n0x0B: { n: 'LastPrinted', t: VT_FILETIME },\n0x0C: { n: 'CreatedDate', t: VT_FILETIME },\n0x0D: { n: 'ModifiedDate', t: VT_FILETIME },\n0x0E: { n: 'PageCount', t: VT_I4 },\n0x0F: { n: 'WordCount', t: VT_I4 },\n0x10: { n: 'CharCount', t: VT_I4 },\n0x11: { n: 'Thumbnail', t: VT_CF },\n0x12: { n: 'Application', t: VT_STRING },\n0x13: { n: 'DocSecurity', t: VT_I4 },\n0xFF: {}\n};\n\n/* [MS-OLEPS] 2.18 */\nvar SpecialProperties = {\n0x80000000: { n: 'Locale', t: VT_UI4 },\n0x80000003: { n: 'Behavior', t: VT_UI4 },\n0x72627262: {}\n};\n\n(function() {\n\tfor(var y in SpecialProperties) if(Object.prototype.hasOwnProperty.call(SpecialProperties, y))\n\tDocSummaryPIDDSI[y] = SummaryPIDSI[y] = SpecialProperties[y];\n})();\n\nvar DocSummaryRE = evert_key(DocSummaryPIDDSI, \"n\");\nvar SummaryRE = evert_key(SummaryPIDSI, \"n\");\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n0x0001: \"US\", // United States\n0x0002: \"CA\", // Canada\n0x0003: \"\", // Latin America (except Brazil)\n0x0007: \"RU\", // Russia\n0x0014: \"EG\", // Egypt\n0x001E: \"GR\", // Greece\n0x001F: \"NL\", // Netherlands\n0x0020: \"BE\", // Belgium\n0x0021: \"FR\", // France\n0x0022: \"ES\", // Spain\n0x0024: \"HU\", // Hungary\n0x0027: \"IT\", // Italy\n0x0029: \"CH\", // Switzerland\n0x002B: \"AT\", // Austria\n0x002C: \"GB\", // United Kingdom\n0x002D: \"DK\", // Denmark\n0x002E: \"SE\", // Sweden\n0x002F: \"NO\", // Norway\n0x0030: \"PL\", // Poland\n0x0031: \"DE\", // Germany\n0x0034: \"MX\", // Mexico\n0x0037: \"BR\", // Brazil\n0x003d: \"AU\", // Australia\n0x0040: \"NZ\", // New Zealand\n0x0042: \"TH\", // Thailand\n0x0051: \"JP\", // Japan\n0x0052: \"KR\", // Korea\n0x0054: \"VN\", // Viet Nam\n0x0056: \"CN\", // China\n0x005A: \"TR\", // Turkey\n0x0069: \"JS\", // Ramastan\n0x00D5: \"DZ\", // Algeria\n0x00D8: \"MA\", // Morocco\n0x00DA: \"LY\", // Libya\n0x015F: \"PT\", // Portugal\n0x0162: \"IS\", // Iceland\n0x0166: \"FI\", // Finland\n0x01A4: \"CZ\", // Czech Republic\n0x0376: \"TW\", // Taiwan\n0x03C1: \"LB\", // Lebanon\n0x03C2: \"JO\", // Jordan\n0x03C3: \"SY\", // Syria\n0x03C4: \"IQ\", // Iraq\n0x03C5: \"KW\", // Kuwait\n0x03C6: \"SA\", // Saudi Arabia\n0x03CB: \"AE\", // United Arab Emirates\n0x03CC: \"IL\", // Israel\n0x03CE: \"QA\", // Qatar\n0x03D5: \"IR\", // Iran\n0xFFFF: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr) { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n0x00: \"#NULL!\",\n0x07: \"#DIV/0!\",\n0x0F: \"#VALUE!\",\n0x17: \"#REF!\",\n0x1D: \"#NAME?\",\n0x24: \"#NUM!\",\n0x2A: \"#N/A\",\n0x2B: \"#GETTING_DATA\",\n0xFF: \"#WTF?\"\n};\nvar RBErr = evert_num(BErr);\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary */\n/* 14.2 Part Summary */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* Metadata */\n\t\"application/vnd.ms-excel.sheetMetadata\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"TODO\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"vba\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n});\n\nvar CT_LIST = (function(){\n\tvar o = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n\t};\n\tkeys(o).forEach(function(k) { [\"xlsm\", \"xlam\"].forEach(function(v) { if(!o[k][v]) o[k][v] = o[k].xlsx; }); });\n\tkeys(o).forEach(function(k){ keys(o[k]).forEach(function(v) { ct2type[o[k][v]] = k; }); });\n\treturn o;\n})();\n\nvar type2ct/*{[string]:Array}*/ = evert_arr(ct2type);\n\nXMLNS.CT = 'http://schemas.openxmlformats.org/package/2006/content-types';\n\nfunction new_ct() {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [],\n\t\tTODO:[], xmlns: \"\" });\n}\n\nfunction parse_ct(data) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase ' 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nvar CTYPE_XML_ROOT = writextag('Types', null, {\n\t'xmlns': XMLNS.CT,\n\t'xmlns:xsd': XMLNS.xsd,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nvar CTYPE_DEFAULTS = [\n\t['xml', 'application/xml'],\n\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t/* from test files */\n\t['bmp', 'image/bmp'],\n\t['png', 'image/png'],\n\t['gif', 'image/gif'],\n\t['emf', 'image/x-emf'],\n\t['wmf', 'image/x-wmf'],\n\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t['pdf', 'application/pdf'],\n\t['rels', type2ct.rels[0]]\n].map(function(x) {\n\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n});\n\nfunction write_ct(ct, opts) {\n\tvar o = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (CTYPE_XML_ROOT);\n\to = o.concat(CTYPE_DEFAULTS);\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('drawings');\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n});\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file) {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data, currentFilePath) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nvar RELS_EXTERN = [RELS.HLINK, RELS.XPATH, RELS.XMISS];\nfunction add_rels(rels, rId, f, type, relobj, targetmode) {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(rId < 0) for(rId = 1; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if(RELS_EXTERN.indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 \n\t\tcase 'file-entry': // 4.3 \n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 \n\t\tcase 'algorithm': // 4.5 \n\t\tcase 'start-key-generation': // 4.6 \n\t\tcase 'key-derivation': // 4.7 \n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest) {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\to.push(' \\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' \\n');\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file, res, tag) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base, file) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nvar write_meta_ods = (function() {\n\tvar payload = 'Sheet' + 'JS ' + XLSX.version + '';\n\treturn function wmo() {\n\t\treturn payload;\n\t};\n})();\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nXMLNS.CORE_PROPS = \"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\";\nRELS.CORE_PROPS = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties';\n\nvar CORE_PROPS_REGEX = (function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nvar CORE_PROPS_XML_ROOT = writextag('cp:coreProperties', null, {\n\t//'xmlns': XMLNS.CORE_PROPS,\n\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t'xmlns:dc': XMLNS.dc,\n\t'xmlns:dcterms': XMLNS.dcterms,\n\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, CORE_PROPS_XML_ROOT], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nXMLNS.EXT_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\";\nRELS.EXT_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties';\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nvar EXT_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.EXT_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_ext_props(cp) {\n\tvar o = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (EXT_PROPS_XML_ROOT);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', 'Worksheets')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"\" + escapexml(s) + \"\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nXMLNS.CUST_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\";\nRELS.CUST_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties';\n\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': name = null; break;\n\t\t\tdefault: if (x.indexOf('');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM = evert(XLMLDocPropsMap);\n\nfunction xlml_set_prop(Props, tag, val) {\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o = [];\n\tif(Props) keys(Props).forEach(function(k) {\nif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\nif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t, pad) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob) {\n\tvar length = blob.read_shift(4);\n\tvar ret = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.10 VtVecUnalignedLpstr */\nfunction parse_VtVecUnalignedLpstr(blob) {\n\treturn parse_VtVecUnalignedLpstrValue(blob);\n}\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i != cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OSHARED] 2.3.3.1.15 VtVecHeadingPair */\nfunction parse_VtVecHeadingPair(blob) {\n\t// NOTE: When invoked, wType & padding were already consumed\n\treturn parse_VtVecHeadingPairValue(blob);\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict = ({});\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type, _opts) {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPair(blob);\n\t\tcase 0x101E /*VT_LPSTR*/: return parse_VtVecUnalignedLpstr(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\np = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj = ({});\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2));\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ].concat(PseudoPropsPairs);\nfunction guess_property_type(val) {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI)[idx];\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\nvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({});\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier });\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI, entries2, clsid2) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"\" + z.t + \"\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob) {\n\tblob.l += 2; //var cAnti = blob.read_shift(2);\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length) {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tvar out = ({Target:target});\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tvar F = Target.indexOf(\"#\") > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\tout.write_shift(4, Target.length + 1);\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(2, Target.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tout.write_shift(4, 2*(Target.length + 1));\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(2, Target.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length + 1);\n\t\tfor(i = 0; i < Target.length; ++i) out.write_shift(1, Target.charCodeAt(i) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob) {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe});\n}\nfunction write_XLSCell(R, C, ixfe, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n0x00: parse_FtSkip, /* FtEnd */\n0x04: parse_FtSkip, /* FtMacro */\n0x05: parse_FtSkip, /* FtButton */\n0x06: parse_FtSkip, /* FtGmo */\n0x07: parse_FtCf, /* FtCf */\n0x08: parse_FtSkip, /* FtPioGrbit */\n0x09: parse_FtSkip, /* FtPictFmla */\n0x0A: parse_FtSkip, /* FtCbls */\n0x0B: parse_FtSkip, /* FtRbo */\n0x0C: parse_FtSkip, /* FtSbs */\n0x0D: parse_FtNts, /* FtNts */\n0x0E: parse_FtSkip, /* FtSbsFmla */\n0x0F: parse_FtSkip, /* FtGboData */\n0x10: parse_FtSkip, /* FtEdoData */\n0x11: parse_FtSkip, /* FtRboData */\n0x12: parse_FtSkip, /* FtCblsData */\n0x13: parse_FtSkip, /* FtLbsData */\n0x14: parse_FtSkip, /* FtCblsFmla */\n0x15: parse_FtCmo\n};\nfunction parse_FtArray(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb, t, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length) {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs = ([]);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\no.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({});\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1() {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R, C, v, os ) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R, C, v, os, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i, f, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R, C, v, os, opts, t) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R, C, v, os) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t});\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length) {\n\tvar merges = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = [];\nparse_BIFF5OT[0x08] = function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts);\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob) {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags});\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r, c, val) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r, c, val) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF = (function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n0x01: 437, 0x02: 850,\n0x03: 1252, 0x04: 10000,\n0x64: 852, 0x65: 866,\n0x66: 865, 0x67: 861,\n0x68: 895, 0x69: 620,\n0x6A: 737, 0x6B: 857,\n0x78: 950, 0x79: 949,\n0x7A: 936, 0x7B: 932,\n0x7C: 874, 0x7D: 1255,\n0x7E: 1256, 0x96: 10007,\n0x97: 10029, 0x98: 10006,\n0xC8: 1250, 0xC9: 1251,\n0xCA: 1254, 0xCB: 1253,\n\n\t/* shapefile DBF extension */\n0x00: 20127, 0x08: 865,\n0x09: 437, 0x0A: 850,\n0x0B: 437, 0x0D: 437,\n0x0E: 850, 0x0F: 437,\n0x10: 850, 0x11: 437,\n0x12: 850, 0x13: 932,\n0x14: 850, 0x15: 437,\n0x16: 850, 0x17: 865,\n0x18: 437, 0x19: 437,\n0x1A: 850, 0x1B: 437,\n0x1C: 863, 0x1D: 850,\n0x1F: 852, 0x22: 852,\n0x23: 852, 0x24: 860,\n0x25: 850, 0x26: 866,\n0x37: 850, 0x40: 852,\n0x4D: 936, 0x4E: 949,\n0x4F: 950, 0x50: 874,\n0x57: 1252, 0x58: 1252,\n0x59: 1252,\n\n0xFF: 16969\n};\nvar dbf_reverse_map = evert({\n0x01: 437, 0x02: 850,\n0x03: 1252, 0x04: 10000,\n0x64: 852, 0x65: 866,\n0x66: 865, 0x67: 861,\n0x68: 895, 0x69: 620,\n0x6A: 737, 0x6B: 857,\n0x78: 950, 0x79: 949,\n0x7A: 936, 0x7B: 932,\n0x7C: 874, 0x7D: 1255,\n0x7E: 1256, 0x96: 10007,\n0x97: 10029, 0x98: 10006,\n0xC8: 1250, 0xC9: 1251,\n0xCA: 1254, 0xCB: 1253,\n0x00: 20127\n});\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts) {\n\tvar out = [];\n\t/* TODO: browser based */\n\tvar d = (new_raw_buf(1));\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64.decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = false;\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: case 0x03: break;\n\t\tcase 0x30: vfp = true; memo = true; break;\n\t\tcase 0x31: vfp = true; break;\n\t\tcase 0x83: memo = true; break;\n\t\tcase 0x8B: memo = true; break;\n\t\tcase 0x8C: memo = true; l7 = true; break;\n\t\tcase 0xF5: memo = true; break;\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\tvar /*filedate = new Date(),*/ nrow = 0, fpos = 0;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\t/*filedate = new Date(d.read_shift(1) + 1900, d.read_shift(1) - 1, d.read_shift(1));*/d.l += 3;\n\tif(ft != 0x02) nrow = d.read_shift(4); if(nrow > 1048576) nrow = 1e6;\n\tif(ft != 0x02) fpos = d.read_shift(2);\n\tvar rlen = d.read_shift(2);\n\n\tvar /*flags = 0,*/ current_cp = 1252;\n\tif(ft != 0x02) {\n\td.l+=16;\n\t/*flags = */d.read_shift(1);\n\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t/* codepage present in FoxPro */\n\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\td.l+=1;\n\n\td.l+=2;\n\t}\n\tif(l7) d.l += 36;\nvar fields = [], field = ({});\n\tvar hend = fpos - 10 - (vfp ? 264 : 0), ww = l7 ? 32 : 11;\n\twhile(ft == 0x02 ? d.l < d.length && d[d.l] != 0x0d: d.l < hend) {\n\t\tfield = ({});\n\t\tfield.name = cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // VFP Double\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General\n\t\t\tcase 'P': // Picture\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'C': // character\n\t\t\tcase 'D': // date\n\t\t\tcase 'F': // floating point\n\t\t\tcase 'I': // long\n\t\t\tcase 'L': // boolean\n\t\t\tcase 'M': // memo\n\t\t\tcase 'N': // number\n\t\t\tcase 'O': // double\n\t\t\tcase 'T': // datetime\n\t\t\tcase 'Y': // currency\n\t\t\tcase '0': // VFP _NullFlags\n\t\t\tcase '@': // timestamp\n\t\t\tcase '+': // autoincrement\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\telse if(ft == 0x02) d.l = 0x209;\n\tif(ft != 0x02) {\n\t\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\t\td.l = fpos;\n\t}\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) { d.l+=rlen; continue; }\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\tout[R][C] = cptable.utils.decode(current_cp, dd);\n\t\t\t\t\tout[R][C] = out[R][C].trim();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase ' ': case '?': out[R][C] = false; break; /* NOTE: technically uninitialized */\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N': out[R][C] = +s.replace(/\\u0000/g,\"\").trim(); break;\n\t\t\t\tcase '@': out[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400); break;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4; break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts) {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\treturn aoa_to_sheet(dbf_to_aoa(buf, o), o);\n}\n\nfunction dbf_to_workbook(buf, opts) {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws, opts) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1);\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(i == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar col = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tvar guess = '', _guess = '';\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\tif(guess == 'C') break;\n\t\t}\n\t\trlen += _RLEN[guess] || 0;\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[current_ansi] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += _RLEN[coltypes[i]] || 0;\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j\":190, \"?\":191, \"{\":223\n\t});\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str, opts) {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr = [];\n\t\tvar formats = [];\n\t\tvar next_cell_format = null;\n\t\tvar sht = {}, rowinfo = [], colinfo = [], cw = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false;\n\t\t\tfor(rj=1; rj 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d, opts) {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d, opts) { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell, ws, R, C) {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number') col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number') col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out, rows) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws, opts) {\n\t\tvar preamble = [\"ID;PWXL;N;E\"], o = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = (function() {\n\tfunction dif_to_aoa(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str, opts) {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri].trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str, opts) { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str, opts) { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = (function() {\n\t\tvar push_field = function pf(o, topic, v, n, s) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o, type, v, s) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws) {\n\t\t\tvar o = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF.format(cell.z || SSF._table[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = (function() {\n\tfunction decode(s) { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s) { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str, opts) {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d, opts) { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d, opts) { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws) {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o = [], oo = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF.format(cell.z || SSF._table[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws) {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = (function() {\n\tfunction set_text_arr(data, arr, R, C, o) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f, opts) {\n\t\tvar o = opts || {};\n\t\tvar arr = ([]);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n0x2C: ',',\n0x09: \"\\t\",\n0x3B: ';'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n0x2C: 3,\n0x09: 2,\n0x3B: 1\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]];\n\t}\n\n\tfunction dsv_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t}\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0;\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({});\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF.format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1;\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str, opts) {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d, opts) {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64.decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8');\n\t\t\t\telse if(opts.codepage && typeof cptable !== 'undefined') str = cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = d.toString('binary');\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if((opts.type == 'binary') && typeof cptable !== 'undefined' && opts.codepage) str = cptable.utils.decode(opts.codepage, cptable.utils.encode(1252,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d, opts) { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws) {\n\t\tvar o = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = (function() {\n\tfunction lotushopper(data, cb, opts) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = (R.f||parsenoop)(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R.n, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64.decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts) {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s = ((o.dense ? [] : {})), n = \"Sheet1\", sidx = 0;\n\t\tvar sheets = {}, snames = [n];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x02) o.Enum = WK1Enum;\n\t\telse if(d[2] == 0x1a) o.Enum = WK3Enum;\n\t\telse if(d[2] == 0x0e) { o.Enum = WK3Enum; o.qpro = true; d.l = 0; }\n\t\telse throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\tlotushopper(d, function(val, Rn, RT) {\n\t\t\tif(d[2] == 0x02) switch(RT) {\n\t\t\t\tcase 0x00:\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || SSF._table[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t} else switch(RT) {\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: break;\n\t\t\t}\n\t\t}, o);\n\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[n] = s;\n\t\treturn { SheetNames: snames, Sheets:sheets };\n\t}\n\n\tfunction parse_RANGE(blob) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_cell_3(blob) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\t/* TODO: figure out all of the corner cases */\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t\tdefault: throw \"unknown NUMBER_18 encoding \" + (v & 0x07);\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) { o[1].v = 0; return o; }\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (s*2 - 1) * ((e > 0 ? (v2 << e) : (v2 >>> -e)) + (e > -32 ? (v1 << (e + 32)) : (v1 >>> -(e + 32))));\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tvar WK1Enum = {\n0x0000: { n:\"BOF\", f:parseuint16 },\n0x0001: { n:\"EOF\" },\n0x0002: { n:\"CALCMODE\" },\n0x0003: { n:\"CALCORDER\" },\n0x0004: { n:\"SPLIT\" },\n0x0005: { n:\"SYNC\" },\n0x0006: { n:\"RANGE\", f:parse_RANGE },\n0x0007: { n:\"WINDOW1\" },\n0x0008: { n:\"COLW1\" },\n0x0009: { n:\"WINTWO\" },\n0x000A: { n:\"COLW2\" },\n0x000B: { n:\"NAME\" },\n0x000C: { n:\"BLANK\" },\n0x000D: { n:\"INTEGER\", f:parse_INTEGER },\n0x000E: { n:\"NUMBER\", f:parse_NUMBER },\n0x000F: { n:\"LABEL\", f:parse_LABEL },\n0x0010: { n:\"FORMULA\", f:parse_FORMULA },\n0x0018: { n:\"TABLE\" },\n0x0019: { n:\"ORANGE\" },\n0x001A: { n:\"PRANGE\" },\n0x001B: { n:\"SRANGE\" },\n0x001C: { n:\"FRANGE\" },\n0x001D: { n:\"KRANGE1\" },\n0x0020: { n:\"HRANGE\" },\n0x0023: { n:\"KRANGE2\" },\n0x0024: { n:\"PROTEC\" },\n0x0025: { n:\"FOOTER\" },\n0x0026: { n:\"HEADER\" },\n0x0027: { n:\"SETUP\" },\n0x0028: { n:\"MARGINS\" },\n0x0029: { n:\"LABELFMT\" },\n0x002A: { n:\"TITLES\" },\n0x002B: { n:\"SHEETJS\" },\n0x002D: { n:\"GRAPH\" },\n0x002E: { n:\"NGRAPH\" },\n0x002F: { n:\"CALCCOUNT\" },\n0x0030: { n:\"UNFORMATTED\" },\n0x0031: { n:\"CURSORW12\" },\n0x0032: { n:\"WINDOW\" },\n0x0033: { n:\"STRING\", f:parse_LABEL },\n0x0037: { n:\"PASSWORD\" },\n0x0038: { n:\"LOCKED\" },\n0x003C: { n:\"QUERY\" },\n0x003D: { n:\"QUERYNAME\" },\n0x003E: { n:\"PRINT\" },\n0x003F: { n:\"PRINTNAME\" },\n0x0040: { n:\"GRAPH2\" },\n0x0041: { n:\"GRAPHNAME\" },\n0x0042: { n:\"ZOOM\" },\n0x0043: { n:\"SYMSPLIT\" },\n0x0044: { n:\"NSROWS\" },\n0x0045: { n:\"NSCOLS\" },\n0x0046: { n:\"RULER\" },\n0x0047: { n:\"NNAME\" },\n0x0048: { n:\"ACOMM\" },\n0x0049: { n:\"AMACRO\" },\n0x004A: { n:\"PARSE\" },\n0x00FF: { n:\"\", f:parsenoop }\n\t};\n\n\tvar WK3Enum = {\n0x0000: { n:\"BOF\" },\n0x0001: { n:\"EOF\" },\n0x0003: { n:\"??\" },\n0x0004: { n:\"??\" },\n0x0005: { n:\"??\" },\n0x0006: { n:\"??\" },\n0x0007: { n:\"??\" },\n0x0009: { n:\"??\" },\n0x000a: { n:\"??\" },\n0x000b: { n:\"??\" },\n0x000c: { n:\"??\" },\n0x000e: { n:\"??\" },\n0x000f: { n:\"??\" },\n0x0010: { n:\"??\" },\n0x0011: { n:\"??\" },\n0x0012: { n:\"??\" },\n0x0013: { n:\"??\" },\n0x0015: { n:\"??\" },\n0x0016: { n:\"LABEL16\", f:parse_LABEL_16},\n0x0017: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n0x0018: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n0x0019: { n:\"FORMULA19\", f:parse_FORMULA_19},\n0x001a: { n:\"??\" },\n0x001b: { n:\"??\" },\n0x001c: { n:\"??\" },\n0x001d: { n:\"??\" },\n0x001e: { n:\"??\" },\n0x001f: { n:\"??\" },\n0x0021: { n:\"??\" },\n0x0025: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n0x0027: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n0x0028: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n0x00FF: { n:\"\", f:parsenoop }\n\t};\n\treturn {\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '':\n\t\t\tcase '': font.shadow = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '':\n\t\t\tcase '': font.outline = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '':\n\t\t\tcase '': font.strike = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '':\n\t\t\tcase '': font.u = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '':\n\t\t\tcase '': font.b = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '':\n\t\t\tcase '': font.i = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = (function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o = ({t:'s', v:unescapexml(t[1])});\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = (function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data, opts) {\n\tvar s = ([]), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nRELS.SST = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst, opts) {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS.main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts) {\n\tvar s = ([]);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* 'BrtBeginSst' */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* 'BrtSSTItem' */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* 'BrtEndSst' */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R_n.indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if(R_n.indexOf(\"End\") > 0){/* empty */}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSst\", write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, \"BrtSSTItem\", write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, \"BrtEndSst\");\n\treturn ba.end();\n}\nfunction _JS2ANSI(str) {\n\tif(typeof cptable !== 'undefined') return cptable.utils.encode(current_ansi, str);\n\tvar o = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length) {\n\tvar o = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\nif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt() { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = (function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) });\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = (function() {\n\tfunction rtf_to_sheet(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(d.toString('binary'), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\tfunction rtf_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\t// TODO: parse\n\t\tif(!str.match(/\\\\trowd/)) throw new Error(\"RTF missing table\");\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d, opts) { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws) {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = {};\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(SSF._table));\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = SSF._table[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF.load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs) {\n\tvar o = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= (function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nvar STYLES_XML_ROOT = writextag('styleSheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:vt': XMLNS.vt\n});\n\nRELS.STY = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\n\nfunction write_sty_xml(wb, opts) {\n\tvar o = [XML_HEADER, STYLES_XML_ROOT], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i, f, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length, opts) {\n\tvar out = ({});\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames = (evert(XLSBFillPTNames));\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tvar fls = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]);\n\tfor(var y in SSF._table) styles.NumberFmt[y] = SSF._table[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* 'BrtFmt' */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF.load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* 'BrtFont' */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* 'BrtKnownFonts' */ break;\n\t\t\tcase 0x002D: /* 'BrtFill' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* 'BrtBorder' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* 'BrtXF' */\n\t\t\t\tif(state[state.length - 1] == \"BrtBeginCellXFs\") {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* 'BrtStyle' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x023C: /* 'BrtMRUColor' */\n\t\t\tcase 0x01DB: /* 'BrtIndexedColor': */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* 'BrtDXF14' */\n\t\t\tcase 0x0836: /* 'BrtDXF15' */\n\t\t\tcase 0x046A: /* 'BrtSlicerStyleElement' */\n\t\t\tcase 0x0200: /* 'BrtTableStyleElement' */\n\t\t\tcase 0x082F: /* 'BrtTimelineStyleElement' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFmts\", write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, \"BrtFmt\", write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, \"BrtEndFmts\");\n}\n\nfunction write_FONTS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFonts\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFont\", write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, \"BrtEndFonts\");\n}\n\nfunction write_FILLS_bin(ba) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFills\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, \"BrtEndFills\");\n}\n\nfunction write_BORDERS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginBorders\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtBorder\", write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, \"BrtEndBorders\");\n}\n\nfunction write_CELLSTYLEXFS_bin(ba) {\n\tvar cnt = 1;\n\twrite_record(ba, \"BrtBeginCellStyleXFs\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtXF\", write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellStyleXFs\");\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, \"BrtBeginCellXFs\", write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, \"BrtXF\", write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellXFs\");\n}\n\nfunction write_STYLES_bin(ba) {\n\tvar cnt = 1;\n\n\twrite_record(ba, \"BrtBeginStyles\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtStyle\", write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, \"BrtEndStyles\");\n}\n\nfunction write_DXFS_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginDXFs\", write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, \"BrtEndDXFs\");\n}\n\nfunction write_TABLESTYLES_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginTableStyles\", write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, \"BrtEndTableStyles\");\n}\n\nfunction write_COLORPALETTE_bin() {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginStyleSheet\");\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, \"BrtEndStyleSheet\");\n\treturn ba.end();\n}\nRELS.THEME = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\n\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme() { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme() { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) return parse_theme_xml(write_theme());\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts) {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles || !jszip) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = new jszip(data); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob) {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data) {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ' 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml() {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT.toString(16) + \" \" + R_n);\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\nRELS.IMG = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\nRELS.DRAW = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";\n\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels) {\n\tif(!data) return \"??\";\n\t/*\n\t Chartsheet Drawing:\n\t - 20.5.2.35 wsDr CT_Drawing\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n - chart reference\n\t the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = {'color2':\"#BEFF82\", 'type':\"gradient\"};\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"});\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nRELS.CMNT = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";\n\nfunction sheet_insert_comments(sheet, comments) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"});\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o = ({a: comment.author, t: comment.t, r: comment.r});\n\t\tif(comment.h) o.h = comment.h;\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data, opts) {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors = [];\n\tvar commentList = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid });\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = rt.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nvar CMNT_XML_ROOT = writextag('comments', null, { 'xmlns': XMLNS.main[0] });\nfunction write_comments_xml(data) {\n\tvar o = [XML_HEADER, CMNT_XML_ROOT];\n\n\tvar iauthor = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) > -1) return;\n\t\tiauthor.push(a);\n\t\to.push(\"\" + a + \"\");\n\t}); });\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\td[1].forEach(function(c) {\n\t\t\t/* 18.7.3 CT_Comment */\n\t\t\to.push('');\n\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\to.push('');\n\t\t});\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts) {\n\tvar out = [];\n\tvar authors = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data) {\n\tvar ba = buf_array();\n\tvar iauthor = [];\n\twrite_record(ba, \"BrtBeginComments\");\n\n\twrite_record(ba, \"BrtBeginCommentAuthors\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, \"BrtCommentAuthor\", write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentAuthors\");\n\n\twrite_record(ba, \"BrtBeginCommentList\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, \"BrtBeginComment\", write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, \"BrtCommentText\", write_BrtCommentText(c));\n\t\t\twrite_record(ba, \"BrtEndComment\");\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentList\");\n\n\twrite_record(ba, \"BrtEndComments\");\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n\tvar newcfb = CFB.utils.cfb_new({root:\"R\"});\n\tcfb.FullPaths.forEach(function(p, i) {\n\t\tif(p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/)) return;\n\t\tvar newpath = p.replace(/^[^\\/]*/,\"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n\t\tCFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n\t});\n\treturn CFB.write(newcfb);\n}\n\nfunction fill_vba_xls(cfb, vba) {\n\tvba.FullPaths.forEach(function(p, i) {\n\t\tif(i == 0) return;\n\t\tvar newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n\t\tif(newpath.slice(-1) !== \"/\") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n\t});\n}\n\nvar VBAFMTS = [ \"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\" ];\n\nRELS.DS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\";\nRELS.MS = \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\";\n\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin() { return {'!type':'dialog'}; }\nfunction parse_ds_xml() { return {'!type':'dialog'}; }\nfunction parse_ms_bin() { return {'!type':'macro'}; }\nfunction parse_ms_xml() { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = (function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase = ({r:0,c:0});\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr, base) {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc =(function(){\n\treturn function a1_to_rc(fstr, base) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f, delta) {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f, range, cell) {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f) {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f) {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts) {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n0x01: { n:'PtgExp', f:parse_PtgExp },\n0x02: { n:'PtgTbl', f:parse_PtgTbl },\n0x03: { n:'PtgAdd', f:parseread1 },\n0x04: { n:'PtgSub', f:parseread1 },\n0x05: { n:'PtgMul', f:parseread1 },\n0x06: { n:'PtgDiv', f:parseread1 },\n0x07: { n:'PtgPower', f:parseread1 },\n0x08: { n:'PtgConcat', f:parseread1 },\n0x09: { n:'PtgLt', f:parseread1 },\n0x0A: { n:'PtgLe', f:parseread1 },\n0x0B: { n:'PtgEq', f:parseread1 },\n0x0C: { n:'PtgGe', f:parseread1 },\n0x0D: { n:'PtgGt', f:parseread1 },\n0x0E: { n:'PtgNe', f:parseread1 },\n0x0F: { n:'PtgIsect', f:parseread1 },\n0x10: { n:'PtgUnion', f:parseread1 },\n0x11: { n:'PtgRange', f:parseread1 },\n0x12: { n:'PtgUplus', f:parseread1 },\n0x13: { n:'PtgUminus', f:parseread1 },\n0x14: { n:'PtgPercent', f:parseread1 },\n0x15: { n:'PtgParen', f:parseread1 },\n0x16: { n:'PtgMissArg', f:parseread1 },\n0x17: { n:'PtgStr', f:parse_PtgStr },\n0x1A: { n:'PtgSheet', f:parse_PtgSheet },\n0x1B: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n0x1C: { n:'PtgErr', f:parse_PtgErr },\n0x1D: { n:'PtgBool', f:parse_PtgBool },\n0x1E: { n:'PtgInt', f:parse_PtgInt },\n0x1F: { n:'PtgNum', f:parse_PtgNum },\n0x20: { n:'PtgArray', f:parse_PtgArray },\n0x21: { n:'PtgFunc', f:parse_PtgFunc },\n0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n0x23: { n:'PtgName', f:parse_PtgName },\n0x24: { n:'PtgRef', f:parse_PtgRef },\n0x25: { n:'PtgArea', f:parse_PtgArea },\n0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n0x2E: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n0x2F: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n0x39: { n:'PtgNameX', f:parse_PtgNameX },\n0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n0x40: 0x20, 0x60: 0x20,\n0x41: 0x21, 0x61: 0x21,\n0x42: 0x22, 0x62: 0x22,\n0x43: 0x23, 0x63: 0x23,\n0x44: 0x24, 0x64: 0x24,\n0x45: 0x25, 0x65: 0x25,\n0x46: 0x26, 0x66: 0x26,\n0x47: 0x27, 0x67: 0x27,\n0x48: 0x28, 0x68: 0x28,\n0x49: 0x29, 0x69: 0x29,\n0x4A: 0x2A, 0x6A: 0x2A,\n0x4B: 0x2B, 0x6B: 0x2B,\n0x4C: 0x2C, 0x6C: 0x2C,\n0x4D: 0x2D, 0x6D: 0x2D,\n0x4E: 0x2E, 0x6E: 0x2E,\n0x4F: 0x2F, 0x6F: 0x2F,\n0x58: 0x22, 0x78: 0x22,\n0x59: 0x39, 0x79: 0x39,\n0x5A: 0x3A, 0x7A: 0x3A,\n0x5B: 0x3B, 0x7B: 0x3B,\n0x5C: 0x3C, 0x7C: 0x3C,\n0x5D: 0x3D, 0x7D: 0x3D\n};\n(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})();\n\nvar Ptg18 = {\n0x01: { n:'PtgElfLel', f:parse_PtgElfLel },\n0x02: { n:'PtgElfRw', f:parse_PtgElfRw },\n0x03: { n:'PtgElfCol', f:parse_PtgElfCol },\n0x06: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n0x07: { n:'PtgElfColV', f:parse_PtgElfColV },\n0x0A: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n0x0B: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n0x0D: { n:'PtgElfColS', f:parse_PtgElfColS },\n0x0F: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n0x10: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n0x19: { n:'PtgList', f:parse_PtgList },\n0x1D: { n:'PtgSxName', f:parse_PtgSxName },\n0xFF: {}\n};\nvar Ptg19 = {\n0x00: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n0x80: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n0xFF: {}\n};\nPtg19[0x21] = Ptg19[0x20];\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f) {\n\tvar o = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\nr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nvar quoteCharacters = new RegExp(/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/);\nfunction formula_quote_sheet_name(sname, opts) {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (quoteCharacters.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti, opts) {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti, opts) {\n\treturn formula_quote_sheet_name(get_ixti_raw(supbooks, ixti, opts), opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell, supbooks, opts) {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack = [], e1, e2, c, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\nc = shift_cell_xls((f[1][1]), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\nc = cell ? shift_cell_xls((f[1][1]), cell, opts) : (f[1][1]);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\nixti = f[1][1]; c = shift_cell_xls((f[1][2]), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc = (f[1][0]), func = (f[1][1]);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\nr = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\nr = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\nixti = f[1][1]; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\tif(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name];\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx = (f[1][1]); nameidx = (f[1][2]); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = get_ixti_raw(supbooks, bookidx, opts).split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]),r:(f[1][0])};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r});\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(f[1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(f[1]) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell, R, C, opts, os) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLS] 2.5.198.4 */\nvar Cetab = {\n0x0000: 'BEEP',\n0x0001: 'OPEN',\n0x0002: 'OPEN.LINKS',\n0x0003: 'CLOSE.ALL',\n0x0004: 'SAVE',\n0x0005: 'SAVE.AS',\n0x0006: 'FILE.DELETE',\n0x0007: 'PAGE.SETUP',\n0x0008: 'PRINT',\n0x0009: 'PRINTER.SETUP',\n0x000A: 'QUIT',\n0x000B: 'NEW.WINDOW',\n0x000C: 'ARRANGE.ALL',\n0x000D: 'WINDOW.SIZE',\n0x000E: 'WINDOW.MOVE',\n0x000F: 'FULL',\n0x0010: 'CLOSE',\n0x0011: 'RUN',\n0x0016: 'SET.PRINT.AREA',\n0x0017: 'SET.PRINT.TITLES',\n0x0018: 'SET.PAGE.BREAK',\n0x0019: 'REMOVE.PAGE.BREAK',\n0x001A: 'FONT',\n0x001B: 'DISPLAY',\n0x001C: 'PROTECT.DOCUMENT',\n0x001D: 'PRECISION',\n0x001E: 'A1.R1C1',\n0x001F: 'CALCULATE.NOW',\n0x0020: 'CALCULATION',\n0x0022: 'DATA.FIND',\n0x0023: 'EXTRACT',\n0x0024: 'DATA.DELETE',\n0x0025: 'SET.DATABASE',\n0x0026: 'SET.CRITERIA',\n0x0027: 'SORT',\n0x0028: 'DATA.SERIES',\n0x0029: 'TABLE',\n0x002A: 'FORMAT.NUMBER',\n0x002B: 'ALIGNMENT',\n0x002C: 'STYLE',\n0x002D: 'BORDER',\n0x002E: 'CELL.PROTECTION',\n0x002F: 'COLUMN.WIDTH',\n0x0030: 'UNDO',\n0x0031: 'CUT',\n0x0032: 'COPY',\n0x0033: 'PASTE',\n0x0034: 'CLEAR',\n0x0035: 'PASTE.SPECIAL',\n0x0036: 'EDIT.DELETE',\n0x0037: 'INSERT',\n0x0038: 'FILL.RIGHT',\n0x0039: 'FILL.DOWN',\n0x003D: 'DEFINE.NAME',\n0x003E: 'CREATE.NAMES',\n0x003F: 'FORMULA.GOTO',\n0x0040: 'FORMULA.FIND',\n0x0041: 'SELECT.LAST.CELL',\n0x0042: 'SHOW.ACTIVE.CELL',\n0x0043: 'GALLERY.AREA',\n0x0044: 'GALLERY.BAR',\n0x0045: 'GALLERY.COLUMN',\n0x0046: 'GALLERY.LINE',\n0x0047: 'GALLERY.PIE',\n0x0048: 'GALLERY.SCATTER',\n0x0049: 'COMBINATION',\n0x004A: 'PREFERRED',\n0x004B: 'ADD.OVERLAY',\n0x004C: 'GRIDLINES',\n0x004D: 'SET.PREFERRED',\n0x004E: 'AXES',\n0x004F: 'LEGEND',\n0x0050: 'ATTACH.TEXT',\n0x0051: 'ADD.ARROW',\n0x0052: 'SELECT.CHART',\n0x0053: 'SELECT.PLOT.AREA',\n0x0054: 'PATTERNS',\n0x0055: 'MAIN.CHART',\n0x0056: 'OVERLAY',\n0x0057: 'SCALE',\n0x0058: 'FORMAT.LEGEND',\n0x0059: 'FORMAT.TEXT',\n0x005A: 'EDIT.REPEAT',\n0x005B: 'PARSE',\n0x005C: 'JUSTIFY',\n0x005D: 'HIDE',\n0x005E: 'UNHIDE',\n0x005F: 'WORKSPACE',\n0x0060: 'FORMULA',\n0x0061: 'FORMULA.FILL',\n0x0062: 'FORMULA.ARRAY',\n0x0063: 'DATA.FIND.NEXT',\n0x0064: 'DATA.FIND.PREV',\n0x0065: 'FORMULA.FIND.NEXT',\n0x0066: 'FORMULA.FIND.PREV',\n0x0067: 'ACTIVATE',\n0x0068: 'ACTIVATE.NEXT',\n0x0069: 'ACTIVATE.PREV',\n0x006A: 'UNLOCKED.NEXT',\n0x006B: 'UNLOCKED.PREV',\n0x006C: 'COPY.PICTURE',\n0x006D: 'SELECT',\n0x006E: 'DELETE.NAME',\n0x006F: 'DELETE.FORMAT',\n0x0070: 'VLINE',\n0x0071: 'HLINE',\n0x0072: 'VPAGE',\n0x0073: 'HPAGE',\n0x0074: 'VSCROLL',\n0x0075: 'HSCROLL',\n0x0076: 'ALERT',\n0x0077: 'NEW',\n0x0078: 'CANCEL.COPY',\n0x0079: 'SHOW.CLIPBOARD',\n0x007A: 'MESSAGE',\n0x007C: 'PASTE.LINK',\n0x007D: 'APP.ACTIVATE',\n0x007E: 'DELETE.ARROW',\n0x007F: 'ROW.HEIGHT',\n0x0080: 'FORMAT.MOVE',\n0x0081: 'FORMAT.SIZE',\n0x0082: 'FORMULA.REPLACE',\n0x0083: 'SEND.KEYS',\n0x0084: 'SELECT.SPECIAL',\n0x0085: 'APPLY.NAMES',\n0x0086: 'REPLACE.FONT',\n0x0087: 'FREEZE.PANES',\n0x0088: 'SHOW.INFO',\n0x0089: 'SPLIT',\n0x008A: 'ON.WINDOW',\n0x008B: 'ON.DATA',\n0x008C: 'DISABLE.INPUT',\n0x008E: 'OUTLINE',\n0x008F: 'LIST.NAMES',\n0x0090: 'FILE.CLOSE',\n0x0091: 'SAVE.WORKBOOK',\n0x0092: 'DATA.FORM',\n0x0093: 'COPY.CHART',\n0x0094: 'ON.TIME',\n0x0095: 'WAIT',\n0x0096: 'FORMAT.FONT',\n0x0097: 'FILL.UP',\n0x0098: 'FILL.LEFT',\n0x0099: 'DELETE.OVERLAY',\n0x009B: 'SHORT.MENUS',\n0x009F: 'SET.UPDATE.STATUS',\n0x00A1: 'COLOR.PALETTE',\n0x00A2: 'DELETE.STYLE',\n0x00A3: 'WINDOW.RESTORE',\n0x00A4: 'WINDOW.MAXIMIZE',\n0x00A6: 'CHANGE.LINK',\n0x00A7: 'CALCULATE.DOCUMENT',\n0x00A8: 'ON.KEY',\n0x00A9: 'APP.RESTORE',\n0x00AA: 'APP.MOVE',\n0x00AB: 'APP.SIZE',\n0x00AC: 'APP.MINIMIZE',\n0x00AD: 'APP.MAXIMIZE',\n0x00AE: 'BRING.TO.FRONT',\n0x00AF: 'SEND.TO.BACK',\n0x00B9: 'MAIN.CHART.TYPE',\n0x00BA: 'OVERLAY.CHART.TYPE',\n0x00BB: 'SELECT.END',\n0x00BC: 'OPEN.MAIL',\n0x00BD: 'SEND.MAIL',\n0x00BE: 'STANDARD.FONT',\n0x00BF: 'CONSOLIDATE',\n0x00C0: 'SORT.SPECIAL',\n0x00C1: 'GALLERY.3D.AREA',\n0x00C2: 'GALLERY.3D.COLUMN',\n0x00C3: 'GALLERY.3D.LINE',\n0x00C4: 'GALLERY.3D.PIE',\n0x00C5: 'VIEW.3D',\n0x00C6: 'GOAL.SEEK',\n0x00C7: 'WORKGROUP',\n0x00C8: 'FILL.GROUP',\n0x00C9: 'UPDATE.LINK',\n0x00CA: 'PROMOTE',\n0x00CB: 'DEMOTE',\n0x00CC: 'SHOW.DETAIL',\n0x00CE: 'UNGROUP',\n0x00CF: 'OBJECT.PROPERTIES',\n0x00D0: 'SAVE.NEW.OBJECT',\n0x00D1: 'SHARE',\n0x00D2: 'SHARE.NAME',\n0x00D3: 'DUPLICATE',\n0x00D4: 'APPLY.STYLE',\n0x00D5: 'ASSIGN.TO.OBJECT',\n0x00D6: 'OBJECT.PROTECTION',\n0x00D7: 'HIDE.OBJECT',\n0x00D8: 'SET.EXTRACT',\n0x00D9: 'CREATE.PUBLISHER',\n0x00DA: 'SUBSCRIBE.TO',\n0x00DB: 'ATTRIBUTES',\n0x00DC: 'SHOW.TOOLBAR',\n0x00DE: 'PRINT.PREVIEW',\n0x00DF: 'EDIT.COLOR',\n0x00E0: 'SHOW.LEVELS',\n0x00E1: 'FORMAT.MAIN',\n0x00E2: 'FORMAT.OVERLAY',\n0x00E3: 'ON.RECALC',\n0x00E4: 'EDIT.SERIES',\n0x00E5: 'DEFINE.STYLE',\n0x00F0: 'LINE.PRINT',\n0x00F3: 'ENTER.DATA',\n0x00F9: 'GALLERY.RADAR',\n0x00FA: 'MERGE.STYLES',\n0x00FB: 'EDITION.OPTIONS',\n0x00FC: 'PASTE.PICTURE',\n0x00FD: 'PASTE.PICTURE.LINK',\n0x00FE: 'SPELLING',\n0x0100: 'ZOOM',\n0x0103: 'INSERT.OBJECT',\n0x0104: 'WINDOW.MINIMIZE',\n0x0109: 'SOUND.NOTE',\n0x010A: 'SOUND.PLAY',\n0x010B: 'FORMAT.SHAPE',\n0x010C: 'EXTEND.POLYGON',\n0x010D: 'FORMAT.AUTO',\n0x0110: 'GALLERY.3D.BAR',\n0x0111: 'GALLERY.3D.SURFACE',\n0x0112: 'FILL.AUTO',\n0x0114: 'CUSTOMIZE.TOOLBAR',\n0x0115: 'ADD.TOOL',\n0x0116: 'EDIT.OBJECT',\n0x0117: 'ON.DOUBLECLICK',\n0x0118: 'ON.ENTRY',\n0x0119: 'WORKBOOK.ADD',\n0x011A: 'WORKBOOK.MOVE',\n0x011B: 'WORKBOOK.COPY',\n0x011C: 'WORKBOOK.OPTIONS',\n0x011D: 'SAVE.WORKSPACE',\n0x0120: 'CHART.WIZARD',\n0x0121: 'DELETE.TOOL',\n0x0122: 'MOVE.TOOL',\n0x0123: 'WORKBOOK.SELECT',\n0x0124: 'WORKBOOK.ACTIVATE',\n0x0125: 'ASSIGN.TO.TOOL',\n0x0127: 'COPY.TOOL',\n0x0128: 'RESET.TOOL',\n0x0129: 'CONSTRAIN.NUMERIC',\n0x012A: 'PASTE.TOOL',\n0x012E: 'WORKBOOK.NEW',\n0x0131: 'SCENARIO.CELLS',\n0x0132: 'SCENARIO.DELETE',\n0x0133: 'SCENARIO.ADD',\n0x0134: 'SCENARIO.EDIT',\n0x0135: 'SCENARIO.SHOW',\n0x0136: 'SCENARIO.SHOW.NEXT',\n0x0137: 'SCENARIO.SUMMARY',\n0x0138: 'PIVOT.TABLE.WIZARD',\n0x0139: 'PIVOT.FIELD.PROPERTIES',\n0x013A: 'PIVOT.FIELD',\n0x013B: 'PIVOT.ITEM',\n0x013C: 'PIVOT.ADD.FIELDS',\n0x013E: 'OPTIONS.CALCULATION',\n0x013F: 'OPTIONS.EDIT',\n0x0140: 'OPTIONS.VIEW',\n0x0141: 'ADDIN.MANAGER',\n0x0142: 'MENU.EDITOR',\n0x0143: 'ATTACH.TOOLBARS',\n0x0144: 'VBAActivate',\n0x0145: 'OPTIONS.CHART',\n0x0148: 'VBA.INSERT.FILE',\n0x014A: 'VBA.PROCEDURE.DEFINITION',\n0x0150: 'ROUTING.SLIP',\n0x0152: 'ROUTE.DOCUMENT',\n0x0153: 'MAIL.LOGON',\n0x0156: 'INSERT.PICTURE',\n0x0157: 'EDIT.TOOL',\n0x0158: 'GALLERY.DOUGHNUT',\n0x015E: 'CHART.TREND',\n0x0160: 'PIVOT.ITEM.PROPERTIES',\n0x0162: 'WORKBOOK.INSERT',\n0x0163: 'OPTIONS.TRANSITION',\n0x0164: 'OPTIONS.GENERAL',\n0x0172: 'FILTER.ADVANCED',\n0x0175: 'MAIL.ADD.MAILER',\n0x0176: 'MAIL.DELETE.MAILER',\n0x0177: 'MAIL.REPLY',\n0x0178: 'MAIL.REPLY.ALL',\n0x0179: 'MAIL.FORWARD',\n0x017A: 'MAIL.NEXT.LETTER',\n0x017B: 'DATA.LABEL',\n0x017C: 'INSERT.TITLE',\n0x017D: 'FONT.PROPERTIES',\n0x017E: 'MACRO.OPTIONS',\n0x017F: 'WORKBOOK.HIDE',\n0x0180: 'WORKBOOK.UNHIDE',\n0x0181: 'WORKBOOK.DELETE',\n0x0182: 'WORKBOOK.NAME',\n0x0184: 'GALLERY.CUSTOM',\n0x0186: 'ADD.CHART.AUTOFORMAT',\n0x0187: 'DELETE.CHART.AUTOFORMAT',\n0x0188: 'CHART.ADD.DATA',\n0x0189: 'AUTO.OUTLINE',\n0x018A: 'TAB.ORDER',\n0x018B: 'SHOW.DIALOG',\n0x018C: 'SELECT.ALL',\n0x018D: 'UNGROUP.SHEETS',\n0x018E: 'SUBTOTAL.CREATE',\n0x018F: 'SUBTOTAL.REMOVE',\n0x0190: 'RENAME.OBJECT',\n0x019C: 'WORKBOOK.SCROLL',\n0x019D: 'WORKBOOK.NEXT',\n0x019E: 'WORKBOOK.PREV',\n0x019F: 'WORKBOOK.TAB.SPLIT',\n0x01A0: 'FULL.SCREEN',\n0x01A1: 'WORKBOOK.PROTECT',\n0x01A4: 'SCROLLBAR.PROPERTIES',\n0x01A5: 'PIVOT.SHOW.PAGES',\n0x01A6: 'TEXT.TO.COLUMNS',\n0x01A7: 'FORMAT.CHARTTYPE',\n0x01A8: 'LINK.FORMAT',\n0x01A9: 'TRACER.DISPLAY',\n0x01AE: 'TRACER.NAVIGATE',\n0x01AF: 'TRACER.CLEAR',\n0x01B0: 'TRACER.ERROR',\n0x01B1: 'PIVOT.FIELD.GROUP',\n0x01B2: 'PIVOT.FIELD.UNGROUP',\n0x01B3: 'CHECKBOX.PROPERTIES',\n0x01B4: 'LABEL.PROPERTIES',\n0x01B5: 'LISTBOX.PROPERTIES',\n0x01B6: 'EDITBOX.PROPERTIES',\n0x01B7: 'PIVOT.REFRESH',\n0x01B8: 'LINK.COMBO',\n0x01B9: 'OPEN.TEXT',\n0x01BA: 'HIDE.DIALOG',\n0x01BB: 'SET.DIALOG.FOCUS',\n0x01BC: 'ENABLE.OBJECT',\n0x01BD: 'PUSHBUTTON.PROPERTIES',\n0x01BE: 'SET.DIALOG.DEFAULT',\n0x01BF: 'FILTER',\n0x01C0: 'FILTER.SHOW.ALL',\n0x01C1: 'CLEAR.OUTLINE',\n0x01C2: 'FUNCTION.WIZARD',\n0x01C3: 'ADD.LIST.ITEM',\n0x01C4: 'SET.LIST.ITEM',\n0x01C5: 'REMOVE.LIST.ITEM',\n0x01C6: 'SELECT.LIST.ITEM',\n0x01C7: 'SET.CONTROL.VALUE',\n0x01C8: 'SAVE.COPY.AS',\n0x01CA: 'OPTIONS.LISTS.ADD',\n0x01CB: 'OPTIONS.LISTS.DELETE',\n0x01CC: 'SERIES.AXES',\n0x01CD: 'SERIES.X',\n0x01CE: 'SERIES.Y',\n0x01CF: 'ERRORBAR.X',\n0x01D0: 'ERRORBAR.Y',\n0x01D1: 'FORMAT.CHART',\n0x01D2: 'SERIES.ORDER',\n0x01D3: 'MAIL.LOGOFF',\n0x01D4: 'CLEAR.ROUTING.SLIP',\n0x01D5: 'APP.ACTIVATE.MICROSOFT',\n0x01D6: 'MAIL.EDIT.MAILER',\n0x01D7: 'ON.SHEET',\n0x01D8: 'STANDARD.WIDTH',\n0x01D9: 'SCENARIO.MERGE',\n0x01DA: 'SUMMARY.INFO',\n0x01DB: 'FIND.FILE',\n0x01DC: 'ACTIVE.CELL.FONT',\n0x01DD: 'ENABLE.TIPWIZARD',\n0x01DE: 'VBA.MAKE.ADDIN',\n0x01E0: 'INSERTDATATABLE',\n0x01E1: 'WORKGROUP.OPTIONS',\n0x01E2: 'MAIL.SEND.MAILER',\n0x01E5: 'AUTOCORRECT',\n0x01E9: 'POST.DOCUMENT',\n0x01EB: 'PICKLIST',\n0x01ED: 'VIEW.SHOW',\n0x01EE: 'VIEW.DEFINE',\n0x01EF: 'VIEW.DELETE',\n0x01FD: 'SHEET.BACKGROUND',\n0x01FE: 'INSERT.MAP.OBJECT',\n0x01FF: 'OPTIONS.MENONO',\n0x0205: 'MSOCHECKS',\n0x0206: 'NORMAL',\n0x0207: 'LAYOUT',\n0x0208: 'RM.PRINT.AREA',\n0x0209: 'CLEAR.PRINT.AREA',\n0x020A: 'ADD.PRINT.AREA',\n0x020B: 'MOVE.BRK',\n0x0221: 'HIDECURR.NOTE',\n0x0222: 'HIDEALL.NOTES',\n0x0223: 'DELETE.NOTE',\n0x0224: 'TRAVERSE.NOTES',\n0x0225: 'ACTIVATE.NOTES',\n0x026C: 'PROTECT.REVISIONS',\n0x026D: 'UNPROTECT.REVISIONS',\n0x0287: 'OPTIONS.ME',\n0x028D: 'WEB.PUBLISH',\n0x029B: 'NEWWEBQUERY',\n0x02A1: 'PIVOT.TABLE.CHART',\n0x02F1: 'OPTIONS.SAVE',\n0x02F3: 'OPTIONS.SPELL',\n0x0328: 'HIDEALL.INKANNOTS'\n};\n\n/* [MS-XLS] 2.5.198.17 */\n/* [MS-XLSB] 2.5.97.10 */\nvar Ftab = {\n0x0000: 'COUNT',\n0x0001: 'IF',\n0x0002: 'ISNA',\n0x0003: 'ISERROR',\n0x0004: 'SUM',\n0x0005: 'AVERAGE',\n0x0006: 'MIN',\n0x0007: 'MAX',\n0x0008: 'ROW',\n0x0009: 'COLUMN',\n0x000A: 'NA',\n0x000B: 'NPV',\n0x000C: 'STDEV',\n0x000D: 'DOLLAR',\n0x000E: 'FIXED',\n0x000F: 'SIN',\n0x0010: 'COS',\n0x0011: 'TAN',\n0x0012: 'ATAN',\n0x0013: 'PI',\n0x0014: 'SQRT',\n0x0015: 'EXP',\n0x0016: 'LN',\n0x0017: 'LOG10',\n0x0018: 'ABS',\n0x0019: 'INT',\n0x001A: 'SIGN',\n0x001B: 'ROUND',\n0x001C: 'LOOKUP',\n0x001D: 'INDEX',\n0x001E: 'REPT',\n0x001F: 'MID',\n0x0020: 'LEN',\n0x0021: 'VALUE',\n0x0022: 'TRUE',\n0x0023: 'FALSE',\n0x0024: 'AND',\n0x0025: 'OR',\n0x0026: 'NOT',\n0x0027: 'MOD',\n0x0028: 'DCOUNT',\n0x0029: 'DSUM',\n0x002A: 'DAVERAGE',\n0x002B: 'DMIN',\n0x002C: 'DMAX',\n0x002D: 'DSTDEV',\n0x002E: 'VAR',\n0x002F: 'DVAR',\n0x0030: 'TEXT',\n0x0031: 'LINEST',\n0x0032: 'TREND',\n0x0033: 'LOGEST',\n0x0034: 'GROWTH',\n0x0035: 'GOTO',\n0x0036: 'HALT',\n0x0037: 'RETURN',\n0x0038: 'PV',\n0x0039: 'FV',\n0x003A: 'NPER',\n0x003B: 'PMT',\n0x003C: 'RATE',\n0x003D: 'MIRR',\n0x003E: 'IRR',\n0x003F: 'RAND',\n0x0040: 'MATCH',\n0x0041: 'DATE',\n0x0042: 'TIME',\n0x0043: 'DAY',\n0x0044: 'MONTH',\n0x0045: 'YEAR',\n0x0046: 'WEEKDAY',\n0x0047: 'HOUR',\n0x0048: 'MINUTE',\n0x0049: 'SECOND',\n0x004A: 'NOW',\n0x004B: 'AREAS',\n0x004C: 'ROWS',\n0x004D: 'COLUMNS',\n0x004E: 'OFFSET',\n0x004F: 'ABSREF',\n0x0050: 'RELREF',\n0x0051: 'ARGUMENT',\n0x0052: 'SEARCH',\n0x0053: 'TRANSPOSE',\n0x0054: 'ERROR',\n0x0055: 'STEP',\n0x0056: 'TYPE',\n0x0057: 'ECHO',\n0x0058: 'SET.NAME',\n0x0059: 'CALLER',\n0x005A: 'DEREF',\n0x005B: 'WINDOWS',\n0x005C: 'SERIES',\n0x005D: 'DOCUMENTS',\n0x005E: 'ACTIVE.CELL',\n0x005F: 'SELECTION',\n0x0060: 'RESULT',\n0x0061: 'ATAN2',\n0x0062: 'ASIN',\n0x0063: 'ACOS',\n0x0064: 'CHOOSE',\n0x0065: 'HLOOKUP',\n0x0066: 'VLOOKUP',\n0x0067: 'LINKS',\n0x0068: 'INPUT',\n0x0069: 'ISREF',\n0x006A: 'GET.FORMULA',\n0x006B: 'GET.NAME',\n0x006C: 'SET.VALUE',\n0x006D: 'LOG',\n0x006E: 'EXEC',\n0x006F: 'CHAR',\n0x0070: 'LOWER',\n0x0071: 'UPPER',\n0x0072: 'PROPER',\n0x0073: 'LEFT',\n0x0074: 'RIGHT',\n0x0075: 'EXACT',\n0x0076: 'TRIM',\n0x0077: 'REPLACE',\n0x0078: 'SUBSTITUTE',\n0x0079: 'CODE',\n0x007A: 'NAMES',\n0x007B: 'DIRECTORY',\n0x007C: 'FIND',\n0x007D: 'CELL',\n0x007E: 'ISERR',\n0x007F: 'ISTEXT',\n0x0080: 'ISNUMBER',\n0x0081: 'ISBLANK',\n0x0082: 'T',\n0x0083: 'N',\n0x0084: 'FOPEN',\n0x0085: 'FCLOSE',\n0x0086: 'FSIZE',\n0x0087: 'FREADLN',\n0x0088: 'FREAD',\n0x0089: 'FWRITELN',\n0x008A: 'FWRITE',\n0x008B: 'FPOS',\n0x008C: 'DATEVALUE',\n0x008D: 'TIMEVALUE',\n0x008E: 'SLN',\n0x008F: 'SYD',\n0x0090: 'DDB',\n0x0091: 'GET.DEF',\n0x0092: 'REFTEXT',\n0x0093: 'TEXTREF',\n0x0094: 'INDIRECT',\n0x0095: 'REGISTER',\n0x0096: 'CALL',\n0x0097: 'ADD.BAR',\n0x0098: 'ADD.MENU',\n0x0099: 'ADD.COMMAND',\n0x009A: 'ENABLE.COMMAND',\n0x009B: 'CHECK.COMMAND',\n0x009C: 'RENAME.COMMAND',\n0x009D: 'SHOW.BAR',\n0x009E: 'DELETE.MENU',\n0x009F: 'DELETE.COMMAND',\n0x00A0: 'GET.CHART.ITEM',\n0x00A1: 'DIALOG.BOX',\n0x00A2: 'CLEAN',\n0x00A3: 'MDETERM',\n0x00A4: 'MINVERSE',\n0x00A5: 'MMULT',\n0x00A6: 'FILES',\n0x00A7: 'IPMT',\n0x00A8: 'PPMT',\n0x00A9: 'COUNTA',\n0x00AA: 'CANCEL.KEY',\n0x00AB: 'FOR',\n0x00AC: 'WHILE',\n0x00AD: 'BREAK',\n0x00AE: 'NEXT',\n0x00AF: 'INITIATE',\n0x00B0: 'REQUEST',\n0x00B1: 'POKE',\n0x00B2: 'EXECUTE',\n0x00B3: 'TERMINATE',\n0x00B4: 'RESTART',\n0x00B5: 'HELP',\n0x00B6: 'GET.BAR',\n0x00B7: 'PRODUCT',\n0x00B8: 'FACT',\n0x00B9: 'GET.CELL',\n0x00BA: 'GET.WORKSPACE',\n0x00BB: 'GET.WINDOW',\n0x00BC: 'GET.DOCUMENT',\n0x00BD: 'DPRODUCT',\n0x00BE: 'ISNONTEXT',\n0x00BF: 'GET.NOTE',\n0x00C0: 'NOTE',\n0x00C1: 'STDEVP',\n0x00C2: 'VARP',\n0x00C3: 'DSTDEVP',\n0x00C4: 'DVARP',\n0x00C5: 'TRUNC',\n0x00C6: 'ISLOGICAL',\n0x00C7: 'DCOUNTA',\n0x00C8: 'DELETE.BAR',\n0x00C9: 'UNREGISTER',\n0x00CC: 'USDOLLAR',\n0x00CD: 'FINDB',\n0x00CE: 'SEARCHB',\n0x00CF: 'REPLACEB',\n0x00D0: 'LEFTB',\n0x00D1: 'RIGHTB',\n0x00D2: 'MIDB',\n0x00D3: 'LENB',\n0x00D4: 'ROUNDUP',\n0x00D5: 'ROUNDDOWN',\n0x00D6: 'ASC',\n0x00D7: 'DBCS',\n0x00D8: 'RANK',\n0x00DB: 'ADDRESS',\n0x00DC: 'DAYS360',\n0x00DD: 'TODAY',\n0x00DE: 'VDB',\n0x00DF: 'ELSE',\n0x00E0: 'ELSE.IF',\n0x00E1: 'END.IF',\n0x00E2: 'FOR.CELL',\n0x00E3: 'MEDIAN',\n0x00E4: 'SUMPRODUCT',\n0x00E5: 'SINH',\n0x00E6: 'COSH',\n0x00E7: 'TANH',\n0x00E8: 'ASINH',\n0x00E9: 'ACOSH',\n0x00EA: 'ATANH',\n0x00EB: 'DGET',\n0x00EC: 'CREATE.OBJECT',\n0x00ED: 'VOLATILE',\n0x00EE: 'LAST.ERROR',\n0x00EF: 'CUSTOM.UNDO',\n0x00F0: 'CUSTOM.REPEAT',\n0x00F1: 'FORMULA.CONVERT',\n0x00F2: 'GET.LINK.INFO',\n0x00F3: 'TEXT.BOX',\n0x00F4: 'INFO',\n0x00F5: 'GROUP',\n0x00F6: 'GET.OBJECT',\n0x00F7: 'DB',\n0x00F8: 'PAUSE',\n0x00FB: 'RESUME',\n0x00FC: 'FREQUENCY',\n0x00FD: 'ADD.TOOLBAR',\n0x00FE: 'DELETE.TOOLBAR',\n0x00FF: 'User',\n0x0100: 'RESET.TOOLBAR',\n0x0101: 'EVALUATE',\n0x0102: 'GET.TOOLBAR',\n0x0103: 'GET.TOOL',\n0x0104: 'SPELLING.CHECK',\n0x0105: 'ERROR.TYPE',\n0x0106: 'APP.TITLE',\n0x0107: 'WINDOW.TITLE',\n0x0108: 'SAVE.TOOLBAR',\n0x0109: 'ENABLE.TOOL',\n0x010A: 'PRESS.TOOL',\n0x010B: 'REGISTER.ID',\n0x010C: 'GET.WORKBOOK',\n0x010D: 'AVEDEV',\n0x010E: 'BETADIST',\n0x010F: 'GAMMALN',\n0x0110: 'BETAINV',\n0x0111: 'BINOMDIST',\n0x0112: 'CHIDIST',\n0x0113: 'CHIINV',\n0x0114: 'COMBIN',\n0x0115: 'CONFIDENCE',\n0x0116: 'CRITBINOM',\n0x0117: 'EVEN',\n0x0118: 'EXPONDIST',\n0x0119: 'FDIST',\n0x011A: 'FINV',\n0x011B: 'FISHER',\n0x011C: 'FISHERINV',\n0x011D: 'FLOOR',\n0x011E: 'GAMMADIST',\n0x011F: 'GAMMAINV',\n0x0120: 'CEILING',\n0x0121: 'HYPGEOMDIST',\n0x0122: 'LOGNORMDIST',\n0x0123: 'LOGINV',\n0x0124: 'NEGBINOMDIST',\n0x0125: 'NORMDIST',\n0x0126: 'NORMSDIST',\n0x0127: 'NORMINV',\n0x0128: 'NORMSINV',\n0x0129: 'STANDARDIZE',\n0x012A: 'ODD',\n0x012B: 'PERMUT',\n0x012C: 'POISSON',\n0x012D: 'TDIST',\n0x012E: 'WEIBULL',\n0x012F: 'SUMXMY2',\n0x0130: 'SUMX2MY2',\n0x0131: 'SUMX2PY2',\n0x0132: 'CHITEST',\n0x0133: 'CORREL',\n0x0134: 'COVAR',\n0x0135: 'FORECAST',\n0x0136: 'FTEST',\n0x0137: 'INTERCEPT',\n0x0138: 'PEARSON',\n0x0139: 'RSQ',\n0x013A: 'STEYX',\n0x013B: 'SLOPE',\n0x013C: 'TTEST',\n0x013D: 'PROB',\n0x013E: 'DEVSQ',\n0x013F: 'GEOMEAN',\n0x0140: 'HARMEAN',\n0x0141: 'SUMSQ',\n0x0142: 'KURT',\n0x0143: 'SKEW',\n0x0144: 'ZTEST',\n0x0145: 'LARGE',\n0x0146: 'SMALL',\n0x0147: 'QUARTILE',\n0x0148: 'PERCENTILE',\n0x0149: 'PERCENTRANK',\n0x014A: 'MODE',\n0x014B: 'TRIMMEAN',\n0x014C: 'TINV',\n0x014E: 'MOVIE.COMMAND',\n0x014F: 'GET.MOVIE',\n0x0150: 'CONCATENATE',\n0x0151: 'POWER',\n0x0152: 'PIVOT.ADD.DATA',\n0x0153: 'GET.PIVOT.TABLE',\n0x0154: 'GET.PIVOT.FIELD',\n0x0155: 'GET.PIVOT.ITEM',\n0x0156: 'RADIANS',\n0x0157: 'DEGREES',\n0x0158: 'SUBTOTAL',\n0x0159: 'SUMIF',\n0x015A: 'COUNTIF',\n0x015B: 'COUNTBLANK',\n0x015C: 'SCENARIO.GET',\n0x015D: 'OPTIONS.LISTS.GET',\n0x015E: 'ISPMT',\n0x015F: 'DATEDIF',\n0x0160: 'DATESTRING',\n0x0161: 'NUMBERSTRING',\n0x0162: 'ROMAN',\n0x0163: 'OPEN.DIALOG',\n0x0164: 'SAVE.DIALOG',\n0x0165: 'VIEW.GET',\n0x0166: 'GETPIVOTDATA',\n0x0167: 'HYPERLINK',\n0x0168: 'PHONETIC',\n0x0169: 'AVERAGEA',\n0x016A: 'MAXA',\n0x016B: 'MINA',\n0x016C: 'STDEVPA',\n0x016D: 'VARPA',\n0x016E: 'STDEVA',\n0x016F: 'VARA',\n0x0170: 'BAHTTEXT',\n0x0171: 'THAIDAYOFWEEK',\n0x0172: 'THAIDIGIT',\n0x0173: 'THAIMONTHOFYEAR',\n0x0174: 'THAINUMSOUND',\n0x0175: 'THAINUMSTRING',\n0x0176: 'THAISTRINGLENGTH',\n0x0177: 'ISTHAIDIGIT',\n0x0178: 'ROUNDBAHTDOWN',\n0x0179: 'ROUNDBAHTUP',\n0x017A: 'THAIYEAR',\n0x017B: 'RTD',\n\n0x017C: 'CUBEVALUE',\n0x017D: 'CUBEMEMBER',\n0x017E: 'CUBEMEMBERPROPERTY',\n0x017F: 'CUBERANKEDMEMBER',\n0x0180: 'HEX2BIN',\n0x0181: 'HEX2DEC',\n0x0182: 'HEX2OCT',\n0x0183: 'DEC2BIN',\n0x0184: 'DEC2HEX',\n0x0185: 'DEC2OCT',\n0x0186: 'OCT2BIN',\n0x0187: 'OCT2HEX',\n0x0188: 'OCT2DEC',\n0x0189: 'BIN2DEC',\n0x018A: 'BIN2OCT',\n0x018B: 'BIN2HEX',\n0x018C: 'IMSUB',\n0x018D: 'IMDIV',\n0x018E: 'IMPOWER',\n0x018F: 'IMABS',\n0x0190: 'IMSQRT',\n0x0191: 'IMLN',\n0x0192: 'IMLOG2',\n0x0193: 'IMLOG10',\n0x0194: 'IMSIN',\n0x0195: 'IMCOS',\n0x0196: 'IMEXP',\n0x0197: 'IMARGUMENT',\n0x0198: 'IMCONJUGATE',\n0x0199: 'IMAGINARY',\n0x019A: 'IMREAL',\n0x019B: 'COMPLEX',\n0x019C: 'IMSUM',\n0x019D: 'IMPRODUCT',\n0x019E: 'SERIESSUM',\n0x019F: 'FACTDOUBLE',\n0x01A0: 'SQRTPI',\n0x01A1: 'QUOTIENT',\n0x01A2: 'DELTA',\n0x01A3: 'GESTEP',\n0x01A4: 'ISEVEN',\n0x01A5: 'ISODD',\n0x01A6: 'MROUND',\n0x01A7: 'ERF',\n0x01A8: 'ERFC',\n0x01A9: 'BESSELJ',\n0x01AA: 'BESSELK',\n0x01AB: 'BESSELY',\n0x01AC: 'BESSELI',\n0x01AD: 'XIRR',\n0x01AE: 'XNPV',\n0x01AF: 'PRICEMAT',\n0x01B0: 'YIELDMAT',\n0x01B1: 'INTRATE',\n0x01B2: 'RECEIVED',\n0x01B3: 'DISC',\n0x01B4: 'PRICEDISC',\n0x01B5: 'YIELDDISC',\n0x01B6: 'TBILLEQ',\n0x01B7: 'TBILLPRICE',\n0x01B8: 'TBILLYIELD',\n0x01B9: 'PRICE',\n0x01BA: 'YIELD',\n0x01BB: 'DOLLARDE',\n0x01BC: 'DOLLARFR',\n0x01BD: 'NOMINAL',\n0x01BE: 'EFFECT',\n0x01BF: 'CUMPRINC',\n0x01C0: 'CUMIPMT',\n0x01C1: 'EDATE',\n0x01C2: 'EOMONTH',\n0x01C3: 'YEARFRAC',\n0x01C4: 'COUPDAYBS',\n0x01C5: 'COUPDAYS',\n0x01C6: 'COUPDAYSNC',\n0x01C7: 'COUPNCD',\n0x01C8: 'COUPNUM',\n0x01C9: 'COUPPCD',\n0x01CA: 'DURATION',\n0x01CB: 'MDURATION',\n0x01CC: 'ODDLPRICE',\n0x01CD: 'ODDLYIELD',\n0x01CE: 'ODDFPRICE',\n0x01CF: 'ODDFYIELD',\n0x01D0: 'RANDBETWEEN',\n0x01D1: 'WEEKNUM',\n0x01D2: 'AMORDEGRC',\n0x01D3: 'AMORLINC',\n0x01D4: 'CONVERT',\n0x02D4: 'SHEETJS',\n0x01D5: 'ACCRINT',\n0x01D6: 'ACCRINTM',\n0x01D7: 'WORKDAY',\n0x01D8: 'NETWORKDAYS',\n0x01D9: 'GCD',\n0x01DA: 'MULTINOMIAL',\n0x01DB: 'LCM',\n0x01DC: 'FVSCHEDULE',\n0x01DD: 'CUBEKPIMEMBER',\n0x01DE: 'CUBESET',\n0x01DF: 'CUBESETCOUNT',\n0x01E0: 'IFERROR',\n0x01E1: 'COUNTIFS',\n0x01E2: 'SUMIFS',\n0x01E3: 'AVERAGEIF',\n0x01E4: 'AVERAGEIFS'\n};\nvar FtabArgc = {\n0x0002: 1, /* ISNA */\n0x0003: 1, /* ISERROR */\n0x000A: 0, /* NA */\n0x000F: 1, /* SIN */\n0x0010: 1, /* COS */\n0x0011: 1, /* TAN */\n0x0012: 1, /* ATAN */\n0x0013: 0, /* PI */\n0x0014: 1, /* SQRT */\n0x0015: 1, /* EXP */\n0x0016: 1, /* LN */\n0x0017: 1, /* LOG10 */\n0x0018: 1, /* ABS */\n0x0019: 1, /* INT */\n0x001A: 1, /* SIGN */\n0x001B: 2, /* ROUND */\n0x001E: 2, /* REPT */\n0x001F: 3, /* MID */\n0x0020: 1, /* LEN */\n0x0021: 1, /* VALUE */\n0x0022: 0, /* TRUE */\n0x0023: 0, /* FALSE */\n0x0026: 1, /* NOT */\n0x0027: 2, /* MOD */\n0x0028: 3, /* DCOUNT */\n0x0029: 3, /* DSUM */\n0x002A: 3, /* DAVERAGE */\n0x002B: 3, /* DMIN */\n0x002C: 3, /* DMAX */\n0x002D: 3, /* DSTDEV */\n0x002F: 3, /* DVAR */\n0x0030: 2, /* TEXT */\n0x0035: 1, /* GOTO */\n0x003D: 3, /* MIRR */\n0x003F: 0, /* RAND */\n0x0041: 3, /* DATE */\n0x0042: 3, /* TIME */\n0x0043: 1, /* DAY */\n0x0044: 1, /* MONTH */\n0x0045: 1, /* YEAR */\n0x0046: 1, /* WEEKDAY */\n0x0047: 1, /* HOUR */\n0x0048: 1, /* MINUTE */\n0x0049: 1, /* SECOND */\n0x004A: 0, /* NOW */\n0x004B: 1, /* AREAS */\n0x004C: 1, /* ROWS */\n0x004D: 1, /* COLUMNS */\n0x004F: 2, /* ABSREF */\n0x0050: 2, /* RELREF */\n0x0053: 1, /* TRANSPOSE */\n0x0055: 0, /* STEP */\n0x0056: 1, /* TYPE */\n0x0059: 0, /* CALLER */\n0x005A: 1, /* DEREF */\n0x005E: 0, /* ACTIVE.CELL */\n0x005F: 0, /* SELECTION */\n0x0061: 2, /* ATAN2 */\n0x0062: 1, /* ASIN */\n0x0063: 1, /* ACOS */\n0x0065: 3, /* HLOOKUP */\n0x0066: 3, /* VLOOKUP */\n0x0069: 1, /* ISREF */\n0x006A: 1, /* GET.FORMULA */\n0x006C: 2, /* SET.VALUE */\n0x006F: 1, /* CHAR */\n0x0070: 1, /* LOWER */\n0x0071: 1, /* UPPER */\n0x0072: 1, /* PROPER */\n0x0075: 2, /* EXACT */\n0x0076: 1, /* TRIM */\n0x0077: 4, /* REPLACE */\n0x0079: 1, /* CODE */\n0x007E: 1, /* ISERR */\n0x007F: 1, /* ISTEXT */\n0x0080: 1, /* ISNUMBER */\n0x0081: 1, /* ISBLANK */\n0x0082: 1, /* T */\n0x0083: 1, /* N */\n0x0085: 1, /* FCLOSE */\n0x0086: 1, /* FSIZE */\n0x0087: 1, /* FREADLN */\n0x0088: 2, /* FREAD */\n0x0089: 2, /* FWRITELN */\n0x008A: 2, /* FWRITE */\n0x008C: 1, /* DATEVALUE */\n0x008D: 1, /* TIMEVALUE */\n0x008E: 3, /* SLN */\n0x008F: 4, /* SYD */\n0x0090: 4, /* DDB */\n0x00A1: 1, /* DIALOG.BOX */\n0x00A2: 1, /* CLEAN */\n0x00A3: 1, /* MDETERM */\n0x00A4: 1, /* MINVERSE */\n0x00A5: 2, /* MMULT */\n0x00AC: 1, /* WHILE */\n0x00AF: 2, /* INITIATE */\n0x00B0: 2, /* REQUEST */\n0x00B1: 3, /* POKE */\n0x00B2: 2, /* EXECUTE */\n0x00B3: 1, /* TERMINATE */\n0x00B8: 1, /* FACT */\n0x00BA: 1, /* GET.WORKSPACE */\n0x00BD: 3, /* DPRODUCT */\n0x00BE: 1, /* ISNONTEXT */\n0x00C3: 3, /* DSTDEVP */\n0x00C4: 3, /* DVARP */\n0x00C5: 1, /* TRUNC */\n0x00C6: 1, /* ISLOGICAL */\n0x00C7: 3, /* DCOUNTA */\n0x00C9: 1, /* UNREGISTER */\n0x00CF: 4, /* REPLACEB */\n0x00D2: 3, /* MIDB */\n0x00D3: 1, /* LENB */\n0x00D4: 2, /* ROUNDUP */\n0x00D5: 2, /* ROUNDDOWN */\n0x00D6: 1, /* ASC */\n0x00D7: 1, /* DBCS */\n0x00E1: 0, /* END.IF */\n0x00E5: 1, /* SINH */\n0x00E6: 1, /* COSH */\n0x00E7: 1, /* TANH */\n0x00E8: 1, /* ASINH */\n0x00E9: 1, /* ACOSH */\n0x00EA: 1, /* ATANH */\n0x00EB: 3, /* DGET */\n0x00F4: 1, /* INFO */\n0x00F7: 4, /* DB */\n0x00FC: 2, /* FREQUENCY */\n0x0101: 1, /* EVALUATE */\n0x0105: 1, /* ERROR.TYPE */\n0x010F: 1, /* GAMMALN */\n0x0111: 4, /* BINOMDIST */\n0x0112: 2, /* CHIDIST */\n0x0113: 2, /* CHIINV */\n0x0114: 2, /* COMBIN */\n0x0115: 3, /* CONFIDENCE */\n0x0116: 3, /* CRITBINOM */\n0x0117: 1, /* EVEN */\n0x0118: 3, /* EXPONDIST */\n0x0119: 3, /* FDIST */\n0x011A: 3, /* FINV */\n0x011B: 1, /* FISHER */\n0x011C: 1, /* FISHERINV */\n0x011D: 2, /* FLOOR */\n0x011E: 4, /* GAMMADIST */\n0x011F: 3, /* GAMMAINV */\n0x0120: 2, /* CEILING */\n0x0121: 4, /* HYPGEOMDIST */\n0x0122: 3, /* LOGNORMDIST */\n0x0123: 3, /* LOGINV */\n0x0124: 3, /* NEGBINOMDIST */\n0x0125: 4, /* NORMDIST */\n0x0126: 1, /* NORMSDIST */\n0x0127: 3, /* NORMINV */\n0x0128: 1, /* NORMSINV */\n0x0129: 3, /* STANDARDIZE */\n0x012A: 1, /* ODD */\n0x012B: 2, /* PERMUT */\n0x012C: 3, /* POISSON */\n0x012D: 3, /* TDIST */\n0x012E: 4, /* WEIBULL */\n0x012F: 2, /* SUMXMY2 */\n0x0130: 2, /* SUMX2MY2 */\n0x0131: 2, /* SUMX2PY2 */\n0x0132: 2, /* CHITEST */\n0x0133: 2, /* CORREL */\n0x0134: 2, /* COVAR */\n0x0135: 3, /* FORECAST */\n0x0136: 2, /* FTEST */\n0x0137: 2, /* INTERCEPT */\n0x0138: 2, /* PEARSON */\n0x0139: 2, /* RSQ */\n0x013A: 2, /* STEYX */\n0x013B: 2, /* SLOPE */\n0x013C: 4, /* TTEST */\n0x0145: 2, /* LARGE */\n0x0146: 2, /* SMALL */\n0x0147: 2, /* QUARTILE */\n0x0148: 2, /* PERCENTILE */\n0x014B: 2, /* TRIMMEAN */\n0x014C: 2, /* TINV */\n0x0151: 2, /* POWER */\n0x0156: 1, /* RADIANS */\n0x0157: 1, /* DEGREES */\n0x015A: 2, /* COUNTIF */\n0x015B: 1, /* COUNTBLANK */\n0x015E: 4, /* ISPMT */\n0x015F: 3, /* DATEDIF */\n0x0160: 1, /* DATESTRING */\n0x0161: 2, /* NUMBERSTRING */\n0x0168: 1, /* PHONETIC */\n0x0170: 1, /* BAHTTEXT */\n0x0171: 1, /* THAIDAYOFWEEK */\n0x0172: 1, /* THAIDIGIT */\n0x0173: 1, /* THAIMONTHOFYEAR */\n0x0174: 1, /* THAINUMSOUND */\n0x0175: 1, /* THAINUMSTRING */\n0x0176: 1, /* THAISTRINGLENGTH */\n0x0177: 1, /* ISTHAIDIGIT */\n0x0178: 1, /* ROUNDBAHTDOWN */\n0x0179: 1, /* ROUNDBAHTUP */\n0x017A: 1, /* THAIYEAR */\n0x017E: 3, /* CUBEMEMBERPROPERTY */\n0x0181: 1, /* HEX2DEC */\n0x0188: 1, /* OCT2DEC */\n0x0189: 1, /* BIN2DEC */\n0x018C: 2, /* IMSUB */\n0x018D: 2, /* IMDIV */\n0x018E: 2, /* IMPOWER */\n0x018F: 1, /* IMABS */\n0x0190: 1, /* IMSQRT */\n0x0191: 1, /* IMLN */\n0x0192: 1, /* IMLOG2 */\n0x0193: 1, /* IMLOG10 */\n0x0194: 1, /* IMSIN */\n0x0195: 1, /* IMCOS */\n0x0196: 1, /* IMEXP */\n0x0197: 1, /* IMARGUMENT */\n0x0198: 1, /* IMCONJUGATE */\n0x0199: 1, /* IMAGINARY */\n0x019A: 1, /* IMREAL */\n0x019E: 4, /* SERIESSUM */\n0x019F: 1, /* FACTDOUBLE */\n0x01A0: 1, /* SQRTPI */\n0x01A1: 2, /* QUOTIENT */\n0x01A4: 1, /* ISEVEN */\n0x01A5: 1, /* ISODD */\n0x01A6: 2, /* MROUND */\n0x01A8: 1, /* ERFC */\n0x01A9: 2, /* BESSELJ */\n0x01AA: 2, /* BESSELK */\n0x01AB: 2, /* BESSELY */\n0x01AC: 2, /* BESSELI */\n0x01AE: 3, /* XNPV */\n0x01B6: 3, /* TBILLEQ */\n0x01B7: 3, /* TBILLPRICE */\n0x01B8: 3, /* TBILLYIELD */\n0x01BB: 2, /* DOLLARDE */\n0x01BC: 2, /* DOLLARFR */\n0x01BD: 2, /* NOMINAL */\n0x01BE: 2, /* EFFECT */\n0x01BF: 6, /* CUMPRINC */\n0x01C0: 6, /* CUMIPMT */\n0x01C1: 2, /* EDATE */\n0x01C2: 2, /* EOMONTH */\n0x01D0: 2, /* RANDBETWEEN */\n0x01D4: 3, /* CONVERT */\n0x01DC: 2, /* FVSCHEDULE */\n0x01DF: 1, /* CUBESETCOUNT */\n0x01E0: 2, /* IFERROR */\n0xFFFF: 0\n};\n/* [MS-XLSX] 2.2.3 Functions */\n/* [MS-XLSB] 2.5.97.10 Ftab */\nvar XLSXFutureFunctions = {\n\t\"_xlfn.ACOT\": \"ACOT\",\n\t\"_xlfn.ACOTH\": \"ACOTH\",\n\t\"_xlfn.AGGREGATE\": \"AGGREGATE\",\n\t\"_xlfn.ARABIC\": \"ARABIC\",\n\t\"_xlfn.AVERAGEIF\": \"AVERAGEIF\",\n\t\"_xlfn.AVERAGEIFS\": \"AVERAGEIFS\",\n\t\"_xlfn.BASE\": \"BASE\",\n\t\"_xlfn.BETA.DIST\": \"BETA.DIST\",\n\t\"_xlfn.BETA.INV\": \"BETA.INV\",\n\t\"_xlfn.BINOM.DIST\": \"BINOM.DIST\",\n\t\"_xlfn.BINOM.DIST.RANGE\": \"BINOM.DIST.RANGE\",\n\t\"_xlfn.BINOM.INV\": \"BINOM.INV\",\n\t\"_xlfn.BITAND\": \"BITAND\",\n\t\"_xlfn.BITLSHIFT\": \"BITLSHIFT\",\n\t\"_xlfn.BITOR\": \"BITOR\",\n\t\"_xlfn.BITRSHIFT\": \"BITRSHIFT\",\n\t\"_xlfn.BITXOR\": \"BITXOR\",\n\t\"_xlfn.CEILING.MATH\": \"CEILING.MATH\",\n\t\"_xlfn.CEILING.PRECISE\": \"CEILING.PRECISE\",\n\t\"_xlfn.CHISQ.DIST\": \"CHISQ.DIST\",\n\t\"_xlfn.CHISQ.DIST.RT\": \"CHISQ.DIST.RT\",\n\t\"_xlfn.CHISQ.INV\": \"CHISQ.INV\",\n\t\"_xlfn.CHISQ.INV.RT\": \"CHISQ.INV.RT\",\n\t\"_xlfn.CHISQ.TEST\": \"CHISQ.TEST\",\n\t\"_xlfn.COMBINA\": \"COMBINA\",\n\t\"_xlfn.CONCAT\": \"CONCAT\",\n\t\"_xlfn.CONFIDENCE.NORM\": \"CONFIDENCE.NORM\",\n\t\"_xlfn.CONFIDENCE.T\": \"CONFIDENCE.T\",\n\t\"_xlfn.COT\": \"COT\",\n\t\"_xlfn.COTH\": \"COTH\",\n\t\"_xlfn.COUNTIFS\": \"COUNTIFS\",\n\t\"_xlfn.COVARIANCE.P\": \"COVARIANCE.P\",\n\t\"_xlfn.COVARIANCE.S\": \"COVARIANCE.S\",\n\t\"_xlfn.CSC\": \"CSC\",\n\t\"_xlfn.CSCH\": \"CSCH\",\n\t\"_xlfn.DAYS\": \"DAYS\",\n\t\"_xlfn.DECIMAL\": \"DECIMAL\",\n\t\"_xlfn.ECMA.CEILING\": \"ECMA.CEILING\",\n\t\"_xlfn.ERF.PRECISE\": \"ERF.PRECISE\",\n\t\"_xlfn.ERFC.PRECISE\": \"ERFC.PRECISE\",\n\t\"_xlfn.EXPON.DIST\": \"EXPON.DIST\",\n\t\"_xlfn.F.DIST\": \"F.DIST\",\n\t\"_xlfn.F.DIST.RT\": \"F.DIST.RT\",\n\t\"_xlfn.F.INV\": \"F.INV\",\n\t\"_xlfn.F.INV.RT\": \"F.INV.RT\",\n\t\"_xlfn.F.TEST\": \"F.TEST\",\n\t\"_xlfn.FILTERXML\": \"FILTERXML\",\n\t\"_xlfn.FLOOR.MATH\": \"FLOOR.MATH\",\n\t\"_xlfn.FLOOR.PRECISE\": \"FLOOR.PRECISE\",\n\t\"_xlfn.FORECAST.ETS\": \"FORECAST.ETS\",\n\t\"_xlfn.FORECAST.ETS.CONFINT\": \"FORECAST.ETS.CONFINT\",\n\t\"_xlfn.FORECAST.ETS.SEASONALITY\": \"FORECAST.ETS.SEASONALITY\",\n\t\"_xlfn.FORECAST.ETS.STAT\": \"FORECAST.ETS.STAT\",\n\t\"_xlfn.FORECAST.LINEAR\": \"FORECAST.LINEAR\",\n\t\"_xlfn.FORMULATEXT\": \"FORMULATEXT\",\n\t\"_xlfn.GAMMA\": \"GAMMA\",\n\t\"_xlfn.GAMMA.DIST\": \"GAMMA.DIST\",\n\t\"_xlfn.GAMMA.INV\": \"GAMMA.INV\",\n\t\"_xlfn.GAMMALN.PRECISE\": \"GAMMALN.PRECISE\",\n\t\"_xlfn.GAUSS\": \"GAUSS\",\n\t\"_xlfn.HYPGEOM.DIST\": \"HYPGEOM.DIST\",\n\t\"_xlfn.IFERROR\": \"IFERROR\",\n\t\"_xlfn.IFNA\": \"IFNA\",\n\t\"_xlfn.IFS\": \"IFS\",\n\t\"_xlfn.IMCOSH\": \"IMCOSH\",\n\t\"_xlfn.IMCOT\": \"IMCOT\",\n\t\"_xlfn.IMCSC\": \"IMCSC\",\n\t\"_xlfn.IMCSCH\": \"IMCSCH\",\n\t\"_xlfn.IMSEC\": \"IMSEC\",\n\t\"_xlfn.IMSECH\": \"IMSECH\",\n\t\"_xlfn.IMSINH\": \"IMSINH\",\n\t\"_xlfn.IMTAN\": \"IMTAN\",\n\t\"_xlfn.ISFORMULA\": \"ISFORMULA\",\n\t\"_xlfn.ISO.CEILING\": \"ISO.CEILING\",\n\t\"_xlfn.ISOWEEKNUM\": \"ISOWEEKNUM\",\n\t\"_xlfn.LOGNORM.DIST\": \"LOGNORM.DIST\",\n\t\"_xlfn.LOGNORM.INV\": \"LOGNORM.INV\",\n\t\"_xlfn.MAXIFS\": \"MAXIFS\",\n\t\"_xlfn.MINIFS\": \"MINIFS\",\n\t\"_xlfn.MODE.MULT\": \"MODE.MULT\",\n\t\"_xlfn.MODE.SNGL\": \"MODE.SNGL\",\n\t\"_xlfn.MUNIT\": \"MUNIT\",\n\t\"_xlfn.NEGBINOM.DIST\": \"NEGBINOM.DIST\",\n\t\"_xlfn.NETWORKDAYS.INTL\": \"NETWORKDAYS.INTL\",\n\t\"_xlfn.NIGBINOM\": \"NIGBINOM\",\n\t\"_xlfn.NORM.DIST\": \"NORM.DIST\",\n\t\"_xlfn.NORM.INV\": \"NORM.INV\",\n\t\"_xlfn.NORM.S.DIST\": \"NORM.S.DIST\",\n\t\"_xlfn.NORM.S.INV\": \"NORM.S.INV\",\n\t\"_xlfn.NUMBERVALUE\": \"NUMBERVALUE\",\n\t\"_xlfn.PDURATION\": \"PDURATION\",\n\t\"_xlfn.PERCENTILE.EXC\": \"PERCENTILE.EXC\",\n\t\"_xlfn.PERCENTILE.INC\": \"PERCENTILE.INC\",\n\t\"_xlfn.PERCENTRANK.EXC\": \"PERCENTRANK.EXC\",\n\t\"_xlfn.PERCENTRANK.INC\": \"PERCENTRANK.INC\",\n\t\"_xlfn.PERMUTATIONA\": \"PERMUTATIONA\",\n\t\"_xlfn.PHI\": \"PHI\",\n\t\"_xlfn.POISSON.DIST\": \"POISSON.DIST\",\n\t\"_xlfn.QUARTILE.EXC\": \"QUARTILE.EXC\",\n\t\"_xlfn.QUARTILE.INC\": \"QUARTILE.INC\",\n\t\"_xlfn.QUERYSTRING\": \"QUERYSTRING\",\n\t\"_xlfn.RANK.AVG\": \"RANK.AVG\",\n\t\"_xlfn.RANK.EQ\": \"RANK.EQ\",\n\t\"_xlfn.RRI\": \"RRI\",\n\t\"_xlfn.SEC\": \"SEC\",\n\t\"_xlfn.SECH\": \"SECH\",\n\t\"_xlfn.SHEET\": \"SHEET\",\n\t\"_xlfn.SHEETS\": \"SHEETS\",\n\t\"_xlfn.SKEW.P\": \"SKEW.P\",\n\t\"_xlfn.STDEV.P\": \"STDEV.P\",\n\t\"_xlfn.STDEV.S\": \"STDEV.S\",\n\t\"_xlfn.SUMIFS\": \"SUMIFS\",\n\t\"_xlfn.SWITCH\": \"SWITCH\",\n\t\"_xlfn.T.DIST\": \"T.DIST\",\n\t\"_xlfn.T.DIST.2T\": \"T.DIST.2T\",\n\t\"_xlfn.T.DIST.RT\": \"T.DIST.RT\",\n\t\"_xlfn.T.INV\": \"T.INV\",\n\t\"_xlfn.T.INV.2T\": \"T.INV.2T\",\n\t\"_xlfn.T.TEST\": \"T.TEST\",\n\t\"_xlfn.TEXTJOIN\": \"TEXTJOIN\",\n\t\"_xlfn.UNICHAR\": \"UNICHAR\",\n\t\"_xlfn.UNICODE\": \"UNICODE\",\n\t\"_xlfn.VAR.P\": \"VAR.P\",\n\t\"_xlfn.VAR.S\": \"VAR.S\",\n\t\"_xlfn.WEBSERVICE\": \"WEBSERVICE\",\n\t\"_xlfn.WEIBULL.DIST\": \"WEIBULL.DIST\",\n\t\"_xlfn.WORKDAY.INTL\": \"WORKDAY.INTL\",\n\t\"_xlfn.XOR\": \"XOR\",\n\t\"_xlfn.Z.TEST\": \"Z.TEST\"\n};\n\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f) {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f) {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r) {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r) {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\nRELS.WS = [\n\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n];\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst, str, rev) {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C, col) {\n\tvar p = ({min:C+1,max:C+1});\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\treturn p;\n}\n\nfunction default_margins(margins, mode) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles, cell, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF.load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p, fmtid, fillid, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z') return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(SSF._table[fmtid] == null) SSF.load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = SSF._general_int(dd);\n\t\t\t\telse p.w = SSF._general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF._general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF.format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws, sname, i) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws, s) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]) : ({});\n\tvar refguess = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} });\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges) {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr, s, wb, idx) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp) {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1});\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+val.location;\n\t\t} else {\n\t\t\tval.Target = \"#\" + val.location;\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin) {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols) {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx) {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r, i) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb) {\n\tvar sview = ({workbookViewId:\"0\"});\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell, ref, ws, opts) {\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z') return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = SSF._table[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref});\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = (function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {\n\tvar ri = 0, x = \"\", cells = [], cref = [], idx=0, i=0, cc=0, d=\"\", p;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tfor(ri = 0; ri < xlen; ++ri) if(x.charCodeAt(ri) === 62) break; ++ri;\n\t\ttag = parsexmltag(x.slice(0,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"});\n\n\t\t\tif((cref=d.match(match_v))!= null && cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && SSF.is_date(SSF._table[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws, opts, idx, wb) {\n\tvar o = [], r = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}), row, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr});\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1});\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nvar WS_XML_ROOT = writextag('worksheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_ws_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, WS_XML_ROOT];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect'] != null) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(ws['!links'].length > 0) {\n\t\to[o.length] = \"\";\nws['!links'].forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]});\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({});\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 'BrtRowHdr', o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo() {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\t/* TODO: pull flags */\n\tdata.l += 19;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tfor(var i = 0; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\n\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display});\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data) {\n\tvar margins = ({});\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\nif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell;\n\tvar merges = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || wb.supbooks || ([[]]);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo = [], rowinfo = [];\n\tvar seencol = false;\n\n\trecordhopper(data, function ws_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\t\tp = ({t:val[2]});\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && SSF.is_date(SSF._table[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:undefined});\n\t\t\t\tC = val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr]));\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x0031: /* 'BrtCellMeta' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba, cell, R, C, opts, ws) {\n\tif(cell.v === undefined) return;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || SSF._table[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o = ({r:R, c:C});\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\twrite_record(ba, \"BrtCellIsst\", write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\twrite_record(ba, \"BrtCellSt\", write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) write_record(ba, \"BrtCellRk\", write_BrtCellRk(cell, o));\n\t\t\telse write_record(ba, \"BrtCellReal\", write_BrtCellReal(cell, o));\n\t\t\treturn;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\twrite_record(ba, \"BrtCellBool\", write_BrtCellBool(cell, o));\n\t\t\treturn;\n\t\tcase 'e': /* TODO: error */ o.t = \"e\"; break;\n\t}\n\twrite_record(ba, \"BrtCellBlank\", write_BrtCellBlank(cell, o));\n}\n\nfunction write_CELLTABLE(ba, ws, idx, opts) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\twrite_record(ba, 'BrtBeginSheetData');\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_bin_cell(ba, cell, R, C, opts, ws);\n\t\t}\n\t}\n\twrite_record(ba, 'BrtEndSheetData');\n}\n\nfunction write_MERGECELLS(ba, ws) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 'BrtBeginMergeCells', write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 'BrtMergeCell', write_BrtMergeCell(m)); });\n\twrite_record(ba, 'BrtEndMergeCells');\n}\n\nfunction write_COLINFOS(ba, ws) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 'BrtBeginColInfos');\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 'BrtColInfo', write_BrtColInfo(i, m)); });\n\twrite_record(ba, 'BrtEndColInfos');\n}\n\nfunction write_IGNOREECS(ba, ws) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 'BrtBeginCellIgnoreECs');\n\twrite_record(ba, 'BrtCellIgnoreEC', write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 'BrtEndCellIgnoreECs');\n}\n\nfunction write_HLINKS(ba, ws, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, \"BrtHLink\", write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws, idx, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, \"BrtLegacyDrawing\", write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, \"BrtBeginAFilter\", write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, \"BrtEndAFilter\");\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, \"BrtBeginWsViews\");\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, \"BrtBeginWsView\", write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, \"BrtEndWsView\");\n\t}\n\t/* *FRT */\n\twrite_record(ba, \"BrtEndWsViews\");\n}\n\nfunction write_WSFMTINFO() {\n\t/* [ACWSFMTINFO] */\n\t//write_record(ba, \"BrtWsFmtInfo\", write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, \"BrtSheetProtection\", write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx, opts, wb, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, \"BrtBeginSheet\");\n\tif(wb.vbaraw) write_record(ba, \"BrtWsProp\", write_BrtWsProp(c));\n\twrite_record(ba, \"BrtWsDim\", write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, \"BrtMargins\", write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\nRELS.CHART = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\";\nRELS.CHARTEX = \"http://schemas.microsoft.com/office/2014/relationships/chartEx\";\n\nfunction parse_Cache(data) {\n\tvar col = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data, name, opts, rels, wb, csheet) {\n\tvar cs = ((csheet || {\"!type\":\"chart\"}));\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\nRELS.CS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\";\n\nvar CS_XML_ROOT = writextag('chartsheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"});\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, CS_XML_ROOT];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R_n, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin() {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSheet\");\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb) {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = \"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n, safe) {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts) {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" };\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr = ({codeName:\"ThisWorkbook\"});\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\nif((wb.Workbook.WBProps[x[0]]) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]);\n\t\t});\nif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))});\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length) {\n\tvar o = ({});\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula});\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\trecordhopper(data, function hopper_wb(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\" && state[state.length-1] != \"BrtFRTBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb) {\n\twrite_record(ba, \"BrtBeginBundleShs\");\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, \"BrtBundleSh\", write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, \"BrtEndBundleShs\");\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\to.length = o.l;\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, \"BrtBeginBookViews\");\n\twrite_record(ba, \"BrtBookView\", write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, \"BrtEndBookViews\");\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginBook\");\n\twrite_record(ba, \"BrtFileVersion\", write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, \"BrtWbProp\", write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, \"BrtCalcProp\", write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, \"BrtFileRecover\", write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, \"BrtEndBook\");\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data), opts);\n\treturn parse_wb_xml((data), opts);\n}\n\nfunction parse_ws(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data), themes, opts);\n\treturn parse_sty_xml((data), themes, opts);\n}\n\nfunction parse_theme(data, name, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data), opts);\n\treturn parse_sst_xml((data), opts);\n}\n\nfunction parse_cmnt(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data), opts);\n\treturn parse_comments_xml((data), opts);\n}\n\nfunction parse_cc(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data), name, opts);\n\treturn parse_cc_xml((data), name, opts);\n}\n\nfunction parse_xlink(data, rel, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data), rel, name, opts);\n\treturn parse_xlink_xml((data), rel, name, opts);\n}\n\nfunction write_wb(wb, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag, skip_root) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = ([]); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\nfunction xlml_format(format, value) {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF._general(value);\n\treturn SSF.format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val) {\n\tvar oval = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v);\n\t\t\t\telse cell.w = SSF._general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF._general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && SSF.is_date(z)) {\n\t\t\tvar _d = SSF.parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\nfunction xlml_normalize(d) {\n\tif(has_buf && Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n\n/* TODO: Everything */\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\nfunction parse_xlml_xml(d, _opts) {\n\tvar opts = _opts || {};\n\tmake_ssf(SSF);\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof cptable !== 'undefined') str = cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return HTML_.to_workbook(str, opts);\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames = [], cursheet = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar table = {}, cell = ({}), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments = [], comment = ({});\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf = [];\n\tvar rowinfo = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false} }), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:cell.HRef});\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\nfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\ttable = xlml_parsexmltag(Rn[0]);\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == null) { SSF.load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t});\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\nWorkbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author});\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\nWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].header = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].footer = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(pagemargins.Top) cursheet['!margins'].top = pagemargins.Top;\n\t\t\t\t\t\tif(pagemargins.Left) cursheet['!margins'].left = pagemargins.Left;\n\t\t\t\t\t\tif(pagemargins.Right) cursheet['!margins'].right = pagemargins.Right;\n\t\t\t\t\t\tif(pagemargins.Bottom) cursheet['!margins'].bottom = pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/: break;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/: break;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({});\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = SSF.get_table();\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data, opts) {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64.decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n}\n\n/* TODO */\nfunction write_props_xlml(wb, opts) {\n\tvar o = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml() {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts) {\n\t/* Styles */\n\tvar styles = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(SSF._table[xf.numFmtId])}));\n\n\t\tvar o = {\"ss:ID\": \"s\" + (21+id)};\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb) {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tvar o = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments) {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr){\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || SSF._table[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R, row) {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws, opts, idx, wb) {\n\tif(!ws['!ref']) return \"\";\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar marr = ws['!merges'] || [], mi = 0;\n\tvar o = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx, opts, wb) {\n\tvar o = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts) {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = SSF.get_table();\n\tif(wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj) {\n\tvar v = {};\n\tvar o = obj.content;\n/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue\n\t- 2.4.59 ContinueBigName\n\t- 2.4.60 ContinueFrt\n\t- 2.4.61 ContinueFrt11\n\t- 2.4.62 ContinueFrt12\n*/\nfunction slurp(R, blob, length, opts) {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': case 'EOF':\n\t\tbreak;\n\tcase 'BoundSheet8':\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]);\n\tvar start = 0;\n\twhile(next != null && next.n.slice(0,8) === 'Continue') {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(next.n == 'ContinueFrt') start += 4;\n\t\telse if(next.n.slice(0,11) == 'ContinueFrt') {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs));\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record \" + (R && R.n || \"??\") + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p, opts, date1904) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF._general(p.v);\n\t\t}\n\t\telse p.w = SSF.format(fmtid,p.v, {date1904:!!date1904});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && SSF.is_date(SSF._table[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t) {\n\treturn ({v:val, ixfe:ixfe, t:t});\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options) {\n\tvar wb = ({opts:{}});\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out = ((options.dense ? [] : {}));\n\tvar Directory = {};\n\tvar range = ({});\n\tvar last_formula = null;\n\tvar sst = ([]);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf = [];\n\tvar temp_val;\n\tvar country;\n\tvar cell_valid = true;\n\tvar XFs = []; /* XF records */\n\tvar palette = [];\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }), wsprops = {};\n\tvar get_rgb = function getrgb(icv) {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({});\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell, line, options) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) cell_valid = false;\n\t\tif(!cell_valid) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t});\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges = [];\n\tvar objects = [];\n\tvar colinfo = [], rowinfo = [];\n\t// eslint-disable-next-line no-unused-vars\n\tvar defwidth = 0, defheight = 0; // twips / MDW respectively\n\tvar seencol = false;\n\tvar supbooks = ([]); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_Rn = '';\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_Rn === 'EOF') break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break;\n\t\t\t}\n\t\t\tlast_Rn = R.n;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val = ({});\n\t\t\tif(R.n === 'EOF') val = R.f(blob, length, opts);\n\t\t\telse val = slurp(R, blob, length, opts);\n\t\t\tvar Rn = R.n;\nif(file_depth == 0 && Rn != 'BOF') continue;\n\t\t\t/* nested switch statements to workaround V8 128 limit */\n\t\t\tswitch(Rn) {\n\t\t\t\t/* Workbook Options */\n\t\t\t\tcase 'Date1904':\nwb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 'WriteProtect': wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 'FilePass':\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'WriteAccess': opts.lastuser = val; break;\n\t\t\t\tcase 'FileSharing': break; //TODO\n\t\t\t\tcase 'CodePage':\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'RRTabId': opts.rrtabid = val; break;\n\t\t\t\tcase 'WinProtect': opts.winlocked = val; break;\n\t\t\t\tcase 'Template': break; // TODO\n\t\t\t\tcase 'BookBool': break; // TODO\n\t\t\t\tcase 'UsesELFs': break;\n\t\t\t\tcase 'MTRSettings': break;\n\t\t\t\tcase 'RefreshAll':\n\t\t\t\tcase 'CalcCount':\n\t\t\t\tcase 'CalcDelta':\n\t\t\t\tcase 'CalcIter':\n\t\t\t\tcase 'CalcMode':\n\t\t\t\tcase 'CalcPrecision':\n\t\t\t\tcase 'CalcSaveRecalc':\n\t\t\t\t\twb.opts[Rn] = val; break;\n\t\t\t\tcase 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 'Uncalced': break;\n\t\t\t\tcase 'ForceFullCalculation': wb.opts.FullCalc = val; break;\n\t\t\t\tcase 'WsBool':\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 'XF':\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 'ExtSST': break; // TODO\n\t\t\t\tcase 'BookExt': break; // TODO\n\t\t\t\tcase 'RichTextStream': break;\n\t\t\t\tcase 'BkHim': break;\n\n\t\t\t\tcase 'SupBook':\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternName':\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Index': break; // TODO\n\t\t\t\tcase 'Lbl':\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t});\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternCount': opts.ExternCount = val; break;\n\t\t\t\tcase 'ExternSheet':\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 'NameCmt':\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Protect': out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 'Password': if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/\n\n\t\t\t\tcase 'BoundSheet8': {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 'EOF': {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\t\t\t\t} break;\n\t\t\t\tcase 'BOF': {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n0x0009:2,\n0x0209:3,\n0x0409:4\n\t\t\t\t\t}[RecordType] || {\n0x0200:2,\n0x0300:3,\n0x0400:4,\n0x0500:5,\n0x0600:8,\n0x0002:2,\n0x0007:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tcell_valid = true;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\t\t\t\t\tif(opts.biff < 5) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tdefwidth = defheight = 0;\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Number': case 'BIFF2NUM': case 'BIFF2INT': {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'BoolErr': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'RK': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulRk': {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Formula': {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'String': {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 'Array': {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'ShrFmla': {\n\t\t\t\t\tif(!cell_valid) break;\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'LabelSst':\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Blank': if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulBlank': if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'RString':\n\t\t\t\tcase 'Label': case 'BIFF2STR':\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x1F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Dimensions': {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 'SST': {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'Format': { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(SSF._table[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF.load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF.load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 'BIFF2FORMAT': {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(SSF._table[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF.load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 'MergeCells': merges = merges.concat(val); break;\n\n\t\t\t\tcase 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 'TxO': opts.lastobj.TxO = val; break;\n\t\t\t\tcase 'ImData': opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 'HLink': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'HLinkTooltip': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* Comments */\n\t\t\t\tcase 'Note': {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\tcase 'ClrtClient': break;\n\t\t\t\tcase 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break;\n\n\t\t\t\tcase 'DefColWidth': defwidth = val; break;\n\t\t\t\tcase 'DefaultRowHeight': defheight = val[1]; break; // TODO: flags\n\n\t\t\t\tcase 'ColInfo': {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256 };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Row': {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tcase 'LeftMargin':\n\t\t\t\tcase 'RightMargin':\n\t\t\t\tcase 'TopMargin':\n\t\t\t\tcase 'BottomMargin':\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][Rn.slice(0,-6).toLowerCase()] = val;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Setup': // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Window2': // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Header': break; // TODO\n\t\t\t\tcase 'Footer': break; // TODO\n\t\t\t\tcase 'HCenter': break; // TODO\n\t\t\t\tcase 'VCenter': break; // TODO\n\t\t\t\tcase 'Pls': break; // TODO\n\t\t\t\tcase 'GCW': break;\n\t\t\t\tcase 'LHRecord': break;\n\t\t\t\tcase 'DBCell': break; // TODO\n\t\t\t\tcase 'EntExU2': break; // TODO\n\t\t\t\tcase 'SxView': break; // TODO\n\t\t\t\tcase 'Sxvd': break; // TODO\n\t\t\t\tcase 'SXVI': break; // TODO\n\t\t\t\tcase 'SXVDEx': break; // TODO\n\t\t\t\tcase 'SxIvd': break; // TODO\n\t\t\t\tcase 'SXString': break; // TODO\n\t\t\t\tcase 'Sync': break;\n\t\t\t\tcase 'Addin': break;\n\t\t\t\tcase 'SXDI': break; // TODO\n\t\t\t\tcase 'SXLI': break; // TODO\n\t\t\t\tcase 'SXEx': break; // TODO\n\t\t\t\tcase 'QsiSXTag': break; // TODO\n\t\t\t\tcase 'Selection': break;\n\t\t\t\tcase 'Feat': break;\n\t\t\t\tcase 'FeatHdr': case 'FeatHdr11': break;\n\t\t\t\tcase 'Feature11': case 'Feature12': case 'List12': break;\n\t\t\t\tcase 'Country': country = val; break;\n\t\t\t\tcase 'RecalcId': break;\n\t\t\t\tcase 'DxGCol': break; // TODO: htmlify\n\t\t\t\tcase 'Fbi': case 'Fbi2': case 'GelFrame': break;\n\t\t\t\tcase 'Font': break; // TODO\n\t\t\t\tcase 'XFCRC': break; // TODO\n\t\t\t\tcase 'Style': break; // TODO\n\t\t\t\tcase 'StyleExt': break; // TODO\n\t\t\t\tcase 'Palette': palette = val; break;\n\t\t\t\tcase 'Theme': themes = val; break;\n\t\t\t\t/* Protection */\n\t\t\t\tcase 'ScenarioProtect': break;\n\t\t\t\tcase 'ObjProtect': break;\n\n\t\t\t\t/* Conditional Formatting */\n\t\t\t\tcase 'CondFmt12': break;\n\n\t\t\t\t/* Table */\n\t\t\t\tcase 'Table': break; // TODO\n\t\t\t\tcase 'TableStyles': break; // TODO\n\t\t\t\tcase 'TableStyle': break; // TODO\n\t\t\t\tcase 'TableStyleElement': break; // TODO\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'SXStreamID': break; // TODO\n\t\t\t\tcase 'SXVS': break; // TODO\n\t\t\t\tcase 'DConRef': break; // TODO\n\t\t\t\tcase 'SXAddl': break; // TODO\n\t\t\t\tcase 'DConBin': break; // TODO\n\t\t\t\tcase 'DConName': break; // TODO\n\t\t\t\tcase 'SXPI': break; // TODO\n\t\t\t\tcase 'SxFormat': break; // TODO\n\t\t\t\tcase 'SxSelect': break; // TODO\n\t\t\t\tcase 'SxRule': break; // TODO\n\t\t\t\tcase 'SxFilt': break; // TODO\n\t\t\t\tcase 'SxItm': break; // TODO\n\t\t\t\tcase 'SxDXF': break; // TODO\n\n\t\t\t\t/* Scenario Manager */\n\t\t\t\tcase 'ScenMan': break;\n\n\t\t\t\t/* Data Consolidation */\n\t\t\t\tcase 'DCon': break;\n\n\t\t\t\t/* Watched Cell */\n\t\t\t\tcase 'CellWatch': break;\n\n\t\t\t\t/* Print Settings */\n\t\t\t\tcase 'PrintRowCol': break;\n\t\t\t\tcase 'PrintGrid': break;\n\t\t\t\tcase 'PrintSize': break;\n\n\t\t\t\tcase 'XCT': break;\n\t\t\t\tcase 'CRN': break;\n\n\t\t\t\tcase 'Scl': {\n\t\t\t\t\t//console.log(\"Zoom Level:\", val[0]/val[1],val);\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExt': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExtOptional': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\t/* VBA */\n\t\t\t\tcase 'ObNoMacros': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'ObProj': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'CodeName': {\nif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t\tcase 'GUIDTypeLib': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\tcase 'WOpt': break; // TODO: WTF?\n\t\t\t\tcase 'PhoneticInfo': break;\n\n\t\t\t\tcase 'OleObjectSize': break;\n\n\t\t\t\t/* Differential Formatting */\n\t\t\t\tcase 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break;\n\n\t\t\t\t/* Data Validation */\n\t\t\t\tcase 'Dv': case 'DVal': break;\n\n\t\t\t\t/* Data Series */\n\t\t\t\tcase 'BRAI': case 'Series': case 'SeriesText': break;\n\n\t\t\t\t/* Data Connection */\n\t\t\t\tcase 'DConn': break;\n\t\t\t\tcase 'DbOrParamQry': break;\n\t\t\t\tcase 'DBQueryExt': break;\n\n\t\t\t\tcase 'OleDbConn': break;\n\t\t\t\tcase 'ExtString': break;\n\n\t\t\t\t/* Formatting */\n\t\t\t\tcase 'IFmtRecord': break;\n\t\t\t\tcase 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break;\n\n\t\t\t\t/* Explicitly Ignored */\n\t\t\t\tcase 'Excel9File': break;\n\t\t\t\tcase 'Units': break;\n\t\t\t\tcase 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': break;\n\t\t\t\tcase 'BuiltInFnGroupCount': /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ break;\n\t\t\t\t/* View Stuff */\n\t\t\t\tcase 'Window1': case 'HideObj': case 'GridSet': case 'Guts':\n\t\t\t\tcase 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': break;\n\t\t\t\tcase 'Pane': break;\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Chart */\n\t\t\t\tcase 'Dat':\n\t\t\t\tcase 'Begin': case 'End':\n\t\t\t\tcase 'StartBlock': case 'EndBlock':\n\t\t\t\tcase 'Frame': case 'Area':\n\t\t\t\tcase 'Axis': case 'AxisLine': case 'Tick': break;\n\t\t\t\tcase 'AxesUsed':\n\t\t\t\tcase 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break;\n\t\t\t\tcase 'LineFormat': case 'AreaFormat':\n\t\t\t\tcase 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break;\n\t\t\t\tcase 'PlotArea': case 'PlotGrowth': break;\n\t\t\t\tcase 'SeriesList': case 'SerParent': case 'SerAuxTrend': break;\n\t\t\t\tcase 'DataFormat': case 'SerToCrt': case 'FontX': break;\n\t\t\t\tcase 'CatSerRange': case 'AxcExt': case 'SerFmt': break;\n\t\t\t\tcase 'ShtProps': break;\n\t\t\t\tcase 'DefaultText': case 'Text': case 'CatLab': break;\n\t\t\t\tcase 'DataLabExtContents': break;\n\t\t\t\tcase 'Legend': case 'LegendException': break;\n\t\t\t\tcase 'Pie': case 'Scatter': break;\n\t\t\t\tcase 'PieFormat': case 'MarkerFormat': break;\n\t\t\t\tcase 'StartObject': case 'EndObject': break;\n\t\t\t\tcase 'AlRuns': case 'ObjectLink': break;\n\t\t\t\tcase 'SIIndex': break;\n\t\t\t\tcase 'AttachedLabel': case 'YMult': break;\n\n\t\t\t\t/* Chart Group */\n\t\t\t\tcase 'Line': case 'Bar': break;\n\t\t\t\tcase 'Surf': break;\n\n\t\t\t\t/* Axis Group */\n\t\t\t\tcase 'AxisParent': break;\n\t\t\t\tcase 'Pos': break;\n\t\t\t\tcase 'ValueRange': break;\n\n\t\t\t\t/* Pivot Chart */\n\t\t\t\tcase 'SXViewEx9': break; // TODO\n\t\t\t\tcase 'SXViewLink': break;\n\t\t\t\tcase 'PivotChartBits': break;\n\t\t\t\tcase 'SBaseRef': break;\n\t\t\t\tcase 'TextPropsStream': break;\n\n\t\t\t\t/* Chart Misc */\n\t\t\t\tcase 'LnExt': break;\n\t\t\t\tcase 'MkrExt': break;\n\t\t\t\tcase 'CrtCoopt': break;\n\n\t\t\t\t/* Query Table */\n\t\t\t\tcase 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break;\n\t\t\t\tcase 'TxtQry': break;\n\n\t\t\t\t/* Filter */\n\t\t\t\tcase 'FilterMode': break;\n\t\t\t\tcase 'AutoFilter': case 'AutoFilterInfo': break;\n\t\t\t\tcase 'AutoFilter12': break;\n\t\t\t\tcase 'DropDownObjIds': break;\n\t\t\t\tcase 'Sort': break;\n\t\t\t\tcase 'SortData': break;\n\n\t\t\t\t/* Drawing */\n\t\t\t\tcase 'ShapePropsStream': break;\n\t\t\t\tcase 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break;\n\t\t\t\t/* Pub Stuff */\n\t\t\t\tcase 'WebPub': case 'AutoWebPub': break;\n\n\t\t\t\t/* Print Stuff */\n\t\t\t\tcase 'HeaderFooter': case 'HFPicture': case 'PLV':\n\t\t\t\tcase 'HorizontalPageBreaks': case 'VerticalPageBreaks': break;\n\t\t\t\t/* Behavioral */\n\t\t\t\tcase 'Backup': case 'CompressPictures': case 'Compat12': break;\n\n\t\t\t\t/* Should not Happen */\n\t\t\t\tcase 'Continue': case 'ContinueFrt12': break;\n\n\t\t\t\t/* Future Records */\n\t\t\t\tcase 'FrtFontList': case 'FrtWrapper': break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* BIFF5 records */\n\t\t\t\tcase 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break;\n\n\t\t\t\t/* BIFF2-4 records */\n\t\t\t\tcase 'BIFF2FONTCLR': case 'BIFF2FMTCNT': case 'BIFF2FONTXTRA': break;\n\t\t\t\tcase 'BIFF2XF': case 'BIFF3XF': case 'BIFF4XF': break;\n\t\t\t\tcase 'BIFF4FMTCNT': case 'BIFF2ROW': case 'BIFF2WINDOW2': break;\n\n\t\t\t\t/* Miscellaneous */\n\t\t\t\tcase 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt':\n\t\t\t\tcase 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData':\n\t\t\t\tcase 'Name': break;\n\t\t\t\tcase 'LHNGraph': case 'FnGroupName': case 'AddMenu': case 'LPr': break;\n\t\t\t\tcase 'ListObj': case 'ListField': break;\n\t\t\t\tcase 'RRSort': break;\n\t\t\t\tcase 'BigName': break;\n\t\t\t\tcase 'ToolbarHdr': case 'ToolbarEnd': break;\n\t\t\t\tcase 'DDEObjName': break;\n\t\t\t\tcase 'FRTArchId$': break;\n\t\t\t\tdefault: if(options.WTF) throw 'Unrecognized Record ' + R.n;\n\t\t\t}}}}\n\t\t} else blob.l += length;\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Preamble=Preamble;\n\twb.Strings = sst;\n\twb.SSF = SSF.get_table();\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb, cfb) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb, options) {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj, WB;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64.decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb});\n}\nvar WorkbookP;\n\nvar _data;\nif(CompObj) parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({});\nelse {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(cfb, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb, opts) {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n0x0000: { n:\"BrtRowHdr\", f:parse_BrtRowHdr },\n0x0001: { n:\"BrtCellBlank\", f:parse_BrtCellBlank },\n0x0002: { n:\"BrtCellRk\", f:parse_BrtCellRk },\n0x0003: { n:\"BrtCellError\", f:parse_BrtCellError },\n0x0004: { n:\"BrtCellBool\", f:parse_BrtCellBool },\n0x0005: { n:\"BrtCellReal\", f:parse_BrtCellReal },\n0x0006: { n:\"BrtCellSt\", f:parse_BrtCellSt },\n0x0007: { n:\"BrtCellIsst\", f:parse_BrtCellIsst },\n0x0008: { n:\"BrtFmlaString\", f:parse_BrtFmlaString },\n0x0009: { n:\"BrtFmlaNum\", f:parse_BrtFmlaNum },\n0x000A: { n:\"BrtFmlaBool\", f:parse_BrtFmlaBool },\n0x000B: { n:\"BrtFmlaError\", f:parse_BrtFmlaError },\n0x0010: { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ },\n0x0013: { n:\"BrtSSTItem\", f:parse_RichStr },\n0x0014: { n:\"BrtPCDIMissing\" },\n0x0015: { n:\"BrtPCDINumber\" },\n0x0016: { n:\"BrtPCDIBoolean\" },\n0x0017: { n:\"BrtPCDIError\" },\n0x0018: { n:\"BrtPCDIString\" },\n0x0019: { n:\"BrtPCDIDatetime\" },\n0x001A: { n:\"BrtPCDIIndex\" },\n0x001B: { n:\"BrtPCDIAMissing\" },\n0x001C: { n:\"BrtPCDIANumber\" },\n0x001D: { n:\"BrtPCDIABoolean\" },\n0x001E: { n:\"BrtPCDIAError\" },\n0x001F: { n:\"BrtPCDIAString\" },\n0x0020: { n:\"BrtPCDIADatetime\" },\n0x0021: { n:\"BrtPCRRecord\" },\n0x0022: { n:\"BrtPCRRecordDt\" },\n0x0023: { n:\"BrtFRTBegin\" },\n0x0024: { n:\"BrtFRTEnd\" },\n0x0025: { n:\"BrtACBegin\" },\n0x0026: { n:\"BrtACEnd\" },\n0x0027: { n:\"BrtName\", f:parse_BrtName },\n0x0028: { n:\"BrtIndexRowBlock\" },\n0x002A: { n:\"BrtIndexBlock\" },\n0x002B: { n:\"BrtFont\", f:parse_BrtFont },\n0x002C: { n:\"BrtFmt\", f:parse_BrtFmt },\n0x002D: { n:\"BrtFill\", f:parse_BrtFill },\n0x002E: { n:\"BrtBorder\", f:parse_BrtBorder },\n0x002F: { n:\"BrtXF\", f:parse_BrtXF },\n0x0030: { n:\"BrtStyle\" },\n0x0031: { n:\"BrtCellMeta\" },\n0x0032: { n:\"BrtValueMeta\" },\n0x0033: { n:\"BrtMdb\" },\n0x0034: { n:\"BrtBeginFmd\" },\n0x0035: { n:\"BrtEndFmd\" },\n0x0036: { n:\"BrtBeginMdx\" },\n0x0037: { n:\"BrtEndMdx\" },\n0x0038: { n:\"BrtBeginMdxTuple\" },\n0x0039: { n:\"BrtEndMdxTuple\" },\n0x003A: { n:\"BrtMdxMbrIstr\" },\n0x003B: { n:\"BrtStr\" },\n0x003C: { n:\"BrtColInfo\", f:parse_ColInfo },\n0x003E: { n:\"BrtCellRString\" },\n0x003F: { n:\"BrtCalcChainItem$\", f:parse_BrtCalcChainItem$ },\n0x0040: { n:\"BrtDVal\", f:parse_BrtDVal },\n0x0041: { n:\"BrtSxvcellNum\" },\n0x0042: { n:\"BrtSxvcellStr\" },\n0x0043: { n:\"BrtSxvcellBool\" },\n0x0044: { n:\"BrtSxvcellErr\" },\n0x0045: { n:\"BrtSxvcellDate\" },\n0x0046: { n:\"BrtSxvcellNil\" },\n0x0080: { n:\"BrtFileVersion\" },\n0x0081: { n:\"BrtBeginSheet\" },\n0x0082: { n:\"BrtEndSheet\" },\n0x0083: { n:\"BrtBeginBook\", f:parsenoop, p:0 },\n0x0084: { n:\"BrtEndBook\" },\n0x0085: { n:\"BrtBeginWsViews\" },\n0x0086: { n:\"BrtEndWsViews\" },\n0x0087: { n:\"BrtBeginBookViews\" },\n0x0088: { n:\"BrtEndBookViews\" },\n0x0089: { n:\"BrtBeginWsView\", f:parse_BrtBeginWsView },\n0x008A: { n:\"BrtEndWsView\" },\n0x008B: { n:\"BrtBeginCsViews\" },\n0x008C: { n:\"BrtEndCsViews\" },\n0x008D: { n:\"BrtBeginCsView\" },\n0x008E: { n:\"BrtEndCsView\" },\n0x008F: { n:\"BrtBeginBundleShs\" },\n0x0090: { n:\"BrtEndBundleShs\" },\n0x0091: { n:\"BrtBeginSheetData\" },\n0x0092: { n:\"BrtEndSheetData\" },\n0x0093: { n:\"BrtWsProp\", f:parse_BrtWsProp },\n0x0094: { n:\"BrtWsDim\", f:parse_BrtWsDim, p:16 },\n0x0097: { n:\"BrtPane\", f:parse_BrtPane },\n0x0098: { n:\"BrtSel\" },\n0x0099: { n:\"BrtWbProp\", f:parse_BrtWbProp },\n0x009A: { n:\"BrtWbFactoid\" },\n0x009B: { n:\"BrtFileRecover\" },\n0x009C: { n:\"BrtBundleSh\", f:parse_BrtBundleSh },\n0x009D: { n:\"BrtCalcProp\" },\n0x009E: { n:\"BrtBookView\" },\n0x009F: { n:\"BrtBeginSst\", f:parse_BrtBeginSst },\n0x00A0: { n:\"BrtEndSst\" },\n0x00A1: { n:\"BrtBeginAFilter\", f:parse_UncheckedRfX },\n0x00A2: { n:\"BrtEndAFilter\" },\n0x00A3: { n:\"BrtBeginFilterColumn\" },\n0x00A4: { n:\"BrtEndFilterColumn\" },\n0x00A5: { n:\"BrtBeginFilters\" },\n0x00A6: { n:\"BrtEndFilters\" },\n0x00A7: { n:\"BrtFilter\" },\n0x00A8: { n:\"BrtColorFilter\" },\n0x00A9: { n:\"BrtIconFilter\" },\n0x00AA: { n:\"BrtTop10Filter\" },\n0x00AB: { n:\"BrtDynamicFilter\" },\n0x00AC: { n:\"BrtBeginCustomFilters\" },\n0x00AD: { n:\"BrtEndCustomFilters\" },\n0x00AE: { n:\"BrtCustomFilter\" },\n0x00AF: { n:\"BrtAFilterDateGroupItem\" },\n0x00B0: { n:\"BrtMergeCell\", f:parse_BrtMergeCell },\n0x00B1: { n:\"BrtBeginMergeCells\" },\n0x00B2: { n:\"BrtEndMergeCells\" },\n0x00B3: { n:\"BrtBeginPivotCacheDef\" },\n0x00B4: { n:\"BrtEndPivotCacheDef\" },\n0x00B5: { n:\"BrtBeginPCDFields\" },\n0x00B6: { n:\"BrtEndPCDFields\" },\n0x00B7: { n:\"BrtBeginPCDField\" },\n0x00B8: { n:\"BrtEndPCDField\" },\n0x00B9: { n:\"BrtBeginPCDSource\" },\n0x00BA: { n:\"BrtEndPCDSource\" },\n0x00BB: { n:\"BrtBeginPCDSRange\" },\n0x00BC: { n:\"BrtEndPCDSRange\" },\n0x00BD: { n:\"BrtBeginPCDFAtbl\" },\n0x00BE: { n:\"BrtEndPCDFAtbl\" },\n0x00BF: { n:\"BrtBeginPCDIRun\" },\n0x00C0: { n:\"BrtEndPCDIRun\" },\n0x00C1: { n:\"BrtBeginPivotCacheRecords\" },\n0x00C2: { n:\"BrtEndPivotCacheRecords\" },\n0x00C3: { n:\"BrtBeginPCDHierarchies\" },\n0x00C4: { n:\"BrtEndPCDHierarchies\" },\n0x00C5: { n:\"BrtBeginPCDHierarchy\" },\n0x00C6: { n:\"BrtEndPCDHierarchy\" },\n0x00C7: { n:\"BrtBeginPCDHFieldsUsage\" },\n0x00C8: { n:\"BrtEndPCDHFieldsUsage\" },\n0x00C9: { n:\"BrtBeginExtConnection\" },\n0x00CA: { n:\"BrtEndExtConnection\" },\n0x00CB: { n:\"BrtBeginECDbProps\" },\n0x00CC: { n:\"BrtEndECDbProps\" },\n0x00CD: { n:\"BrtBeginECOlapProps\" },\n0x00CE: { n:\"BrtEndECOlapProps\" },\n0x00CF: { n:\"BrtBeginPCDSConsol\" },\n0x00D0: { n:\"BrtEndPCDSConsol\" },\n0x00D1: { n:\"BrtBeginPCDSCPages\" },\n0x00D2: { n:\"BrtEndPCDSCPages\" },\n0x00D3: { n:\"BrtBeginPCDSCPage\" },\n0x00D4: { n:\"BrtEndPCDSCPage\" },\n0x00D5: { n:\"BrtBeginPCDSCPItem\" },\n0x00D6: { n:\"BrtEndPCDSCPItem\" },\n0x00D7: { n:\"BrtBeginPCDSCSets\" },\n0x00D8: { n:\"BrtEndPCDSCSets\" },\n0x00D9: { n:\"BrtBeginPCDSCSet\" },\n0x00DA: { n:\"BrtEndPCDSCSet\" },\n0x00DB: { n:\"BrtBeginPCDFGroup\" },\n0x00DC: { n:\"BrtEndPCDFGroup\" },\n0x00DD: { n:\"BrtBeginPCDFGItems\" },\n0x00DE: { n:\"BrtEndPCDFGItems\" },\n0x00DF: { n:\"BrtBeginPCDFGRange\" },\n0x00E0: { n:\"BrtEndPCDFGRange\" },\n0x00E1: { n:\"BrtBeginPCDFGDiscrete\" },\n0x00E2: { n:\"BrtEndPCDFGDiscrete\" },\n0x00E3: { n:\"BrtBeginPCDSDTupleCache\" },\n0x00E4: { n:\"BrtEndPCDSDTupleCache\" },\n0x00E5: { n:\"BrtBeginPCDSDTCEntries\" },\n0x00E6: { n:\"BrtEndPCDSDTCEntries\" },\n0x00E7: { n:\"BrtBeginPCDSDTCEMembers\" },\n0x00E8: { n:\"BrtEndPCDSDTCEMembers\" },\n0x00E9: { n:\"BrtBeginPCDSDTCEMember\" },\n0x00EA: { n:\"BrtEndPCDSDTCEMember\" },\n0x00EB: { n:\"BrtBeginPCDSDTCQueries\" },\n0x00EC: { n:\"BrtEndPCDSDTCQueries\" },\n0x00ED: { n:\"BrtBeginPCDSDTCQuery\" },\n0x00EE: { n:\"BrtEndPCDSDTCQuery\" },\n0x00EF: { n:\"BrtBeginPCDSDTCSets\" },\n0x00F0: { n:\"BrtEndPCDSDTCSets\" },\n0x00F1: { n:\"BrtBeginPCDSDTCSet\" },\n0x00F2: { n:\"BrtEndPCDSDTCSet\" },\n0x00F3: { n:\"BrtBeginPCDCalcItems\" },\n0x00F4: { n:\"BrtEndPCDCalcItems\" },\n0x00F5: { n:\"BrtBeginPCDCalcItem\" },\n0x00F6: { n:\"BrtEndPCDCalcItem\" },\n0x00F7: { n:\"BrtBeginPRule\" },\n0x00F8: { n:\"BrtEndPRule\" },\n0x00F9: { n:\"BrtBeginPRFilters\" },\n0x00FA: { n:\"BrtEndPRFilters\" },\n0x00FB: { n:\"BrtBeginPRFilter\" },\n0x00FC: { n:\"BrtEndPRFilter\" },\n0x00FD: { n:\"BrtBeginPNames\" },\n0x00FE: { n:\"BrtEndPNames\" },\n0x00FF: { n:\"BrtBeginPName\" },\n0x0100: { n:\"BrtEndPName\" },\n0x0101: { n:\"BrtBeginPNPairs\" },\n0x0102: { n:\"BrtEndPNPairs\" },\n0x0103: { n:\"BrtBeginPNPair\" },\n0x0104: { n:\"BrtEndPNPair\" },\n0x0105: { n:\"BrtBeginECWebProps\" },\n0x0106: { n:\"BrtEndECWebProps\" },\n0x0107: { n:\"BrtBeginEcWpTables\" },\n0x0108: { n:\"BrtEndECWPTables\" },\n0x0109: { n:\"BrtBeginECParams\" },\n0x010A: { n:\"BrtEndECParams\" },\n0x010B: { n:\"BrtBeginECParam\" },\n0x010C: { n:\"BrtEndECParam\" },\n0x010D: { n:\"BrtBeginPCDKPIs\" },\n0x010E: { n:\"BrtEndPCDKPIs\" },\n0x010F: { n:\"BrtBeginPCDKPI\" },\n0x0110: { n:\"BrtEndPCDKPI\" },\n0x0111: { n:\"BrtBeginDims\" },\n0x0112: { n:\"BrtEndDims\" },\n0x0113: { n:\"BrtBeginDim\" },\n0x0114: { n:\"BrtEndDim\" },\n0x0115: { n:\"BrtIndexPartEnd\" },\n0x0116: { n:\"BrtBeginStyleSheet\" },\n0x0117: { n:\"BrtEndStyleSheet\" },\n0x0118: { n:\"BrtBeginSXView\" },\n0x0119: { n:\"BrtEndSXVI\" },\n0x011A: { n:\"BrtBeginSXVI\" },\n0x011B: { n:\"BrtBeginSXVIs\" },\n0x011C: { n:\"BrtEndSXVIs\" },\n0x011D: { n:\"BrtBeginSXVD\" },\n0x011E: { n:\"BrtEndSXVD\" },\n0x011F: { n:\"BrtBeginSXVDs\" },\n0x0120: { n:\"BrtEndSXVDs\" },\n0x0121: { n:\"BrtBeginSXPI\" },\n0x0122: { n:\"BrtEndSXPI\" },\n0x0123: { n:\"BrtBeginSXPIs\" },\n0x0124: { n:\"BrtEndSXPIs\" },\n0x0125: { n:\"BrtBeginSXDI\" },\n0x0126: { n:\"BrtEndSXDI\" },\n0x0127: { n:\"BrtBeginSXDIs\" },\n0x0128: { n:\"BrtEndSXDIs\" },\n0x0129: { n:\"BrtBeginSXLI\" },\n0x012A: { n:\"BrtEndSXLI\" },\n0x012B: { n:\"BrtBeginSXLIRws\" },\n0x012C: { n:\"BrtEndSXLIRws\" },\n0x012D: { n:\"BrtBeginSXLICols\" },\n0x012E: { n:\"BrtEndSXLICols\" },\n0x012F: { n:\"BrtBeginSXFormat\" },\n0x0130: { n:\"BrtEndSXFormat\" },\n0x0131: { n:\"BrtBeginSXFormats\" },\n0x0132: { n:\"BrtEndSxFormats\" },\n0x0133: { n:\"BrtBeginSxSelect\" },\n0x0134: { n:\"BrtEndSxSelect\" },\n0x0135: { n:\"BrtBeginISXVDRws\" },\n0x0136: { n:\"BrtEndISXVDRws\" },\n0x0137: { n:\"BrtBeginISXVDCols\" },\n0x0138: { n:\"BrtEndISXVDCols\" },\n0x0139: { n:\"BrtEndSXLocation\" },\n0x013A: { n:\"BrtBeginSXLocation\" },\n0x013B: { n:\"BrtEndSXView\" },\n0x013C: { n:\"BrtBeginSXTHs\" },\n0x013D: { n:\"BrtEndSXTHs\" },\n0x013E: { n:\"BrtBeginSXTH\" },\n0x013F: { n:\"BrtEndSXTH\" },\n0x0140: { n:\"BrtBeginISXTHRws\" },\n0x0141: { n:\"BrtEndISXTHRws\" },\n0x0142: { n:\"BrtBeginISXTHCols\" },\n0x0143: { n:\"BrtEndISXTHCols\" },\n0x0144: { n:\"BrtBeginSXTDMPS\" },\n0x0145: { n:\"BrtEndSXTDMPs\" },\n0x0146: { n:\"BrtBeginSXTDMP\" },\n0x0147: { n:\"BrtEndSXTDMP\" },\n0x0148: { n:\"BrtBeginSXTHItems\" },\n0x0149: { n:\"BrtEndSXTHItems\" },\n0x014A: { n:\"BrtBeginSXTHItem\" },\n0x014B: { n:\"BrtEndSXTHItem\" },\n0x014C: { n:\"BrtBeginMetadata\" },\n0x014D: { n:\"BrtEndMetadata\" },\n0x014E: { n:\"BrtBeginEsmdtinfo\" },\n0x014F: { n:\"BrtMdtinfo\" },\n0x0150: { n:\"BrtEndEsmdtinfo\" },\n0x0151: { n:\"BrtBeginEsmdb\" },\n0x0152: { n:\"BrtEndEsmdb\" },\n0x0153: { n:\"BrtBeginEsfmd\" },\n0x0154: { n:\"BrtEndEsfmd\" },\n0x0155: { n:\"BrtBeginSingleCells\" },\n0x0156: { n:\"BrtEndSingleCells\" },\n0x0157: { n:\"BrtBeginList\" },\n0x0158: { n:\"BrtEndList\" },\n0x0159: { n:\"BrtBeginListCols\" },\n0x015A: { n:\"BrtEndListCols\" },\n0x015B: { n:\"BrtBeginListCol\" },\n0x015C: { n:\"BrtEndListCol\" },\n0x015D: { n:\"BrtBeginListXmlCPr\" },\n0x015E: { n:\"BrtEndListXmlCPr\" },\n0x015F: { n:\"BrtListCCFmla\" },\n0x0160: { n:\"BrtListTrFmla\" },\n0x0161: { n:\"BrtBeginExternals\" },\n0x0162: { n:\"BrtEndExternals\" },\n0x0163: { n:\"BrtSupBookSrc\", f:parse_RelID},\n0x0165: { n:\"BrtSupSelf\" },\n0x0166: { n:\"BrtSupSame\" },\n0x0167: { n:\"BrtSupTabs\" },\n0x0168: { n:\"BrtBeginSupBook\" },\n0x0169: { n:\"BrtPlaceholderName\" },\n0x016A: { n:\"BrtExternSheet\", f:parse_ExternSheet },\n0x016B: { n:\"BrtExternTableStart\" },\n0x016C: { n:\"BrtExternTableEnd\" },\n0x016E: { n:\"BrtExternRowHdr\" },\n0x016F: { n:\"BrtExternCellBlank\" },\n0x0170: { n:\"BrtExternCellReal\" },\n0x0171: { n:\"BrtExternCellBool\" },\n0x0172: { n:\"BrtExternCellError\" },\n0x0173: { n:\"BrtExternCellString\" },\n0x0174: { n:\"BrtBeginEsmdx\" },\n0x0175: { n:\"BrtEndEsmdx\" },\n0x0176: { n:\"BrtBeginMdxSet\" },\n0x0177: { n:\"BrtEndMdxSet\" },\n0x0178: { n:\"BrtBeginMdxMbrProp\" },\n0x0179: { n:\"BrtEndMdxMbrProp\" },\n0x017A: { n:\"BrtBeginMdxKPI\" },\n0x017B: { n:\"BrtEndMdxKPI\" },\n0x017C: { n:\"BrtBeginEsstr\" },\n0x017D: { n:\"BrtEndEsstr\" },\n0x017E: { n:\"BrtBeginPRFItem\" },\n0x017F: { n:\"BrtEndPRFItem\" },\n0x0180: { n:\"BrtBeginPivotCacheIDs\" },\n0x0181: { n:\"BrtEndPivotCacheIDs\" },\n0x0182: { n:\"BrtBeginPivotCacheID\" },\n0x0183: { n:\"BrtEndPivotCacheID\" },\n0x0184: { n:\"BrtBeginISXVIs\" },\n0x0185: { n:\"BrtEndISXVIs\" },\n0x0186: { n:\"BrtBeginColInfos\" },\n0x0187: { n:\"BrtEndColInfos\" },\n0x0188: { n:\"BrtBeginRwBrk\" },\n0x0189: { n:\"BrtEndRwBrk\" },\n0x018A: { n:\"BrtBeginColBrk\" },\n0x018B: { n:\"BrtEndColBrk\" },\n0x018C: { n:\"BrtBrk\" },\n0x018D: { n:\"BrtUserBookView\" },\n0x018E: { n:\"BrtInfo\" },\n0x018F: { n:\"BrtCUsr\" },\n0x0190: { n:\"BrtUsr\" },\n0x0191: { n:\"BrtBeginUsers\" },\n0x0193: { n:\"BrtEOF\" },\n0x0194: { n:\"BrtUCR\" },\n0x0195: { n:\"BrtRRInsDel\" },\n0x0196: { n:\"BrtRREndInsDel\" },\n0x0197: { n:\"BrtRRMove\" },\n0x0198: { n:\"BrtRREndMove\" },\n0x0199: { n:\"BrtRRChgCell\" },\n0x019A: { n:\"BrtRREndChgCell\" },\n0x019B: { n:\"BrtRRHeader\" },\n0x019C: { n:\"BrtRRUserView\" },\n0x019D: { n:\"BrtRRRenSheet\" },\n0x019E: { n:\"BrtRRInsertSh\" },\n0x019F: { n:\"BrtRRDefName\" },\n0x01A0: { n:\"BrtRRNote\" },\n0x01A1: { n:\"BrtRRConflict\" },\n0x01A2: { n:\"BrtRRTQSIF\" },\n0x01A3: { n:\"BrtRRFormat\" },\n0x01A4: { n:\"BrtRREndFormat\" },\n0x01A5: { n:\"BrtRRAutoFmt\" },\n0x01A6: { n:\"BrtBeginUserShViews\" },\n0x01A7: { n:\"BrtBeginUserShView\" },\n0x01A8: { n:\"BrtEndUserShView\" },\n0x01A9: { n:\"BrtEndUserShViews\" },\n0x01AA: { n:\"BrtArrFmla\", f:parse_BrtArrFmla },\n0x01AB: { n:\"BrtShrFmla\", f:parse_BrtShrFmla },\n0x01AC: { n:\"BrtTable\" },\n0x01AD: { n:\"BrtBeginExtConnections\" },\n0x01AE: { n:\"BrtEndExtConnections\" },\n0x01AF: { n:\"BrtBeginPCDCalcMems\" },\n0x01B0: { n:\"BrtEndPCDCalcMems\" },\n0x01B1: { n:\"BrtBeginPCDCalcMem\" },\n0x01B2: { n:\"BrtEndPCDCalcMem\" },\n0x01B3: { n:\"BrtBeginPCDHGLevels\" },\n0x01B4: { n:\"BrtEndPCDHGLevels\" },\n0x01B5: { n:\"BrtBeginPCDHGLevel\" },\n0x01B6: { n:\"BrtEndPCDHGLevel\" },\n0x01B7: { n:\"BrtBeginPCDHGLGroups\" },\n0x01B8: { n:\"BrtEndPCDHGLGroups\" },\n0x01B9: { n:\"BrtBeginPCDHGLGroup\" },\n0x01BA: { n:\"BrtEndPCDHGLGroup\" },\n0x01BB: { n:\"BrtBeginPCDHGLGMembers\" },\n0x01BC: { n:\"BrtEndPCDHGLGMembers\" },\n0x01BD: { n:\"BrtBeginPCDHGLGMember\" },\n0x01BE: { n:\"BrtEndPCDHGLGMember\" },\n0x01BF: { n:\"BrtBeginQSI\" },\n0x01C0: { n:\"BrtEndQSI\" },\n0x01C1: { n:\"BrtBeginQSIR\" },\n0x01C2: { n:\"BrtEndQSIR\" },\n0x01C3: { n:\"BrtBeginDeletedNames\" },\n0x01C4: { n:\"BrtEndDeletedNames\" },\n0x01C5: { n:\"BrtBeginDeletedName\" },\n0x01C6: { n:\"BrtEndDeletedName\" },\n0x01C7: { n:\"BrtBeginQSIFs\" },\n0x01C8: { n:\"BrtEndQSIFs\" },\n0x01C9: { n:\"BrtBeginQSIF\" },\n0x01CA: { n:\"BrtEndQSIF\" },\n0x01CB: { n:\"BrtBeginAutoSortScope\" },\n0x01CC: { n:\"BrtEndAutoSortScope\" },\n0x01CD: { n:\"BrtBeginConditionalFormatting\" },\n0x01CE: { n:\"BrtEndConditionalFormatting\" },\n0x01CF: { n:\"BrtBeginCFRule\" },\n0x01D0: { n:\"BrtEndCFRule\" },\n0x01D1: { n:\"BrtBeginIconSet\" },\n0x01D2: { n:\"BrtEndIconSet\" },\n0x01D3: { n:\"BrtBeginDatabar\" },\n0x01D4: { n:\"BrtEndDatabar\" },\n0x01D5: { n:\"BrtBeginColorScale\" },\n0x01D6: { n:\"BrtEndColorScale\" },\n0x01D7: { n:\"BrtCFVO\" },\n0x01D8: { n:\"BrtExternValueMeta\" },\n0x01D9: { n:\"BrtBeginColorPalette\" },\n0x01DA: { n:\"BrtEndColorPalette\" },\n0x01DB: { n:\"BrtIndexedColor\" },\n0x01DC: { n:\"BrtMargins\", f:parse_BrtMargins },\n0x01DD: { n:\"BrtPrintOptions\" },\n0x01DE: { n:\"BrtPageSetup\" },\n0x01DF: { n:\"BrtBeginHeaderFooter\" },\n0x01E0: { n:\"BrtEndHeaderFooter\" },\n0x01E1: { n:\"BrtBeginSXCrtFormat\" },\n0x01E2: { n:\"BrtEndSXCrtFormat\" },\n0x01E3: { n:\"BrtBeginSXCrtFormats\" },\n0x01E4: { n:\"BrtEndSXCrtFormats\" },\n0x01E5: { n:\"BrtWsFmtInfo\", f:parse_BrtWsFmtInfo },\n0x01E6: { n:\"BrtBeginMgs\" },\n0x01E7: { n:\"BrtEndMGs\" },\n0x01E8: { n:\"BrtBeginMGMaps\" },\n0x01E9: { n:\"BrtEndMGMaps\" },\n0x01EA: { n:\"BrtBeginMG\" },\n0x01EB: { n:\"BrtEndMG\" },\n0x01EC: { n:\"BrtBeginMap\" },\n0x01ED: { n:\"BrtEndMap\" },\n0x01EE: { n:\"BrtHLink\", f:parse_BrtHLink },\n0x01EF: { n:\"BrtBeginDCon\" },\n0x01F0: { n:\"BrtEndDCon\" },\n0x01F1: { n:\"BrtBeginDRefs\" },\n0x01F2: { n:\"BrtEndDRefs\" },\n0x01F3: { n:\"BrtDRef\" },\n0x01F4: { n:\"BrtBeginScenMan\" },\n0x01F5: { n:\"BrtEndScenMan\" },\n0x01F6: { n:\"BrtBeginSct\" },\n0x01F7: { n:\"BrtEndSct\" },\n0x01F8: { n:\"BrtSlc\" },\n0x01F9: { n:\"BrtBeginDXFs\" },\n0x01FA: { n:\"BrtEndDXFs\" },\n0x01FB: { n:\"BrtDXF\" },\n0x01FC: { n:\"BrtBeginTableStyles\" },\n0x01FD: { n:\"BrtEndTableStyles\" },\n0x01FE: { n:\"BrtBeginTableStyle\" },\n0x01FF: { n:\"BrtEndTableStyle\" },\n0x0200: { n:\"BrtTableStyleElement\" },\n0x0201: { n:\"BrtTableStyleClient\" },\n0x0202: { n:\"BrtBeginVolDeps\" },\n0x0203: { n:\"BrtEndVolDeps\" },\n0x0204: { n:\"BrtBeginVolType\" },\n0x0205: { n:\"BrtEndVolType\" },\n0x0206: { n:\"BrtBeginVolMain\" },\n0x0207: { n:\"BrtEndVolMain\" },\n0x0208: { n:\"BrtBeginVolTopic\" },\n0x0209: { n:\"BrtEndVolTopic\" },\n0x020A: { n:\"BrtVolSubtopic\" },\n0x020B: { n:\"BrtVolRef\" },\n0x020C: { n:\"BrtVolNum\" },\n0x020D: { n:\"BrtVolErr\" },\n0x020E: { n:\"BrtVolStr\" },\n0x020F: { n:\"BrtVolBool\" },\n0x0210: { n:\"BrtBeginCalcChain$\" },\n0x0211: { n:\"BrtEndCalcChain$\" },\n0x0212: { n:\"BrtBeginSortState\" },\n0x0213: { n:\"BrtEndSortState\" },\n0x0214: { n:\"BrtBeginSortCond\" },\n0x0215: { n:\"BrtEndSortCond\" },\n0x0216: { n:\"BrtBookProtection\" },\n0x0217: { n:\"BrtSheetProtection\" },\n0x0218: { n:\"BrtRangeProtection\" },\n0x0219: { n:\"BrtPhoneticInfo\" },\n0x021A: { n:\"BrtBeginECTxtWiz\" },\n0x021B: { n:\"BrtEndECTxtWiz\" },\n0x021C: { n:\"BrtBeginECTWFldInfoLst\" },\n0x021D: { n:\"BrtEndECTWFldInfoLst\" },\n0x021E: { n:\"BrtBeginECTwFldInfo\" },\n0x0224: { n:\"BrtFileSharing\" },\n0x0225: { n:\"BrtOleSize\" },\n0x0226: { n:\"BrtDrawing\", f:parse_RelID },\n0x0227: { n:\"BrtLegacyDrawing\" },\n0x0228: { n:\"BrtLegacyDrawingHF\" },\n0x0229: { n:\"BrtWebOpt\" },\n0x022A: { n:\"BrtBeginWebPubItems\" },\n0x022B: { n:\"BrtEndWebPubItems\" },\n0x022C: { n:\"BrtBeginWebPubItem\" },\n0x022D: { n:\"BrtEndWebPubItem\" },\n0x022E: { n:\"BrtBeginSXCondFmt\" },\n0x022F: { n:\"BrtEndSXCondFmt\" },\n0x0230: { n:\"BrtBeginSXCondFmts\" },\n0x0231: { n:\"BrtEndSXCondFmts\" },\n0x0232: { n:\"BrtBkHim\" },\n0x0234: { n:\"BrtColor\" },\n0x0235: { n:\"BrtBeginIndexedColors\" },\n0x0236: { n:\"BrtEndIndexedColors\" },\n0x0239: { n:\"BrtBeginMRUColors\" },\n0x023A: { n:\"BrtEndMRUColors\" },\n0x023C: { n:\"BrtMRUColor\" },\n0x023D: { n:\"BrtBeginDVals\" },\n0x023E: { n:\"BrtEndDVals\" },\n0x0241: { n:\"BrtSupNameStart\" },\n0x0242: { n:\"BrtSupNameValueStart\" },\n0x0243: { n:\"BrtSupNameValueEnd\" },\n0x0244: { n:\"BrtSupNameNum\" },\n0x0245: { n:\"BrtSupNameErr\" },\n0x0246: { n:\"BrtSupNameSt\" },\n0x0247: { n:\"BrtSupNameNil\" },\n0x0248: { n:\"BrtSupNameBool\" },\n0x0249: { n:\"BrtSupNameFmla\" },\n0x024A: { n:\"BrtSupNameBits\" },\n0x024B: { n:\"BrtSupNameEnd\" },\n0x024C: { n:\"BrtEndSupBook\" },\n0x024D: { n:\"BrtCellSmartTagProperty\" },\n0x024E: { n:\"BrtBeginCellSmartTag\" },\n0x024F: { n:\"BrtEndCellSmartTag\" },\n0x0250: { n:\"BrtBeginCellSmartTags\" },\n0x0251: { n:\"BrtEndCellSmartTags\" },\n0x0252: { n:\"BrtBeginSmartTags\" },\n0x0253: { n:\"BrtEndSmartTags\" },\n0x0254: { n:\"BrtSmartTagType\" },\n0x0255: { n:\"BrtBeginSmartTagTypes\" },\n0x0256: { n:\"BrtEndSmartTagTypes\" },\n0x0257: { n:\"BrtBeginSXFilters\" },\n0x0258: { n:\"BrtEndSXFilters\" },\n0x0259: { n:\"BrtBeginSXFILTER\" },\n0x025A: { n:\"BrtEndSXFilter\" },\n0x025B: { n:\"BrtBeginFills\" },\n0x025C: { n:\"BrtEndFills\" },\n0x025D: { n:\"BrtBeginCellWatches\" },\n0x025E: { n:\"BrtEndCellWatches\" },\n0x025F: { n:\"BrtCellWatch\" },\n0x0260: { n:\"BrtBeginCRErrs\" },\n0x0261: { n:\"BrtEndCRErrs\" },\n0x0262: { n:\"BrtCrashRecErr\" },\n0x0263: { n:\"BrtBeginFonts\" },\n0x0264: { n:\"BrtEndFonts\" },\n0x0265: { n:\"BrtBeginBorders\" },\n0x0266: { n:\"BrtEndBorders\" },\n0x0267: { n:\"BrtBeginFmts\" },\n0x0268: { n:\"BrtEndFmts\" },\n0x0269: { n:\"BrtBeginCellXFs\" },\n0x026A: { n:\"BrtEndCellXFs\" },\n0x026B: { n:\"BrtBeginStyles\" },\n0x026C: { n:\"BrtEndStyles\" },\n0x0271: { n:\"BrtBigName\" },\n0x0272: { n:\"BrtBeginCellStyleXFs\" },\n0x0273: { n:\"BrtEndCellStyleXFs\" },\n0x0274: { n:\"BrtBeginComments\" },\n0x0275: { n:\"BrtEndComments\" },\n0x0276: { n:\"BrtBeginCommentAuthors\" },\n0x0277: { n:\"BrtEndCommentAuthors\" },\n0x0278: { n:\"BrtCommentAuthor\", f:parse_BrtCommentAuthor },\n0x0279: { n:\"BrtBeginCommentList\" },\n0x027A: { n:\"BrtEndCommentList\" },\n0x027B: { n:\"BrtBeginComment\", f:parse_BrtBeginComment},\n0x027C: { n:\"BrtEndComment\" },\n0x027D: { n:\"BrtCommentText\", f:parse_BrtCommentText },\n0x027E: { n:\"BrtBeginOleObjects\" },\n0x027F: { n:\"BrtOleObject\" },\n0x0280: { n:\"BrtEndOleObjects\" },\n0x0281: { n:\"BrtBeginSxrules\" },\n0x0282: { n:\"BrtEndSxRules\" },\n0x0283: { n:\"BrtBeginActiveXControls\" },\n0x0284: { n:\"BrtActiveX\" },\n0x0285: { n:\"BrtEndActiveXControls\" },\n0x0286: { n:\"BrtBeginPCDSDTCEMembersSortBy\" },\n0x0288: { n:\"BrtBeginCellIgnoreECs\" },\n0x0289: { n:\"BrtCellIgnoreEC\" },\n0x028A: { n:\"BrtEndCellIgnoreECs\" },\n0x028B: { n:\"BrtCsProp\", f:parse_BrtCsProp },\n0x028C: { n:\"BrtCsPageSetup\" },\n0x028D: { n:\"BrtBeginUserCsViews\" },\n0x028E: { n:\"BrtEndUserCsViews\" },\n0x028F: { n:\"BrtBeginUserCsView\" },\n0x0290: { n:\"BrtEndUserCsView\" },\n0x0291: { n:\"BrtBeginPcdSFCIEntries\" },\n0x0292: { n:\"BrtEndPCDSFCIEntries\" },\n0x0293: { n:\"BrtPCDSFCIEntry\" },\n0x0294: { n:\"BrtBeginListParts\" },\n0x0295: { n:\"BrtListPart\" },\n0x0296: { n:\"BrtEndListParts\" },\n0x0297: { n:\"BrtSheetCalcProp\" },\n0x0298: { n:\"BrtBeginFnGroup\" },\n0x0299: { n:\"BrtFnGroup\" },\n0x029A: { n:\"BrtEndFnGroup\" },\n0x029B: { n:\"BrtSupAddin\" },\n0x029C: { n:\"BrtSXTDMPOrder\" },\n0x029D: { n:\"BrtCsProtection\" },\n0x029F: { n:\"BrtBeginWsSortMap\" },\n0x02A0: { n:\"BrtEndWsSortMap\" },\n0x02A1: { n:\"BrtBeginRRSort\" },\n0x02A2: { n:\"BrtEndRRSort\" },\n0x02A3: { n:\"BrtRRSortItem\" },\n0x02A4: { n:\"BrtFileSharingIso\" },\n0x02A5: { n:\"BrtBookProtectionIso\" },\n0x02A6: { n:\"BrtSheetProtectionIso\" },\n0x02A7: { n:\"BrtCsProtectionIso\" },\n0x02A8: { n:\"BrtRangeProtectionIso\" },\n0x02A9: { n:\"BrtDValList\" },\n0x0400: { n:\"BrtRwDescent\" },\n0x0401: { n:\"BrtKnownFonts\" },\n0x0402: { n:\"BrtBeginSXTupleSet\" },\n0x0403: { n:\"BrtEndSXTupleSet\" },\n0x0404: { n:\"BrtBeginSXTupleSetHeader\" },\n0x0405: { n:\"BrtEndSXTupleSetHeader\" },\n0x0406: { n:\"BrtSXTupleSetHeaderItem\" },\n0x0407: { n:\"BrtBeginSXTupleSetData\" },\n0x0408: { n:\"BrtEndSXTupleSetData\" },\n0x0409: { n:\"BrtBeginSXTupleSetRow\" },\n0x040A: { n:\"BrtEndSXTupleSetRow\" },\n0x040B: { n:\"BrtSXTupleSetRowItem\" },\n0x040C: { n:\"BrtNameExt\" },\n0x040D: { n:\"BrtPCDH14\" },\n0x040E: { n:\"BrtBeginPCDCalcMem14\" },\n0x040F: { n:\"BrtEndPCDCalcMem14\" },\n0x0410: { n:\"BrtSXTH14\" },\n0x0411: { n:\"BrtBeginSparklineGroup\" },\n0x0412: { n:\"BrtEndSparklineGroup\" },\n0x0413: { n:\"BrtSparkline\" },\n0x0414: { n:\"BrtSXDI14\" },\n0x0415: { n:\"BrtWsFmtInfoEx14\" },\n0x0416: { n:\"BrtBeginConditionalFormatting14\" },\n0x0417: { n:\"BrtEndConditionalFormatting14\" },\n0x0418: { n:\"BrtBeginCFRule14\" },\n0x0419: { n:\"BrtEndCFRule14\" },\n0x041A: { n:\"BrtCFVO14\" },\n0x041B: { n:\"BrtBeginDatabar14\" },\n0x041C: { n:\"BrtBeginIconSet14\" },\n0x041D: { n:\"BrtDVal14\", f: parse_BrtDVal14 },\n0x041E: { n:\"BrtBeginDVals14\" },\n0x041F: { n:\"BrtColor14\" },\n0x0420: { n:\"BrtBeginSparklines\" },\n0x0421: { n:\"BrtEndSparklines\" },\n0x0422: { n:\"BrtBeginSparklineGroups\" },\n0x0423: { n:\"BrtEndSparklineGroups\" },\n0x0425: { n:\"BrtSXVD14\" },\n0x0426: { n:\"BrtBeginSXView14\" },\n0x0427: { n:\"BrtEndSXView14\" },\n0x0428: { n:\"BrtBeginSXView16\" },\n0x0429: { n:\"BrtEndSXView16\" },\n0x042A: { n:\"BrtBeginPCD14\" },\n0x042B: { n:\"BrtEndPCD14\" },\n0x042C: { n:\"BrtBeginExtConn14\" },\n0x042D: { n:\"BrtEndExtConn14\" },\n0x042E: { n:\"BrtBeginSlicerCacheIDs\" },\n0x042F: { n:\"BrtEndSlicerCacheIDs\" },\n0x0430: { n:\"BrtBeginSlicerCacheID\" },\n0x0431: { n:\"BrtEndSlicerCacheID\" },\n0x0433: { n:\"BrtBeginSlicerCache\" },\n0x0434: { n:\"BrtEndSlicerCache\" },\n0x0435: { n:\"BrtBeginSlicerCacheDef\" },\n0x0436: { n:\"BrtEndSlicerCacheDef\" },\n0x0437: { n:\"BrtBeginSlicersEx\" },\n0x0438: { n:\"BrtEndSlicersEx\" },\n0x0439: { n:\"BrtBeginSlicerEx\" },\n0x043A: { n:\"BrtEndSlicerEx\" },\n0x043B: { n:\"BrtBeginSlicer\" },\n0x043C: { n:\"BrtEndSlicer\" },\n0x043D: { n:\"BrtSlicerCachePivotTables\" },\n0x043E: { n:\"BrtBeginSlicerCacheOlapImpl\" },\n0x043F: { n:\"BrtEndSlicerCacheOlapImpl\" },\n0x0440: { n:\"BrtBeginSlicerCacheLevelsData\" },\n0x0441: { n:\"BrtEndSlicerCacheLevelsData\" },\n0x0442: { n:\"BrtBeginSlicerCacheLevelData\" },\n0x0443: { n:\"BrtEndSlicerCacheLevelData\" },\n0x0444: { n:\"BrtBeginSlicerCacheSiRanges\" },\n0x0445: { n:\"BrtEndSlicerCacheSiRanges\" },\n0x0446: { n:\"BrtBeginSlicerCacheSiRange\" },\n0x0447: { n:\"BrtEndSlicerCacheSiRange\" },\n0x0448: { n:\"BrtSlicerCacheOlapItem\" },\n0x0449: { n:\"BrtBeginSlicerCacheSelections\" },\n0x044A: { n:\"BrtSlicerCacheSelection\" },\n0x044B: { n:\"BrtEndSlicerCacheSelections\" },\n0x044C: { n:\"BrtBeginSlicerCacheNative\" },\n0x044D: { n:\"BrtEndSlicerCacheNative\" },\n0x044E: { n:\"BrtSlicerCacheNativeItem\" },\n0x044F: { n:\"BrtRangeProtection14\" },\n0x0450: { n:\"BrtRangeProtectionIso14\" },\n0x0451: { n:\"BrtCellIgnoreEC14\" },\n0x0457: { n:\"BrtList14\" },\n0x0458: { n:\"BrtCFIcon\" },\n0x0459: { n:\"BrtBeginSlicerCachesPivotCacheIDs\" },\n0x045A: { n:\"BrtEndSlicerCachesPivotCacheIDs\" },\n0x045B: { n:\"BrtBeginSlicers\" },\n0x045C: { n:\"BrtEndSlicers\" },\n0x045D: { n:\"BrtWbProp14\" },\n0x045E: { n:\"BrtBeginSXEdit\" },\n0x045F: { n:\"BrtEndSXEdit\" },\n0x0460: { n:\"BrtBeginSXEdits\" },\n0x0461: { n:\"BrtEndSXEdits\" },\n0x0462: { n:\"BrtBeginSXChange\" },\n0x0463: { n:\"BrtEndSXChange\" },\n0x0464: { n:\"BrtBeginSXChanges\" },\n0x0465: { n:\"BrtEndSXChanges\" },\n0x0466: { n:\"BrtSXTupleItems\" },\n0x0468: { n:\"BrtBeginSlicerStyle\" },\n0x0469: { n:\"BrtEndSlicerStyle\" },\n0x046A: { n:\"BrtSlicerStyleElement\" },\n0x046B: { n:\"BrtBeginStyleSheetExt14\" },\n0x046C: { n:\"BrtEndStyleSheetExt14\" },\n0x046D: { n:\"BrtBeginSlicerCachesPivotCacheID\" },\n0x046E: { n:\"BrtEndSlicerCachesPivotCacheID\" },\n0x046F: { n:\"BrtBeginConditionalFormattings\" },\n0x0470: { n:\"BrtEndConditionalFormattings\" },\n0x0471: { n:\"BrtBeginPCDCalcMemExt\" },\n0x0472: { n:\"BrtEndPCDCalcMemExt\" },\n0x0473: { n:\"BrtBeginPCDCalcMemsExt\" },\n0x0474: { n:\"BrtEndPCDCalcMemsExt\" },\n0x0475: { n:\"BrtPCDField14\" },\n0x0476: { n:\"BrtBeginSlicerStyles\" },\n0x0477: { n:\"BrtEndSlicerStyles\" },\n0x0478: { n:\"BrtBeginSlicerStyleElements\" },\n0x0479: { n:\"BrtEndSlicerStyleElements\" },\n0x047A: { n:\"BrtCFRuleExt\" },\n0x047B: { n:\"BrtBeginSXCondFmt14\" },\n0x047C: { n:\"BrtEndSXCondFmt14\" },\n0x047D: { n:\"BrtBeginSXCondFmts14\" },\n0x047E: { n:\"BrtEndSXCondFmts14\" },\n0x0480: { n:\"BrtBeginSortCond14\" },\n0x0481: { n:\"BrtEndSortCond14\" },\n0x0482: { n:\"BrtEndDVals14\" },\n0x0483: { n:\"BrtEndIconSet14\" },\n0x0484: { n:\"BrtEndDatabar14\" },\n0x0485: { n:\"BrtBeginColorScale14\" },\n0x0486: { n:\"BrtEndColorScale14\" },\n0x0487: { n:\"BrtBeginSxrules14\" },\n0x0488: { n:\"BrtEndSxrules14\" },\n0x0489: { n:\"BrtBeginPRule14\" },\n0x048A: { n:\"BrtEndPRule14\" },\n0x048B: { n:\"BrtBeginPRFilters14\" },\n0x048C: { n:\"BrtEndPRFilters14\" },\n0x048D: { n:\"BrtBeginPRFilter14\" },\n0x048E: { n:\"BrtEndPRFilter14\" },\n0x048F: { n:\"BrtBeginPRFItem14\" },\n0x0490: { n:\"BrtEndPRFItem14\" },\n0x0491: { n:\"BrtBeginCellIgnoreECs14\" },\n0x0492: { n:\"BrtEndCellIgnoreECs14\" },\n0x0493: { n:\"BrtDxf14\" },\n0x0494: { n:\"BrtBeginDxF14s\" },\n0x0495: { n:\"BrtEndDxf14s\" },\n0x0499: { n:\"BrtFilter14\" },\n0x049A: { n:\"BrtBeginCustomFilters14\" },\n0x049C: { n:\"BrtCustomFilter14\" },\n0x049D: { n:\"BrtIconFilter14\" },\n0x049E: { n:\"BrtPivotCacheConnectionName\" },\n0x0800: { n:\"BrtBeginDecoupledPivotCacheIDs\" },\n0x0801: { n:\"BrtEndDecoupledPivotCacheIDs\" },\n0x0802: { n:\"BrtDecoupledPivotCacheID\" },\n0x0803: { n:\"BrtBeginPivotTableRefs\" },\n0x0804: { n:\"BrtEndPivotTableRefs\" },\n0x0805: { n:\"BrtPivotTableRef\" },\n0x0806: { n:\"BrtSlicerCacheBookPivotTables\" },\n0x0807: { n:\"BrtBeginSxvcells\" },\n0x0808: { n:\"BrtEndSxvcells\" },\n0x0809: { n:\"BrtBeginSxRow\" },\n0x080A: { n:\"BrtEndSxRow\" },\n0x080C: { n:\"BrtPcdCalcMem15\" },\n0x0813: { n:\"BrtQsi15\" },\n0x0814: { n:\"BrtBeginWebExtensions\" },\n0x0815: { n:\"BrtEndWebExtensions\" },\n0x0816: { n:\"BrtWebExtension\" },\n0x0817: { n:\"BrtAbsPath15\" },\n0x0818: { n:\"BrtBeginPivotTableUISettings\" },\n0x0819: { n:\"BrtEndPivotTableUISettings\" },\n0x081B: { n:\"BrtTableSlicerCacheIDs\" },\n0x081C: { n:\"BrtTableSlicerCacheID\" },\n0x081D: { n:\"BrtBeginTableSlicerCache\" },\n0x081E: { n:\"BrtEndTableSlicerCache\" },\n0x081F: { n:\"BrtSxFilter15\" },\n0x0820: { n:\"BrtBeginTimelineCachePivotCacheIDs\" },\n0x0821: { n:\"BrtEndTimelineCachePivotCacheIDs\" },\n0x0822: { n:\"BrtTimelineCachePivotCacheID\" },\n0x0823: { n:\"BrtBeginTimelineCacheIDs\" },\n0x0824: { n:\"BrtEndTimelineCacheIDs\" },\n0x0825: { n:\"BrtBeginTimelineCacheID\" },\n0x0826: { n:\"BrtEndTimelineCacheID\" },\n0x0827: { n:\"BrtBeginTimelinesEx\" },\n0x0828: { n:\"BrtEndTimelinesEx\" },\n0x0829: { n:\"BrtBeginTimelineEx\" },\n0x082A: { n:\"BrtEndTimelineEx\" },\n0x082B: { n:\"BrtWorkBookPr15\" },\n0x082C: { n:\"BrtPCDH15\" },\n0x082D: { n:\"BrtBeginTimelineStyle\" },\n0x082E: { n:\"BrtEndTimelineStyle\" },\n0x082F: { n:\"BrtTimelineStyleElement\" },\n0x0830: { n:\"BrtBeginTimelineStylesheetExt15\" },\n0x0831: { n:\"BrtEndTimelineStylesheetExt15\" },\n0x0832: { n:\"BrtBeginTimelineStyles\" },\n0x0833: { n:\"BrtEndTimelineStyles\" },\n0x0834: { n:\"BrtBeginTimelineStyleElements\" },\n0x0835: { n:\"BrtEndTimelineStyleElements\" },\n0x0836: { n:\"BrtDxf15\" },\n0x0837: { n:\"BrtBeginDxfs15\" },\n0x0838: { n:\"brtEndDxfs15\" },\n0x0839: { n:\"BrtSlicerCacheHideItemsWithNoData\" },\n0x083A: { n:\"BrtBeginItemUniqueNames\" },\n0x083B: { n:\"BrtEndItemUniqueNames\" },\n0x083C: { n:\"BrtItemUniqueName\" },\n0x083D: { n:\"BrtBeginExtConn15\" },\n0x083E: { n:\"BrtEndExtConn15\" },\n0x083F: { n:\"BrtBeginOledbPr15\" },\n0x0840: { n:\"BrtEndOledbPr15\" },\n0x0841: { n:\"BrtBeginDataFeedPr15\" },\n0x0842: { n:\"BrtEndDataFeedPr15\" },\n0x0843: { n:\"BrtTextPr15\" },\n0x0844: { n:\"BrtRangePr15\" },\n0x0845: { n:\"BrtDbCommand15\" },\n0x0846: { n:\"BrtBeginDbTables15\" },\n0x0847: { n:\"BrtEndDbTables15\" },\n0x0848: { n:\"BrtDbTable15\" },\n0x0849: { n:\"BrtBeginDataModel\" },\n0x084A: { n:\"BrtEndDataModel\" },\n0x084B: { n:\"BrtBeginModelTables\" },\n0x084C: { n:\"BrtEndModelTables\" },\n0x084D: { n:\"BrtModelTable\" },\n0x084E: { n:\"BrtBeginModelRelationships\" },\n0x084F: { n:\"BrtEndModelRelationships\" },\n0x0850: { n:\"BrtModelRelationship\" },\n0x0851: { n:\"BrtBeginECTxtWiz15\" },\n0x0852: { n:\"BrtEndECTxtWiz15\" },\n0x0853: { n:\"BrtBeginECTWFldInfoLst15\" },\n0x0854: { n:\"BrtEndECTWFldInfoLst15\" },\n0x0855: { n:\"BrtBeginECTWFldInfo15\" },\n0x0856: { n:\"BrtFieldListActiveItem\" },\n0x0857: { n:\"BrtPivotCacheIdVersion\" },\n0x0858: { n:\"BrtSXDI15\" },\n0x0859: { n:\"BrtBeginModelTimeGroupings\" },\n0x085A: { n:\"BrtEndModelTimeGroupings\" },\n0x085B: { n:\"BrtBeginModelTimeGrouping\" },\n0x085C: { n:\"BrtEndModelTimeGrouping\" },\n0x085D: { n:\"BrtModelTimeGroupingCalcCol\" },\n0x0C00: { n:\"BrtUid\" },\n0x0C01: { n:\"BrtRevisionPtr\" },\n0x13e7: { n:\"BrtBeginCalcFeatures\" },\n0x13e8: { n:\"BrtEndCalcFeatures\" },\n0x13e9: { n:\"BrtCalcFeature\" },\n0xFFFF: { n:\"\" }\n};\n\nvar XLSBRE = evert_key(XLSBRecordEnum, 'n');\n\n/* [MS-XLS] 2.3 Record Enumeration */\nvar XLSRecordEnum = {\n0x0003: { n:\"BIFF2NUM\", f:parse_BIFF2NUM },\n0x0004: { n:\"BIFF2STR\", f:parse_BIFF2STR },\n0x0006: { n:\"Formula\", f:parse_Formula },\n0x0009: { n:'BOF', f:parse_BOF },\n0x000a: { n:'EOF', f:parsenoop2 },\n0x000c: { n:\"CalcCount\", f:parseuint16 },\n0x000d: { n:\"CalcMode\", f:parseuint16 },\n0x000e: { n:\"CalcPrecision\", f:parsebool },\n0x000f: { n:\"CalcRefMode\", f:parsebool },\n0x0010: { n:\"CalcDelta\", f:parse_Xnum },\n0x0011: { n:\"CalcIter\", f:parsebool },\n0x0012: { n:\"Protect\", f:parsebool },\n0x0013: { n:\"Password\", f:parseuint16 },\n0x0014: { n:\"Header\", f:parse_XLHeaderFooter },\n0x0015: { n:\"Footer\", f:parse_XLHeaderFooter },\n0x0017: { n:\"ExternSheet\", f:parse_ExternSheet },\n0x0018: { n:\"Lbl\", f:parse_Lbl },\n0x0019: { n:\"WinProtect\", f:parsebool },\n0x001a: { n:\"VerticalPageBreaks\" },\n0x001b: { n:\"HorizontalPageBreaks\" },\n0x001c: { n:\"Note\", f:parse_Note },\n0x001d: { n:\"Selection\" },\n0x0022: { n:\"Date1904\", f:parsebool },\n0x0023: { n:\"ExternName\", f:parse_ExternName },\n0x0024: { n:\"COLWIDTH\" },\n0x0026: { n:\"LeftMargin\", f:parse_Xnum },\n0x0027: { n:\"RightMargin\", f:parse_Xnum },\n0x0028: { n:\"TopMargin\", f:parse_Xnum },\n0x0029: { n:\"BottomMargin\", f:parse_Xnum },\n0x002a: { n:\"PrintRowCol\", f:parsebool },\n0x002b: { n:\"PrintGrid\", f:parsebool },\n0x002f: { n:\"FilePass\", f:parse_FilePass },\n0x0031: { n:\"Font\", f:parse_Font },\n0x0033: { n:\"PrintSize\", f:parseuint16 },\n0x003c: { n:\"Continue\" },\n0x003d: { n:\"Window1\", f:parse_Window1 },\n0x0040: { n:\"Backup\", f:parsebool },\n0x0041: { n:\"Pane\", f:parse_Pane },\n0x0042: { n:'CodePage', f:parseuint16 },\n0x004d: { n:\"Pls\" },\n0x0050: { n:\"DCon\" },\n0x0051: { n:\"DConRef\" },\n0x0052: { n:\"DConName\" },\n0x0055: { n:\"DefColWidth\", f:parseuint16 },\n0x0059: { n:\"XCT\" },\n0x005a: { n:\"CRN\" },\n0x005b: { n:\"FileSharing\" },\n0x005c: { n:'WriteAccess', f:parse_WriteAccess },\n0x005d: { n:\"Obj\", f:parse_Obj },\n0x005e: { n:\"Uncalced\" },\n0x005f: { n:\"CalcSaveRecalc\", f:parsebool },\n0x0060: { n:\"Template\" },\n0x0061: { n:\"Intl\" },\n0x0063: { n:\"ObjProtect\", f:parsebool },\n0x007d: { n:\"ColInfo\", f:parse_ColInfo },\n0x0080: { n:\"Guts\", f:parse_Guts },\n0x0081: { n:\"WsBool\", f:parse_WsBool },\n0x0082: { n:\"GridSet\", f:parseuint16 },\n0x0083: { n:\"HCenter\", f:parsebool },\n0x0084: { n:\"VCenter\", f:parsebool },\n0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 },\n0x0086: { n:\"WriteProtect\" },\n0x008c: { n:\"Country\", f:parse_Country },\n0x008d: { n:\"HideObj\", f:parseuint16 },\n0x0090: { n:\"Sort\" },\n0x0092: { n:\"Palette\", f:parse_Palette },\n0x0097: { n:\"Sync\" },\n0x0098: { n:\"LPr\" },\n0x0099: { n:\"DxGCol\" },\n0x009a: { n:\"FnGroupName\" },\n0x009b: { n:\"FilterMode\" },\n0x009c: { n:\"BuiltInFnGroupCount\", f:parseuint16 },\n0x009d: { n:\"AutoFilterInfo\" },\n0x009e: { n:\"AutoFilter\" },\n0x00a0: { n:\"Scl\", f:parse_Scl },\n0x00a1: { n:\"Setup\", f:parse_Setup },\n0x00ae: { n:\"ScenMan\" },\n0x00af: { n:\"SCENARIO\" },\n0x00b0: { n:\"SxView\" },\n0x00b1: { n:\"Sxvd\" },\n0x00b2: { n:\"SXVI\" },\n0x00b4: { n:\"SxIvd\" },\n0x00b5: { n:\"SXLI\" },\n0x00b6: { n:\"SXPI\" },\n0x00b8: { n:\"DocRoute\" },\n0x00b9: { n:\"RecipName\" },\n0x00bd: { n:\"MulRk\", f:parse_MulRk },\n0x00be: { n:\"MulBlank\", f:parse_MulBlank },\n0x00c1: { n:'Mms', f:parsenoop2 },\n0x00c5: { n:\"SXDI\" },\n0x00c6: { n:\"SXDB\" },\n0x00c7: { n:\"SXFDB\" },\n0x00c8: { n:\"SXDBB\" },\n0x00c9: { n:\"SXNum\" },\n0x00ca: { n:\"SxBool\", f:parsebool },\n0x00cb: { n:\"SxErr\" },\n0x00cc: { n:\"SXInt\" },\n0x00cd: { n:\"SXString\" },\n0x00ce: { n:\"SXDtr\" },\n0x00cf: { n:\"SxNil\" },\n0x00d0: { n:\"SXTbl\" },\n0x00d1: { n:\"SXTBRGIITM\" },\n0x00d2: { n:\"SxTbpg\" },\n0x00d3: { n:\"ObProj\" },\n0x00d5: { n:\"SXStreamID\" },\n0x00d7: { n:\"DBCell\" },\n0x00d8: { n:\"SXRng\" },\n0x00d9: { n:\"SxIsxoper\" },\n0x00da: { n:\"BookBool\", f:parseuint16 },\n0x00dc: { n:\"DbOrParamQry\" },\n0x00dd: { n:\"ScenarioProtect\", f:parsebool },\n0x00de: { n:\"OleObjectSize\" },\n0x00e0: { n:\"XF\", f:parse_XF },\n0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr },\n0x00e2: { n:'InterfaceEnd', f:parsenoop2 },\n0x00e3: { n:\"SXVS\" },\n0x00e5: { n:\"MergeCells\", f:parse_MergeCells },\n0x00e9: { n:\"BkHim\" },\n0x00eb: { n:\"MsoDrawingGroup\" },\n0x00ec: { n:\"MsoDrawing\" },\n0x00ed: { n:\"MsoDrawingSelection\" },\n0x00ef: { n:\"PhoneticInfo\" },\n0x00f0: { n:\"SxRule\" },\n0x00f1: { n:\"SXEx\" },\n0x00f2: { n:\"SxFilt\" },\n0x00f4: { n:\"SxDXF\" },\n0x00f5: { n:\"SxItm\" },\n0x00f6: { n:\"SxName\" },\n0x00f7: { n:\"SxSelect\" },\n0x00f8: { n:\"SXPair\" },\n0x00f9: { n:\"SxFmla\" },\n0x00fb: { n:\"SxFormat\" },\n0x00fc: { n:\"SST\", f:parse_SST },\n0x00fd: { n:\"LabelSst\", f:parse_LabelSst },\n0x00ff: { n:\"ExtSST\", f:parse_ExtSST },\n0x0100: { n:\"SXVDEx\" },\n0x0103: { n:\"SXFormula\" },\n0x0122: { n:\"SXDBEx\" },\n0x0137: { n:\"RRDInsDel\" },\n0x0138: { n:\"RRDHead\" },\n0x013b: { n:\"RRDChgCell\" },\n0x013d: { n:\"RRTabId\", f:parseuint16a },\n0x013e: { n:\"RRDRenSheet\" },\n0x013f: { n:\"RRSort\" },\n0x0140: { n:\"RRDMove\" },\n0x014a: { n:\"RRFormat\" },\n0x014b: { n:\"RRAutoFmt\" },\n0x014d: { n:\"RRInsertSh\" },\n0x014e: { n:\"RRDMoveBegin\" },\n0x014f: { n:\"RRDMoveEnd\" },\n0x0150: { n:\"RRDInsDelBegin\" },\n0x0151: { n:\"RRDInsDelEnd\" },\n0x0152: { n:\"RRDConflict\" },\n0x0153: { n:\"RRDDefName\" },\n0x0154: { n:\"RRDRstEtxp\" },\n0x015f: { n:\"LRng\" },\n0x0160: { n:\"UsesELFs\", f:parsebool },\n0x0161: { n:\"DSF\", f:parsenoop2 },\n0x0191: { n:\"CUsr\" },\n0x0192: { n:\"CbUsr\" },\n0x0193: { n:\"UsrInfo\" },\n0x0194: { n:\"UsrExcl\" },\n0x0195: { n:\"FileLock\" },\n0x0196: { n:\"RRDInfo\" },\n0x0197: { n:\"BCUsrs\" },\n0x0198: { n:\"UsrChk\" },\n0x01a9: { n:\"UserBView\" },\n0x01aa: { n:\"UserSViewBegin\" },\n0x01ab: { n:\"UserSViewEnd\" },\n0x01ac: { n:\"RRDUserView\" },\n0x01ad: { n:\"Qsi\" },\n0x01ae: { n:\"SupBook\", f:parse_SupBook },\n0x01af: { n:\"Prot4Rev\", f:parsebool },\n0x01b0: { n:\"CondFmt\" },\n0x01b1: { n:\"CF\" },\n0x01b2: { n:\"DVal\" },\n0x01b5: { n:\"DConBin\" },\n0x01b6: { n:\"TxO\", f:parse_TxO },\n0x01b7: { n:\"RefreshAll\", f:parsebool },\n0x01b8: { n:\"HLink\", f:parse_HLink },\n0x01b9: { n:\"Lel\" },\n0x01ba: { n:\"CodeName\", f:parse_XLUnicodeString },\n0x01bb: { n:\"SXFDBType\" },\n0x01bc: { n:\"Prot4RevPass\", f:parseuint16 },\n0x01bd: { n:\"ObNoMacros\" },\n0x01be: { n:\"Dv\" },\n0x01c0: { n:\"Excel9File\", f:parsenoop2 },\n0x01c1: { n:\"RecalcId\", f:parse_RecalcId, r:2},\n0x01c2: { n:\"EntExU2\", f:parsenoop2 },\n0x0200: { n:\"Dimensions\", f:parse_Dimensions },\n0x0201: { n:\"Blank\", f:parse_Blank },\n0x0203: { n:\"Number\", f:parse_Number },\n0x0204: { n:\"Label\", f:parse_Label },\n0x0205: { n:\"BoolErr\", f:parse_BoolErr },\n0x0206: { n:\"Formula\", f:parse_Formula },\n0x0207: { n:\"String\", f:parse_String },\n0x0208: { n:'Row', f:parse_Row },\n0x020b: { n:\"Index\" },\n0x0221: { n:\"Array\", f:parse_Array },\n0x0225: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0236: { n:\"Table\" },\n0x023e: { n:\"Window2\", f:parse_Window2 },\n0x027e: { n:\"RK\", f:parse_RK },\n0x0293: { n:\"Style\" },\n0x0406: { n:\"Formula\", f:parse_Formula },\n0x0418: { n:\"BigName\" },\n0x041e: { n:\"Format\", f:parse_Format },\n0x043c: { n:\"ContinueBigName\" },\n0x04bc: { n:\"ShrFmla\", f:parse_ShrFmla },\n0x0800: { n:\"HLinkTooltip\", f:parse_HLinkTooltip },\n0x0801: { n:\"WebPub\" },\n0x0802: { n:\"QsiSXTag\" },\n0x0803: { n:\"DBQueryExt\" },\n0x0804: { n:\"ExtString\" },\n0x0805: { n:\"TxtQry\" },\n0x0806: { n:\"Qsir\" },\n0x0807: { n:\"Qsif\" },\n0x0808: { n:\"RRDTQSIF\" },\n0x0809: { n:'BOF', f:parse_BOF },\n0x080a: { n:\"OleDbConn\" },\n0x080b: { n:\"WOpt\" },\n0x080c: { n:\"SXViewEx\" },\n0x080d: { n:\"SXTH\" },\n0x080e: { n:\"SXPIEx\" },\n0x080f: { n:\"SXVDTEx\" },\n0x0810: { n:\"SXViewEx9\" },\n0x0812: { n:\"ContinueFrt\" },\n0x0813: { n:\"RealTimeData\" },\n0x0850: { n:\"ChartFrtInfo\" },\n0x0851: { n:\"FrtWrapper\" },\n0x0852: { n:\"StartBlock\" },\n0x0853: { n:\"EndBlock\" },\n0x0854: { n:\"StartObject\" },\n0x0855: { n:\"EndObject\" },\n0x0856: { n:\"CatLab\" },\n0x0857: { n:\"YMult\" },\n0x0858: { n:\"SXViewLink\" },\n0x0859: { n:\"PivotChartBits\" },\n0x085a: { n:\"FrtFontList\" },\n0x0862: { n:\"SheetExt\" },\n0x0863: { n:\"BookExt\", r:12},\n0x0864: { n:\"SXAddl\" },\n0x0865: { n:\"CrErr\" },\n0x0866: { n:\"HFPicture\" },\n0x0867: { n:'FeatHdr', f:parsenoop2 },\n0x0868: { n:\"Feat\" },\n0x086a: { n:\"DataLabExt\" },\n0x086b: { n:\"DataLabExtContents\" },\n0x086c: { n:\"CellWatch\" },\n0x0871: { n:\"FeatHdr11\" },\n0x0872: { n:\"Feature11\" },\n0x0874: { n:\"DropDownObjIds\" },\n0x0875: { n:\"ContinueFrt11\" },\n0x0876: { n:\"DConn\" },\n0x0877: { n:\"List12\" },\n0x0878: { n:\"Feature12\" },\n0x0879: { n:\"CondFmt12\" },\n0x087a: { n:\"CF12\" },\n0x087b: { n:\"CFEx\" },\n0x087c: { n:\"XFCRC\", f:parse_XFCRC, r:12 },\n0x087d: { n:\"XFExt\", f:parse_XFExt, r:12 },\n0x087e: { n:\"AutoFilter12\" },\n0x087f: { n:\"ContinueFrt12\" },\n0x0884: { n:\"MDTInfo\" },\n0x0885: { n:\"MDXStr\" },\n0x0886: { n:\"MDXTuple\" },\n0x0887: { n:\"MDXSet\" },\n0x0888: { n:\"MDXProp\" },\n0x0889: { n:\"MDXKPI\" },\n0x088a: { n:\"MDB\" },\n0x088b: { n:\"PLV\" },\n0x088c: { n:\"Compat12\", f:parsebool, r:12 },\n0x088d: { n:\"DXF\" },\n0x088e: { n:\"TableStyles\", r:12 },\n0x088f: { n:\"TableStyle\" },\n0x0890: { n:\"TableStyleElement\" },\n0x0892: { n:\"StyleExt\" },\n0x0893: { n:\"NamePublish\" },\n0x0894: { n:\"NameCmt\", f:parse_NameCmt, r:12 },\n0x0895: { n:\"SortData\" },\n0x0896: { n:\"Theme\", f:parse_Theme, r:12 },\n0x0897: { n:\"GUIDTypeLib\" },\n0x0898: { n:\"FnGrp12\" },\n0x0899: { n:\"NameFnGrp12\" },\n0x089a: { n:\"MTRSettings\", f:parse_MTRSettings, r:12 },\n0x089b: { n:\"CompressPictures\", f:parsenoop2 },\n0x089c: { n:\"HeaderFooter\" },\n0x089d: { n:\"CrtLayout12\" },\n0x089e: { n:\"CrtMlFrt\" },\n0x089f: { n:\"CrtMlFrtContinue\" },\n0x08a3: { n:\"ForceFullCalculation\", f:parse_ForceFullCalculation },\n0x08a4: { n:\"ShapePropsStream\" },\n0x08a5: { n:\"TextPropsStream\" },\n0x08a6: { n:\"RichTextStream\" },\n0x08a7: { n:\"CrtLayout12A\" },\n0x1001: { n:\"Units\" },\n0x1002: { n:\"Chart\" },\n0x1003: { n:\"Series\" },\n0x1006: { n:\"DataFormat\" },\n0x1007: { n:\"LineFormat\" },\n0x1009: { n:\"MarkerFormat\" },\n0x100a: { n:\"AreaFormat\" },\n0x100b: { n:\"PieFormat\" },\n0x100c: { n:\"AttachedLabel\" },\n0x100d: { n:\"SeriesText\" },\n0x1014: { n:\"ChartFormat\" },\n0x1015: { n:\"Legend\" },\n0x1016: { n:\"SeriesList\" },\n0x1017: { n:\"Bar\" },\n0x1018: { n:\"Line\" },\n0x1019: { n:\"Pie\" },\n0x101a: { n:\"Area\" },\n0x101b: { n:\"Scatter\" },\n0x101c: { n:\"CrtLine\" },\n0x101d: { n:\"Axis\" },\n0x101e: { n:\"Tick\" },\n0x101f: { n:\"ValueRange\" },\n0x1020: { n:\"CatSerRange\" },\n0x1021: { n:\"AxisLine\" },\n0x1022: { n:\"CrtLink\" },\n0x1024: { n:\"DefaultText\" },\n0x1025: { n:\"Text\" },\n0x1026: { n:\"FontX\", f:parseuint16 },\n0x1027: { n:\"ObjectLink\" },\n0x1032: { n:\"Frame\" },\n0x1033: { n:\"Begin\" },\n0x1034: { n:\"End\" },\n0x1035: { n:\"PlotArea\" },\n0x103a: { n:\"Chart3d\" },\n0x103c: { n:\"PicF\" },\n0x103d: { n:\"DropBar\" },\n0x103e: { n:\"Radar\" },\n0x103f: { n:\"Surf\" },\n0x1040: { n:\"RadarArea\" },\n0x1041: { n:\"AxisParent\" },\n0x1043: { n:\"LegendException\" },\n0x1044: { n:\"ShtProps\", f:parse_ShtProps },\n0x1045: { n:\"SerToCrt\" },\n0x1046: { n:\"AxesUsed\" },\n0x1048: { n:\"SBaseRef\" },\n0x104a: { n:\"SerParent\" },\n0x104b: { n:\"SerAuxTrend\" },\n0x104e: { n:\"IFmtRecord\" },\n0x104f: { n:\"Pos\" },\n0x1050: { n:\"AlRuns\" },\n0x1051: { n:\"BRAI\" },\n0x105b: { n:\"SerAuxErrBar\" },\n0x105c: { n:\"ClrtClient\", f:parse_ClrtClient },\n0x105d: { n:\"SerFmt\" },\n0x105f: { n:\"Chart3DBarShape\" },\n0x1060: { n:\"Fbi\" },\n0x1061: { n:\"BopPop\" },\n0x1062: { n:\"AxcExt\" },\n0x1063: { n:\"Dat\" },\n0x1064: { n:\"PlotGrowth\" },\n0x1065: { n:\"SIIndex\" },\n0x1066: { n:\"GelFrame\" },\n0x1067: { n:\"BopPopCustom\" },\n0x1068: { n:\"Fbi2\" },\n\n0x0000: { n:\"Dimensions\", f:parse_Dimensions },\n0x0002: { n:\"BIFF2INT\", f:parse_BIFF2INT },\n0x0005: { n:\"BoolErr\", f:parse_BoolErr },\n0x0007: { n:\"String\", f:parse_BIFF2STRING },\n0x0008: { n:\"BIFF2ROW\" },\n0x000b: { n:\"Index\" },\n0x0016: { n:\"ExternCount\", f:parseuint16 },\n0x001e: { n:\"BIFF2FORMAT\", f:parse_BIFF2Format },\n0x001f: { n:\"BIFF2FMTCNT\" }, /* 16-bit cnt of BIFF2FORMAT records */\n0x0020: { n:\"BIFF2COLINFO\" },\n0x0021: { n:\"Array\", f:parse_Array },\n0x0025: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0032: { n:\"BIFF2FONTXTRA\", f:parse_BIFF2FONTXTRA },\n0x0034: { n:\"DDEObjName\" },\n0x003e: { n:\"BIFF2WINDOW2\" },\n0x0043: { n:\"BIFF2XF\" },\n0x0045: { n:\"BIFF2FONTCLR\" },\n0x0056: { n:\"BIFF4FMTCNT\" }, /* 16-bit cnt, similar to BIFF2 */\n0x007e: { n:\"RK\" }, /* Not necessarily same as 0x027e */\n0x007f: { n:\"ImData\", f:parse_ImData },\n0x0087: { n:\"Addin\" },\n0x0088: { n:\"Edg\" },\n0x0089: { n:\"Pub\" },\n0x0091: { n:\"Sub\" },\n0x0094: { n:\"LHRecord\" },\n0x0095: { n:\"LHNGraph\" },\n0x0096: { n:\"Sound\" },\n0x00a9: { n:\"CoordList\" },\n0x00ab: { n:\"GCW\" },\n0x00bc: { n:\"ShrFmla\" }, /* Not necessarily same as 0x04bc */\n0x00bf: { n:\"ToolbarHdr\" },\n0x00c0: { n:\"ToolbarEnd\" },\n0x00c2: { n:\"AddMenu\" },\n0x00c3: { n:\"DelMenu\" },\n0x00d6: { n:\"RString\", f:parse_RString },\n0x00df: { n:\"UDDesc\" },\n0x00ea: { n:\"TabIdConf\" },\n0x0162: { n:\"XL5Modify\" },\n0x01a5: { n:\"FileSharing2\" },\n0x0209: { n:'BOF', f:parse_BOF },\n0x0218: { n:\"Lbl\", f:parse_Lbl },\n0x0223: { n:\"ExternName\", f:parse_ExternName },\n0x0231: { n:\"Font\" },\n0x0243: { n:\"BIFF3XF\" },\n0x0409: { n:'BOF', f:parse_BOF },\n0x0443: { n:\"BIFF4XF\" },\n0x086d: { n:\"FeatInfo\" },\n0x0873: { n:\"FeatInfo11\" },\n0x0881: { n:\"SXAddl12\" },\n0x08c0: { n:\"AutoWebPub\" },\n0x08c1: { n:\"ListObj\" },\n0x08c2: { n:\"ListField\" },\n0x08c3: { n:\"ListDV\" },\n0x08c4: { n:\"ListCondFmt\" },\n0x08c5: { n:\"ListCF\" },\n0x08c6: { n:\"FMQry\" },\n0x08c7: { n:\"FMSQry\" },\n0x08c8: { n:\"PLV\" },\n0x08c9: { n:\"LnExt\" },\n0x08ca: { n:\"MkrExt\" },\n0x08cb: { n:\"CrtCoopt\" },\n0x08d6: { n:\"FRTArchId$\", r:12 },\n\n0x7262: {}\n};\n\nvar XLSRE = evert_key(XLSRecordEnum, 'n');\nfunction write_biff_rec(ba, type, payload, length) {\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba, type, payload, length) {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r, c) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r, c, val, t) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tif(t == 'e') { out.write_shift(1, val); out.write_shift(1, 1); }\n\telse { out.write_shift(1, val?1:0); out.write_shift(1, 0); }\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r, c, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba, cell, R, C) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba, ws, idx, opts) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb, opts) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, \"CalcMode\", writeuint16(1));\n\twrite_biff_rec(ba, \"CalcCount\", writeuint16(100));\n\twrite_biff_rec(ba, \"CalcRefMode\", writebool(true));\n\twrite_biff_rec(ba, \"CalcIter\", writebool(false));\n\twrite_biff_rec(ba, \"CalcDelta\", write_Xnum(0.001));\n\twrite_biff_rec(ba, \"CalcSaveRecalc\", writebool(true));\n\twrite_biff_rec(ba, \"PrintRowCol\", writebool(false));\n\twrite_biff_rec(ba, \"PrintGrid\", writebool(false));\n\twrite_biff_rec(ba, \"GridSet\", writeuint16(1));\n\twrite_biff_rec(ba, \"Guts\", write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, \"HCenter\", writebool(false));\n\twrite_biff_rec(ba, \"VCenter\", writebool(false));\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, \"Window2\", write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, \"MergeCells\", write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, \"EOF\");\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb, bufs, opts) {\n\tvar A = buf_array();\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheets = (_WB.Sheets||[]);\n\tvar _wb = _WB.WBProps||{};\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, \"Addin\");\n\twrite_biff_rec(A, \"InterfaceHdr\", b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, \"Mms\", writezeroes(2));\n\tif(b5) write_biff_rec(A, \"ToolbarHdr\");\n\tif(b5) write_biff_rec(A, \"ToolbarEnd\");\n\twrite_biff_rec(A, \"InterfaceEnd\");\n\twrite_biff_rec(A, \"WriteAccess\", write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, \"CodePage\", writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, \"DSF\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Excel9File\");\n\twrite_biff_rec(A, \"RRTabId\", write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, \"ObProj\");\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, \"BuiltInFnGroupCount\", writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, \"WinProtect\", writebool(false));\n\twrite_biff_rec(A, \"Protect\", writebool(false));\n\twrite_biff_rec(A, \"Password\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Prot4Rev\", writebool(false));\n\tif(b8) write_biff_rec(A, \"Prot4RevPass\", writeuint16(0));\n\twrite_biff_rec(A, \"Window1\", write_Window1(opts));\n\twrite_biff_rec(A, \"Backup\", writebool(false));\n\twrite_biff_rec(A, \"HideObj\", writeuint16(0));\n\twrite_biff_rec(A, \"Date1904\", writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, \"CalcPrecision\", writebool(true));\n\tif(b8) write_biff_rec(A, \"RefreshAll\", writebool(false));\n\twrite_biff_rec(A, \"BookBool\", writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, \"UsesELFs\", writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, \"Country\", write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, \"SST\", write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, \"EOF\");\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet = _sheets[j] || ({});\n\t\twrite_biff_rec(B, \"BoundSheet8\", write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn __toBuffer([out]);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb, opts) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = []; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn __toBuffer([bufs]);\n}\n\nfunction write_biff_buf(wb, opts) {\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nvar HTML_ = (function() {\n\tfunction html_to_sheet(str, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tstr = str.replace(//g, \"\");\n\t\tvar mtch = str.match(/\");\n\t\tvar mtch2 = str.match(/<\\/table/i);\n\t\tvar i = mtch.index, j = mtch2 && mtch2.index || str.length;\n\t\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\t\tvar R = -1, C = 0, RS = 0, CS = 0;\n\t\tvar range = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\t\tvar merges = [];\n\t\tfor(i = 0; i < rows.length; ++i) {\n\t\t\tvar row = rows[i].trim();\n\t\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\t\tif(hd == \"/i);\n\t\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\t\tvar cell = cells[j].trim();\n\t\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\t\tvar _merge = merges[midx];\n\t\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t\t}\n\t\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\t\tvar _t = tag.t || \"\";\n\t\t\t\t/* TODO: generate stub cells */\n\t\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\t\tm = htmldecode(m);\n\t\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\t\tif(!m.length) continue;\n\t\t\t\tvar o = {t:'s', v:m};\n\t\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(m)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\t\tC += CS;\n\t\t\t}\n\t\t}\n\t\tws['!ref'] = encode_range(range);\n\t\tif(merges.length) ws[\"!merges\"] = merges;\n\t\treturn ws;\n\t}\n\tfunction html_to_book(str, opts) {\n\t\treturn sheet_to_workbook(html_to_sheet(str, opts), opts);\n\t}\n\tfunction make_html_row(ws, r, R, o) {\n\t\tvar M = (ws['!merges'] ||[]);\n\t\tvar oo = [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tvar RS = 0, CS = 0;\n\t\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t\t}\n\t\t\tif(RS < 0) continue;\n\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t/* TODO: html entities */\n\t\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\t\tvar sp = ({});\n\t\t\tif(RS > 1) sp.rowspan = RS;\n\t\t\tif(CS > 1) sp.colspan = CS;\n\t\t\tsp.t = cell && cell.t || 'z';\n\t\t\tif(o.editable) w = '' + w + '';\n\t\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\t\tif(sp.t != \"z\") { sp.v = cell.v; if(cell.z != null) sp.z = cell.z; }\n\t\t\too.push(writextag('td', w, sp));\n\t\t}\n\t\tvar preamble = \"\";\n\t\treturn preamble + oo.join(\"\") + \"\";\n\t}\n\tfunction make_html_preamble(ws, R, o) {\n\t\tvar out = [];\n\t\treturn out.join(\"\") + '';\n\t}\n\tvar _BEGIN = 'SheetJS Table Export';\n\tvar _END = '';\n\tfunction sheet_to_html(ws, opts/*, wb:?Workbook*/) {\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : _BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : _END;\n\t\tvar out = [header];\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tout.push(make_html_preamble(ws, r, o));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\t\tout.push(\"
\" + footer);\n\t\treturn out.join(\"\");\n\n\t}\n\treturn {\n\t\tto_workbook: html_to_book,\n\t\tto_sheet: html_to_sheet,\n\t\t_row: make_html_row,\n\t\tBEGIN: _BEGIN,\n\t\tEND: _END,\n\t\t_preamble: make_html_preamble,\n\t\tfrom_sheet: sheet_to_html\n\t};\n})();\n\nfunction sheet_add_dom(ws, table, _opts) {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\tvar rows = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges = [], midx = 0;\n\tvar rowinfo = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts = (row.children);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v = elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z = elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o = {t:'s', v:v};\n\t\t\tvar _t = elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table, _opts) {\n\tvar opts = _opts || {};\n\tvar ws = opts.dense ? ([]) : ({});\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table, opts) {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element) {\n\tvar display = '';\n\tvar get_computed_style = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style.display; // Fallback for cases when getComputedStyle is not available (e.g. an old browser or some Node.js environments) or doesn't work (e.g. if the element is not inserted to a document)\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element) {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nvar parse_content_xml = (function() {\n\n\tvar parse_text_p = function(text) {\n\t\t/* 6.1.2 White Space Characters */\n\t\tvar fixed = text\n\t\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t\t.replace(//g,\" \")\n\t\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t\t.replace(//g,\"\\n\");\n\t\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\t\treturn [v];\n\t};\n\n\tvar number_formats = {\n\t\t/* ods name: [short ssf fmt, long ssf fmt] */\n\t\tday: [\"d\", \"dd\"],\n\t\tmonth: [\"m\", \"mm\"],\n\t\tyear: [\"y\", \"yy\"],\n\t\thours: [\"h\", \"hh\"],\n\t\tminutes: [\"m\", \"mm\"],\n\t\tseconds: [\"s\", \"ss\"],\n\t\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\t\tera: [\"e\", \"ee\"],\n\t\t/* there is no native representation of LO \"Q\" format */\n\t\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n\t};\n\n\treturn function pcx(d, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state = [], tmp;\n\t\tvar tag;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag;\n\t\tvar rowtag;\n\t\tvar Sheets = {}, SheetNames = [];\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tvar Rn, q;\n\t\tvar ctag = ({value:\"\"});\n\t\tvar textp = \"\", textpidx = 0, textptag;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({});\n\t\tvar _Ref = [\"\", \"\"];\n\t\tvar comments = [], comment = ({});\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]) : ({}); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null});\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({});\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null});\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({});\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': //3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) comment.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]});\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = atag.href; delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ';\n\treturn function wso() {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods = (function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text) {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb, i) {\n\t\t/* Section 9 Tables */\n\t\tvar o = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']);\n\t\tvar marr = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(R = 0; R < range.s.r; ++R) o.push(' \\n');\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target; _tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table */\n\t\to.push(' \\n'); // style:master-page-name=\"mp1\">\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") o.push('\\n');\n\t\telse o.push('\\n');\n\t\twrite_automatic_styles_ods(o);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb, opts) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\nvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest = [];\n\tvar rdf = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, write_meta_ods());\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\nfunction write_sheet_index(wb, sheet) {\n\tif(!sheet) return 0;\n\tvar idx = wb.SheetNames.indexOf(sheet);\n\tif(idx == -1) throw new Error(\"Sheet not found: \" + sheet);\n\treturn idx;\n}\n\nfunction write_obj_str(factory) {\n\treturn function write_str(wb, o) {\n\t\tvar idx = write_sheet_index(wb, o.sheet);\n\t\treturn factory.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb);\n\t};\n}\n\nvar write_htm_str = write_obj_str(HTML_);\nvar write_csv_str = write_obj_str({from_sheet:sheet_to_csv});\nvar write_slk_str = write_obj_str(typeof SYLK !== \"undefined\" ? SYLK : {});\nvar write_dif_str = write_obj_str(typeof DIF !== \"undefined\" ? DIF : {});\nvar write_prn_str = write_obj_str(typeof PRN !== \"undefined\" ? PRN : {});\nvar write_rtf_str = write_obj_str(typeof RTF !== \"undefined\" ? RTF : {});\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\nvar write_dbf_buf = write_obj_str(typeof DBF !== \"undefined\" ? DBF : {});\nvar write_eth_str = write_obj_str(typeof ETH !== \"undefined\" ? ETH : {});\n\nfunction fix_opts_func(defaults) {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nvar fix_read_opts = function(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n};\n\nvar fix_write_opts = fix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\nfunction get_sheet_type(n) {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments */\n\t\tvar comments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tvar dfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments);\n\t\t\t}\n\t\t});\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x) { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip, opts) {\n\tmake_ssf(SSF);\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) throw new Error('Unsupported NUMBERS file');\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({});\n\tvar styles = ({});\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({});\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({});\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile);\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: SSF.get_table()\n\t});\n\tif(opts && opts.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts) {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\nif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\nif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb, opts) {\n\t_shapeid = 1024;\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\nvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\nf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar cf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\nfunction firstbyte(f,o) {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64.decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb, opts) {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data, opts) {\nvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data, o) {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data, o) {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64.decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data, o) {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64.decode(d);\n\td = cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data) {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data, opts) {\n\treset_cp();\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), opts);\n\tvar d = data, n = [0,0,0,0], str = false;\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x04) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49: if(n[1] === 0x44) return read_wb_ID(d, o); break;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF: if(n[1] === 0xFE) { return read_utf16(d, o); } break;\n\t\tcase 0x00: if(n[1] === 0x00 && n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o); break;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t}\n\tif(DBF.versions.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip_type(wb, opts) {\n\tvar o = opts||{};\n\tvar z = write_zip(wb, o);\n\tvar oopts = {};\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = has_buf ? \"nodebuffer\" : \"string\";\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = has_buf ? \"nodebuffer\" : \"string\"; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: {\"nodebuffer\": \"buffer\", \"string\": \"binary\"}[oopts.type] || oopts.type}) : z.generate(oopts);\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(out) : out;\n}\n\nfunction write_cfb_type(wb, opts) {\n\tvar o = opts||{};\n\tvar cfb = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out, opts, bom) {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64.encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSync(wb, opts) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = opts||{};\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out = (writeSync(wb, o)); o.type = \"array\"; return s2ab(out); }\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(write_slk_str(wb, o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(write_htm_str(wb, o), o);\n\t\tcase 'txt': return write_stxt_type(write_txt_str(wb, o), o);\n\t\tcase 'csv': return write_string_type(write_csv_str(wb, o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(write_dif_str(wb, o), o);\n\t\tcase 'dbf': return write_binary_type(write_dbf_buf(wb, o), o);\n\t\tcase 'prn': return write_string_type(write_prn_str(wb, o), o);\n\t\tcase 'rtf': return write_string_type(write_rtf_str(wb, o), o);\n\t\tcase 'eth': return write_string_type(write_eth_str(wb, o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb, filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileAsync(filename, wb, opts, cb) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\nfunction make_json_row(sheet, r, R, cols, header, hdr, dense, o) {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = void 0; break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw || (o.rawNumbers && val.t == \"n\") ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet, opts) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols = [];\n\tvar out = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0, CC = 0;\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = 0;\n\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {\n\tvar isempty = true;\n\tvar row = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet, opts) {\n\tvar out = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tout.push(row + RS);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet, opts) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet) {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\n\tvar cmds = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws, js, opts) {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws = _ws || ({});\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell;\n\tvar range = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = utils.sheet_get_cell(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || SSF._table[14]);\n\t\t\t\t}\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v});\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js, opts) { return sheet_add_json(null, js, opts); }\n\nvar utils = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tget_formulae: sheet_to_formulae,\n\tmake_csv: sheet_to_csv,\n\tmake_json: sheet_to_json,\n\tmake_formulae: sheet_to_formulae,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: HTML_.from_sheet,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json\n};\n\n(function(utils) {\nutils.consts = utils.consts || {};\nfunction add_consts(R/*Array*/) { R.forEach(function(a){ utils.consts[a[0]] = a[1]; }); }\n\nfunction get_default(x, y, z) { return x[y] != null ? x[y] : (x[y] = z); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws, R, C) {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\nutils.sheet_get_cell = ws_get_cell_stub;\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb, sh) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nutils.book_new = function() {\n\treturn { SheetNames: [], Sheets: {} };\n};\n\n/* add a worksheet to the end of a given workbook */\nutils.book_append_sheet = function(wb, ws, name) {\n\tif(!name) for(var i = 1; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n};\n\n/* set sheet visibility (visible/hidden/very hidden) */\nutils.book_set_sheet_visibility = function(wb, sh, vis) {\n\tget_default(wb,\"Workbook\",{});\n\tget_default(wb.Workbook,\"Sheets\",[]);\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tget_default(wb.Workbook.Sheets,idx, {});\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n};\nadd_consts([\n\t[\"SHEET_VISIBLE\", 0],\n\t[\"SHEET_HIDDEN\", 1],\n\t[\"SHEET_VERY_HIDDEN\", 2]\n]);\n\n/* set number format */\nutils.cell_set_number_format = function(cell, fmt) {\n\tcell.z = fmt;\n\treturn cell;\n};\n\n/* set cell hyperlink */\nutils.cell_set_hyperlink = function(cell, target, tooltip) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target });\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n};\nutils.cell_set_internal_link = function(cell, range, tooltip) { return utils.cell_set_hyperlink(cell, \"#\" + range, tooltip); };\n\n/* add to cell comments */\nutils.cell_add_comment = function(cell, text, author) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n};\n\n/* set array formula and flush related cells */\nutils.sheet_set_array_formula = function(ws, range, formula) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) cell.f = formula;\n\t}\n\treturn ws;\n};\n\nreturn utils;\n})(utils);\n\nif(has_buf && typeof require != 'undefined') (function() {\n\tvar Readable = require('stream').Readable;\n\n\tvar write_csv_stream = function(sheet, opts) {\n\t\tvar stream = Readable();\n\t\tvar o = opts == null ? {} : opts;\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\t\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\t\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\t\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\t\tvar row = \"\", cols = [];\n\t\to.dense = Array.isArray(sheet);\n\t\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\t\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\t\tvar R = r.s.r;\n\t\tvar BOM = false;\n\t\tstream._read = function() {\n\t\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t++R;\n\t\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\t\tif(row != null) {\n\t\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\t\tstream.push(row + RS);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_html_stream = function(ws, opts) {\n\t\tvar stream = Readable();\n\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : HTML_.BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : HTML_.END;\n\t\tstream.push(header);\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tstream.push(HTML_._preamble(ws, r, o));\n\t\tvar R = r.s.r;\n\t\tvar end = false;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) {\n\t\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\t\treturn stream.push(null);\n\t\t\t}\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\tstream.push(HTML_._row(ws, r, R, o));\n\t\t\t\t++R;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_json_stream = function(sheet, opts) {\n\t\tvar stream = Readable({objectMode:true});\n\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\t\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tvar o = opts || {};\n\t\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\t\tif(o.header === 1) header = 1;\n\t\telse if(o.header === \"A\") header = 2;\n\t\telse if(Array.isArray(o.header)) header = 3;\n\t\tswitch(typeof range) {\n\t\t\tcase 'string': r = safe_decode_range(range); break;\n\t\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\t\tdefault: r = range;\n\t\t}\n\t\tif(header > 0) offset = 0;\n\t\tvar rr = encode_row(r.s.r);\n\t\tvar cols = [];\n\t\tvar counter = 0;\n\t\tvar dense = Array.isArray(sheet);\n\t\tvar R = r.s.r, C = 0, CC = 0;\n\t\tif(dense && !sheet[R]) sheet[R] = [];\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tcols[C] = encode_col(C);\n\t\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\t\tswitch(header) {\n\t\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\t\tdefault:\n\t\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\t\thdr[C] = vv;\n\t\t\t}\n\t\t}\n\t\tR = r.s.r + offset;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t//if ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t\t++R;\n\t\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\t\tstream.push(row.row);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tXLSX.stream = {\n\t\tto_json: write_json_stream,\n\t\tto_html: write_html_stream,\n\t\tto_csv: write_csv_stream\n\t};\n})();\n\nif(typeof parse_xlscfb !== \"undefined\") XLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_zip = parse_zip;\nXLSX.read = readSync; //xlsread\nXLSX.readFile = readFileSync; //readFile\nXLSX.readFileSync = readFileSync;\nXLSX.write = writeSync;\nXLSX.writeFile = writeFileSync;\nXLSX.writeFileSync = writeFileSync;\nXLSX.writeFileAsync = writeFileAsync;\nXLSX.utils = utils;\nXLSX.SSF = SSF;\nif(typeof CFB !== \"undefined\") XLSX.CFB = CFB;\n}\n/*global define */\nif(typeof exports !== 'undefined') make_xlsx_lib(exports);\nelse if(typeof module !== 'undefined' && module.exports) make_xlsx_lib(module.exports);\nelse if(typeof define === 'function' && define.amd) define(function() { if(!XLSX.version) make_xlsx_lib(XLSX); return XLSX; });\nelse make_xlsx_lib(XLSX);\n/*exported XLS, ODS */\nvar XLS = XLSX, ODS = XLSX;\n","/*!\n * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2020-05-04T22:49Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.5.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( _i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px\";\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = parseInt( trStyle.height ) > 3;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = (\n\t\t\t\t\tdataPriv.get( cur, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script\n\t\t\tif ( !isSuccess && jQuery.inArray( \"script\", s.dataTypes ) > -1 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"\n\n\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./Scanner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./Scanner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Scanner.vue?vue&type=template&id=54df6e7e&scoped=true&\"\nimport script from \"./Scanner.vue?vue&type=script&lang=js&\"\nexport * from \"./Scanner.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Scanner.vue?vue&type=style&index=0&id=54df6e7e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"54df6e7e\",\n null\n \n)\n\nexport default component.exports","import 'webrtc-adapter';\nimport Scanner from './Scanner.vue';\n\nexport default {\n install: function(Vue, options) {\n Vue.component('v-quagga', Scanner);\n },\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 */\nvar DetectorResult = /** @class */ (function () {\n function DetectorResult(bits, points) {\n this.bits = bits;\n this.points = points;\n }\n DetectorResult.prototype.getBits = function () {\n return this.bits;\n };\n DetectorResult.prototype.getPoints = function () {\n return this.points;\n };\n return DetectorResult;\n}());\nexports.default = DetectorResult;\n//# sourceMappingURL=DetectorResult.js.map","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.encoder {*/\nvar BitArray_1 = require(\"../../common/BitArray\");\nvar Integer_1 = require(\"../../util/Integer\");\nvar QRCode_1 = require(\"./QRCode\");\nvar MaskUtil_1 = require(\"./MaskUtil\");\nvar WriterException_1 = require(\"../../WriterException\");\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\n/**\n * @author satorux@google.com (Satoru Takabayashi) - creator\n * @author dswitkin@google.com (Daniel Switkin) - ported from C++\n */\nvar MatrixUtil = /** @class */ (function () {\n function MatrixUtil() {\n // do nothing\n }\n // Set all cells to -1 (TYPESCRIPTPORT: 255). -1 (TYPESCRIPTPORT: 255) means that the cell is empty (not set yet).\n //\n // JAVAPORT: We shouldn't need to do this at all. The code should be rewritten to begin encoding\n // with the ByteMatrix initialized all to zero.\n MatrixUtil.clearMatrix = function (matrix) {\n // TYPESCRIPTPORT: we use UintArray se changed here from -1 to 255\n matrix.clear(/*(byte) */ /*-1*/ 255);\n };\n // Build 2D matrix of QR Code from \"dataBits\" with \"ecLevel\", \"version\" and \"getMaskPattern\". On\n // success, store the result in \"matrix\" and return true.\n MatrixUtil.buildMatrix = function (dataBits, ecLevel, version, maskPattern /*int*/, matrix) {\n MatrixUtil.clearMatrix(matrix);\n MatrixUtil.embedBasicPatterns(version, matrix);\n // Type information appear with any version.\n MatrixUtil.embedTypeInfo(ecLevel, maskPattern, matrix);\n // Version info appear if version >= 7.\n MatrixUtil.maybeEmbedVersionInfo(version, matrix);\n // Data should be embedded at end.\n MatrixUtil.embedDataBits(dataBits, maskPattern, matrix);\n };\n // Embed basic patterns. On success, modify the matrix and return true.\n // The basic patterns are:\n // - Position detection patterns\n // - Timing patterns\n // - Dark dot at the left bottom corner\n // - Position adjustment patterns, if need be\n MatrixUtil.embedBasicPatterns = function (version, matrix) {\n // Let's get started with embedding big squares at corners.\n MatrixUtil.embedPositionDetectionPatternsAndSeparators(matrix);\n // Then, embed the dark dot at the left bottom corner.\n MatrixUtil.embedDarkDotAtLeftBottomCorner(matrix);\n // Position adjustment patterns appear if version >= 2.\n MatrixUtil.maybeEmbedPositionAdjustmentPatterns(version, matrix);\n // Timing patterns should be embedded after position adj. patterns.\n MatrixUtil.embedTimingPatterns(matrix);\n };\n // Embed type information. On success, modify the matrix.\n MatrixUtil.embedTypeInfo = function (ecLevel, maskPattern /*int*/, matrix) {\n var typeInfoBits = new BitArray_1.default();\n MatrixUtil.makeTypeInfoBits(ecLevel, maskPattern, typeInfoBits);\n for (var i = 0, size = typeInfoBits.getSize(); i < size; ++i) {\n // Place bits in LSB to MSB order. LSB (least significant bit) is the last value in\n // \"typeInfoBits\".\n var bit = typeInfoBits.get(typeInfoBits.getSize() - 1 - i);\n // Type info bits at the left top corner. See 8.9 of JISX0510:2004 (p.46).\n var coordinates = MatrixUtil.TYPE_INFO_COORDINATES[i];\n var x1 = coordinates[0];\n var y1 = coordinates[1];\n matrix.setBoolean(x1, y1, bit);\n if (i < 8) {\n // Right top corner.\n var x2 = matrix.getWidth() - i - 1;\n var y2 = 8;\n matrix.setBoolean(x2, y2, bit);\n }\n else {\n // Left bottom corner.\n var x2 = 8;\n var y2 = matrix.getHeight() - 7 + (i - 8);\n matrix.setBoolean(x2, y2, bit);\n }\n }\n };\n // Embed version information if need be. On success, modify the matrix and return true.\n // See 8.10 of JISX0510:2004 (p.47) for how to embed version information.\n MatrixUtil.maybeEmbedVersionInfo = function (version, matrix) {\n if (version.getVersionNumber() < 7) { // Version info is necessary if version >= 7.\n return; // Don't need version info.\n }\n var versionInfoBits = new BitArray_1.default();\n MatrixUtil.makeVersionInfoBits(version, versionInfoBits);\n var bitIndex = 6 * 3 - 1; // It will decrease from 17 to 0.\n for (var i = 0; i < 6; ++i) {\n for (var j = 0; j < 3; ++j) {\n // Place bits in LSB (least significant bit) to MSB order.\n var bit = versionInfoBits.get(bitIndex);\n bitIndex--;\n // Left bottom corner.\n matrix.setBoolean(i, matrix.getHeight() - 11 + j, bit);\n // Right bottom corner.\n matrix.setBoolean(matrix.getHeight() - 11 + j, i, bit);\n }\n }\n };\n // Embed \"dataBits\" using \"getMaskPattern\". On success, modify the matrix and return true.\n // For debugging purposes, it skips masking process if \"getMaskPattern\" is -1(TYPESCRIPTPORT: 255).\n // See 8.7 of JISX0510:2004 (p.38) for how to embed data bits.\n MatrixUtil.embedDataBits = function (dataBits, maskPattern /*int*/, matrix) {\n var bitIndex = 0;\n var direction = -1;\n // Start from the right bottom cell.\n var x = matrix.getWidth() - 1;\n var y = matrix.getHeight() - 1;\n while (x > 0) {\n // Skip the vertical timing pattern.\n if (x === 6) {\n x -= 1;\n }\n while (y >= 0 && y < matrix.getHeight()) {\n for (var i = 0; i < 2; ++i) {\n var xx = x - i;\n // Skip the cell if it's not empty.\n if (!MatrixUtil.isEmpty(matrix.get(xx, y))) {\n continue;\n }\n var bit = void 0;\n if (bitIndex < dataBits.getSize()) {\n bit = dataBits.get(bitIndex);\n ++bitIndex;\n }\n else {\n // Padding bit. If there is no bit left, we'll fill the left cells with 0, as described\n // in 8.4.9 of JISX0510:2004 (p. 24).\n bit = false;\n }\n // Skip masking if mask_pattern is -1 (TYPESCRIPTPORT: 255).\n if (maskPattern !== 255 && MaskUtil_1.default.getDataMaskBit(maskPattern, xx, y)) {\n bit = !bit;\n }\n matrix.setBoolean(xx, y, bit);\n }\n y += direction;\n }\n direction = -direction; // Reverse the direction.\n y += direction;\n x -= 2; // Move to the left.\n }\n // All bits should be consumed.\n if (bitIndex !== dataBits.getSize()) {\n throw new WriterException_1.default('Not all bits consumed: ' + bitIndex + '/' + dataBits.getSize());\n }\n };\n // Return the position of the most significant bit set (one: to) in the \"value\". The most\n // significant bit is position 32. If there is no bit set, return 0. Examples:\n // - findMSBSet(0) => 0\n // - findMSBSet(1) => 1\n // - findMSBSet(255) => 8\n MatrixUtil.findMSBSet = function (value /*int*/) {\n return 32 - Integer_1.default.numberOfLeadingZeros(value);\n };\n // Calculate BCH (Bose-Chaudhuri-Hocquenghem) code for \"value\" using polynomial \"poly\". The BCH\n // code is used for encoding type information and version information.\n // Example: Calculation of version information of 7.\n // f(x) is created from 7.\n // - 7 = 000111 in 6 bits\n // - f(x) = x^2 + x^1 + x^0\n // g(x) is given by the standard (p. 67)\n // - g(x) = x^12 + x^11 + x^10 + x^9 + x^8 + x^5 + x^2 + 1\n // Multiply f(x) by x^(18 - 6)\n // - f'(x) = f(x) * x^(18 - 6)\n // - f'(x) = x^14 + x^13 + x^12\n // Calculate the remainder of f'(x) / g(x)\n // x^2\n // __________________________________________________\n // g(x) )x^14 + x^13 + x^12\n // x^14 + x^13 + x^12 + x^11 + x^10 + x^7 + x^4 + x^2\n // --------------------------------------------------\n // x^11 + x^10 + x^7 + x^4 + x^2\n //\n // The remainder is x^11 + x^10 + x^7 + x^4 + x^2\n // Encode it in binary: 110010010100\n // The return value is 0xc94 (1100 1001 0100)\n //\n // Since all coefficients in the polynomials are 1 or 0, we can do the calculation by bit\n // operations. We don't care if coefficients are positive or negative.\n MatrixUtil.calculateBCHCode = function (value /*int*/, poly /*int*/) {\n if (poly === 0) {\n throw new IllegalArgumentException_1.default('0 polynomial');\n }\n // If poly is \"1 1111 0010 0101\" (version info poly), msbSetInPoly is 13. We'll subtract 1\n // from 13 to make it 12.\n var msbSetInPoly = MatrixUtil.findMSBSet(poly);\n value <<= msbSetInPoly - 1;\n // Do the division business using exclusive-or operations.\n while (MatrixUtil.findMSBSet(value) >= msbSetInPoly) {\n value ^= poly << (MatrixUtil.findMSBSet(value) - msbSetInPoly);\n }\n // Now the \"value\" is the remainder (i.e. the BCH code)\n return value;\n };\n // Make bit vector of type information. On success, store the result in \"bits\" and return true.\n // Encode error correction level and mask pattern. See 8.9 of\n // JISX0510:2004 (p.45) for details.\n MatrixUtil.makeTypeInfoBits = function (ecLevel, maskPattern /*int*/, bits) {\n if (!QRCode_1.default.isValidMaskPattern(maskPattern)) {\n throw new WriterException_1.default('Invalid mask pattern');\n }\n var typeInfo = (ecLevel.getBits() << 3) | maskPattern;\n bits.appendBits(typeInfo, 5);\n var bchCode = MatrixUtil.calculateBCHCode(typeInfo, MatrixUtil.TYPE_INFO_POLY);\n bits.appendBits(bchCode, 10);\n var maskBits = new BitArray_1.default();\n maskBits.appendBits(MatrixUtil.TYPE_INFO_MASK_PATTERN, 15);\n bits.xor(maskBits);\n if (bits.getSize() !== 15) { // Just in case.\n throw new WriterException_1.default('should not happen but we got: ' + bits.getSize());\n }\n };\n // Make bit vector of version information. On success, store the result in \"bits\" and return true.\n // See 8.10 of JISX0510:2004 (p.45) for details.\n MatrixUtil.makeVersionInfoBits = function (version, bits) {\n bits.appendBits(version.getVersionNumber(), 6);\n var bchCode = MatrixUtil.calculateBCHCode(version.getVersionNumber(), MatrixUtil.VERSION_INFO_POLY);\n bits.appendBits(bchCode, 12);\n if (bits.getSize() !== 18) { // Just in case.\n throw new WriterException_1.default('should not happen but we got: ' + bits.getSize());\n }\n };\n // Check if \"value\" is empty.\n MatrixUtil.isEmpty = function (value /*int*/) {\n return value === 255; // -1\n };\n MatrixUtil.embedTimingPatterns = function (matrix) {\n // -8 is for skipping position detection patterns (7: size), and two horizontal/vertical\n // separation patterns (1: size). Thus, 8 = 7 + 1.\n for (var i = 8; i < matrix.getWidth() - 8; ++i) {\n var bit = (i + 1) % 2;\n // Horizontal line.\n if (MatrixUtil.isEmpty(matrix.get(i, 6))) {\n matrix.setNumber(i, 6, bit);\n }\n // Vertical line.\n if (MatrixUtil.isEmpty(matrix.get(6, i))) {\n matrix.setNumber(6, i, bit);\n }\n }\n };\n // Embed the lonely dark dot at left bottom corner. JISX0510:2004 (p.46)\n MatrixUtil.embedDarkDotAtLeftBottomCorner = function (matrix) {\n if (matrix.get(8, matrix.getHeight() - 8) === 0) {\n throw new WriterException_1.default();\n }\n matrix.setNumber(8, matrix.getHeight() - 8, 1);\n };\n MatrixUtil.embedHorizontalSeparationPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n for (var x = 0; x < 8; ++x) {\n if (!MatrixUtil.isEmpty(matrix.get(xStart + x, yStart))) {\n throw new WriterException_1.default();\n }\n matrix.setNumber(xStart + x, yStart, 0);\n }\n };\n MatrixUtil.embedVerticalSeparationPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n for (var y = 0; y < 7; ++y) {\n if (!MatrixUtil.isEmpty(matrix.get(xStart, yStart + y))) {\n throw new WriterException_1.default();\n }\n matrix.setNumber(xStart, yStart + y, 0);\n }\n };\n MatrixUtil.embedPositionAdjustmentPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n for (var y = 0; y < 5; ++y) {\n var patternY = MatrixUtil.POSITION_ADJUSTMENT_PATTERN[y];\n for (var x = 0; x < 5; ++x) {\n matrix.setNumber(xStart + x, yStart + y, patternY[x]);\n }\n }\n };\n MatrixUtil.embedPositionDetectionPattern = function (xStart /*int*/, yStart /*int*/, matrix) {\n for (var y = 0; y < 7; ++y) {\n var patternY = MatrixUtil.POSITION_DETECTION_PATTERN[y];\n for (var x = 0; x < 7; ++x) {\n matrix.setNumber(xStart + x, yStart + y, patternY[x]);\n }\n }\n };\n // Embed position detection patterns and surrounding vertical/horizontal separators.\n MatrixUtil.embedPositionDetectionPatternsAndSeparators = function (matrix) {\n // Embed three big squares at corners.\n var pdpWidth = MatrixUtil.POSITION_DETECTION_PATTERN[0].length;\n // Left top corner.\n MatrixUtil.embedPositionDetectionPattern(0, 0, matrix);\n // Right top corner.\n MatrixUtil.embedPositionDetectionPattern(matrix.getWidth() - pdpWidth, 0, matrix);\n // Left bottom corner.\n MatrixUtil.embedPositionDetectionPattern(0, matrix.getWidth() - pdpWidth, matrix);\n // Embed horizontal separation patterns around the squares.\n var hspWidth = 8;\n // Left top corner.\n MatrixUtil.embedHorizontalSeparationPattern(0, hspWidth - 1, matrix);\n // Right top corner.\n MatrixUtil.embedHorizontalSeparationPattern(matrix.getWidth() - hspWidth, hspWidth - 1, matrix);\n // Left bottom corner.\n MatrixUtil.embedHorizontalSeparationPattern(0, matrix.getWidth() - hspWidth, matrix);\n // Embed vertical separation patterns around the squares.\n var vspSize = 7;\n // Left top corner.\n MatrixUtil.embedVerticalSeparationPattern(vspSize, 0, matrix);\n // Right top corner.\n MatrixUtil.embedVerticalSeparationPattern(matrix.getHeight() - vspSize - 1, 0, matrix);\n // Left bottom corner.\n MatrixUtil.embedVerticalSeparationPattern(vspSize, matrix.getHeight() - vspSize, matrix);\n };\n // Embed position adjustment patterns if need be.\n MatrixUtil.maybeEmbedPositionAdjustmentPatterns = function (version, matrix) {\n if (version.getVersionNumber() < 2) { // The patterns appear if version >= 2\n return;\n }\n var index = version.getVersionNumber() - 1;\n var coordinates = MatrixUtil.POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE[index];\n for (var i = 0, length_1 = coordinates.length; i !== length_1; i++) {\n var y = coordinates[i];\n if (y >= 0) {\n for (var j = 0; j !== length_1; j++) {\n var x = coordinates[j];\n if (x >= 0 && MatrixUtil.isEmpty(matrix.get(x, y))) {\n // If the cell is unset, we embed the position adjustment pattern here.\n // -2 is necessary since the x/y coordinates point to the center of the pattern, not the\n // left top corner.\n MatrixUtil.embedPositionAdjustmentPattern(x - 2, y - 2, matrix);\n }\n }\n }\n }\n };\n MatrixUtil.POSITION_DETECTION_PATTERN = Array.from([\n Int32Array.from([1, 1, 1, 1, 1, 1, 1]),\n Int32Array.from([1, 0, 0, 0, 0, 0, 1]),\n Int32Array.from([1, 0, 1, 1, 1, 0, 1]),\n Int32Array.from([1, 0, 1, 1, 1, 0, 1]),\n Int32Array.from([1, 0, 1, 1, 1, 0, 1]),\n Int32Array.from([1, 0, 0, 0, 0, 0, 1]),\n Int32Array.from([1, 1, 1, 1, 1, 1, 1]),\n ]);\n MatrixUtil.POSITION_ADJUSTMENT_PATTERN = Array.from([\n Int32Array.from([1, 1, 1, 1, 1]),\n Int32Array.from([1, 0, 0, 0, 1]),\n Int32Array.from([1, 0, 1, 0, 1]),\n Int32Array.from([1, 0, 0, 0, 1]),\n Int32Array.from([1, 1, 1, 1, 1]),\n ]);\n // From Appendix E. Table 1, JIS0510X:2004 (71: p). The table was double-checked by komatsu.\n MatrixUtil.POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE = Array.from([\n Int32Array.from([-1, -1, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 18, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 22, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 26, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 30, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 34, -1, -1, -1, -1, -1]),\n Int32Array.from([6, 22, 38, -1, -1, -1, -1]),\n Int32Array.from([6, 24, 42, -1, -1, -1, -1]),\n Int32Array.from([6, 26, 46, -1, -1, -1, -1]),\n Int32Array.from([6, 28, 50, -1, -1, -1, -1]),\n Int32Array.from([6, 30, 54, -1, -1, -1, -1]),\n Int32Array.from([6, 32, 58, -1, -1, -1, -1]),\n Int32Array.from([6, 34, 62, -1, -1, -1, -1]),\n Int32Array.from([6, 26, 46, 66, -1, -1, -1]),\n Int32Array.from([6, 26, 48, 70, -1, -1, -1]),\n Int32Array.from([6, 26, 50, 74, -1, -1, -1]),\n Int32Array.from([6, 30, 54, 78, -1, -1, -1]),\n Int32Array.from([6, 30, 56, 82, -1, -1, -1]),\n Int32Array.from([6, 30, 58, 86, -1, -1, -1]),\n Int32Array.from([6, 34, 62, 90, -1, -1, -1]),\n Int32Array.from([6, 28, 50, 72, 94, -1, -1]),\n Int32Array.from([6, 26, 50, 74, 98, -1, -1]),\n Int32Array.from([6, 30, 54, 78, 102, -1, -1]),\n Int32Array.from([6, 28, 54, 80, 106, -1, -1]),\n Int32Array.from([6, 32, 58, 84, 110, -1, -1]),\n Int32Array.from([6, 30, 58, 86, 114, -1, -1]),\n Int32Array.from([6, 34, 62, 90, 118, -1, -1]),\n Int32Array.from([6, 26, 50, 74, 98, 122, -1]),\n Int32Array.from([6, 30, 54, 78, 102, 126, -1]),\n Int32Array.from([6, 26, 52, 78, 104, 130, -1]),\n Int32Array.from([6, 30, 56, 82, 108, 134, -1]),\n Int32Array.from([6, 34, 60, 86, 112, 138, -1]),\n Int32Array.from([6, 30, 58, 86, 114, 142, -1]),\n Int32Array.from([6, 34, 62, 90, 118, 146, -1]),\n Int32Array.from([6, 30, 54, 78, 102, 126, 150]),\n Int32Array.from([6, 24, 50, 76, 102, 128, 154]),\n Int32Array.from([6, 28, 54, 80, 106, 132, 158]),\n Int32Array.from([6, 32, 58, 84, 110, 136, 162]),\n Int32Array.from([6, 26, 54, 82, 110, 138, 166]),\n Int32Array.from([6, 30, 58, 86, 114, 142, 170]),\n ]);\n // Type info cells at the left top corner.\n MatrixUtil.TYPE_INFO_COORDINATES = Array.from([\n Int32Array.from([8, 0]),\n Int32Array.from([8, 1]),\n Int32Array.from([8, 2]),\n Int32Array.from([8, 3]),\n Int32Array.from([8, 4]),\n Int32Array.from([8, 5]),\n Int32Array.from([8, 7]),\n Int32Array.from([8, 8]),\n Int32Array.from([7, 8]),\n Int32Array.from([5, 8]),\n Int32Array.from([4, 8]),\n Int32Array.from([3, 8]),\n Int32Array.from([2, 8]),\n Int32Array.from([1, 8]),\n Int32Array.from([0, 8]),\n ]);\n // From Appendix D in JISX0510:2004 (p. 67)\n MatrixUtil.VERSION_INFO_POLY = 0x1f25; // 1 1111 0010 0101\n // From Appendix C in JISX0510:2004 (p.65).\n MatrixUtil.TYPE_INFO_POLY = 0x537;\n MatrixUtil.TYPE_INFO_MASK_PATTERN = 0x5412;\n return MatrixUtil;\n}());\nexports.default = MatrixUtil;\n//# sourceMappingURL=MatrixUtil.js.map","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","\"use strict\";\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar UPCEANReader_1 = require(\"./UPCEANReader\");\n/**\n *

Implements decoding of the EAN-8 format.

\n *\n * @author Sean Owen\n */\nvar EAN8Reader = /** @class */ (function (_super) {\n __extends(EAN8Reader, _super);\n function EAN8Reader() {\n var _this = _super.call(this) || this;\n _this.decodeMiddleCounters = [0, 0, 0, 0];\n return _this;\n }\n EAN8Reader.prototype.decodeMiddle = function (row, startRange, resultString) {\n var counters = this.decodeMiddleCounters;\n counters[0] = 0;\n counters[1] = 0;\n counters[2] = 0;\n counters[3] = 0;\n var end = row.getSize();\n var rowOffset = startRange[1];\n for (var x = 0; x < 4 && rowOffset < end; x++) {\n var bestMatch = UPCEANReader_1.default.decodeDigit(row, counters, rowOffset, UPCEANReader_1.default.L_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch));\n for (var _i = 0, counters_1 = counters; _i < counters_1.length; _i++) {\n var counter = counters_1[_i];\n rowOffset += counter;\n }\n }\n var middleRange = UPCEANReader_1.default.findGuardPattern(row, rowOffset, true, UPCEANReader_1.default.MIDDLE_PATTERN, new Array(UPCEANReader_1.default.MIDDLE_PATTERN.length).fill(0));\n rowOffset = middleRange[1];\n for (var x = 0; x < 4 && rowOffset < end; x++) {\n var bestMatch = UPCEANReader_1.default.decodeDigit(row, counters, rowOffset, UPCEANReader_1.default.L_PATTERNS);\n resultString += String.fromCharCode(('0'.charCodeAt(0) + bestMatch));\n for (var _a = 0, counters_2 = counters; _a < counters_2.length; _a++) {\n var counter = counters_2[_a];\n rowOffset += counter;\n }\n }\n return { rowOffset: rowOffset, resultString: resultString };\n };\n EAN8Reader.prototype.getBarcodeFormat = function () {\n return BarcodeFormat_1.default.EAN_8;\n };\n return EAN8Reader;\n}(UPCEANReader_1.default));\nexports.default = EAN8Reader;\n//# sourceMappingURL=EAN8Reader.js.map","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(e.toString()).default:\"object\"==typeof exports?exports.Quagga=e(e.toString()).default:t.Quagga=e(e.toString()).default}(this,function(t){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/\",e(e.s=166)}([function(t,e){function n(t){var e=typeof t;return null!=t&&(\"object\"==e||\"function\"==e)}t.exports=n},function(t,e,n){\"use strict\";function r(t,e){return this._row=[],this.config=t||{},this.supplements=e,this}var o=n(3);r.prototype._nextUnset=function(t,e){var n;for(void 0===e&&(e=0),n=e;nn)return Number.MAX_VALUE;u+=c}return u/f},r.prototype._nextSet=function(t,e){var n;for(e=e||0,n=e;n1&&(t[n[r]]=o)},r.prototype._matchTrace=function(t,e){var n,r,o=[],i=this,a=i._nextSet(i._row),u=!i._row[a],c=0,s={error:Number.MAX_VALUE,code:-1,start:0};if(t){for(n=0;n=0;r--)e=Math.floor(Math.random()*r),n=t[r],t[r]=t[e],t[e]=n;return t},toPointList:function(t){var e,n,r=[],o=[];for(e=0;e=e&&o.push(t[r]);return o},maxIndex:function(t){var e,n=0;for(e=0;et[n]&&(n=e);return n},max:function t(e){var n,t=0;for(n=0;nt&&(t=e[n]);return t},sum:function t(e){for(var n=e.length,t=0;n--;)t+=e[n];return t}}},function(t,e,n){\"use strict\";function r(t,e){t=a()(o(),t),u.a.call(this,t,e)}function o(){var t={};return Object.keys(r.CONFIG_KEYS).forEach(function(e){t[e]=r.CONFIG_KEYS[e].default}),t}var i=n(28),a=n.n(i),u=n(1),c=Object.assign||function(t){for(var e=1;ea.AVG_CODE_ERROR?null:f}s++,i[s]=1,c=!c}return null},r.prototype._findPattern=function(t,e,n,r,o){var i,a,u,c,s=[],f=this,l=0,d={error:Number.MAX_VALUE,code:-1,start:0,end:0};for(e||(e=f._nextSet(f._row)),void 0===n&&(n=!1),void 0===r&&(r=!0),void 0===o&&(o=f.AVG_CODE_ERROR),i=0;i=0&&n._matchRange(t,e.start,0))return e;r=e.end,e=null}},r.prototype._verifyTrailingWhitespace=function(t){var e,n=this;return e=t.end+(t.end-t.start),e=i.CODE_G_START?(t.code=t.code-i.CODE_G_START,a|=1<<5-r):a|=0<<5-r,e.push(t.code),n.push(t)}if(null===(o=i._calculateFirstDigit(a)))return null;if(e.unshift(o),null===(t=i._findPattern(i.MIDDLE_PATTERN,t.end,!0,!1)))return null;for(n.push(t),r=0;r<6;r++){if(!(t=i._decodeCode(t.end,i.CODE_G_START)))return null;n.push(t),e.push(t.code)}return t},r.prototype._decode=function(){var t,e,n=this,r=[],o=[],i={};if(!(t=n._findStart()))return null;if(e={code:t.code,start:t.start,end:t.end},o.push(e),!(e=n._decodePayload(e,r,o)))return null;if(!(e=n._findEnd(e.end,!1)))return null;if(o.push(e),!n._checksum(r))return null;if(this.supplements.length>0){var a=this._decodeExtensions(e.end);if(!a)return null;var u=a.decodedCodes[a.decodedCodes.length-1],s={start:u.start+((u.end-u.start)/2|0),end:u.end};if(!n._verifyTrailingWhitespace(s))return null;i={supplement:a,code:r.join(\"\")+a.code}}return c({code:r.join(\"\"),start:t.start,end:e.end,codeset:\"\",startInfo:t,decodedCodes:o},i)},r.prototype._decodeExtensions=function(t){var e,n,r=this._nextSet(this._row,t),o=this._findPattern(this.EXTENSION_START_PATTERN,r,!1,!1);if(null===o)return null;for(e=0;e=0;e-=2)n+=t[e];for(n*=3,e=t.length-1;e>=0;e-=2)n+=t[e];return n%10==0},r.CONFIG_KEYS={supplements:{type:\"arrayOf(string)\",default:[],description:\"Allowed extensions to be decoded (2 and/or 5)\"}},e.a=r},function(t,e,n){var r=n(38),o=\"object\"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function(\"return this\")();t.exports=i},function(t,e){function n(t){return null!=t&&\"object\"==typeof t}t.exports=n},function(t,e){function n(t){var e=new Float32Array(2);return e[0]=t[0],e[1]=t[1],e}t.exports=n},function(t,e,n){function r(t){return null==t?void 0===t?c:u:s&&s in Object(t)?i(t):a(t)}var o=n(11),i=n(119),a=n(146),u=\"[object Null]\",c=\"[object Undefined]\",s=o?o.toStringTag:void 0;t.exports=r},function(t,e,n){\"use strict\";e.a={drawRect:function(t,e,n,r){n.strokeStyle=r.color,n.fillStyle=r.color,n.lineWidth=1,n.beginPath(),n.strokeRect(t.x,t.y,e.x,e.y)},drawPath:function(t,e,n,r){n.strokeStyle=r.color,n.fillStyle=r.color,n.lineWidth=r.lineWidth,n.beginPath(),n.moveTo(t[0][e.x],t[0][e.y]);for(var o=1;o-1&&t%1==0&&t0?Math.floor(this.x+.5):Math.floor(this.x-.5),this.y=this.y>0?Math.floor(this.y+.5):Math.floor(this.y-.5),this}}}function o(t,e,n){n||(n=t);for(var r=t.data,o=r.length,i=n.data;o--;)i[o]=r[o]>o]++;return a}function a(t,e){function n(t,e){var n,r=0;for(n=t;n<=e;n++)r+=a[n];return r}function r(t,e){var n,r=0;for(n=t;n<=e;n++)r+=n*a[n];return r}function o(){var o,u,c,s,f,l,d,h=[0],p=(1<c)for(i=s[u],i.score=o,i.item=t[r],c=Number.MAX_VALUE,a=0;ae[r]?r++:n++;return o}function _(t,e){function n(t){for(var e=0,n=t[Math.floor(t.length/2)];e0&&(n=Math.abs(t[e]-d)>Math.abs(t[e-1]-d)?t[e-1]:t[e]),d/nc[f-1]/c[f]?{x:n,y:n}:null}var r,o=p(e.x),i=p(e.y),a=Math.max(e.x,e.y),u=v(o,i),c=[8,10,15,20,32,60,80],s={\"x-small\":5,small:4,medium:3,large:2,\"x-large\":1},f=s[t]||s.medium,l=c[f],d=Math.floor(a/l);return r=n(u),r||(r=n(p(a)))||(r=n(p(d*l))),r}function g(t){return{value:parseFloat(t),unit:(t.indexOf(\"%\"),t.length,\"%\")}}function y(t,e,n){var r={width:t,height:e},o=Object.keys(n).reduce(function(t,e){var o=n[e],i=g(o),a=C[e](i,r);return t[e]=a,t},{});return{sx:o.left,sy:o.top,sw:o.right-o.left,sh:o.bottom-o.top}}var m=n(50),x=n(3);e.b=r,e.f=u,e.g=c,e.h=s,e.c=f,e.d=l,e.i=d,e.a=h,e.e=_,e.j=y;var b={clone:n(7)},E={clone:n(83)},C={top:function(t,e){if(\"%\"===t.unit)return Math.floor(e.height*(t.value/100))},right:function(t,e){if(\"%\"===t.unit)return Math.floor(e.width-e.width*(t.value/100))},bottom:function(t,e){if(\"%\"===t.unit)return Math.floor(e.height-e.height*(t.value/100))},left:function(t,e){if(\"%\"===t.unit)return Math.floor(e.width*(t.value/100))}}},function(t,e,n){\"use strict\";function r(t,e,n,r){e?this.data=e:n?(this.data=new n(t.x*t.y),n===Array&&r&&a.a.init(this.data,0)):(this.data=new Uint8Array(t.x*t.y),Uint8Array===Array&&r&&a.a.init(this.data,0)),this.size=t}var o=n(53),i=n(19),a=n(3),u={clone:n(7)};r.prototype.inImageWithBorder=function(t,e){return t.x>=e&&t.y>=e&&t.x0&&(a=g[r-1],a.m00+=1,a.m01+=n,a.m10+=e,a.m11+=e*n,a.m02+=o,a.m20+=e*e);for(i=0;i=0?x:-x)+m,a.theta=(180*h/m+90)%180-90,a.theta<0&&(a.theta+=180),a.rad=h>m?h-m:h,a.vec=u.clone([Math.cos(h),Math.sin(h)]),y.push(a));return y},r.prototype.show=function(t,e){var n,r,o,i,a,u,c;for(e||(e=1),n=t.getContext(\"2d\"),t.width=this.size.x,t.height=this.size.y,r=n.getImageData(0,0,t.width,t.height),o=r.data,i=0,c=0;c360)&&(e=360);for(var o=[0,1,1],a=[0,0,0],u=[255,255,255],c=[0,0,0],s=[],f=t.getContext(\"2d\"),l=f.getImageData(r.x,r.y,this.size.x,this.size.y),d=l.data,h=this.data.length;h--;)o[0]=this.data[h]*e,s=o[0]<=0?u:o[0]>=360?c:n.i(i.a)(o,a),d[4*h+0]=s[0],d[4*h+1]=s[1],d[4*h+2]=s[2],d[4*h+3]=255;f.putImageData(l,r.x,r.y)},e.a=r},function(t,e,n){function r(t,e,n){\"__proto__\"==e&&o?o(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}var o=n(37);t.exports=r},function(t,e,n){function r(t,e){var n=i(t,e);return o(n)?n:void 0}var o=n(97),i=n(120);t.exports=r},function(t,e,n){function r(t){if(\"string\"==typeof t||o(t))return t;var e=t+\"\";return\"0\"==e&&1/t==-i?\"-0\":e}var o=n(27),i=1/0;t.exports=r},function(t,e,n){function r(t){return null!=t&&i(t.length)&&!o(t)}var o=n(25),i=n(26);t.exports=r},function(t,e,n){function r(t){if(!i(t))return!1;var e=o(t);return e==u||e==c||e==a||e==s}var o=n(8),i=n(0),a=\"[object AsyncFunction]\",u=\"[object Function]\",c=\"[object GeneratorFunction]\",s=\"[object Proxy]\";t.exports=r},function(t,e){function n(t){return\"number\"==typeof t&&t>-1&&t%1==0&&t<=r}var r=9007199254740991;t.exports=n},function(t,e,n){function r(t){return\"symbol\"==typeof t||i(t)&&o(t)==a}var o=n(8),i=n(6),a=\"[object Symbol]\";t.exports=r},function(t,e,n){var r=n(100),o=n(116),i=o(function(t,e,n){r(t,e,n)});t.exports=i},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,\"loaded\",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,\"id\",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,n){\"use strict\";var r={searchDirections:[[0,1],[1,1],[1,0],[1,-1],[0,-1],[-1,-1],[-1,0],[-1,1]],create:function(t,e){function n(t,e,n,r){var o,f,l;for(o=0;o<7;o++){if(f=t.cy+c[t.dir][0],l=t.cx+c[t.dir][1],i=f*s+l,a[i]===e&&(0===u[i]||u[i]===n))return u[i]=n,t.cy=f,t.cx=l,!0;0===u[i]&&(u[i]=r),t.dir=(t.dir+1)%8}return!1}function r(t,e,n){return{dir:n,x:t,y:e,next:null,prev:null}}function o(t,e,o,i,a){var u,c,s,f=null,l={cx:e,cy:t,dir:0};if(n(l,i,o,a)){f=r(e,t,l.dir),u=f,s=l.dir,c=r(l.cx,l.cy,0),c.prev=u,u.next=c,c.next=null,u=c;do l.dir=(l.dir+6)%8,n(l,i,o,a),s!==l.dir?(u.dir=l.dir,c=r(l.cx,l.cy,0),c.prev=u,u.next=c,c.next=null,u=c):(u.dir=s,u.x=l.cx,u.y=l.cy),s=l.dir;while(l.cx!==e||l.cy!==t);f.prev=u.prev,u.prev.next=f}return f}var i,a=t.data,u=e.data,c=this.searchDirections,s=t.size.x;return{trace:function(t,e,r,o){return n(t,e,r,o)},contourTracing:function(t,e,n,r,i){return o(t,e,n,r,i)}}}};e.a=r},function(t,e,n){\"use strict\";function r(){o.a.call(this)}var o=n(1),i=n(3),a={ALPHABETH_STRING:{value:\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%\"},ALPHABET:{value:[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,45,46,32,42,36,47,43,37]},CHARACTER_ENCODINGS:{value:[52,289,97,352,49,304,112,37,292,100,265,73,328,25,280,88,13,268,76,28,259,67,322,19,274,82,7,262,70,22,385,193,448,145,400,208,133,388,196,148,168,162,138,42]},ASTERISK:{value:148},FORMAT:{value:\"code_39\",writeable:!1}};r.prototype=Object.create(o.a.prototype,a),r.prototype.constructor=r,r.prototype._decode=function(){var t,e,n,r,o=this,a=[0,0,0,0,0,0,0,0,0],u=[],c=o._findStart();if(!c)return null;r=o._nextSet(o._row,c.end);do{if(a=o._toCounters(r,a),(n=o._toPattern(a))<0)return null;if((t=o._patternToChar(n))<0)return null;u.push(t),e=r,r+=i.a.sum(a),r=o._nextSet(o._row,r)}while(\"*\"!==t);return u.pop(),u.length&&o._verifyTrailingWhitespace(e,r,a)?{code:u.join(\"\"),start:c.start,end:r,startInfo:c,decodedCodes:u}:null},r.prototype._verifyTrailingWhitespace=function(t,e,n){var r=i.a.sum(n);return 3*(e-t-r)>=r},r.prototype._patternToChar=function(t){var e,n=this;for(e=0;ee&&(r=t[n]);return r},r.prototype._toPattern=function(t){for(var e,n,r=t.length,o=0,i=r,a=0,u=this;i>3;){for(o=u._findNextWidth(t,o),i=0,e=0,n=0;no&&(e|=1<0;n++)if(t[n]>o&&(i--,2*t[n]>=a))return-1;return e}}return-1},r.prototype._findStart=function(){var t,e,n,r=this,o=r._nextSet(r._row),i=o,a=[0,0,0,0,0,0,0,0,0],u=0,c=!1;for(t=o;t0)for(r=0;r0){if(!(t=Y.filter(function(t){return!t.busy})[0]))return;w.attachData(t.imageData)}else w.attachData(S.data);w.grab()&&(t?(t.busy=!0,t.worker.postMessage({cmd:\"process\",imageData:t.imageData},[t.imageData.buffer])):_())}else _()}function y(){var t=null,e=1e3/($.frequency||60);T=!1,function n(r){t=t||r,T||(r>=t&&(t+=e,g()),window.requestAnimFrame(n))}(performance.now())}function m(){Q&&\"LiveStream\"===$.inputStream.type?y():g()}function x(t){var e,n={worker:void 0,imageData:new Uint8Array(R.getWidth()*R.getHeight()),busy:!0};e=C(),n.worker=new Worker(e),n.worker.onmessage=function(r){if(\"initialized\"===r.data.event)return URL.revokeObjectURL(e),n.busy=!1,n.imageData=new Uint8Array(r.data.imageData),t(n);\"processed\"===r.data.event?(n.imageData=new Uint8Array(r.data.imageData),n.busy=!1,v(r.data.result,n.imageData)):r.data.event},n.worker.postMessage({cmd:\"init\",size:{x:R.getWidth(),y:R.getHeight()},imageData:n.imageData,config:b($)},[n.imageData.buffer])}function b(t){return X({},t,{inputStream:X({},t.inputStream,{target:null})})}function E(t){function e(t){self.postMessage({event:\"processed\",imageData:o.data,result:t},[o.data.buffer])}function n(){self.postMessage({event:\"initialized\",imageData:o.data},[o.data.buffer])}if(t){var r=t().default;if(!r)return void self.postMessage({event:\"error\",message:\"Quagga could not be created\"})}var o;self.onmessage=function(t){if(\"init\"===t.data.cmd){var i=t.data.config;i.numOfWorkers=0,o=new r.ImageWrapper({x:t.data.size.x,y:t.data.size.y},new Uint8Array(t.data.imageData)),r.init(i,n,o),r.onProcessed(e)}else\"process\"===t.data.cmd?(o.data=new Uint8Array(t.data.imageData),r.start()):\"setReaders\"===t.data.cmd&&r.setReaders(t.data.readers)}}function C(){var e,n;return void 0!==t&&(n=t),e=new Blob([\"(\"+E.toString()+\")(\"+n+\");\"],{type:\"text/javascript\"}),window.URL.createObjectURL(e)}function O(t){P?P.setReaders(t):Q&&Y.length>0&&Y.forEach(function(e){e.worker.postMessage({cmd:\"setReaders\",readers:t})})}function A(t,e){var n=t-Y.length;if(0===n)return e&&e();if(n<0){return Y.slice(n).forEach(function(t){t.worker.terminate()}),Y=Y.slice(0,n),e&&e()}for(var r=function(n){Y.push(n),Y.length>=t&&e&&e()},o=0;oe},getPoints:function(){return a},getCenter:function(){return u}}},createPoint:function(t,e,n){return{rad:t[n],point:t,id:e}}}},function(t,e,n){\"use strict\";e.a=function(){function t(t){return o[t]||(o[t]={subscribers:[]}),o[t]}function e(){o={}}function n(t,e){t.async?setTimeout(function(){t.callback(e)},4):t.callback(e)}function r(e,n,r){var o;if(\"function\"==typeof n)o={callback:n,async:r};else if(o=n,!o.callback)throw\"Callback was not specified on options\";t(e).subscribers.push(o)}var o={};return{subscribe:function(t,e,n){return r(t,e,n)},publish:function(e,r){var o=t(e),i=o.subscribers;i.filter(function(t){return!!t.once}).forEach(function(t){n(t,r)}),o.subscribers=i.filter(function(t){return!t.once}),o.subscribers.forEach(function(t){n(t,r)})},once:function(t,e,n){r(t,{callback:e,async:n,once:!0})},unsubscribe:function(n,r){var o;n?(o=t(n),o.subscribers=o&&r?o.subscribers.filter(function(t){return t.callback!==r}):[]):e()}}}()},function(t,e,n){\"use strict\";function r(){return navigator.mediaDevices&&\"function\"==typeof navigator.mediaDevices.enumerateDevices?navigator.mediaDevices.enumerateDevices():Promise.reject(new Error(\"enumerateDevices is not defined\"))}function o(t){return navigator.mediaDevices&&\"function\"==typeof navigator.mediaDevices.getUserMedia?navigator.mediaDevices.getUserMedia(t):Promise.reject(new Error(\"getUserMedia is not defined\"))}e.b=r,e.a=o},function(t,e,n){\"use strict\";function r(t,e,n){n||(n={data:null,size:e}),this.data=n.data,this.originalSize=n.size,this.I=n,this.from=t,this.size=e}r.prototype.show=function(t,e){var n,r,o,i,a,u,c;for(e||(e=1),n=t.getContext(\"2d\"),t.width=this.size.x,t.height=this.size.y,r=n.getImageData(0,0,t.width,t.height),o=r.data,i=0,a=0;a>>16&65535,r=65535&t,o=e>>>16&65535,i=65535&e;return r*i+(n*i+r*o<<16>>>0)|0},\"function\"!=typeof Object.assign&&(Object.assign=function(t){\"use strict\";if(null===t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var e=Object(t),n=1;n1&&(!e.inImageWithBorder(t[0],0)||!e.inImageWithBorder(t[1],0));)r-=Math.ceil(r/2),o(-r);return t}function u(t){return[{x:(t[1][0]-t[0][0])/2+t[0][0],y:(t[1][1]-t[0][1])/2+t[0][1]},{x:(t[3][0]-t[2][0])/2+t[2][0],y:(t[3][1]-t[2][1])/2+t[2][1]}]}function c(t){var n,o=null,i=r.a.getBarcodeLine(e,t[0],t[1]);for(r.a.toBinaryLine(i),n=0;nE?l:E,g.push(l)}var o,i,a,u,c,s,f,l,d=0|e.x,h=0|e.y,p=0|n.x,v=0|n.y,_=Math.abs(v-h)>Math.abs(p-d),g=[],y=t.data,m=t.size.x,x=0,b=255,E=0;for(_&&(s=d,d=h,h=s,s=p,p=v,v=s),d>p&&(s=d,d=p,p=s,s=h,h=v,v=s),o=p-d,i=Math.abs(v-h),a=o/2|0,c=h,u=hl?o.DIR.UP:o.DIR.DOWN,d.push({pos:0,val:f[0]}),a=0;ah&&f[a+1]>.5*l?o.DIR.UP:r,r!==i&&(d.push({pos:a,val:f[a]}),r=i);for(d.push({pos:f.length,val:f[f.length-1]}),u=d[0].pos;ul?0:1;for(a=1;ad[a].val?d[a].val+(d[a+1].val-d[a].val)/3*2|0:d[a+1].val+(d[a].val-d[a+1].val)/3|0,u=d[a].pos;uh?0:1;return{line:f,threshold:h}},r.debug={printFrequency:function(t,e){var n,r=e.getContext(\"2d\");for(e.width=t.length,e.height=256,r.beginPath(),r.strokeStyle=\"blue\",n=0;n0?t.videoWidth>10&&t.videoHeight>10?e():window.setTimeout(r,500):n(\"Unable to play video stream. Is webcam working?\"),o--}var o=10;r()})}function o(t,e){return n.i(d.a)(e).then(function(e){return new Promise(function(n){s=e,t.setAttribute(\"autoplay\",!0),t.setAttribute(\"muted\",!0),t.setAttribute(\"playsinline\",!0),t.srcObject=e,t.addEventListener(\"loadedmetadata\",function(){t.play(),n()})})}).then(r.bind(null,t))}function i(t){var e=l()(t,[\"width\",\"height\",\"facingMode\",\"aspectRatio\",\"deviceId\"]);return void 0!==t.minAspectRatio&&t.minAspectRatio>0&&(e.aspectRatio=t.minAspectRatio,console.log(\"WARNING: Constraint 'minAspectRatio' is deprecated; Use 'aspectRatio' instead\")),void 0!==t.facing&&(e.facingMode=t.facing,console.log(\"WARNING: Constraint 'facing' is deprecated. Use 'facingMode' instead'\")),e}function a(t){var e={audio:!1,video:i(t)};return e.video.deviceId&&e.video.facingMode&&delete e.video.facingMode,Promise.resolve(e)}function u(){return n.i(d.b)().then(function(t){return t.filter(function(t){return\"videoinput\"===t.kind})})}function c(){if(s){var t=s.getVideoTracks();if(t&&t.length)return t[0]}}var s,f=n(162),l=n.n(f),d=n(52);e.a={request:function(t,e){return a(e).then(o.bind(null,t))},release:function(){var t=s&&s.getVideoTracks();t&&t.length&&t[0].stop(),s=null},enumerateVideoDevices:u,getActiveStreamLabel:function(){var t=c();return t?t.label:\"\"},getActiveTrack:c}},function(t,e,n){\"use strict\";function r(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:d;return/^blob\\:/i.test(t)?i(t).then(o).then(function(t){return a(t,e)}):Promise.resolve(null)}function o(t){return new Promise(function(e){var n=new FileReader;n.onload=function(t){return e(t.target.result)},n.readAsArrayBuffer(t)})}function i(t){return new Promise(function(e,n){var r=new XMLHttpRequest;r.open(\"GET\",t,!0),r.responseType=\"blob\",r.onreadystatechange=function(){r.readyState!==XMLHttpRequest.DONE||200!==r.status&&0!==r.status||e(this.response)},r.onerror=n,r.send()})}function a(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:d,n=new DataView(t),r=t.byteLength,o=e.reduce(function(t,e){var n=Object.keys(l).filter(function(t){return l[t]===e})[0];return n&&(t[n]=e),t},{}),i=2;if(255!==n.getUint8(0)||216!==n.getUint8(1))return!1;for(;i1?i.size:Math.floor(e/o*i.size):e,r=i.size?e/o>1?Math.floor(o/e*i.size):i.size:o,s.x=n,s.y=r}var n,r,o={},i=null,a=[\"canrecord\",\"ended\"],u={},c={x:0,y:0},s={x:0,y:0};return o.getRealWidth=function(){return t.videoWidth},o.getRealHeight=function(){return t.videoHeight},o.getWidth=function(){return n},o.getHeight=function(){return r},o.setWidth=function(t){n=t},o.setHeight=function(t){r=t},o.setInputStream=function(e){i=e,t.src=void 0!==e.src?e.src:\"\"},o.ended=function(){return t.ended},o.getConfig=function(){return i},o.setAttribute=function(e,n){t.setAttribute(e,n)},o.pause=function(){t.pause()},o.play=function(){t.play()},o.setCurrentTime=function(e){\"LiveStream\"!==i.type&&(t.currentTime=e)},o.addEventListener=function(e,n,r){a.indexOf(e)!==-1?(u[e]||(u[e]=[]),u[e].push(n)):t.addEventListener(e,n,r)},o.clearEventHandlers=function(){a.forEach(function(e){var n=u[e];n&&n.length>0&&n.forEach(function(n){t.removeEventListener(e,n)})})},o.trigger=function(t,n){var r,i=u[t];if(\"canrecord\"===t&&e(),i&&i.length>0)for(r=0;r1?a.size:Math.floor(u/c*a.size):u,o=a.size?u/c>1?Math.floor(c/u*a.size):a.size:c,x.x=n,x.y=o,l=!0,s=0,setTimeout(function(){e(\"canrecord\",[])},0)},p,h,a.sequence)}function e(t,e){var n,r=y[t];if(r&&r.length>0)for(n=0;nf&&(f=o.box[r][0]),o.box[r][1]l&&(l=o.box[r][1]);for(a=[[c,s],[f,s],[f,l],[c,l]],u=p.halfSample?2:1,i=M.invert(i,i),r=0;r<4;r++)I.transformMat2(a[r],a[r],i);for(r=0;r<4;r++)I.scale(a[r],a[r],u);return a}function a(){n.i(w.f)(v,E),E.zeroBorder()}function u(){var t,e,n,r,o,i,a,u=[];for(t=0;t0&&r[x.data[n]-1]++;return r=r.map(function(t,e){return{val:t,label:e+1}}),r.sort(function(t,e){return e.val-t.val}),r.filter(function(t){return t.val>=5})}function s(t,e){var n,r,o,a,u=[],c=[];for(n=0;n=2){for(o=0;ol&&c.push(t[o]);if(c.length>=2){for(a=f(c),i=0,o=0;o1&&a.length>=c.length/4*3&&a.length>t.length/4&&(i/=a.length,u={index:e[1]*z.x+e[0],pos:{x:n,y:r},box:[I.clone([n,r]),I.clone([n+g.size.x,r]),I.clone([n+g.size.x,r+g.size.y]),I.clone([n,r+g.size.y])],moments:a,rad:i,vec:I.clone([Math.cos(i),Math.sin(i)])},s.push(u))}}return s}function h(t){function e(){var t;for(t=0;ta&&n(u):x.data[u]=Number.MAX_VALUE}var r,o,i=0,a=.95,u=0;for(T.a.init(m.data,0),T.a.init(x.data,0),T.a.init(b.data,null),r=0;r0) {length=length - 1|0;images[outImagePtr+length|0]=(images[aImagePtr+length|0]|0) - (images[bImagePtr+length|0]|0)|0;}}function bitwiseOr(aImagePtr, bImagePtr, outImagePtr) {aImagePtr=aImagePtr|0;bImagePtr=bImagePtr|0;outImagePtr=outImagePtr|0;var length=0;length=imul(size, size)|0;while ((length|0)>0) {length=length - 1|0;images[outImagePtr+length|0]=images[aImagePtr+length|0]|0|(images[bImagePtr+length|0]|0)|0;}}function countNonZero(imagePtr) {imagePtr=imagePtr|0;var sum=0,length=0;length=imul(size, size)|0;while ((length|0)>0) {length=length - 1|0;sum=(sum|0)+(images[imagePtr+length|0]|0)|0;}return sum|0;}function init(imagePtr, value) {imagePtr=imagePtr|0;value=value|0;var length=0;length=imul(size, size)|0;while ((length|0)>0) {length=length - 1|0;images[imagePtr+length|0]=value;}}function dilate(inImagePtr, outImagePtr) {inImagePtr=inImagePtr|0;outImagePtr=outImagePtr|0;var v=0,u=0,sum=0,yStart1=0,yStart2=0,xStart1=0,xStart2=0,offset=0;for (v=1; (v|0)<(size - 1|0); v=v+1|0) {offset=offset+size|0;for (u=1; (u|0)<(size - 1|0); u=u+1|0) {yStart1=offset - size|0;yStart2=offset+size|0;xStart1=u - 1|0;xStart2=u+1|0;sum=(images[inImagePtr+yStart1+xStart1|0]|0)+(images[inImagePtr+yStart1+xStart2|0]|0)+(images[inImagePtr+offset+u|0]|0)+(images[inImagePtr+yStart2+xStart1|0]|0)+(images[inImagePtr+yStart2+xStart2|0]|0)|0;if ((sum|0)>(0|0)) {images[outImagePtr+offset+u|0]=1;} else {images[outImagePtr+offset+u|0]=0;}}}return;}function memcpy(srcImagePtr, dstImagePtr) {srcImagePtr=srcImagePtr|0;dstImagePtr=dstImagePtr|0;var length=0;length=imul(size, size)|0;while ((length|0)>0) {length=length - 1|0;images[dstImagePtr+length|0]=images[srcImagePtr+length|0]|0;}}function zeroBorder(imagePtr) {imagePtr=imagePtr|0;var x=0,y=0;for (x=0; (x|0)<(size - 1|0); x=x+1|0) {images[imagePtr+x|0]=0;images[imagePtr+y|0]=0;y=y+size - 1|0;images[imagePtr+y|0]=0;y=y+1|0;}for (x=0; (x|0)<(size|0); x=x+1|0) {images[imagePtr+y|0]=0;y=y+1|0;}}function skeletonize() {var subImagePtr=0,erodedImagePtr=0,tempImagePtr=0,skelImagePtr=0,sum=0,done=0;erodedImagePtr=imul(size, size)|0;tempImagePtr=erodedImagePtr+erodedImagePtr|0;skelImagePtr=tempImagePtr+erodedImagePtr|0;init(skelImagePtr, 0);zeroBorder(subImagePtr);do {erode(subImagePtr, erodedImagePtr);dilate(erodedImagePtr, tempImagePtr);subtract(subImagePtr, tempImagePtr, tempImagePtr);bitwiseOr(skelImagePtr, tempImagePtr, skelImagePtr);memcpy(erodedImagePtr, subImagePtr);sum=countNonZero(subImagePtr)|0;done=(sum|0) == 0|0;} while (!done);}return {skeletonize: skeletonize};} __webpack_exports__[\"a\"]=Skeletonizer; },function(t,e,n){\"use strict\";function r(t){o.a.call(this,t),this.barSpaceRatio=[1,1]}var o=n(1),i=1,a=3,u={START_PATTERN:{value:[a,i,a,i,i,i]},STOP_PATTERN:{value:[a,i,i,i,a]},CODE_PATTERN:{value:[[i,i,a,a,i],[a,i,i,i,a],[i,a,i,i,a],[a,a,i,i,i],[i,i,a,i,a],[a,i,a,i,i],[i,a,a,i,i],[i,i,i,a,a],[a,i,i,a,i],[i,a,i,a,i]]},SINGLE_CODE_ERROR:{value:.78,writable:!0},AVG_CODE_ERROR:{value:.3,writable:!0},FORMAT:{value:\"2of5\"}},c=u.START_PATTERN.value.reduce(function(t,e){return t+e},0);r.prototype=Object.create(o.a.prototype,u),r.prototype.constructor=r,r.prototype._findPattern=function(t,e,n,r){var o,i,a,u,c=[],s=this,f=0,l={error:Number.MAX_VALUE,code:-1,start:0,end:0},d=s.AVG_CODE_ERROR;for(n=n||!1,r=r||!1,e||(e=s._nextSet(s._row)),o=0;o=0&&n._matchRange(t,e.start,0))return e;r=e.end,e=null}},r.prototype._verifyTrailingWhitespace=function(t){var e,n=this;return e=t.end+(t.end-t.start)/2,e1&&i._isStartEnd(n))break}while(ri._counters.length?i._counters.length:r,o=t.start+i._sumCounters(t.startCounter,r-8),{code:a.join(\"\"),start:t.start,end:o,startInfo:t,decodedCodes:a}):null},r.prototype._verifyWhitespace=function(t,e){return(t-1<=0||this._counters[t-1]>=this._calculatePatternLength(t)/2)&&(e+8>=this._counters.length||this._counters[e+7]>=this._calculatePatternLength(e)/2)},r.prototype._calculatePatternLength=function(t){var e,n=0;for(e=t;e=0;i--)n=2==(1&i)?c.bar:c.space,r=1==(1&a)?n.wide:n.narrow,r.size+=u._counters[s+i],r.counts++,a>>=1;s+=8}return[\"space\",\"bar\"].forEach(function(t){var e=c[t];e.wide.min=Math.floor((e.narrow.size/e.narrow.counts+e.wide.size/e.wide.counts)/2),e.narrow.max=Math.ceil(e.wide.min),e.wide.max=Math.ceil((e.wide.size*u.MAX_ACCEPTABLE+u.PADDING)/e.wide.counts)}),c},r.prototype._charToPattern=function(t){var e,n=this,r=t.charCodeAt(0);for(e=0;e=0;r--){if(o=0==(1&r)?s.bar:s.space,i=1==(1&u)?o.wide:o.narrow,(a=c._counters[f+r])i.max)return!1;u>>=1}f+=8}return!0},r.prototype._patternToChar=function(t){var e,n=this;for(e=0;ei&&(i=r),rthis._counters.length)return-1;for(e=this._computeAlternatingThreshold(t,a),n=this._computeAlternatingThreshold(t+1,a),r=0;ro&&(c|=u),u>>=1;return c},r.prototype._isStartEnd=function(t){var e;for(e=0;eu.AVG_CODE_ERROR?null:(u.CODE_PATTERN[l.code]&&(l.correction.bar=o(u.CODE_PATTERN[l.code],a,this.MODULE_INDICES.bar),l.correction.space=o(u.CODE_PATTERN[l.code],a,this.MODULE_INDICES.space)),l)}f++,a[f]=1,s=!s}return null},r.prototype._correct=function(t,e){this._correctBars(t,e.bar,this.MODULE_INDICES.bar),this._correctBars(t,e.space,this.MODULE_INDICES.space)},r.prototype._findStart=function(){var t,e,n,r,i,a=[0,0,0,0,0,0],u=this,c=u._nextSet(u._row),s=!1,f=0,l={error:Number.MAX_VALUE,code:-1,start:0,end:0,correction:{bar:1,space:1}};for(t=c;t4)return-1;if(0==(1&i))for(var u=0;u=\"a\"&&o<=\"d\"){if(r>e-2)return null;var i=t[++r],a=i.charCodeAt(0),u=void 0;switch(o){case\"a\":if(!(i>=\"A\"&&i<=\"Z\"))return null;u=String.fromCharCode(a-64);break;case\"b\":if(i>=\"A\"&&i<=\"E\")u=String.fromCharCode(a-38);else if(i>=\"F\"&&i<=\"J\")u=String.fromCharCode(a-11);else if(i>=\"K\"&&i<=\"O\")u=String.fromCharCode(a+16);else if(i>=\"P\"&&i<=\"S\")u=String.fromCharCode(a+43);else{if(!(i>=\"T\"&&i<=\"Z\"))return null;u=String.fromCharCode(127)}break;case\"c\":if(i>=\"A\"&&i<=\"O\")u=String.fromCharCode(a-32);else{if(\"Z\"!==i)return null;u=\":\"}break;case\"d\":if(!(i>=\"A\"&&i<=\"Z\"))return null;u=String.fromCharCode(a+32)}n.push(u)}else n.push(o)}return n},r.prototype._verifyChecksums=function(t){return this._matchCheckChar(t,t.length-2,20)&&this._matchCheckChar(t,t.length-1,15)},r.prototype._matchCheckChar=function(t,e,n){var r=this,o=t.slice(0,e),i=o.length,a=o.reduce(function(t,e,o){return t+((o*-1+(i-1))%n+1)*r.ALPHABET.indexOf(e.charCodeAt(0))},0);return this.ALPHABET[a%47]===t[e].charCodeAt(0)},e.a=r},function(t,e,n){\"use strict\";function r(){o.a.call(this)}var o=n(4),i={FORMAT:{value:\"ean_2\",writeable:!1}};r.prototype=Object.create(o.a.prototype,i),r.prototype.constructor=r,r.prototype.decode=function(t,e){this._row=t;var n,r=0,o=0,i=e,a=this._row.length,u=[],c=[];for(o=0;o<2&&i=this.CODE_G_START&&(r|=1<<1-o),1!=o&&(i=this._nextSet(this._row,n.end),i=this._nextUnset(this._row,i))}return 2!=u.length||parseInt(u.join(\"\"))%4!==r?null:{code:u.join(\"\"),decodedCodes:c,end:n.end}},e.a=r},function(t,e,n){\"use strict\";function r(){a.a.call(this)}function o(t){var e;for(e=0;e<10;e++)if(t===c[e])return e;return null}function i(t){var e,n=t.length,r=0;for(e=n-2;e>=0;e-=2)r+=t[e];for(r*=3,e=n-1;e>=0;e-=2)r+=t[e];return(r*=3)%10}var a=n(4),u={FORMAT:{value:\"ean_5\",writeable:!1}},c=[24,20,18,17,12,6,3,10,9,5];r.prototype=Object.create(a.a.prototype,u),r.prototype.constructor=r,r.prototype.decode=function(t,e){this._row=t;var n,r=0,a=0,u=e,c=this._row.length,s=[],f=[];for(a=0;a<5&&u=this.CODE_G_START&&(r|=1<<4-a),4!=a&&(u=this._nextSet(this._row,n.end),u=this._nextUnset(this._row,u))}return 5!=s.length?null:i(s)!==o(r)?null:{code:s.join(\"\"),decodedCodes:f,end:n.end}},e.a=r},function(t,e,n){\"use strict\";function r(t,e){o.a.call(this,t,e)}var o=n(4),i={FORMAT:{value:\"ean_8\",writeable:!1}};r.prototype=Object.create(o.a.prototype,i),r.prototype.constructor=r,r.prototype._decodePayload=function(t,e,n){var r,o=this;for(r=0;r<4;r++){if(!(t=o._decodeCode(t.end,o.CODE_G_START)))return null;e.push(t.code),n.push(t)}if(null===(t=o._findPattern(o.MIDDLE_PATTERN,t.end,!0,!1)))return null;for(n.push(t),r=0;r<4;r++){if(!(t=o._decodeCode(t.end,o.CODE_G_START)))return null;n.push(t),e.push(t.code)}return t},e.a=r},function(t,e,n){\"use strict\";function r(t){t=a()(o(),t),u.a.call(this,t),this.barSpaceRatio=[1,1],t.normalizeBarSpaceWidth&&(this.SINGLE_CODE_ERROR=.38,this.AVG_CODE_ERROR=.09)}function o(){var t={};return Object.keys(r.CONFIG_KEYS).forEach(function(e){t[e]=r.CONFIG_KEYS[e].default}),t}var i=n(28),a=n.n(i),u=n(1),c=1,s=3,f={START_PATTERN:{value:[c,c,c,c]},STOP_PATTERN:{value:[c,c,s]},CODE_PATTERN:{value:[[c,c,s,s,c],[s,c,c,c,s],[c,s,c,c,s],[s,s,c,c,c],[c,c,s,c,s],[s,c,s,c,c],[c,s,s,c,c],[c,c,c,s,s],[s,c,c,s,c],[c,s,c,s,c]]},SINGLE_CODE_ERROR:{value:.78,writable:!0},AVG_CODE_ERROR:{value:.38,writable:!0},MAX_CORRECTION_FACTOR:{value:5},FORMAT:{value:\"i2of5\"}};r.prototype=Object.create(u.a.prototype,f),r.prototype.constructor=r,r.prototype._matchPattern=function(t,e){if(this.config.normalizeBarSpaceWidth){var n,r=[0,0],o=[0,0],i=[0,0],a=this.MAX_CORRECTION_FACTOR,c=1/a;for(n=0;n=0&&n._matchRange(t,e.start,0))return e;r=e.end,e=null}},r.prototype._verifyTrailingWhitespace=function(t){var e,n=this;return e=t.end+(t.end-t.start)/2,e=o.CODE_G_START&&(t.code=t.code-o.CODE_G_START,i|=1<<5-r),e.push(t.code),n.push(t)}return o._determineParity(i,e)?t:null},r.prototype._determineParity=function(t,e){var n,r;for(r=0;r0&&n(f)?e>1?r(f,e-1,n,a,u):o(u,f):a||(u[u.length]=f)}return u}var o=n(90),i=n(128);t.exports=r},function(t,e,n){var r=n(117),o=r();t.exports=o},function(t,e,n){function r(t,e){e=o(e,t);for(var n=0,r=e.length;null!=t&&n1?n[o-1]:void 0,u=o>2?n[2]:void 0;for(a=t.length>3&&\"function\"==typeof a?(o--,a):void 0,u&&i(n[0],n[1],u)&&(a=o<3?void 0:a,o=1),e=Object(e);++r-1}var o=n(12);t.exports=r},function(t,e,n){function r(t,e){var n=this.__data__,r=o(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}var o=n(12);t.exports=r},function(t,e,n){function r(){this.size=0,this.__data__={hash:new o,map:new(a||i),string:new o}}var o=n(84),i=n(10),a=n(33);t.exports=r},function(t,e,n){function r(t){var e=o(this,t).delete(t);return this.size-=e?1:0,e}var o=n(14);t.exports=r},function(t,e,n){function r(t){return o(this,t).get(t)}var o=n(14);t.exports=r},function(t,e,n){function r(t){return o(this,t).has(t)}var o=n(14);t.exports=r},function(t,e,n){function r(t,e){var n=o(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this}var o=n(14);t.exports=r},function(t,e,n){function r(t){var e=o(t,function(t){return n.size===i&&n.clear(),t}),n=e.cache;return e}var o=n(161),i=500;t.exports=r},function(t,e){function n(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}t.exports=n},function(t,e,n){(function(t){var r=n(38),o=\"object\"==typeof e&&e&&!e.nodeType&&e,i=o&&\"object\"==typeof t&&t&&!t.nodeType&&t,a=i&&i.exports===o,u=a&&r.process,c=function(){try{return u&&u.binding&&u.binding(\"util\")}catch(t){}}();t.exports=c}).call(e,n(29)(t))},function(t,e){function n(t){return o.call(t)}var r=Object.prototype,o=r.toString;t.exports=n},function(t,e){function n(t,e){return function(n){return t(e(n))}}t.exports=n},function(t,e){function n(t){var e=0,n=0;return function(){var a=i(),u=o-(a-n);if(n=a,u>0){if(++e>=r)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var r=800,o=16,i=Date.now;t.exports=n},function(t,e,n){function r(){this.__data__=new o,this.size=0}var o=n(10);t.exports=r},function(t,e){function n(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}t.exports=n},function(t,e){function n(t){return this.__data__.get(t)}t.exports=n},function(t,e){function n(t){return this.__data__.has(t)}t.exports=n},function(t,e,n){function r(t,e){var n=this.__data__;if(n instanceof o){var r=n.__data__;if(!i||r.lengthDecodes ITF barcodes.

\n *\n * @author Tjieco\n */\nvar ITFReader = /** @class */ (function (_super) {\n __extends(ITFReader, _super);\n function ITFReader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // Stores the actual narrow line width of the image being decoded.\n _this.narrowLineWidth = -1;\n return _this;\n }\n // See ITFWriter.PATTERNS\n /*\n\n /!**\n * Patterns of Wide / Narrow lines to indicate each digit\n *!/\n */\n ITFReader.prototype.decodeRow = function (rowNumber, row, hints) {\n // Find out where the Middle section (payload) starts & ends\n var startRange = this.decodeStart(row);\n var endRange = this.decodeEnd(row);\n var result = new StringBuilder_1.default();\n ITFReader.decodeMiddle(row, startRange[1], endRange[0], result);\n var resultString = result.toString();\n var allowedLengths = null;\n if (hints != null) {\n allowedLengths = hints.get(DecodeHintType_1.default.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 var length = resultString.length;\n var lengthOK = false;\n var maxAllowedLength = 0;\n for (var _i = 0, allowedLengths_1 = allowedLengths; _i < allowedLengths_1.length; _i++) {\n var value = allowedLengths_1[_i];\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_1.default();\n }\n var points = [new ResultPoint_1.default(startRange[1], rowNumber), new ResultPoint_1.default(endRange[0], rowNumber)];\n var resultReturn = new Result_1.default(resultString, null, // no natural byte representation for these barcodes\n 0, points, BarcodeFormat_1.default.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 ITFReader.decodeMiddle = function (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 var counterDigitPair = new Array(10); // 10\n var counterBlack = new Array(5); // 5\n var counterWhite = new Array(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_1.default.recordPattern(row, payloadStart, counterDigitPair);\n // Split them into each array\n for (var k = 0; k < 5; k++) {\n var twoK = 2 * k;\n counterBlack[k] = counterDigitPair[twoK];\n counterWhite[k] = counterDigitPair[twoK + 1];\n }\n var 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 ITFReader.prototype.decodeStart = function (row) {\n var endStart = ITFReader.skipWhiteSpace(row);\n var 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 ITFReader.prototype.validateQuietZone = function (row, startPattern) {\n var 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 (var 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_1.default();\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 ITFReader.skipWhiteSpace = function (row) {\n var width = row.getSize();\n var endStart = row.getNextSet(0);\n if (endStart === width) {\n throw new NotFoundException_1.default();\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 ITFReader.prototype.decodeEnd = function (row) {\n // For convenience, reverse the row and then\n // search from 'the start' for the end block\n row.reverse();\n try {\n var endStart = ITFReader.skipWhiteSpace(row);\n var endPattern = void 0;\n try {\n endPattern = ITFReader.findGuardPattern(row, endStart, ITFReader.END_PATTERN_REVERSED[0]);\n }\n catch (NotFoundException) {\n endPattern = ITFReader.findGuardPattern(row, endStart, ITFReader.END_PATTERN_REVERSED[1]);\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 var 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 ITFReader.findGuardPattern = function (row, rowOffset, pattern) {\n var patternLength = pattern.length;\n var counters = new Array(patternLength);\n var width = row.getSize();\n var isWhite = false;\n var counterPosition = 0;\n var patternStart = rowOffset;\n counters.fill(0);\n for (var 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_1.default.patternMatchVariance(counters, pattern, ITFReader.MAX_INDIVIDUAL_VARIANCE) < ITFReader.MAX_AVG_VARIANCE) {\n return [patternStart, x];\n }\n patternStart += counters[0] + counters[1];\n System_1.default.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_1.default();\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 ITFReader.decodeDigit = function (counters) {\n var bestVariance = ITFReader.MAX_AVG_VARIANCE; // worst variance we'll accept\n var bestMatch = -1;\n var max = ITFReader.PATTERNS.length;\n for (var i = 0; i < max; i++) {\n var pattern = ITFReader.PATTERNS[i];\n var variance = OneDReader_1.default.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_1.default();\n }\n };\n ITFReader.W = 3; // Pixel width of a 3x wide line\n ITFReader.w = 2; // Pixel width of a 2x wide line\n ITFReader.N = 1; // Pixed width of a narrow line\n ITFReader.PATTERNS = [\n [1, 1, 2, 2, 1],\n [2, 1, 1, 1, 2],\n [1, 2, 1, 1, 2],\n [2, 2, 1, 1, 1],\n [1, 1, 2, 1, 2],\n [2, 1, 2, 1, 1],\n [1, 2, 2, 1, 1],\n [1, 1, 1, 2, 2],\n [2, 1, 1, 2, 1],\n [1, 2, 1, 2, 1],\n [1, 1, 3, 3, 1],\n [3, 1, 1, 1, 3],\n [1, 3, 1, 1, 3],\n [3, 3, 1, 1, 1],\n [1, 1, 3, 1, 3],\n [3, 1, 3, 1, 1],\n [1, 3, 3, 1, 1],\n [1, 1, 1, 3, 3],\n [3, 1, 1, 3, 1],\n [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 = [1, 1, 1, 1];\n ITFReader.END_PATTERN_REVERSED = [\n [1, 1, 2],\n [1, 1, 3] // 3x\n ];\n return ITFReader;\n}(OneDReader_1.default));\nexports.default = ITFReader;\n//# sourceMappingURL=ITFReader.js.map","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing {*/\nvar MathUtils_1 = require(\"./common/detector/MathUtils\");\nvar Float_1 = require(\"./util/Float\");\n/**\n *

Encapsulates 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 */\nvar ResultPoint = /** @class */ (function () {\n function ResultPoint(x /*float*/, y /*float*/) {\n this.x = x;\n this.y = y;\n }\n ResultPoint.prototype.getX = function () {\n return this.x;\n };\n ResultPoint.prototype.getY = function () {\n return this.y;\n };\n /*@Override*/\n ResultPoint.prototype.equals = function (other) {\n if (other instanceof ResultPoint) {\n var otherPoint = other;\n return this.x === otherPoint.x && this.y === otherPoint.y;\n }\n return false;\n };\n /*@Override*/\n ResultPoint.prototype.hashCode = function () {\n return 31 * Float_1.default.floatToIntBits(this.x) + Float_1.default.floatToIntBits(this.y);\n };\n /*@Override*/\n ResultPoint.prototype.toString = function () {\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 ResultPoint.orderBestPatterns = function (patterns) {\n // Find distances between pattern centers\n var zeroOneDistance = this.distance(patterns[0], patterns[1]);\n var oneTwoDistance = this.distance(patterns[1], patterns[2]);\n var zeroTwoDistance = this.distance(patterns[0], patterns[2]);\n var pointA;\n var pointB;\n var 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 var 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 ResultPoint.distance = function (pattern1, pattern2) {\n return MathUtils_1.default.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 ResultPoint.crossProductZ = function (pointA, pointB, pointC) {\n var bX = pointB.x;\n var bY = pointB.y;\n return ((pointC.x - bX) * (pointA.y - bY)) - ((pointC.y - bY) * (pointA.x - bX));\n };\n return ResultPoint;\n}());\nexports.default = ResultPoint;\n//# sourceMappingURL=ResultPoint.js.map","/*!\n * vue-router v3.3.4\n * (c) 2020 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isRouterError (err, errorType) {\n return isError(err) && err._isRouter && (errorType == null || err.type === errorType)\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cachce\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nvar decode = decodeURIComponent;\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n parsedQuery[key] = extraQuery[key];\n }\n return parsedQuery\n}\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0\n ? decode(parts.join('='))\n : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj ? Object.keys(obj).map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n }).filter(function (x) { return x.length > 0; }).join('&') : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return (\n a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query)\n )\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params)\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key) {\n var aVal = a[key];\n var bVal = b[key];\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget);\n classes[activeClass] = this.exact\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\"RouterLink with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n instances: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = val;\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n window.scrollTo(position.x, position.y);\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\nvar NavigationFailureType = {\n redirected: 1,\n aborted: 2,\n cancelled: 3,\n duplicated: 4\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n )\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1 = this;\n\n var route = this.router.match(location, this.current);\n this.confirmTransition(\n route,\n function () {\n var prev = this$1.current;\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n this$1.ready = true;\n // Initial redirection should still trigger the onReady onSuccess\n // https://github.com/vuejs/vue-router/issues/3225\n if (!isRouterError(err, NavigationFailureType.redirected)) {\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isRouterError(err) && isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n warn(false, 'uncaught error during route navigation:');\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n this.pending = route;\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n var postEnterCbs = [];\n var isValid = function () { return this$1.current === route; };\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n postEnterCbs.forEach(function (cb) {\n cb();\n });\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardownListeners = function teardownListeners () {\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated,\n cbs,\n isValid\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key, cbs, isValid)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key,\n cbs,\n isValid\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n cbs.push(function () {\n // #750\n // if a router-view is wrapped with an out-in transition,\n // the instance may not have been registered at this time.\n // we will need to poll for registration until current route\n // is no longer valid.\n poll(cb, match.instances, key, isValid);\n });\n }\n next(cb);\n })\n }\n}\n\nfunction poll (\n cb, // somehow flow cannot infer this is a function\n instances,\n key,\n isValid\n) {\n if (\n instances[key] &&\n !instances[key]._isBeingDestroyed // do not reuse being destroyed instance\n ) {\n cb(instances[key]);\n } else if (isValid()) {\n setTimeout(function () {\n poll(cb, instances, key, isValid);\n }, 16);\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === this$1._startLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = decodeURI(window.location.pathname);\n if (base && path.toLowerCase().indexOf(base.toLowerCase()) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n // decode the hash but not the search or hash\n // as search(query) is already decoded\n // https://github.com/vuejs/vue-router/issues/2708\n var searchIndex = href.indexOf('?');\n if (searchIndex < 0) {\n var hashIndex = href.indexOf('#');\n if (hashIndex > -1) {\n href = decodeURI(href.slice(0, hashIndex)) + href.slice(hashIndex);\n } else { href = decodeURI(href); }\n } else {\n href = decodeURI(href.slice(0, searchIndex)) + href.slice(searchIndex);\n }\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n },\n function (err) {\n if (isRouterError(err, NavigationFailureType.duplicated)) {\n this$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback = mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (\n raw,\n current,\n redirectedFrom\n) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' && assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1.apps.indexOf(app);\n if (index > -1) { this$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n\n if (!this$1.app) {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this$1.history.teardownListeners();\n }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var setupListeners = function () {\n history.setupListeners();\n };\n history.transitionTo(history.getCurrentLocation(), setupListeners, setupListeners);\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply([], route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n }))\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(\n to,\n current,\n append,\n this\n );\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.3.4';\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.detector {*/\nvar DecodeHintType_1 = require(\"../../DecodeHintType\");\nvar ResultPoint_1 = require(\"../../ResultPoint\");\nvar DetectorResult_1 = require(\"../../common/DetectorResult\");\nvar GridSamplerInstance_1 = require(\"../../common/GridSamplerInstance\");\nvar PerspectiveTransform_1 = require(\"../../common/PerspectiveTransform\");\nvar MathUtils_1 = require(\"../../common/detector/MathUtils\");\nvar Version_1 = require(\"../decoder/Version\");\nvar FinderPatternFinder_1 = require(\"./FinderPatternFinder\");\nvar AlignmentPatternFinder_1 = require(\"./AlignmentPatternFinder\");\nvar NotFoundException_1 = require(\"../../NotFoundException\");\n/*import java.util.Map;*/\n/**\n *

Encapsulates 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 */\nvar Detector = /** @class */ (function () {\n function Detector(image) {\n this.image = image;\n }\n Detector.prototype.getImage = function () {\n return this.image;\n };\n Detector.prototype.getResultPointCallback = function () {\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 Detector.prototype.detect = function (hints) {\n this.resultPointCallback = (hints === null || hints === undefined) ? null :\n /*(ResultPointCallback) */ hints.get(DecodeHintType_1.default.NEED_RESULT_POINT_CALLBACK);\n var finder = new FinderPatternFinder_1.default(this.image, this.resultPointCallback);\n var info = finder.find(hints);\n return this.processFinderPatternInfo(info);\n };\n Detector.prototype.processFinderPatternInfo = function (info) {\n var topLeft = info.getTopLeft();\n var topRight = info.getTopRight();\n var bottomLeft = info.getBottomLeft();\n var moduleSize = this.calculateModuleSize(topLeft, topRight, bottomLeft);\n if (moduleSize < 1.0) {\n throw new NotFoundException_1.default('No pattern found in proccess finder.');\n }\n var dimension = Detector.computeDimension(topLeft, topRight, bottomLeft, moduleSize);\n var provisionalVersion = Version_1.default.getProvisionalVersionForDimension(dimension);\n var modulesBetweenFPCenters = provisionalVersion.getDimensionForVersion() - 7;\n var 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 var bottomRightX = topRight.getX() - topLeft.getX() + bottomLeft.getX();\n var 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 var correctionToTopLeft = 1.0 - 3.0 / modulesBetweenFPCenters;\n var estAlignmentX = /*(int) */ Math.floor(topLeft.getX() + correctionToTopLeft * (bottomRightX - topLeft.getX()));\n var estAlignmentY = /*(int) */ Math.floor(topLeft.getY() + correctionToTopLeft * (bottomRightY - topLeft.getY()));\n // Kind of arbitrary -- expand search radius before giving up\n for (var 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_1.default)) {\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 var transform = Detector.createTransform(topLeft, topRight, bottomLeft, alignmentPattern, dimension);\n var bits = Detector.sampleGrid(this.image, transform, dimension);\n var points;\n if (alignmentPattern === null) {\n points = [bottomLeft, topLeft, topRight];\n }\n else {\n points = [bottomLeft, topLeft, topRight, alignmentPattern];\n }\n return new DetectorResult_1.default(bits, points);\n };\n Detector.createTransform = function (topLeft, topRight, bottomLeft, alignmentPattern, dimension /*int*/) {\n var dimMinusThree = dimension - 3.5;\n var bottomRightX; /*float*/\n var bottomRightY; /*float*/\n var sourceBottomRightX; /*float*/\n var 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_1.default.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 Detector.sampleGrid = function (image, transform, dimension /*int*/) {\n var sampler = GridSamplerInstance_1.default.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 Detector.computeDimension = function (topLeft, topRight, bottomLeft, moduleSize /*float*/) {\n var tltrCentersDimension = MathUtils_1.default.round(ResultPoint_1.default.distance(topLeft, topRight) / moduleSize);\n var tlblCentersDimension = MathUtils_1.default.round(ResultPoint_1.default.distance(topLeft, bottomLeft) / moduleSize);\n var 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_1.default('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 Detector.prototype.calculateModuleSize = function (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 Detector.prototype.calculateModuleSizeOneWay = function (pattern, otherPattern) {\n var 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 var 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 Detector.prototype.sizeOfBlackWhiteBlackRunBothWays = function (fromX /*int*/, fromY /*int*/, toX /*int*/, toY /*int*/) {\n var result = this.sizeOfBlackWhiteBlackRun(fromX, fromY, toX, toY);\n // Now count other way -- don't run off image though of course\n var scale = 1.0;\n var 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 var 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 Detector.prototype.sizeOfBlackWhiteBlackRun = function (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 var steep = Math.abs(toY - fromY) > Math.abs(toX - fromX);\n if (steep) {\n var temp = fromX;\n fromX = fromY;\n fromY = temp;\n temp = toX;\n toX = toY;\n toY = temp;\n }\n var dx = Math.abs(toX - fromX);\n var dy = Math.abs(toY - fromY);\n var error = -dx / 2;\n var xstep = fromX < toX ? 1 : -1;\n var ystep = fromY < toY ? 1 : -1;\n // In black pixels, looking for white, first or second time.\n var state = 0;\n // Loop up until x == toX, but not beyond\n var xLimit = toX + xstep;\n for (var x = fromX, y = fromY; x !== xLimit; x += xstep) {\n var realX = steep ? y : x;\n var 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_1.default.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_1.default.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 Detector.prototype.findAlignmentInRegion = function (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 var allowance = /*(int) */ Math.floor(allowanceFactor * overallEstModuleSize);\n var alignmentAreaLeftX = Math.max(0, estAlignmentX - allowance);\n var alignmentAreaRightX = Math.min(this.image.getWidth() - 1, estAlignmentX + allowance);\n if (alignmentAreaRightX - alignmentAreaLeftX < overallEstModuleSize * 3) {\n throw new NotFoundException_1.default('Alignment top exceeds estimated module size.');\n }\n var alignmentAreaTopY = Math.max(0, estAlignmentY - allowance);\n var alignmentAreaBottomY = Math.min(this.image.getHeight() - 1, estAlignmentY + allowance);\n if (alignmentAreaBottomY - alignmentAreaTopY < overallEstModuleSize * 3) {\n throw new NotFoundException_1.default('Alignment bottom exceeds estimated module size.');\n }\n var alignmentFinder = new AlignmentPatternFinder_1.default(this.image, alignmentAreaLeftX, alignmentAreaTopY, alignmentAreaRightX - alignmentAreaLeftX, alignmentAreaBottomY - alignmentAreaTopY, overallEstModuleSize, this.resultPointCallback);\n return alignmentFinder.find();\n };\n return Detector;\n}());\nexports.default = Detector;\n//# sourceMappingURL=Detector.js.map","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","\"use strict\";\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing {*/\nvar System_1 = require(\"./util/System\");\nvar LuminanceSource_1 = require(\"./LuminanceSource\");\nvar InvertedLuminanceSource_1 = require(\"./InvertedLuminanceSource\");\nvar IllegalArgumentException_1 = require(\"./IllegalArgumentException\");\n/**\n * This object extends LuminanceSource around an array of YUV data returned from the camera driver,\n * with the option to crop to a rectangle within the full data. This can be used to exclude\n * superfluous pixels around the perimeter and speed up decoding.\n *\n * It works for any pixel format where the Y channel is planar and appears first, including\n * YCbCr_420_SP and YCbCr_422_SP.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar PlanarYUVLuminanceSource = /** @class */ (function (_super) {\n __extends(PlanarYUVLuminanceSource, _super);\n function PlanarYUVLuminanceSource(yuvData, dataWidth /*int*/, dataHeight /*int*/, left /*int*/, top /*int*/, width /*int*/, height /*int*/, reverseHorizontal) {\n var _this = _super.call(this, width, height) || this;\n _this.yuvData = yuvData;\n _this.dataWidth = dataWidth;\n _this.dataHeight = dataHeight;\n _this.left = left;\n _this.top = top;\n if (left + width > dataWidth || top + height > dataHeight) {\n throw new IllegalArgumentException_1.default('Crop rectangle does not fit within image data.');\n }\n if (reverseHorizontal) {\n _this.reverseHorizontal(width, height);\n }\n return _this;\n }\n /*@Override*/\n PlanarYUVLuminanceSource.prototype.getRow = function (y /*int*/, row) {\n if (y < 0 || y >= this.getHeight()) {\n throw new IllegalArgumentException_1.default('Requested row is outside the image: ' + y);\n }\n var width = this.getWidth();\n if (row === null || row === undefined || row.length < width) {\n row = new Uint8ClampedArray(width);\n }\n var offset = (y + this.top) * this.dataWidth + this.left;\n System_1.default.arraycopy(this.yuvData, offset, row, 0, width);\n return row;\n };\n /*@Override*/\n PlanarYUVLuminanceSource.prototype.getMatrix = function () {\n var width = this.getWidth();\n var height = this.getHeight();\n // If the caller asks for the entire underlying image, save the copy and give them the\n // original data. The docs specifically warn that result.length must be ignored.\n if (width === this.dataWidth && height === this.dataHeight) {\n return this.yuvData;\n }\n var area = width * height;\n var matrix = new Uint8ClampedArray(area);\n var inputOffset = this.top * this.dataWidth + this.left;\n // If the width matches the full width of the underlying data, perform a single copy.\n if (width === this.dataWidth) {\n System_1.default.arraycopy(this.yuvData, inputOffset, matrix, 0, area);\n return matrix;\n }\n // Otherwise copy one cropped row at a time.\n for (var y = 0; y < height; y++) {\n var outputOffset = y * width;\n System_1.default.arraycopy(this.yuvData, inputOffset, matrix, outputOffset, width);\n inputOffset += this.dataWidth;\n }\n return matrix;\n };\n /*@Override*/\n PlanarYUVLuminanceSource.prototype.isCropSupported = function () {\n return true;\n };\n /*@Override*/\n PlanarYUVLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n return new PlanarYUVLuminanceSource(this.yuvData, this.dataWidth, this.dataHeight, this.left + left, this.top + top, width, height, false);\n };\n PlanarYUVLuminanceSource.prototype.renderThumbnail = function () {\n var width = this.getWidth() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n var height = this.getHeight() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n var pixels = new Int32Array(width * height);\n var yuv = this.yuvData;\n var inputOffset = this.top * this.dataWidth + this.left;\n for (var y = 0; y < height; y++) {\n var outputOffset = y * width;\n for (var x = 0; x < width; x++) {\n var grey = yuv[inputOffset + x * PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR] & 0xff;\n pixels[outputOffset + x] = 0xFF000000 | (grey * 0x00010101);\n }\n inputOffset += this.dataWidth * PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n }\n return pixels;\n };\n /**\n * @return width of image from {@link #renderThumbnail()}\n */\n PlanarYUVLuminanceSource.prototype.getThumbnailWidth = function () {\n return this.getWidth() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n };\n /**\n * @return height of image from {@link #renderThumbnail()}\n */\n PlanarYUVLuminanceSource.prototype.getThumbnailHeight = function () {\n return this.getHeight() / PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR;\n };\n PlanarYUVLuminanceSource.prototype.reverseHorizontal = function (width /*int*/, height /*int*/) {\n var yuvData = this.yuvData;\n for (var y = 0, rowStart = this.top * this.dataWidth + this.left; y < height; y++, rowStart += this.dataWidth) {\n var middle = rowStart + width / 2;\n for (var x1 = rowStart, x2 = rowStart + width - 1; x1 < middle; x1++, x2--) {\n var temp = yuvData[x1];\n yuvData[x1] = yuvData[x2];\n yuvData[x2] = temp;\n }\n }\n };\n PlanarYUVLuminanceSource.prototype.invert = function () {\n return new InvertedLuminanceSource_1.default(this);\n };\n PlanarYUVLuminanceSource.THUMBNAIL_SCALE_FACTOR = 2;\n return PlanarYUVLuminanceSource;\n}(LuminanceSource_1.default));\nexports.default = PlanarYUVLuminanceSource;\n//# sourceMappingURL=PlanarYUVLuminanceSource.js.map","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(\"VueLoading\",[],e):\"object\"==typeof exports?exports.VueLoading=e():t.VueLoading=e()}(\"undefined\"!=typeof self?self:this,(function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var r in t)i.d(n,r,function(e){return t[e]}.bind(null,r));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,\"a\",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p=\"\",i(i.s=1)}([function(t,e,i){},function(t,e,i){\"use strict\";i.r(e);var n=\"undefined\"!=typeof window?window.HTMLElement:Object,r={mounted:function(){document.addEventListener(\"focusin\",this.focusIn)},methods:{focusIn:function(t){if(this.isActive&&t.target!==this.$el&&!this.$el.contains(t.target)){var e=this.container?this.container:this.isFullPage?null:this.$el.parentElement;(this.isFullPage||e&&e.contains(t.target))&&(t.preventDefault(),this.$el.focus())}}},beforeDestroy:function(){document.removeEventListener(\"focusin\",this.focusIn)}};function a(t,e,i,n,r,a,o,s){var u,l=\"function\"==typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=i,l._compiled=!0),n&&(l.functional=!0),a&&(l._scopeId=\"data-v-\"+a),o?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=u):r&&(u=s?function(){r.call(this,this.$root.$options.shadowRoot)}:r),u)if(l.functional){l._injectStyles=u;var c=l.render;l.render=function(t,e){return u.call(e),c(t,e)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,u):[u]}return{exports:t,options:l}}var o=a({name:\"spinner\",props:{color:{type:String,default:\"#000\"},height:{type:Number,default:64},width:{type:Number,default:64}}},(function(){var t=this.$createElement,e=this._self._c||t;return e(\"svg\",{attrs:{viewBox:\"0 0 38 38\",xmlns:\"http://www.w3.org/2000/svg\",width:this.width,height:this.height,stroke:this.color}},[e(\"g\",{attrs:{fill:\"none\",\"fill-rule\":\"evenodd\"}},[e(\"g\",{attrs:{transform:\"translate(1 1)\",\"stroke-width\":\"2\"}},[e(\"circle\",{attrs:{\"stroke-opacity\":\".25\",cx:\"18\",cy:\"18\",r:\"18\"}}),e(\"path\",{attrs:{d:\"M36 18c0-9.94-8.06-18-18-18\"}},[e(\"animateTransform\",{attrs:{attributeName:\"transform\",type:\"rotate\",from:\"0 18 18\",to:\"360 18 18\",dur:\"0.8s\",repeatCount:\"indefinite\"}})],1)])])])}),[],!1,null,null,null).exports,s=a({name:\"dots\",props:{color:{type:String,default:\"#000\"},height:{type:Number,default:240},width:{type:Number,default:60}}},(function(){var t=this.$createElement,e=this._self._c||t;return e(\"svg\",{attrs:{viewBox:\"0 0 120 30\",xmlns:\"http://www.w3.org/2000/svg\",fill:this.color,width:this.width,height:this.height}},[e(\"circle\",{attrs:{cx:\"15\",cy:\"15\",r:\"15\"}},[e(\"animate\",{attrs:{attributeName:\"r\",from:\"15\",to:\"15\",begin:\"0s\",dur:\"0.8s\",values:\"15;9;15\",calcMode:\"linear\",repeatCount:\"indefinite\"}}),e(\"animate\",{attrs:{attributeName:\"fill-opacity\",from:\"1\",to:\"1\",begin:\"0s\",dur:\"0.8s\",values:\"1;.5;1\",calcMode:\"linear\",repeatCount:\"indefinite\"}})]),e(\"circle\",{attrs:{cx:\"60\",cy:\"15\",r:\"9\",\"fill-opacity\":\"0.3\"}},[e(\"animate\",{attrs:{attributeName:\"r\",from:\"9\",to:\"9\",begin:\"0s\",dur:\"0.8s\",values:\"9;15;9\",calcMode:\"linear\",repeatCount:\"indefinite\"}}),e(\"animate\",{attrs:{attributeName:\"fill-opacity\",from:\"0.5\",to:\"0.5\",begin:\"0s\",dur:\"0.8s\",values:\".5;1;.5\",calcMode:\"linear\",repeatCount:\"indefinite\"}})]),e(\"circle\",{attrs:{cx:\"105\",cy:\"15\",r:\"15\"}},[e(\"animate\",{attrs:{attributeName:\"r\",from:\"15\",to:\"15\",begin:\"0s\",dur:\"0.8s\",values:\"15;9;15\",calcMode:\"linear\",repeatCount:\"indefinite\"}}),e(\"animate\",{attrs:{attributeName:\"fill-opacity\",from:\"1\",to:\"1\",begin:\"0s\",dur:\"0.8s\",values:\"1;.5;1\",calcMode:\"linear\",repeatCount:\"indefinite\"}})])])}),[],!1,null,null,null).exports,u=a({name:\"bars\",props:{color:{type:String,default:\"#000\"},height:{type:Number,default:40},width:{type:Number,default:40}}},(function(){var t=this.$createElement,e=this._self._c||t;return e(\"svg\",{attrs:{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 30 30\",height:this.height,width:this.width,fill:this.color}},[e(\"rect\",{attrs:{x:\"0\",y:\"13\",width:\"4\",height:\"5\"}},[e(\"animate\",{attrs:{attributeName:\"height\",attributeType:\"XML\",values:\"5;21;5\",begin:\"0s\",dur:\"0.6s\",repeatCount:\"indefinite\"}}),e(\"animate\",{attrs:{attributeName:\"y\",attributeType:\"XML\",values:\"13; 5; 13\",begin:\"0s\",dur:\"0.6s\",repeatCount:\"indefinite\"}})]),e(\"rect\",{attrs:{x:\"10\",y:\"13\",width:\"4\",height:\"5\"}},[e(\"animate\",{attrs:{attributeName:\"height\",attributeType:\"XML\",values:\"5;21;5\",begin:\"0.15s\",dur:\"0.6s\",repeatCount:\"indefinite\"}}),e(\"animate\",{attrs:{attributeName:\"y\",attributeType:\"XML\",values:\"13; 5; 13\",begin:\"0.15s\",dur:\"0.6s\",repeatCount:\"indefinite\"}})]),e(\"rect\",{attrs:{x:\"20\",y:\"13\",width:\"4\",height:\"5\"}},[e(\"animate\",{attrs:{attributeName:\"height\",attributeType:\"XML\",values:\"5;21;5\",begin:\"0.3s\",dur:\"0.6s\",repeatCount:\"indefinite\"}}),e(\"animate\",{attrs:{attributeName:\"y\",attributeType:\"XML\",values:\"13; 5; 13\",begin:\"0.3s\",dur:\"0.6s\",repeatCount:\"indefinite\"}})])])}),[],!1,null,null,null).exports,l=a({name:\"vue-loading\",mixins:[r],props:{active:Boolean,programmatic:Boolean,container:[Object,Function,n],isFullPage:{type:Boolean,default:!0},transition:{type:String,default:\"fade\"},canCancel:Boolean,onCancel:{type:Function,default:function(){}},color:String,backgroundColor:String,opacity:Number,width:Number,height:Number,zIndex:Number,loader:{type:String,default:\"spinner\"}},data:function(){return{isActive:this.active}},components:{Spinner:o,Dots:s,Bars:u},beforeMount:function(){this.programmatic&&(this.container?(this.isFullPage=!1,this.container.appendChild(this.$el)):document.body.appendChild(this.$el))},mounted:function(){this.programmatic&&(this.isActive=!0),document.addEventListener(\"keyup\",this.keyPress)},methods:{cancel:function(){this.canCancel&&this.isActive&&(this.hide(),this.onCancel.apply(null,arguments))},hide:function(){var t=this;this.$emit(\"hide\"),this.$emit(\"update:active\",!1),this.programmatic&&(this.isActive=!1,setTimeout((function(){var e;t.$destroy(),void 0!==(e=t.$el).remove?e.remove():e.parentNode.removeChild(e)}),150))},keyPress:function(t){27===t.keyCode&&this.cancel()}},watch:{active:function(t){this.isActive=t}},beforeDestroy:function(){document.removeEventListener(\"keyup\",this.keyPress)}},(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"transition\",{attrs:{name:t.transition}},[i(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.isActive,expression:\"isActive\"}],staticClass:\"vld-overlay is-active\",class:{\"is-full-page\":t.isFullPage},style:{zIndex:t.zIndex},attrs:{tabindex:\"0\",\"aria-busy\":t.isActive,\"aria-label\":\"Loading\"}},[i(\"div\",{staticClass:\"vld-background\",style:{background:t.backgroundColor,opacity:t.opacity},on:{click:function(e){return e.preventDefault(),t.cancel(e)}}}),i(\"div\",{staticClass:\"vld-icon\"},[t._t(\"before\"),t._t(\"default\",[i(t.loader,{tag:\"component\",attrs:{color:t.color,width:t.width,height:t.height}})]),t._t(\"after\")],2)])])}),[],!1,null,null,null).exports,c=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{show:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i,a={programmatic:!0},o=Object.assign({},e,n,a),s=new(t.extend(l))({el:document.createElement(\"div\"),propsData:o}),u=Object.assign({},i,r);return Object.keys(u).map((function(t){s.$slots[t]=u[t]})),s}}};i(0);l.install=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=c(t,e,i);t.$loading=n,t.prototype.$loading=n};e.default=l}]).default}));","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 */\nvar Binarizer = /** @class */ (function () {\n function Binarizer(source) {\n this.source = source;\n }\n Binarizer.prototype.getLuminanceSource = function () {\n return this.source;\n };\n Binarizer.prototype.getWidth = function () {\n return this.source.getWidth();\n };\n Binarizer.prototype.getHeight = function () {\n return this.source.getHeight();\n };\n return Binarizer;\n}());\nexports.default = Binarizer;\n//# sourceMappingURL=Binarizer.js.map","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode {*/\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar EncodeHintType_1 = require(\"../EncodeHintType\");\nvar BitMatrix_1 = require(\"../common/BitMatrix\");\nvar ErrorCorrectionLevel_1 = require(\"./decoder/ErrorCorrectionLevel\");\nvar Encoder_1 = require(\"./encoder/Encoder\");\nvar IllegalArgumentException_1 = require(\"../IllegalArgumentException\");\nvar IllegalStateException_1 = require(\"../IllegalStateException\");\n/*import java.util.Map;*/\n/**\n * This object renders a QR Code as a BitMatrix 2D array of greyscale values.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar QRCodeWriter = /** @class */ (function () {\n function QRCodeWriter() {\n }\n /*@Override*/\n // public encode(contents: string, format: BarcodeFormat, width: number /*int*/, height: number /*int*/): BitMatrix\n // /*throws WriterException */ {\n // return encode(contents, format, width, height, null)\n // }\n /*@Override*/\n QRCodeWriter.prototype.encode = function (contents, format, width /*int*/, height /*int*/, hints) {\n if (contents.length === 0) {\n throw new IllegalArgumentException_1.default('Found empty contents');\n }\n if (format !== BarcodeFormat_1.default.QR_CODE) {\n throw new IllegalArgumentException_1.default('Can only encode QR_CODE, but got ' + format);\n }\n if (width < 0 || height < 0) {\n throw new IllegalArgumentException_1.default(\"Requested dimensions are too small: \" + width + \"x\" + height);\n }\n var errorCorrectionLevel = ErrorCorrectionLevel_1.default.L;\n var quietZone = QRCodeWriter.QUIET_ZONE_SIZE;\n if (hints !== null) {\n if (undefined !== hints.get(EncodeHintType_1.default.ERROR_CORRECTION)) {\n errorCorrectionLevel = ErrorCorrectionLevel_1.default.fromString(hints.get(EncodeHintType_1.default.ERROR_CORRECTION).toString());\n }\n if (undefined !== hints.get(EncodeHintType_1.default.MARGIN)) {\n quietZone = Number.parseInt(hints.get(EncodeHintType_1.default.MARGIN).toString(), 10);\n }\n }\n var code = Encoder_1.default.encode(contents, errorCorrectionLevel, hints);\n return QRCodeWriter.renderResult(code, width, height, quietZone);\n };\n // Note that the input matrix uses 0 == white, 1 == black, while the output matrix uses\n // 0 == black, 255 == white (i.e. an 8 bit greyscale bitmap).\n QRCodeWriter.renderResult = function (code, width /*int*/, height /*int*/, quietZone /*int*/) {\n var input = code.getMatrix();\n if (input === null) {\n throw new IllegalStateException_1.default();\n }\n var inputWidth = input.getWidth();\n var inputHeight = input.getHeight();\n var qrWidth = inputWidth + (quietZone * 2);\n var qrHeight = inputHeight + (quietZone * 2);\n var outputWidth = Math.max(width, qrWidth);\n var outputHeight = Math.max(height, qrHeight);\n var multiple = Math.min(Math.floor(outputWidth / qrWidth), Math.floor(outputHeight / qrHeight));\n // Padding includes both the quiet zone and the extra white pixels to accommodate the requested\n // dimensions. For example, if input is 25x25 the QR will be 33x33 including the quiet zone.\n // If the requested size is 200x160, the multiple will be 4, for a QR of 132x132. These will\n // handle all the padding from 100x100 (the actual QR) up to 200x160.\n var leftPadding = Math.floor((outputWidth - (inputWidth * multiple)) / 2);\n var topPadding = Math.floor((outputHeight - (inputHeight * multiple)) / 2);\n var output = new BitMatrix_1.default(outputWidth, outputHeight);\n for (var inputY = 0, outputY = topPadding; inputY < inputHeight; inputY++, outputY += multiple) {\n // Write the contents of this row of the barcode\n for (var inputX = 0, outputX = leftPadding; inputX < inputWidth; inputX++, outputX += multiple) {\n if (input.get(inputX, inputY) === 1) {\n output.setRegion(outputX, outputY, multiple, multiple);\n }\n }\n }\n return output;\n };\n QRCodeWriter.QUIET_ZONE_SIZE = 4;\n return QRCodeWriter;\n}());\nexports.default = QRCodeWriter;\n//# sourceMappingURL=QRCodeWriter.js.map","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","function fixProto(target, prototype) {\n var setPrototypeOf = Object.setPrototypeOf;\n setPrototypeOf ? setPrototypeOf(target, prototype) : target.__proto__ = prototype;\n}\nfunction fixStack(target, fn) {\n if (fn === void 0) {\n fn = target.constructor;\n }\n\n var captureStackTrace = Error.captureStackTrace;\n captureStackTrace && captureStackTrace(target, fn);\n}\n\nvar __extends = undefined && undefined.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } }\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar CustomError = function (_super) {\n __extends(CustomError, _super);\n\n function CustomError(message) {\n var _newTarget = this.constructor;\n\n var _this = _super.call(this, message) || this;\n\n Object.defineProperty(_this, 'name', {\n value: _newTarget.name,\n enumerable: false,\n configurable: true\n });\n fixProto(_this, _newTarget.prototype);\n fixStack(_this);\n return _this;\n }\n\n return CustomError;\n}(Error);\n\nvar __spreadArrays = undefined && undefined.__spreadArrays || function () {\n var arguments$1 = arguments;\n\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) { s += arguments$1[i].length; }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) { for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) { r[k] = a[j]; } }\n\n return r;\n};\nfunction customErrorFactory(fn, parent) {\n if (parent === void 0) {\n parent = Error;\n }\n\n function CustomError() {\n var arguments$1 = arguments;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments$1[_i];\n }\n\n if (!(this instanceof CustomError)) { return new (CustomError.bind.apply(CustomError, __spreadArrays([void 0], args)))(); }\n parent.apply(this, args);\n Object.defineProperty(this, 'name', {\n value: fn.name || parent.name,\n enumerable: false,\n configurable: true\n });\n fn.apply(this, args);\n fixStack(this, CustomError);\n }\n\n return Object.defineProperties(CustomError, {\n prototype: {\n value: Object.create(parent.prototype, {\n constructor: {\n value: CustomError,\n writable: true,\n configurable: true\n }\n })\n }\n });\n}\n\nexport { CustomError, customErrorFactory };\n//# sourceMappingURL=custom-error.mjs.map\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing {*/\n/*import java.util.EnumMap;*/\n/*import java.util.Map;*/\nvar ResultPoint_1 = require(\"./ResultPoint\");\nvar System_1 = require(\"./util/System\");\n/**\n *

Encapsulates the result of decoding a barcode within an image.

\n *\n * @author Sean Owen\n */\nvar Result = /** @class */ (function () {\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 function Result(text, rawBytes, numBits /*int*/, resultPoints, format, timestamp /*long*/) {\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_1.default.currentTimeMillis();\n }\n else {\n this.timestamp = timestamp;\n }\n }\n /**\n * @return raw text encoded by the barcode\n */\n Result.prototype.getText = function () {\n return this.text;\n };\n /**\n * @return raw bytes encoded by the barcode, if applicable, otherwise {@code null}\n */\n Result.prototype.getRawBytes = function () {\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 Result.prototype.getNumBits = function () {\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 Result.prototype.getResultPoints = function () {\n return this.resultPoints;\n };\n /**\n * @return {@link BarcodeFormat} representing the format of the barcode that was decoded\n */\n Result.prototype.getBarcodeFormat = function () {\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 Result.prototype.getResultMetadata = function () {\n return this.resultMetadata;\n };\n Result.prototype.putMetadata = function (type, value) {\n if (this.resultMetadata === null) {\n this.resultMetadata = new Map();\n }\n this.resultMetadata.set(type, value);\n };\n Result.prototype.putAllMetadata = function (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 Result.prototype.addResultPoints = function (newPoints) {\n var oldPoints = this.resultPoints;\n if (oldPoints === null) {\n this.resultPoints = newPoints;\n }\n else if (newPoints !== null && newPoints.length > 0) {\n var allPoints = new ResultPoint_1.default[oldPoints.length + newPoints.length];\n System_1.default.arraycopy(oldPoints, 0, allPoints, 0, oldPoints.length);\n System_1.default.arraycopy(newPoints, 0, allPoints, oldPoints.length, newPoints.length);\n this.resultPoints = allPoints;\n }\n };\n Result.prototype.getTimestamp = function () {\n return this.timestamp;\n };\n /*@Override*/\n Result.prototype.toString = function () {\n return this.text;\n };\n return Result;\n}());\nexports.default = Result;\n//# sourceMappingURL=Result.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Float = /** @class */ (function () {\n function Float() {\n }\n Float.floatToIntBits = function (f) {\n return f;\n };\n return Float;\n}());\nexports.default = Float;\n//# sourceMappingURL=Float.js.map","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common.reedsolomon {*/\nvar GenericGF_1 = require(\"./GenericGF\");\nvar GenericGFPoly_1 = require(\"./GenericGFPoly\");\nvar ReedSolomonException_1 = require(\"../../ReedSolomonException\");\nvar IllegalStateException_1 = require(\"../../IllegalStateException\");\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 *
\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 */\nvar ReedSolomonDecoder = /** @class */ (function () {\n function ReedSolomonDecoder(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 ReedSolomonDecoder.prototype.decode = function (received, twoS /*int*/) {\n var field = this.field;\n var poly = new GenericGFPoly_1.default(field, received);\n var syndromeCoefficients = new Int32Array(twoS);\n var noError = true;\n for (var i = 0; i < twoS; i++) {\n var 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 var syndrome = new GenericGFPoly_1.default(field, syndromeCoefficients);\n var sigmaOmega = this.runEuclideanAlgorithm(field.buildMonomial(twoS, 1), syndrome, twoS);\n var sigma = sigmaOmega[0];\n var omega = sigmaOmega[1];\n var errorLocations = this.findErrorLocations(sigma);\n var errorMagnitudes = this.findErrorMagnitudes(omega, errorLocations);\n for (var i = 0; i < errorLocations.length; i++) {\n var position = received.length - 1 - field.log(errorLocations[i]);\n if (position < 0) {\n throw new ReedSolomonException_1.default('Bad error location');\n }\n received[position] = GenericGF_1.default.addOrSubtract(received[position], errorMagnitudes[i]);\n }\n };\n ReedSolomonDecoder.prototype.runEuclideanAlgorithm = function (a, b, R /*int*/) {\n // Assume a's degree is >= b's\n if (a.getDegree() < b.getDegree()) {\n var temp = a;\n a = b;\n b = temp;\n }\n var field = this.field;\n var rLast = a;\n var r = b;\n var tLast = field.getZero();\n var t = field.getOne();\n // Run Euclidean algorithm until r's degree is less than R/2\n while (r.getDegree() >= (R / 2 | 0)) {\n var rLastLast = rLast;\n var 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_1.default('r_{i-1} was zero');\n }\n r = rLastLast;\n var q = field.getZero();\n var denominatorLeadingTerm = rLast.getCoefficient(rLast.getDegree());\n var dltInverse = field.inverse(denominatorLeadingTerm);\n while (r.getDegree() >= rLast.getDegree() && !r.isZero()) {\n var degreeDiff = r.getDegree() - rLast.getDegree();\n var 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_1.default('Division algorithm failed to reduce polynomial?');\n }\n }\n var sigmaTildeAtZero = t.getCoefficient(0);\n if (sigmaTildeAtZero === 0) {\n throw new ReedSolomonException_1.default('sigmaTilde(0) was zero');\n }\n var inverse = field.inverse(sigmaTildeAtZero);\n var sigma = t.multiplyScalar(inverse);\n var omega = r.multiplyScalar(inverse);\n return [sigma, omega];\n };\n ReedSolomonDecoder.prototype.findErrorLocations = function (errorLocator) {\n // This is a direct application of Chien's search\n var numErrors = errorLocator.getDegree();\n if (numErrors === 1) { // shortcut\n return Int32Array.from([errorLocator.getCoefficient(1)]);\n }\n var result = new Int32Array(numErrors);\n var e = 0;\n var field = this.field;\n for (var 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_1.default('Error locator degree does not match number of roots');\n }\n return result;\n };\n ReedSolomonDecoder.prototype.findErrorMagnitudes = function (errorEvaluator, errorLocations) {\n // This is directly applying Forney's Formula\n var s = errorLocations.length;\n var result = new Int32Array(s);\n var field = this.field;\n for (var i = 0; i < s; i++) {\n var xiInverse = field.inverse(errorLocations[i]);\n var denominator = 1;\n for (var 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 var term = field.multiply(errorLocations[j], xiInverse);\n var 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 return ReedSolomonDecoder;\n}());\nexports.default = ReedSolomonDecoder;\n//# sourceMappingURL=ReedSolomonDecoder.js.map","\"use strict\";\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.detector {*/\nvar ResultPoint_1 = require(\"../../ResultPoint\");\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 */\nvar FinderPattern = /** @class */ (function (_super) {\n __extends(FinderPattern, _super);\n // FinderPattern(posX: number/*float*/, posY: number/*float*/, estimatedModuleSize: number/*float*/) {\n // this(posX, posY, estimatedModuleSize, 1)\n // }\n function FinderPattern(posX /*float*/, posY /*float*/, estimatedModuleSize /*float*/, count /*int*/) {\n var _this = _super.call(this, posX, posY) || this;\n _this.estimatedModuleSize = estimatedModuleSize;\n _this.count = count;\n if (undefined === count) {\n _this.count = 1;\n }\n return _this;\n }\n FinderPattern.prototype.getEstimatedModuleSize = function () {\n return this.estimatedModuleSize;\n };\n FinderPattern.prototype.getCount = function () {\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 FinderPattern.prototype.aboutEquals = function (moduleSize /*float*/, i /*float*/, j /*float*/) {\n if (Math.abs(i - this.getY()) <= moduleSize && Math.abs(j - this.getX()) <= moduleSize) {\n var 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 FinderPattern.prototype.combineEstimate = function (i /*float*/, j /*float*/, newModuleSize /*float*/) {\n var combinedCount = this.count + 1;\n var combinedX = (this.count * this.getX() + j) / combinedCount;\n var combinedY = (this.count * this.getY() + i) / combinedCount;\n var combinedModuleSize = (this.count * this.estimatedModuleSize + newModuleSize) / combinedCount;\n return new FinderPattern(combinedX, combinedY, combinedModuleSize, combinedCount);\n };\n return FinderPattern;\n}(ResultPoint_1.default));\nexports.default = FinderPattern;\n//# sourceMappingURL=FinderPattern.js.map","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GenericGFPoly_1 = require(\"./GenericGFPoly\");\nvar System_1 = require(\"../../util/System\");\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\n/**\n *

Implements Reed-Solomon encoding, as the name implies.

\n *\n * @author Sean Owen\n * @author William Rucklidge\n */\nvar ReedSolomonEncoder = /** @class */ (function () {\n /**\n * A reed solomon error-correcting encoding constructor is created by\n * passing as Galois Field with of size equal to the number of code\n * words (symbols) in the alphabet (the number of values in each\n * element of arrays that are encoded/decoded).\n * @param field A galois field with a number of elements equal to the size\n * of the alphabet of symbols to encode.\n */\n function ReedSolomonEncoder(field) {\n this.field = field;\n this.cachedGenerators = [];\n this.cachedGenerators.push(new GenericGFPoly_1.default(field, Int32Array.from([1])));\n }\n ReedSolomonEncoder.prototype.buildGenerator = function (degree /*int*/) {\n var cachedGenerators = this.cachedGenerators;\n if (degree >= cachedGenerators.length) {\n var lastGenerator = cachedGenerators[cachedGenerators.length - 1];\n var field = this.field;\n for (var d = cachedGenerators.length; d <= degree; d++) {\n var nextGenerator = lastGenerator.multiply(new GenericGFPoly_1.default(field, Int32Array.from([1, field.exp(d - 1 + field.getGeneratorBase())])));\n cachedGenerators.push(nextGenerator);\n lastGenerator = nextGenerator;\n }\n }\n return cachedGenerators[degree];\n };\n /**\n *

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 *\n * @param toEncode array used for both and output. Caller initializes the array with\n * the code words (symbols) to be encoded followed by empty elements allocated to make\n * space for error-correction code words in the encoded output. The array contains\n * the encdoded output when encode returns. Code words are encoded as numbers from\n * 0 to n-1, where n is the number of possible code words (symbols), as determined\n * by the size of the Galois Field passed in the constructor of this object.\n * @param ecBytes the number of elements reserved in the array (first parameter)\n * to store error-correction code words. Thus, the number of code words (symbols)\n * to encode in the first parameter is thus toEncode.length - ecBytes.\n * Note, the use of \"bytes\" in the name of this parameter is misleading, as there may\n * be more or fewer than 256 symbols being encoded, as determined by the number of\n * elements in the Galois Field passed as a constructor to this object.\n * @throws IllegalArgumentException thrown in response to validation errros.\n */\n ReedSolomonEncoder.prototype.encode = function (toEncode, ecBytes /*int*/) {\n if (ecBytes === 0) {\n throw new IllegalArgumentException_1.default('No error correction bytes');\n }\n var dataBytes = toEncode.length - ecBytes;\n if (dataBytes <= 0) {\n throw new IllegalArgumentException_1.default('No data bytes provided');\n }\n var generator = this.buildGenerator(ecBytes);\n var infoCoefficients = new Int32Array(dataBytes);\n System_1.default.arraycopy(toEncode, 0, infoCoefficients, 0, dataBytes);\n var info = new GenericGFPoly_1.default(this.field, infoCoefficients);\n info = info.multiplyByMonomial(ecBytes, 1);\n var remainder = info.divide(generator)[1];\n var coefficients = remainder.getCoefficients();\n var numZeroCoefficients = ecBytes - coefficients.length;\n for (var i = 0; i < numZeroCoefficients; i++) {\n toEncode[dataBytes + i] = 0;\n }\n System_1.default.arraycopy(coefficients, 0, toEncode, dataBytes + numZeroCoefficients, coefficients.length);\n };\n return ReedSolomonEncoder;\n}());\nexports.default = ReedSolomonEncoder;\n//# sourceMappingURL=ReedSolomonEncoder.js.map","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 */\nvar ECB = /** @class */ (function () {\n function ECB(count /*int*/, dataCodewords /*int*/) {\n this.count = count;\n this.dataCodewords = dataCodewords;\n }\n ECB.prototype.getCount = function () {\n return this.count;\n };\n ECB.prototype.getDataCodewords = function () {\n return this.dataCodewords;\n };\n return ECB;\n}());\nexports.default = ECB;\n//# sourceMappingURL=ECB.js.map","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode.decoder {*/\nvar BitMatrix_1 = require(\"../../common/BitMatrix\");\nvar FormatInformation_1 = require(\"./FormatInformation\");\nvar ECBlocks_1 = require(\"./ECBlocks\");\nvar ECB_1 = require(\"./ECB\");\nvar FormatException_1 = require(\"../../FormatException\");\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\n/**\n * See ISO 18004:2006 Annex D\n *\n * @author Sean Owen\n */\nvar Version = /** @class */ (function () {\n function Version(versionNumber /*int*/, alignmentPatternCenters) {\n var ecBlocks = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n ecBlocks[_i - 2] = arguments[_i];\n }\n this.versionNumber = versionNumber;\n this.alignmentPatternCenters = alignmentPatternCenters;\n this.ecBlocks = ecBlocks;\n var total = 0;\n var ecCodewords = ecBlocks[0].getECCodewordsPerBlock();\n var ecbArray = ecBlocks[0].getECBlocks();\n for (var _a = 0, ecbArray_1 = ecbArray; _a < ecbArray_1.length; _a++) {\n var ecBlock = ecbArray_1[_a];\n total += ecBlock.getCount() * (ecBlock.getDataCodewords() + ecCodewords);\n }\n this.totalCodewords = total;\n }\n Version.prototype.getVersionNumber = function () {\n return this.versionNumber;\n };\n Version.prototype.getAlignmentPatternCenters = function () {\n return this.alignmentPatternCenters;\n };\n Version.prototype.getTotalCodewords = function () {\n return this.totalCodewords;\n };\n Version.prototype.getDimensionForVersion = function () {\n return 17 + 4 * this.versionNumber;\n };\n Version.prototype.getECBlocksForLevel = function (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 Version.getProvisionalVersionForDimension = function (dimension /*int*/) {\n if (dimension % 4 !== 1) {\n throw new FormatException_1.default();\n }\n try {\n return this.getVersionForNumber((dimension - 17) / 4);\n }\n catch (ignored /*: IllegalArgumentException*/) {\n throw new FormatException_1.default();\n }\n };\n Version.getVersionForNumber = function (versionNumber /*int*/) {\n if (versionNumber < 1 || versionNumber > 40) {\n throw new IllegalArgumentException_1.default();\n }\n return Version.VERSIONS[versionNumber - 1];\n };\n Version.decodeVersionInformation = function (versionBits /*int*/) {\n var bestDifference = Number.MAX_SAFE_INTEGER;\n var bestVersion = 0;\n for (var i = 0; i < Version.VERSION_DECODE_INFO.length; i++) {\n var targetVersion = Version.VERSION_DECODE_INFO[i];\n // Do the version info bits match exactly? done.\n if (targetVersion === versionBits) {\n return Version.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 var bitsDifference = FormatInformation_1.default.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.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 Version.prototype.buildFunctionPattern = function () {\n var dimension = this.getDimensionForVersion();\n var bitMatrix = new BitMatrix_1.default(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 var max = this.alignmentPatternCenters.length;\n for (var x = 0; x < max; x++) {\n var i = this.alignmentPatternCenters[x] - 2;\n for (var 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 Version.prototype.toString = function () {\n return '' + this.versionNumber;\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.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.VERSIONS = [\n new Version(1, new Int32Array(0), new ECBlocks_1.default(7, new ECB_1.default(1, 19)), new ECBlocks_1.default(10, new ECB_1.default(1, 16)), new ECBlocks_1.default(13, new ECB_1.default(1, 13)), new ECBlocks_1.default(17, new ECB_1.default(1, 9))),\n new Version(2, Int32Array.from([6, 18]), new ECBlocks_1.default(10, new ECB_1.default(1, 34)), new ECBlocks_1.default(16, new ECB_1.default(1, 28)), new ECBlocks_1.default(22, new ECB_1.default(1, 22)), new ECBlocks_1.default(28, new ECB_1.default(1, 16))),\n new Version(3, Int32Array.from([6, 22]), new ECBlocks_1.default(15, new ECB_1.default(1, 55)), new ECBlocks_1.default(26, new ECB_1.default(1, 44)), new ECBlocks_1.default(18, new ECB_1.default(2, 17)), new ECBlocks_1.default(22, new ECB_1.default(2, 13))),\n new Version(4, Int32Array.from([6, 26]), new ECBlocks_1.default(20, new ECB_1.default(1, 80)), new ECBlocks_1.default(18, new ECB_1.default(2, 32)), new ECBlocks_1.default(26, new ECB_1.default(2, 24)), new ECBlocks_1.default(16, new ECB_1.default(4, 9))),\n new Version(5, Int32Array.from([6, 30]), new ECBlocks_1.default(26, new ECB_1.default(1, 108)), new ECBlocks_1.default(24, new ECB_1.default(2, 43)), new ECBlocks_1.default(18, new ECB_1.default(2, 15), new ECB_1.default(2, 16)), new ECBlocks_1.default(22, new ECB_1.default(2, 11), new ECB_1.default(2, 12))),\n new Version(6, Int32Array.from([6, 34]), new ECBlocks_1.default(18, new ECB_1.default(2, 68)), new ECBlocks_1.default(16, new ECB_1.default(4, 27)), new ECBlocks_1.default(24, new ECB_1.default(4, 19)), new ECBlocks_1.default(28, new ECB_1.default(4, 15))),\n new Version(7, Int32Array.from([6, 22, 38]), new ECBlocks_1.default(20, new ECB_1.default(2, 78)), new ECBlocks_1.default(18, new ECB_1.default(4, 31)), new ECBlocks_1.default(18, new ECB_1.default(2, 14), new ECB_1.default(4, 15)), new ECBlocks_1.default(26, new ECB_1.default(4, 13), new ECB_1.default(1, 14))),\n new Version(8, Int32Array.from([6, 24, 42]), new ECBlocks_1.default(24, new ECB_1.default(2, 97)), new ECBlocks_1.default(22, new ECB_1.default(2, 38), new ECB_1.default(2, 39)), new ECBlocks_1.default(22, new ECB_1.default(4, 18), new ECB_1.default(2, 19)), new ECBlocks_1.default(26, new ECB_1.default(4, 14), new ECB_1.default(2, 15))),\n new Version(9, Int32Array.from([6, 26, 46]), new ECBlocks_1.default(30, new ECB_1.default(2, 116)), new ECBlocks_1.default(22, new ECB_1.default(3, 36), new ECB_1.default(2, 37)), new ECBlocks_1.default(20, new ECB_1.default(4, 16), new ECB_1.default(4, 17)), new ECBlocks_1.default(24, new ECB_1.default(4, 12), new ECB_1.default(4, 13))),\n new Version(10, Int32Array.from([6, 28, 50]), new ECBlocks_1.default(18, new ECB_1.default(2, 68), new ECB_1.default(2, 69)), new ECBlocks_1.default(26, new ECB_1.default(4, 43), new ECB_1.default(1, 44)), new ECBlocks_1.default(24, new ECB_1.default(6, 19), new ECB_1.default(2, 20)), new ECBlocks_1.default(28, new ECB_1.default(6, 15), new ECB_1.default(2, 16))),\n new Version(11, Int32Array.from([6, 30, 54]), new ECBlocks_1.default(20, new ECB_1.default(4, 81)), new ECBlocks_1.default(30, new ECB_1.default(1, 50), new ECB_1.default(4, 51)), new ECBlocks_1.default(28, new ECB_1.default(4, 22), new ECB_1.default(4, 23)), new ECBlocks_1.default(24, new ECB_1.default(3, 12), new ECB_1.default(8, 13))),\n new Version(12, Int32Array.from([6, 32, 58]), new ECBlocks_1.default(24, new ECB_1.default(2, 92), new ECB_1.default(2, 93)), new ECBlocks_1.default(22, new ECB_1.default(6, 36), new ECB_1.default(2, 37)), new ECBlocks_1.default(26, new ECB_1.default(4, 20), new ECB_1.default(6, 21)), new ECBlocks_1.default(28, new ECB_1.default(7, 14), new ECB_1.default(4, 15))),\n new Version(13, Int32Array.from([6, 34, 62]), new ECBlocks_1.default(26, new ECB_1.default(4, 107)), new ECBlocks_1.default(22, new ECB_1.default(8, 37), new ECB_1.default(1, 38)), new ECBlocks_1.default(24, new ECB_1.default(8, 20), new ECB_1.default(4, 21)), new ECBlocks_1.default(22, new ECB_1.default(12, 11), new ECB_1.default(4, 12))),\n new Version(14, Int32Array.from([6, 26, 46, 66]), new ECBlocks_1.default(30, new ECB_1.default(3, 115), new ECB_1.default(1, 116)), new ECBlocks_1.default(24, new ECB_1.default(4, 40), new ECB_1.default(5, 41)), new ECBlocks_1.default(20, new ECB_1.default(11, 16), new ECB_1.default(5, 17)), new ECBlocks_1.default(24, new ECB_1.default(11, 12), new ECB_1.default(5, 13))),\n new Version(15, Int32Array.from([6, 26, 48, 70]), new ECBlocks_1.default(22, new ECB_1.default(5, 87), new ECB_1.default(1, 88)), new ECBlocks_1.default(24, new ECB_1.default(5, 41), new ECB_1.default(5, 42)), new ECBlocks_1.default(30, new ECB_1.default(5, 24), new ECB_1.default(7, 25)), new ECBlocks_1.default(24, new ECB_1.default(11, 12), new ECB_1.default(7, 13))),\n new Version(16, Int32Array.from([6, 26, 50, 74]), new ECBlocks_1.default(24, new ECB_1.default(5, 98), new ECB_1.default(1, 99)), new ECBlocks_1.default(28, new ECB_1.default(7, 45), new ECB_1.default(3, 46)), new ECBlocks_1.default(24, new ECB_1.default(15, 19), new ECB_1.default(2, 20)), new ECBlocks_1.default(30, new ECB_1.default(3, 15), new ECB_1.default(13, 16))),\n new Version(17, Int32Array.from([6, 30, 54, 78]), new ECBlocks_1.default(28, new ECB_1.default(1, 107), new ECB_1.default(5, 108)), new ECBlocks_1.default(28, new ECB_1.default(10, 46), new ECB_1.default(1, 47)), new ECBlocks_1.default(28, new ECB_1.default(1, 22), new ECB_1.default(15, 23)), new ECBlocks_1.default(28, new ECB_1.default(2, 14), new ECB_1.default(17, 15))),\n new Version(18, Int32Array.from([6, 30, 56, 82]), new ECBlocks_1.default(30, new ECB_1.default(5, 120), new ECB_1.default(1, 121)), new ECBlocks_1.default(26, new ECB_1.default(9, 43), new ECB_1.default(4, 44)), new ECBlocks_1.default(28, new ECB_1.default(17, 22), new ECB_1.default(1, 23)), new ECBlocks_1.default(28, new ECB_1.default(2, 14), new ECB_1.default(19, 15))),\n new Version(19, Int32Array.from([6, 30, 58, 86]), new ECBlocks_1.default(28, new ECB_1.default(3, 113), new ECB_1.default(4, 114)), new ECBlocks_1.default(26, new ECB_1.default(3, 44), new ECB_1.default(11, 45)), new ECBlocks_1.default(26, new ECB_1.default(17, 21), new ECB_1.default(4, 22)), new ECBlocks_1.default(26, new ECB_1.default(9, 13), new ECB_1.default(16, 14))),\n new Version(20, Int32Array.from([6, 34, 62, 90]), new ECBlocks_1.default(28, new ECB_1.default(3, 107), new ECB_1.default(5, 108)), new ECBlocks_1.default(26, new ECB_1.default(3, 41), new ECB_1.default(13, 42)), new ECBlocks_1.default(30, new ECB_1.default(15, 24), new ECB_1.default(5, 25)), new ECBlocks_1.default(28, new ECB_1.default(15, 15), new ECB_1.default(10, 16))),\n new Version(21, Int32Array.from([6, 28, 50, 72, 94]), new ECBlocks_1.default(28, new ECB_1.default(4, 116), new ECB_1.default(4, 117)), new ECBlocks_1.default(26, new ECB_1.default(17, 42)), new ECBlocks_1.default(28, new ECB_1.default(17, 22), new ECB_1.default(6, 23)), new ECBlocks_1.default(30, new ECB_1.default(19, 16), new ECB_1.default(6, 17))),\n new Version(22, Int32Array.from([6, 26, 50, 74, 98]), new ECBlocks_1.default(28, new ECB_1.default(2, 111), new ECB_1.default(7, 112)), new ECBlocks_1.default(28, new ECB_1.default(17, 46)), new ECBlocks_1.default(30, new ECB_1.default(7, 24), new ECB_1.default(16, 25)), new ECBlocks_1.default(24, new ECB_1.default(34, 13))),\n new Version(23, Int32Array.from([6, 30, 54, 78, 102]), new ECBlocks_1.default(30, new ECB_1.default(4, 121), new ECB_1.default(5, 122)), new ECBlocks_1.default(28, new ECB_1.default(4, 47), new ECB_1.default(14, 48)), new ECBlocks_1.default(30, new ECB_1.default(11, 24), new ECB_1.default(14, 25)), new ECBlocks_1.default(30, new ECB_1.default(16, 15), new ECB_1.default(14, 16))),\n new Version(24, Int32Array.from([6, 28, 54, 80, 106]), new ECBlocks_1.default(30, new ECB_1.default(6, 117), new ECB_1.default(4, 118)), new ECBlocks_1.default(28, new ECB_1.default(6, 45), new ECB_1.default(14, 46)), new ECBlocks_1.default(30, new ECB_1.default(11, 24), new ECB_1.default(16, 25)), new ECBlocks_1.default(30, new ECB_1.default(30, 16), new ECB_1.default(2, 17))),\n new Version(25, Int32Array.from([6, 32, 58, 84, 110]), new ECBlocks_1.default(26, new ECB_1.default(8, 106), new ECB_1.default(4, 107)), new ECBlocks_1.default(28, new ECB_1.default(8, 47), new ECB_1.default(13, 48)), new ECBlocks_1.default(30, new ECB_1.default(7, 24), new ECB_1.default(22, 25)), new ECBlocks_1.default(30, new ECB_1.default(22, 15), new ECB_1.default(13, 16))),\n new Version(26, Int32Array.from([6, 30, 58, 86, 114]), new ECBlocks_1.default(28, new ECB_1.default(10, 114), new ECB_1.default(2, 115)), new ECBlocks_1.default(28, new ECB_1.default(19, 46), new ECB_1.default(4, 47)), new ECBlocks_1.default(28, new ECB_1.default(28, 22), new ECB_1.default(6, 23)), new ECBlocks_1.default(30, new ECB_1.default(33, 16), new ECB_1.default(4, 17))),\n new Version(27, Int32Array.from([6, 34, 62, 90, 118]), new ECBlocks_1.default(30, new ECB_1.default(8, 122), new ECB_1.default(4, 123)), new ECBlocks_1.default(28, new ECB_1.default(22, 45), new ECB_1.default(3, 46)), new ECBlocks_1.default(30, new ECB_1.default(8, 23), new ECB_1.default(26, 24)), new ECBlocks_1.default(30, new ECB_1.default(12, 15), new ECB_1.default(28, 16))),\n new Version(28, Int32Array.from([6, 26, 50, 74, 98, 122]), new ECBlocks_1.default(30, new ECB_1.default(3, 117), new ECB_1.default(10, 118)), new ECBlocks_1.default(28, new ECB_1.default(3, 45), new ECB_1.default(23, 46)), new ECBlocks_1.default(30, new ECB_1.default(4, 24), new ECB_1.default(31, 25)), new ECBlocks_1.default(30, new ECB_1.default(11, 15), new ECB_1.default(31, 16))),\n new Version(29, Int32Array.from([6, 30, 54, 78, 102, 126]), new ECBlocks_1.default(30, new ECB_1.default(7, 116), new ECB_1.default(7, 117)), new ECBlocks_1.default(28, new ECB_1.default(21, 45), new ECB_1.default(7, 46)), new ECBlocks_1.default(30, new ECB_1.default(1, 23), new ECB_1.default(37, 24)), new ECBlocks_1.default(30, new ECB_1.default(19, 15), new ECB_1.default(26, 16))),\n new Version(30, Int32Array.from([6, 26, 52, 78, 104, 130]), new ECBlocks_1.default(30, new ECB_1.default(5, 115), new ECB_1.default(10, 116)), new ECBlocks_1.default(28, new ECB_1.default(19, 47), new ECB_1.default(10, 48)), new ECBlocks_1.default(30, new ECB_1.default(15, 24), new ECB_1.default(25, 25)), new ECBlocks_1.default(30, new ECB_1.default(23, 15), new ECB_1.default(25, 16))),\n new Version(31, Int32Array.from([6, 30, 56, 82, 108, 134]), new ECBlocks_1.default(30, new ECB_1.default(13, 115), new ECB_1.default(3, 116)), new ECBlocks_1.default(28, new ECB_1.default(2, 46), new ECB_1.default(29, 47)), new ECBlocks_1.default(30, new ECB_1.default(42, 24), new ECB_1.default(1, 25)), new ECBlocks_1.default(30, new ECB_1.default(23, 15), new ECB_1.default(28, 16))),\n new Version(32, Int32Array.from([6, 34, 60, 86, 112, 138]), new ECBlocks_1.default(30, new ECB_1.default(17, 115)), new ECBlocks_1.default(28, new ECB_1.default(10, 46), new ECB_1.default(23, 47)), new ECBlocks_1.default(30, new ECB_1.default(10, 24), new ECB_1.default(35, 25)), new ECBlocks_1.default(30, new ECB_1.default(19, 15), new ECB_1.default(35, 16))),\n new Version(33, Int32Array.from([6, 30, 58, 86, 114, 142]), new ECBlocks_1.default(30, new ECB_1.default(17, 115), new ECB_1.default(1, 116)), new ECBlocks_1.default(28, new ECB_1.default(14, 46), new ECB_1.default(21, 47)), new ECBlocks_1.default(30, new ECB_1.default(29, 24), new ECB_1.default(19, 25)), new ECBlocks_1.default(30, new ECB_1.default(11, 15), new ECB_1.default(46, 16))),\n new Version(34, Int32Array.from([6, 34, 62, 90, 118, 146]), new ECBlocks_1.default(30, new ECB_1.default(13, 115), new ECB_1.default(6, 116)), new ECBlocks_1.default(28, new ECB_1.default(14, 46), new ECB_1.default(23, 47)), new ECBlocks_1.default(30, new ECB_1.default(44, 24), new ECB_1.default(7, 25)), new ECBlocks_1.default(30, new ECB_1.default(59, 16), new ECB_1.default(1, 17))),\n new Version(35, Int32Array.from([6, 30, 54, 78, 102, 126, 150]), new ECBlocks_1.default(30, new ECB_1.default(12, 121), new ECB_1.default(7, 122)), new ECBlocks_1.default(28, new ECB_1.default(12, 47), new ECB_1.default(26, 48)), new ECBlocks_1.default(30, new ECB_1.default(39, 24), new ECB_1.default(14, 25)), new ECBlocks_1.default(30, new ECB_1.default(22, 15), new ECB_1.default(41, 16))),\n new Version(36, Int32Array.from([6, 24, 50, 76, 102, 128, 154]), new ECBlocks_1.default(30, new ECB_1.default(6, 121), new ECB_1.default(14, 122)), new ECBlocks_1.default(28, new ECB_1.default(6, 47), new ECB_1.default(34, 48)), new ECBlocks_1.default(30, new ECB_1.default(46, 24), new ECB_1.default(10, 25)), new ECBlocks_1.default(30, new ECB_1.default(2, 15), new ECB_1.default(64, 16))),\n new Version(37, Int32Array.from([6, 28, 54, 80, 106, 132, 158]), new ECBlocks_1.default(30, new ECB_1.default(17, 122), new ECB_1.default(4, 123)), new ECBlocks_1.default(28, new ECB_1.default(29, 46), new ECB_1.default(14, 47)), new ECBlocks_1.default(30, new ECB_1.default(49, 24), new ECB_1.default(10, 25)), new ECBlocks_1.default(30, new ECB_1.default(24, 15), new ECB_1.default(46, 16))),\n new Version(38, Int32Array.from([6, 32, 58, 84, 110, 136, 162]), new ECBlocks_1.default(30, new ECB_1.default(4, 122), new ECB_1.default(18, 123)), new ECBlocks_1.default(28, new ECB_1.default(13, 46), new ECB_1.default(32, 47)), new ECBlocks_1.default(30, new ECB_1.default(48, 24), new ECB_1.default(14, 25)), new ECBlocks_1.default(30, new ECB_1.default(42, 15), new ECB_1.default(32, 16))),\n new Version(39, Int32Array.from([6, 26, 54, 82, 110, 138, 166]), new ECBlocks_1.default(30, new ECB_1.default(20, 117), new ECB_1.default(4, 118)), new ECBlocks_1.default(28, new ECB_1.default(40, 47), new ECB_1.default(7, 48)), new ECBlocks_1.default(30, new ECB_1.default(43, 24), new ECB_1.default(22, 25)), new ECBlocks_1.default(30, new ECB_1.default(10, 15), new ECB_1.default(67, 16))),\n new Version(40, Int32Array.from([6, 30, 58, 86, 114, 142, 170]), new ECBlocks_1.default(30, new ECB_1.default(19, 118), new ECB_1.default(6, 119)), new ECBlocks_1.default(28, new ECB_1.default(18, 47), new ECB_1.default(31, 48)), new ECBlocks_1.default(30, new ECB_1.default(34, 24), new ECB_1.default(34, 25)), new ECBlocks_1.default(30, new ECB_1.default(20, 15), new ECB_1.default(61, 16)))\n ];\n return Version;\n}());\nexports.default = Version;\n//# sourceMappingURL=Version.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar UnsupportedOperationException_1 = require(\"../UnsupportedOperationException\");\nvar CharacterSetECI_1 = require(\"../common/CharacterSetECI\");\n/**\n * Responsible for en/decoding strings.\n */\nvar StringEncoding = /** @class */ (function () {\n function StringEncoding() {\n }\n /**\n * Decodes some Uint8Array to a string format.\n */\n StringEncoding.decode = function (bytes, encoding) {\n var encodingName = this.encodingName(encoding);\n // Increases browser support.\n if (typeof TextDecoder === 'undefined') {\n return this.decodeFallback(bytes, encodingName);\n }\n return new TextDecoder(encodingName).decode(bytes);\n };\n /**\n * Encodes some string into a Uint8Array.\n *\n * @todo natively support other string formats than UTF-8.\n */\n StringEncoding.encode = function (s, encoding) {\n // Uses `text-encoding` package.\n if (!StringEncoding.isBrowser()) {\n // SEE: https://nodejs.org/api/buffer.html#buffer_class_buffer\n // SEE: https://github.com/polygonplanet/encoding.js/\n // SEE: https://stackoverflow.com/questions/17191945/conversion-between-utf-8-arraybuffer-and-string\n var EncoderConstructor = TextEncoder;\n return new EncoderConstructor(this.encodingName(encoding), { NONSTANDARD_allowLegacyEncoding: true }).encode(s);\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 StringEncoding.isBrowser = function () {\n return (typeof window !== 'undefined' && {}.toString.call(window) === '[object Window]');\n };\n /**\n * Returns the string value from some encoding character set.\n */\n StringEncoding.encodingName = function (encoding) {\n return typeof encoding === 'string'\n ? encoding\n : encoding.getName();\n };\n /**\n * Returns character set from some encoding character set.\n */\n StringEncoding.encodingCharacterSet = function (encoding) {\n return CharacterSetECI_1.default.getCharacterSetECIByName(this.encodingName(encoding));\n };\n /**\n * Runs a fallback for the native decoding funcion.\n */\n StringEncoding.decodeFallback = function (bytes, encoding) {\n var characterSet = this.encodingCharacterSet(encoding);\n if (characterSet.equals(CharacterSetECI_1.default.UTF8) ||\n characterSet.equals(CharacterSetECI_1.default.ISO8859_1) ||\n characterSet.equals(CharacterSetECI_1.default.ASCII)) {\n var s = '';\n for (var i = 0, length_1 = bytes.length; i < length_1; i++) {\n var 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_1.default.UnicodeBigUnmarked)) {\n return String.fromCharCode.apply(null, new Uint16Array(bytes.buffer));\n }\n throw new UnsupportedOperationException_1.default(\"Encoding \" + this.encodingName(encoding) + \" not supported by fallback.\");\n };\n /**\n * Runs a fallback for the native encoding funcion.\n *\n * @see https://stackoverflow.com/a/17192845/4367683\n */\n StringEncoding.encodeFallback = function (s) {\n var encodedURIstring = btoa(unescape(encodeURIComponent(s)));\n var charList = encodedURIstring.split('');\n var uintArray = [];\n for (var i = 0; i < charList.length; i++) {\n uintArray.push(charList[i].charCodeAt(0));\n }\n return new Uint8Array(uintArray);\n };\n return StringEncoding;\n}());\nexports.default = StringEncoding;\n//# sourceMappingURL=StringEncoding.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BrowserCodeReader_1 = require(\"./BrowserCodeReader\");\nvar MultiFormatReader_1 = require(\"../core/MultiFormatReader\");\nvar BrowserMultiFormatReader = /** @class */ (function (_super) {\n __extends(BrowserMultiFormatReader, _super);\n function BrowserMultiFormatReader(hints, timeBetweenScansMillis) {\n if (hints === void 0) { hints = null; }\n if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n var _this = this;\n var reader = new MultiFormatReader_1.default();\n reader.setHints(hints);\n _this = _super.call(this, reader, timeBetweenScansMillis) || this;\n return _this;\n }\n /**\n * Overwrite decodeBitmap to call decodeWithState, which will pay\n * attention to the hints set in the constructor function\n */\n BrowserMultiFormatReader.prototype.decodeBitmap = function (binaryBitmap) {\n return this.reader.decodeWithState(binaryBitmap);\n };\n return BrowserMultiFormatReader;\n}(BrowserCodeReader_1.BrowserCodeReader));\nexports.BrowserMultiFormatReader = BrowserMultiFormatReader;\n//# sourceMappingURL=BrowserMultiFormatReader.js.map","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","exports.f = Object.getOwnPropertySymbols;\n","import mod from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--6-oneOf-1-2!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./Scanner.vue?vue&type=style&index=0&id=54df6e7e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--6-oneOf-1-2!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./Scanner.vue?vue&type=style&index=0&id=54df6e7e&scoped=true&lang=css&\"","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common {*/\nvar FormatException_1 = require(\"../FormatException\");\n/*import java.util.HashMap;*/\n/*import java.util.Map;*/\nvar 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 = exports.CharacterSetValueIdentifiers || (exports.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 */\nvar CharacterSetECI = /** @class */ (function () {\n function CharacterSetECI(valueIdentifier, valuesParam, name) {\n var otherEncodingNames = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n otherEncodingNames[_i - 3] = arguments[_i];\n }\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 var values = this.values;\n for (var i = 0, length_1 = values.length; i !== length_1; i++) {\n var v = values[i];\n CharacterSetECI.VALUES_TO_ECI.set(v, this);\n }\n for (var _a = 0, otherEncodingNames_1 = otherEncodingNames; _a < otherEncodingNames_1.length; _a++) {\n var otherName = otherEncodingNames_1[_a];\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 CharacterSetECI.prototype.getValueIdentifier = function () {\n return this.valueIdentifier;\n };\n CharacterSetECI.prototype.getName = function () {\n return this.name;\n };\n CharacterSetECI.prototype.getValue = function () {\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 CharacterSetECI.getCharacterSetECIByValue = function (value /*int*/) {\n if (value < 0 || value >= 900) {\n throw new FormatException_1.default('incorect value');\n }\n var characterSet = CharacterSetECI.VALUES_TO_ECI.get(value);\n if (undefined === characterSet) {\n throw new FormatException_1.default('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 CharacterSetECI.getCharacterSetECIByName = function (name) {\n var characterSet = CharacterSetECI.NAME_TO_ECI.get(name);\n if (undefined === characterSet) {\n throw new FormatException_1.default('incorect value');\n }\n return characterSet;\n };\n CharacterSetECI.prototype.equals = function (o) {\n if (!(o instanceof CharacterSetECI)) {\n return false;\n }\n var other = o;\n return this.getName() === other.getName();\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 return CharacterSetECI;\n}());\nexports.default = CharacterSetECI;\n//# sourceMappingURL=CharacterSetECI.js.map","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar System = /** @class */ (function () {\n function System() {\n }\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 System.arraycopy = function (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 System.currentTimeMillis = function () {\n return Date.now();\n };\n return System;\n}());\nexports.default = System;\n//# sourceMappingURL=System.js.map","!function(t,e){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var n=e();for(var r in n)(\"object\"==typeof exports?exports:t)[r]=n[r]}}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/dist/\",e(e.s=6)}([function(t,e,n){\"use strict\";function r(){d=!1}function i(t){if(!t)return void(f!==m&&(f=m,r()));if(t!==f){if(t.length!==m.length)throw new Error(\"Custom alphabet for shortid must be \"+m.length+\" unique characters. You submitted \"+t.length+\" characters: \"+t);var e=t.split(\"\").filter(function(t,e,n){return e!==n.lastIndexOf(t)});if(e.length)throw new Error(\"Custom alphabet for shortid must be \"+m.length+\" unique characters. These characters were not unique: \"+e.join(\", \"));f=t,r()}}function o(t){return i(t),f}function a(t){h.seed(t),p!==t&&(r(),p=t)}function s(){f||i(m);for(var t,e=f.split(\"\"),n=[],r=h.nextValue();e.length>0;)r=h.nextValue(),t=Math.floor(r*e.length),n.push(e.splice(t,1)[0]);return n.join(\"\")}function c(){return d||(d=s())}function u(t){return c()[t]}function l(){return f||m}var f,p,d,h=n(19),m=\"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-\";t.exports={get:l,characters:o,seed:a,lookup:u,shuffled:c}},function(t,e,n){\"use strict\";var r=n(5),i=n.n(r);e.a={animateIn:function(t){i()({targets:t,translateY:\"-35px\",opacity:1,duration:300,easing:\"easeOutCubic\"})},animateOut:function(t,e){i()({targets:t,opacity:0,marginTop:\"-40px\",duration:300,easing:\"easeOutExpo\",complete:e})},animateOutBottom:function(t,e){i()({targets:t,opacity:0,marginBottom:\"-40px\",duration:300,easing:\"easeOutExpo\",complete:e})},animateReset:function(t){i()({targets:t,left:0,opacity:1,duration:300,easing:\"easeOutExpo\"})},animatePanning:function(t,e,n){i()({targets:t,duration:10,easing:\"easeOutQuad\",left:e,opacity:n})},animatePanEnd:function(t,e){i()({targets:t,opacity:0,duration:300,easing:\"easeOutExpo\",complete:e})},clearAnimation:function(t){var e=i.a.timeline();t.forEach(function(t){e.add({targets:t.el,opacity:0,right:\"-40px\",duration:300,offset:\"-=150\",easing:\"easeOutExpo\",complete:function(){t.remove()}})})}}},function(t,e,n){\"use strict\";t.exports=n(16)},function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return s});var r=n(8),i=n(1),o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},a=n(2);n(11).polyfill();var s=function t(e){var n=this;return this.id=a.generate(),this.options=e,this.cached_options={},this.global={},this.groups=[],this.toasts=[],this.container=null,l(this),u(this),this.group=function(e){e||(e={}),e.globalToasts||(e.globalToasts={}),Object.assign(e.globalToasts,n.global);var r=new t(e);return n.groups.push(r),r},this.register=function(t,e,r){return r=r||{},f(n,t,e,r)},this.show=function(t,e){return c(n,t,e)},this.success=function(t,e){return e=e||{},e.type=\"success\",c(n,t,e)},this.info=function(t,e){return e=e||{},e.type=\"info\",c(n,t,e)},this.error=function(t,e){return e=e||{},e.type=\"error\",c(n,t,e)},this.remove=function(t){n.toasts=n.toasts.filter(function(e){return e.el.hash!==t.hash}),t.parentNode&&t.parentNode.removeChild(t)},this.clear=function(t){return i.a.clearAnimation(n.toasts,function(){t&&t()}),n.toasts=[],!0},this},c=function(t,e,i){i=i||{};var a=null;if(\"object\"!==(void 0===i?\"undefined\":o(i)))return console.error(\"Options should be a type of object. given : \"+i),null;t.options.singleton&&t.toasts.length>0&&(t.cached_options=i,t.toasts[t.toasts.length-1].goAway(0));var s=Object.assign({},t.options);return Object.assign(s,i),a=n.i(r.a)(t,e,s),t.toasts.push(a),a},u=function(t){var e=t.options.globalToasts,n=function(e,n){return\"string\"==typeof n&&t[n]?t[n].apply(t,[e,{}]):c(t,e,n)};e&&(t.global={},Object.keys(e).forEach(function(r){t.global[r]=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e[r].apply(null,[t,n])}}))},l=function(t){var e=document.createElement(\"div\");e.id=t.id,e.setAttribute(\"role\",\"status\"),e.setAttribute(\"aria-live\",\"polite\"),e.setAttribute(\"aria-atomic\",\"false\"),document.body.appendChild(e),t.container=e},f=function(t,e,n,r){t.options.globalToasts||(t.options.globalToasts={}),t.options.globalToasts[e]=function(t,e){var i=null;return\"string\"==typeof n&&(i=n),\"function\"==typeof n&&(i=n(t)),e(i,r)},u(t)}},function(t,e,n){n(22);var r=n(21)(null,null,null,null);t.exports=r.exports},function(t,e,n){(function(n){var r,i,o,a={scope:{}};a.defineProperty=\"function\"==typeof Object.defineProperties?Object.defineProperty:function(t,e,n){if(n.get||n.set)throw new TypeError(\"ES3 does not support getters and setters.\");t!=Array.prototype&&t!=Object.prototype&&(t[e]=n.value)},a.getGlobal=function(t){return\"undefined\"!=typeof window&&window===t?t:void 0!==n&&null!=n?n:t},a.global=a.getGlobal(this),a.SYMBOL_PREFIX=\"jscomp_symbol_\",a.initSymbol=function(){a.initSymbol=function(){},a.global.Symbol||(a.global.Symbol=a.Symbol)},a.symbolCounter_=0,a.Symbol=function(t){return a.SYMBOL_PREFIX+(t||\"\")+a.symbolCounter_++},a.initSymbolIterator=function(){a.initSymbol();var t=a.global.Symbol.iterator;t||(t=a.global.Symbol.iterator=a.global.Symbol(\"iterator\")),\"function\"!=typeof Array.prototype[t]&&a.defineProperty(Array.prototype,t,{configurable:!0,writable:!0,value:function(){return a.arrayIterator(this)}}),a.initSymbolIterator=function(){}},a.arrayIterator=function(t){var e=0;return a.iteratorPrototype(function(){return en&&(n+=1),1n?e:n<2/3?t+(e-t)*(2/3-n)*6:t}var n=/hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(t)||/hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*([\\d.]+)\\)/g.exec(t);t=parseInt(n[1])/360;var r=parseInt(n[2])/100,i=parseInt(n[3])/100,n=n[4]||1;if(0==r)i=r=t=i;else{var o=.5>i?i*(1+r):i+r-i*r,a=2*i-o,i=e(a,o,t+1/3),r=e(a,o,t);t=e(a,o,t-1/3)}return\"rgba(\"+255*i+\",\"+255*r+\",\"+255*t+\",\"+n+\")\"}function f(t){if(t=/([\\+\\-]?[0-9#\\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(t))return t[2]}function p(t){return-1=d.currentTime)for(var x=0;x=h||!e)&&(d.began||(d.began=!0,o(\"begin\")),o(\"run\")),g>s&&g=e&&m!==e||!e)&&(i(e),v||a())),o(\"update\"),t>=e&&(d.remaining?(u=c,\"alternate\"===d.direction&&(d.reversed=!d.reversed)):(d.pause(),d.completed||(d.completed=!0,o(\"complete\"),\"Promise\"in window&&(f(),p=n()))),l=0)}t=void 0===t?{}:t;var c,u,l=0,f=null,p=n(),d=L(t);return d.reset=function(){var t=d.direction,e=d.loop;for(d.currentTime=0,d.progress=0,d.paused=!0,d.began=!1,d.completed=!1,d.reversed=\"reverse\"===t,d.remaining=\"alternate\"===t&&1===e?2:e,i(0),t=d.children.length;t--;)d.children[t].reset()},d.tick=function(t){c=t,u||(u=c),s((l+c-u)*j.speed)},d.seek=function(t){s(r(t))},d.pause=function(){var t=H.indexOf(d);-1=e&&0<=r&&1>=r){var o=new Float32Array(11);if(e!==n||r!==i)for(var a=0;11>a;++a)o[a]=t(.1*a,e,r);return function(a){if(e===n&&r===i)return a;if(0===a)return 0;if(1===a)return 1;for(var s=0,c=1;10!==c&&o[c]<=a;++c)s+=.1;--c;var c=s+(a-o[c])/(o[c+1]-o[c])*.1,u=3*(1-3*r+3*e)*c*c+2*(3*r-6*e)*c+3*e;if(.001<=u){for(s=0;4>s&&0!==(u=3*(1-3*r+3*e)*c*c+2*(3*r-6*e)*c+3*e);++s)var l=t(c,e,r)-a,c=c-l/u;a=c}else if(0===u)a=c;else{var c=s,s=s+.1,f=0;do{l=c+(s-c)/2,u=t(l,e,r)-a,0++f);a=l}return t(a,n,i)}}}}(),z=function(){function t(t,e){return 0===t||1===t?t:-Math.pow(2,10*(t-1))*Math.sin(2*(t-1-e/(2*Math.PI)*Math.asin(1))*Math.PI/e)}var e,n=\"Quad Cubic Quart Quint Sine Expo Circ Back Elastic\".split(\" \"),r={In:[[.55,.085,.68,.53],[.55,.055,.675,.19],[.895,.03,.685,.22],[.755,.05,.855,.06],[.47,0,.745,.715],[.95,.05,.795,.035],[.6,.04,.98,.335],[.6,-.28,.735,.045],t],Out:[[.25,.46,.45,.94],[.215,.61,.355,1],[.165,.84,.44,1],[.23,1,.32,1],[.39,.575,.565,1],[.19,1,.22,1],[.075,.82,.165,1],[.175,.885,.32,1.275],function(e,n){return 1-t(1-e,n)}],InOut:[[.455,.03,.515,.955],[.645,.045,.355,1],[.77,0,.175,1],[.86,0,.07,1],[.445,.05,.55,.95],[1,0,0,1],[.785,.135,.15,.86],[.68,-.55,.265,1.55],function(e,n){return.5>e?t(2*e,n)/2:1-t(-2*e+2,n)/2}]},i={linear:F(.25,.25,.75,.75)},o={};for(e in r)o.type=e,r[o.type].forEach(function(t){return function(e,r){i[\"ease\"+t.type+n[r]]=R.fnc(e)?e:F.apply(s,e)}}(o)),o={type:o.type};return i}(),Y={css:function(t,e,n){return t.style[e]=n},attribute:function(t,e,n){return t.setAttribute(e,n)},object:function(t,e,n){return t[e]=n},transform:function(t,e,n,r,i){r[i]||(r[i]=[]),r[i].push(e+\"(\"+n+\")\")}},H=[],q=0,V=function(){function t(){q=requestAnimationFrame(e)}function e(e){var n=H.length;if(n){for(var r=0;rn&&(e.duration=r.duration),e.children.push(r)}),e.seek(0),e.reset(),e.autoplay&&e.restart(),e},e},j.random=function(t,e){return Math.floor(Math.random()*(e-t+1))+t},j})}).call(e,n(25))},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(3),i=n(4),o=n.n(i),a={install:function(t,e){e||(e={});var n=new r.a(e);t.component(\"toasted\",o.a),t.toasted=t.prototype.$toasted=n}};\"undefined\"!=typeof window&&window.Vue&&(window.Toasted=a),e.default=a},function(t,e,n){\"use strict\";n.d(e,\"a\",function(){return c});var r=n(1),i=this,o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},a=function(t,e,n){return setTimeout(function(){if(n.cached_options.position&&n.cached_options.position.includes(\"bottom\"))return void r.a.animateOutBottom(t,function(){n.remove(t)});r.a.animateOut(t,function(){n.remove(t)})},e),!0},s=function(t,e){return(\"object\"===(\"undefined\"==typeof HTMLElement?\"undefined\":o(HTMLElement))?e instanceof HTMLElement:e&&\"object\"===(void 0===e?\"undefined\":o(e))&&null!==e&&1===e.nodeType&&\"string\"==typeof e.nodeName)?t.appendChild(e):t.innerHTML=e,i},c=function(t,e){var n=!1;return{el:t,text:function(e){return s(t,e),this},goAway:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:800;return n=!0,a(t,r,e)},remove:function(){e.remove(t)},disposed:function(){return n}}}},function(t,e,n){\"use strict\";var r=n(12),i=n.n(r),o=n(1),a=n(7),s=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},c=n(2);String.prototype.includes||Object.defineProperty(String.prototype,\"includes\",{value:function(t,e){return\"number\"!=typeof e&&(e=0),!(e+t.length>this.length)&&-1!==this.indexOf(t,e)}});var u={},l=null,f=function(t){return t.className=t.className||null,t.onComplete=t.onComplete||null,t.position=t.position||\"top-right\",t.duration=t.duration||null,t.keepOnHover=t.keepOnHover||!1,t.theme=t.theme||\"toasted-primary\",t.type=t.type||\"default\",t.containerClass=t.containerClass||null,t.fullWidth=t.fullWidth||!1,t.icon=t.icon||null,t.action=t.action||null,t.fitToScreen=t.fitToScreen||null,t.closeOnSwipe=void 0===t.closeOnSwipe||t.closeOnSwipe,t.iconPack=t.iconPack||\"material\",t.className&&\"string\"==typeof t.className&&(t.className=t.className.split(\" \")),t.className||(t.className=[]),t.theme&&t.className.push(t.theme.trim()),t.type&&t.className.push(t.type),t.containerClass&&\"string\"==typeof t.containerClass&&(t.containerClass=t.containerClass.split(\" \")),t.containerClass||(t.containerClass=[]),t.position&&t.containerClass.push(t.position.trim()),t.fullWidth&&t.containerClass.push(\"full-width\"),t.fitToScreen&&t.containerClass.push(\"fit-to-screen\"),u=t,t},p=function(t,e){var r=document.createElement(\"div\");if(r.classList.add(\"toasted\"),r.hash=c.generate(),e.className&&e.className.forEach(function(t){r.classList.add(t)}),(\"object\"===(\"undefined\"==typeof HTMLElement?\"undefined\":s(HTMLElement))?t instanceof HTMLElement:t&&\"object\"===(void 0===t?\"undefined\":s(t))&&null!==t&&1===t.nodeType&&\"string\"==typeof t.nodeName)?r.appendChild(t):r.innerHTML=t,d(e,r),e.closeOnSwipe){var u=new i.a(r,{prevent_default:!1});u.on(\"pan\",function(t){var e=t.deltaX;r.classList.contains(\"panning\")||r.classList.add(\"panning\");var n=1-Math.abs(e/80);n<0&&(n=0),o.a.animatePanning(r,e,n)}),u.on(\"panend\",function(t){var n=t.deltaX;Math.abs(n)>80?o.a.animatePanEnd(r,function(){\"function\"==typeof e.onComplete&&e.onComplete(),r.parentNode&&l.remove(r)}):(r.classList.remove(\"panning\"),o.a.animateReset(r))})}if(Array.isArray(e.action))e.action.forEach(function(t){var e=m(t,n.i(a.a)(r,l));e&&r.appendChild(e)});else if(\"object\"===s(e.action)){var f=m(e.action,n.i(a.a)(r,l));f&&r.appendChild(f)}return r},d=function(t,e){if(t.icon){var n=document.createElement(\"i\");switch(n.setAttribute(\"aria-hidden\",\"true\"),t.iconPack){case\"fontawesome\":n.classList.add(\"fa\");var r=t.icon.name?t.icon.name:t.icon;r.includes(\"fa-\")?n.classList.add(r.trim()):n.classList.add(\"fa-\"+r.trim());break;case\"mdi\":n.classList.add(\"mdi\");var i=t.icon.name?t.icon.name:t.icon;i.includes(\"mdi-\")?n.classList.add(i.trim()):n.classList.add(\"mdi-\"+i.trim());break;case\"custom-class\":var o=t.icon.name?t.icon.name:t.icon;\"string\"==typeof o?o.split(\" \").forEach(function(t){n.classList.add(t)}):Array.isArray(o)&&o.forEach(function(t){n.classList.add(t.trim())});break;case\"callback\":var a=t.icon&&t.icon instanceof Function?t.icon:null;a&&(n=a(n));break;default:n.classList.add(\"material-icons\"),n.textContent=t.icon.name?t.icon.name:t.icon}t.icon.after&&n.classList.add(\"after\"),h(t,n,e)}},h=function(t,e,n){t.icon&&(t.icon.after&&t.icon.name?n.appendChild(e):(t.icon.name,n.insertBefore(e,n.firstChild)))},m=function(t,e){if(!t)return null;var n=document.createElement(\"a\");if(n.classList.add(\"action\"),n.classList.add(\"ripple\"),t.text&&(n.text=t.text),t.href&&(n.href=t.href),t.target&&(n.target=t.target),t.icon){n.classList.add(\"icon\");var r=document.createElement(\"i\");switch(u.iconPack){case\"fontawesome\":r.classList.add(\"fa\"),t.icon.includes(\"fa-\")?r.classList.add(t.icon.trim()):r.classList.add(\"fa-\"+t.icon.trim());break;case\"mdi\":r.classList.add(\"mdi\"),t.icon.includes(\"mdi-\")?r.classList.add(t.icon.trim()):r.classList.add(\"mdi-\"+t.icon.trim());break;case\"custom-class\":\"string\"==typeof t.icon?t.icon.split(\" \").forEach(function(t){n.classList.add(t)}):Array.isArray(t.icon)&&t.icon.forEach(function(t){n.classList.add(t.trim())});break;default:r.classList.add(\"material-icons\"),r.textContent=t.icon}n.appendChild(r)}return t.class&&(\"string\"==typeof t.class?t.class.split(\" \").forEach(function(t){n.classList.add(t)}):Array.isArray(t.class)&&t.class.forEach(function(t){n.classList.add(t.trim())})),t.push&&n.addEventListener(\"click\",function(n){if(n.preventDefault(),!u.router)return void console.warn(\"[vue-toasted] : Vue Router instance is not attached. please check the docs\");u.router.push(t.push),t.push.dontClose||e.goAway(0)}),t.onClick&&\"function\"==typeof t.onClick&&n.addEventListener(\"click\",function(n){t.onClick&&(n.preventDefault(),t.onClick(n,e))}),n};e.a=function(t,e,r){l=t,r=f(r);var i=l.container;r.containerClass.unshift(\"toasted-container\"),i.className!==r.containerClass.join(\" \")&&(i.className=\"\",r.containerClass.forEach(function(t){i.classList.add(t)}));var s=p(e,r);e&&i.appendChild(s),s.style.opacity=0,o.a.animateIn(s);var c=r.duration,u=void 0;if(null!==c){var d=function(){return setInterval(function(){null===s.parentNode&&window.clearInterval(u),s.classList.contains(\"panning\")||(c-=20),c<=0&&(o.a.animateOut(s,function(){\"function\"==typeof r.onComplete&&r.onComplete(),s.parentNode&&l.remove(s)}),window.clearInterval(u))},20)};u=d(),r.keepOnHover&&(s.addEventListener(\"mouseover\",function(){window.clearInterval(u)}),s.addEventListener(\"mouseout\",function(){u=d()}))}return n.i(a.a)(s,l)}},function(t,e,n){e=t.exports=n(10)(),e.push([t.i,\".toasted{padding:0 20px}.toasted.rounded{border-radius:24px}.toasted .primary,.toasted.toasted-primary{border-radius:2px;min-height:38px;line-height:1.1em;background-color:#353535;padding:6px 20px;font-size:15px;font-weight:300;color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)}.toasted .primary.success,.toasted.toasted-primary.success{background:#4caf50}.toasted .primary.error,.toasted.toasted-primary.error{background:#f44336}.toasted .primary.info,.toasted.toasted-primary.info{background:#3f51b5}.toasted .primary .action,.toasted.toasted-primary .action{color:#a1c2fa}.toasted.bubble{border-radius:30px;min-height:38px;line-height:1.1em;background-color:#ff7043;padding:0 20px;font-size:15px;font-weight:300;color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)}.toasted.bubble.success{background:#4caf50}.toasted.bubble.error{background:#f44336}.toasted.bubble.info{background:#3f51b5}.toasted.bubble .action{color:#8e2b0c}.toasted.outline{border-radius:30px;min-height:38px;line-height:1.1em;background-color:#fff;border:1px solid #676767;padding:0 20px;font-size:15px;color:#676767;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);font-weight:700}.toasted.outline.success{color:#4caf50;border-color:#4caf50}.toasted.outline.error{color:#f44336;border-color:#f44336}.toasted.outline.info{color:#3f51b5;border-color:#3f51b5}.toasted.outline .action{color:#607d8b}.toasted-container{position:fixed;z-index:10000}.toasted-container,.toasted-container.full-width{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.toasted-container.full-width{max-width:86%;width:100%}.toasted-container.full-width.fit-to-screen{min-width:100%}.toasted-container.full-width.fit-to-screen .toasted:first-child{margin-top:0}.toasted-container.full-width.fit-to-screen.top-right{top:0;right:0}.toasted-container.full-width.fit-to-screen.top-left{top:0;left:0}.toasted-container.full-width.fit-to-screen.top-center{top:0;left:0;-webkit-transform:translateX(0);transform:translateX(0)}.toasted-container.full-width.fit-to-screen.bottom-right{right:0;bottom:0}.toasted-container.full-width.fit-to-screen.bottom-left{left:0;bottom:0}.toasted-container.full-width.fit-to-screen.bottom-center{left:0;bottom:0;-webkit-transform:translateX(0);transform:translateX(0)}.toasted-container.top-right{top:10%;right:7%}.toasted-container.top-left{top:10%;left:7%}.toasted-container.top-center{top:10%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.toasted-container.bottom-right{right:5%;bottom:7%}.toasted-container.bottom-left{left:5%;bottom:7%}.toasted-container.bottom-center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);bottom:7%}.toasted-container.bottom-left .toasted,.toasted-container.top-left .toasted{float:left}.toasted-container.bottom-right .toasted,.toasted-container.top-right .toasted{float:right}.toasted-container .toasted{top:35px;width:auto;clear:both;margin-top:10px;position:relative;max-width:100%;height:auto;word-break:normal;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;box-sizing:inherit}.toasted-container .toasted .fa,.toasted-container .toasted .fab,.toasted-container .toasted .far,.toasted-container .toasted .fas,.toasted-container .toasted .material-icons,.toasted-container .toasted .mdi{margin-right:.5rem;margin-left:-.4rem}.toasted-container .toasted .fa.after,.toasted-container .toasted .fab.after,.toasted-container .toasted .far.after,.toasted-container .toasted .fas.after,.toasted-container .toasted .material-icons.after,.toasted-container .toasted .mdi.after{margin-left:.5rem;margin-right:-.4rem}.toasted-container .toasted .action{text-decoration:none;font-size:.8rem;padding:8px;margin:5px -7px 5px 7px;border-radius:3px;text-transform:uppercase;letter-spacing:.03em;font-weight:600;cursor:pointer}.toasted-container .toasted .action.icon{padding:4px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.toasted-container .toasted .action.icon .fa,.toasted-container .toasted .action.icon .material-icons,.toasted-container .toasted .action.icon .mdi{margin-right:0;margin-left:4px}.toasted-container .toasted .action.icon:hover{text-decoration:none}.toasted-container .toasted .action:hover{text-decoration:underline}@media only screen and (max-width:600px){.toasted-container{min-width:100%}.toasted-container .toasted:first-child{margin-top:0}.toasted-container.top-right{top:0;right:0}.toasted-container.top-left{top:0;left:0}.toasted-container.top-center{top:0;left:0;-webkit-transform:translateX(0);transform:translateX(0)}.toasted-container.bottom-right{right:0;bottom:0}.toasted-container.bottom-left{left:0;bottom:0}.toasted-container.bottom-center{left:0;bottom:0;-webkit-transform:translateX(0);transform:translateX(0)}.toasted-container.bottom-center,.toasted-container.top-center{-ms-flex-align:stretch!important;align-items:stretch!important}.toasted-container.bottom-left .toasted,.toasted-container.bottom-right .toasted,.toasted-container.top-left .toasted,.toasted-container.top-right .toasted{float:none}.toasted-container .toasted{border-radius:0}}\",\"\"])},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\",o=i.console&&(i.console.warn||i.console.log);return o&&o.call(i.console,r,n),t.apply(this,arguments)}}function p(t,e,n){var r,i=e.prototype;r=t.prototype=Object.create(i),r.constructor=t,r._super=i,n&&ht(r,n)}function d(t,e){return function(){return t.apply(e,arguments)}}function h(t,e){return typeof t==gt?t.apply(e?e[0]||s:s,e):t}function m(t,e){return t===s?e:t}function v(t,e,n){l(x(e),function(e){t.addEventListener(e,n,!1)})}function g(t,e,n){l(x(e),function(e){t.removeEventListener(e,n,!1)})}function y(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function b(t,e){return t.indexOf(e)>-1}function x(t){return t.trim().split(/\\s+/g)}function T(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var r=0;rn[e]}):r.sort()),r}function C(t,e){for(var n,r,i=e[0].toUpperCase()+e.slice(1),o=0;o1&&!n.firstMultiple?n.firstMultiple=j(e):1===i&&(n.firstMultiple=!1);var o=n.firstInput,a=n.firstMultiple,s=a?a.center:o.center,c=e.center=N(r);e.timeStamp=xt(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=R(s,c),e.distance=D(s,c),P(n,e),e.offsetDirection=X(e.deltaX,e.deltaY);var u=_(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=u.x,e.overallVelocityY=u.y,e.overallVelocity=bt(u.x)>bt(u.y)?u.x:u.y,e.scale=a?z(a.pointers,r):1,e.rotation=a?F(a.pointers,r):0,e.maxPointers=n.prevInput?e.pointers.length>n.prevInput.maxPointers?e.pointers.length:n.prevInput.maxPointers:e.pointers.length,L(n,e);var l=t.element;y(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var n=e.center,r=t.offsetDelta||{},i=t.prevDelta||{},o=t.prevInput||{};e.eventType!==Mt&&o.eventType!==Pt||(i=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},r=t.offsetDelta={x:n.x,y:n.y}),e.deltaX=i.x+(n.x-r.x),e.deltaY=i.y+(n.y-r.y)}function L(t,e){var n,r,i,o,a=t.lastInterval||e,c=e.timeStamp-a.timeStamp;if(e.eventType!=Lt&&(c>It||a.velocity===s)){var u=e.deltaX-a.deltaX,l=e.deltaY-a.deltaY,f=_(c,u,l);r=f.x,i=f.y,n=bt(f.x)>bt(f.y)?f.x:f.y,o=X(u,l),t.lastInterval=e}else n=a.velocity,r=a.velocityX,i=a.velocityY,o=a.direction;e.velocity=n,e.velocityX=r,e.velocityY=i,e.direction=o}function j(t){for(var e=[],n=0;n=bt(e)?t<0?Nt:_t:e<0?Xt:Dt}function D(t,e,n){n||(n=Yt);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return Math.sqrt(r*r+i*i)}function R(t,e,n){n||(n=Yt);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return 180*Math.atan2(i,r)/Math.PI}function F(t,e){return R(e[1],e[0],Ht)+R(t[1],t[0],Ht)}function z(t,e){return D(e[0],e[1],Ht)/D(t[0],t[1],Ht)}function Y(){this.evEl=Vt,this.evWin=Wt,this.pressed=!1,A.apply(this,arguments)}function H(){this.evEl=$t,this.evWin=Gt,A.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function q(){this.evTarget=Qt,this.evWin=Jt,this.started=!1,A.apply(this,arguments)}function V(t,e){var n=w(t.touches),r=w(t.changedTouches);return e&(Pt|Lt)&&(n=E(n.concat(r),\"identifier\",!0)),[n,r]}function W(){this.evTarget=te,this.targetIds={},A.apply(this,arguments)}function U(t,e){var n=w(t.touches),r=this.targetIds;if(e&(Mt|kt)&&1===n.length)return r[n[0].identifier]=!0,[n,n];var i,o,a=w(t.changedTouches),s=[],c=this.target;if(o=n.filter(function(t){return y(t.target,c)}),e===Mt)for(i=0;i-1&&r.splice(t,1)};setTimeout(i,ee)}}function Z(t){for(var e=t.srcEvent.clientX,n=t.srcEvent.clientY,r=0;r-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){n.manager.emit(e,t)}var n=this,r=this.state;r=he&&e(n.options.event+tt(r))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&i&e.direction},attrTest:function(t){return rt.prototype.attrTest.call(this,t)&&(this.state&pe||!(this.state&pe)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=et(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),p(ot,rt,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[se]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&pe)},emit:function(t){if(1!==t.scale){var e=t.scale<1?\"in\":\"out\";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),p(at,K,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[oe]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distancee.time;if(this._input=t,!r||!n||t.eventType&(Pt|Lt)&&!i)this.reset();else if(t.eventType&Mt)this.reset(),this._timer=c(function(){this.state=me,this.tryEmit()},e.time,this);else if(t.eventType&Pt)return me;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===me&&(t&&t.eventType&Pt?this.manager.emit(this.options.event+\"up\",t):(this._input.timeStamp=xt(),this.manager.emit(this.options.event,this._input)))}}),p(st,rt,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[se]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&pe)}}),p(ct,rt,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:Rt|Ft,pointers:1},getTouchAction:function(){return it.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return n&(Rt|Ft)?e=t.overallVelocity:n&Rt?e=t.overallVelocityX:n&Ft&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&bt(e)>this.options.velocity&&t.eventType&Pt},emit:function(t){var e=et(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),p(ut,K,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ae]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distance0&&(e+=a(i)),e+=a(n)}var i,o,a=n(15),s=(n(0),1567752802062),c=7;t.exports=r},function(t,e,n){\"use strict\";function r(t){for(var e,n=0,r=\"\";!e;)r+=a(o,i.get(),1),e=tn.parts.length&&(r.parts.length=n.parts.length)}else{for(var a=[],i=0;i 0 ? floor : ceil)(argument);\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DefaultGridSampler_1 = require(\"./DefaultGridSampler\");\nvar GridSamplerInstance = /** @class */ (function () {\n function GridSamplerInstance() {\n }\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 GridSamplerInstance.setGridSampler = function (newGridSampler) {\n GridSamplerInstance.gridSampler = newGridSampler;\n };\n /**\n * @return the current implementation of GridSampler\n */\n GridSamplerInstance.getInstance = function () {\n return GridSamplerInstance.gridSampler;\n };\n GridSamplerInstance.gridSampler = new DefaultGridSampler_1.default();\n return GridSamplerInstance;\n}());\nexports.default = GridSamplerInstance;\n//# sourceMappingURL=GridSamplerInstance.js.map","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DataCharacter_1 = require(\"./DataCharacter\");\nvar Pair = /** @class */ (function (_super) {\n __extends(Pair, _super);\n function Pair(value, checksumPortion, finderPattern) {\n var _this = _super.call(this, value, checksumPortion) || this;\n _this.count = 0;\n _this.finderPattern = finderPattern;\n return _this;\n }\n Pair.prototype.getFinderPattern = function () {\n return this.finderPattern;\n };\n Pair.prototype.getCount = function () {\n return this.count;\n };\n Pair.prototype.incrementCount = function () {\n this.count++;\n };\n return Pair;\n}(DataCharacter_1.default));\nexports.default = Pair;\n//# sourceMappingURL=Pair.js.map","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","\"use strict\";\n/*\n * Direct port to TypeScript of ZXing by Adrian Toșcă\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 */\nvar 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 = {}));\nexports.default = BarcodeFormat;\n//# sourceMappingURL=BarcodeFormat.js.map","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","\"use strict\";\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\nvar Result_1 = require(\"../Result\");\nvar ResultMetadataType_1 = require(\"../ResultMetadataType\");\nvar ResultPoint_1 = require(\"../ResultPoint\");\nvar OneDReader_1 = require(\"./OneDReader\");\nvar UPCEANExtensionSupport_1 = require(\"./UPCEANExtensionSupport\");\nvar NotFoundException_1 = require(\"../NotFoundException\");\nvar FormatException_1 = require(\"../FormatException\");\nvar ChecksumException_1 = require(\"../ChecksumException\");\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 */\nvar UPCEANReader = /** @class */ (function (_super) {\n __extends(UPCEANReader, _super);\n // private final UPCEANExtensionSupport extensionReader;\n // private final EANManufacturerOrgSupport eanManSupport;\n function UPCEANReader() {\n var _this = _super.call(this) || this;\n _this.decodeRowStringBuffer = '';\n _this.decodeRowStringBuffer = '';\n UPCEANReader.L_AND_G_PATTERNS = UPCEANReader.L_PATTERNS.map(function (arr) {\n return arr.slice();\n });\n for (var i = 10; i < 20; i++) {\n var widths = UPCEANReader.L_PATTERNS[i - 10];\n var reversedWidths = new Array(widths.length);\n for (var 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 return _this;\n }\n /*\n protected UPCEANReader() {\n decodeRowStringBuffer = new StringBuilder(20);\n extensionReader = new UPCEANExtensionSupport();\n eanManSupport = new EANManufacturerOrgSupport();\n }\n */\n UPCEANReader.findStartGuardPattern = function (row) {\n var foundStart = false;\n var startRange = null;\n var nextStart = 0;\n var counters = [0, 0, 0];\n while (!foundStart) {\n counters = [0, 0, 0];\n startRange = UPCEANReader.findGuardPattern(row, nextStart, false, this.START_END_PATTERN, counters);\n var start = startRange[0];\n nextStart = startRange[1];\n var quietStart = start - (nextStart - start);\n if (quietStart >= 0) {\n foundStart = row.isRange(quietStart, start, false);\n }\n }\n return startRange;\n };\n UPCEANReader.prototype.decodeRow = function (rowNumber, row, hints) {\n var startGuardRange = UPCEANReader.findStartGuardPattern(row);\n var resultPointCallback = hints == null ? null : hints.get(DecodeHintType_1.default.NEED_RESULT_POINT_CALLBACK);\n if (resultPointCallback != null) {\n var resultPoint_1 = new ResultPoint_1.default((startGuardRange[0] + startGuardRange[1]) / 2.0, rowNumber);\n resultPointCallback.foundPossibleResultPoint(resultPoint_1);\n }\n var budello = this.decodeMiddle(row, startGuardRange, this.decodeRowStringBuffer);\n var endStart = budello.rowOffset;\n var result = budello.resultString;\n if (resultPointCallback != null) {\n var resultPoint_2 = new ResultPoint_1.default(endStart, rowNumber);\n resultPointCallback.foundPossibleResultPoint(resultPoint_2);\n }\n var endRange = UPCEANReader.decodeEnd(row, endStart);\n if (resultPointCallback != null) {\n var resultPoint_3 = new ResultPoint_1.default((endRange[0] + endRange[1]) / 2.0, rowNumber);\n resultPointCallback.foundPossibleResultPoint(resultPoint_3);\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 var end = endRange[1];\n var quietEnd = end + (end - endRange[0]);\n if (quietEnd >= row.getSize() || !row.isRange(end, quietEnd, false)) {\n throw new NotFoundException_1.default();\n }\n var resultString = result.toString();\n // UPC/EAN should never be less than 8 chars anyway\n if (resultString.length < 8) {\n throw new FormatException_1.default();\n }\n if (!UPCEANReader.checkChecksum(resultString)) {\n throw new ChecksumException_1.default();\n }\n var left = (startGuardRange[1] + startGuardRange[0]) / 2.0;\n var right = (endRange[1] + endRange[0]) / 2.0;\n var format = this.getBarcodeFormat();\n var resultPoint = [new ResultPoint_1.default(left, rowNumber), new ResultPoint_1.default(right, rowNumber)];\n var decodeResult = new Result_1.default(resultString, null, 0, resultPoint, format, new Date().getTime());\n var extensionLength = 0;\n try {\n var extensionResult = UPCEANExtensionSupport_1.default.decodeRow(rowNumber, row, endRange[1]);\n decodeResult.putMetadata(ResultMetadataType_1.default.UPC_EAN_EXTENSION, extensionResult.getText());\n decodeResult.putAllMetadata(extensionResult.getResultMetadata());\n decodeResult.addResultPoints(extensionResult.getResultPoints());\n extensionLength = extensionResult.getText().length;\n }\n catch (err) {\n }\n var allowedExtensions = hints == null ? null : hints.get(DecodeHintType_1.default.ALLOWED_EAN_EXTENSIONS);\n if (allowedExtensions != null) {\n var valid = false;\n for (var length_1 in allowedExtensions) {\n if (extensionLength.toString() === length_1) { // check me\n valid = true;\n break;\n }\n }\n if (!valid) {\n throw new NotFoundException_1.default();\n }\n }\n if (format === BarcodeFormat_1.default.EAN_13 || format === BarcodeFormat_1.default.UPC_A) {\n // let countryID = eanManSupport.lookupContryIdentifier(resultString); todo\n // if (countryID != null) {\n // decodeResult.putMetadata(ResultMetadataType.POSSIBLE_COUNTRY, countryID);\n // }\n }\n return decodeResult;\n };\n UPCEANReader.checkChecksum = function (s) {\n return UPCEANReader.checkStandardUPCEANChecksum(s);\n };\n UPCEANReader.checkStandardUPCEANChecksum = function (s) {\n var length = s.length;\n if (length === 0)\n return false;\n var check = parseInt(s.charAt(length - 1), 10);\n return UPCEANReader.getStandardUPCEANChecksum(s.substring(0, length - 1)) === check;\n };\n UPCEANReader.getStandardUPCEANChecksum = function (s) {\n var length = s.length;\n var sum = 0;\n for (var i = length - 1; i >= 0; i -= 2) {\n var digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n if (digit < 0 || digit > 9) {\n throw new FormatException_1.default();\n }\n sum += digit;\n }\n sum *= 3;\n for (var i = length - 2; i >= 0; i -= 2) {\n var digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\n if (digit < 0 || digit > 9) {\n throw new FormatException_1.default();\n }\n sum += digit;\n }\n return (1000 - sum) % 10;\n };\n UPCEANReader.decodeEnd = function (row, endStart) {\n return UPCEANReader.findGuardPattern(row, endStart, false, UPCEANReader.START_END_PATTERN, new Array(UPCEANReader.START_END_PATTERN.length).fill(0));\n };\n UPCEANReader.findGuardPattern = function (row, rowOffset, whiteFirst, pattern, counters) {\n var width = row.getSize();\n rowOffset = whiteFirst ? row.getNextUnset(rowOffset) : row.getNextSet(rowOffset);\n var counterPosition = 0;\n var patternStart = rowOffset;\n var patternLength = pattern.length;\n var isWhite = whiteFirst;\n for (var 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_1.default.patternMatchVariance(counters, pattern, UPCEANReader.MAX_INDIVIDUAL_VARIANCE) < UPCEANReader.MAX_AVG_VARIANCE) {\n return [patternStart, x];\n }\n patternStart += counters[0] + counters[1];\n var slice = counters.slice(2, counters.length);\n for (var 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_1.default();\n };\n UPCEANReader.decodeDigit = function (row, counters, rowOffset, patterns) {\n this.recordPattern(row, rowOffset, counters);\n var bestVariance = this.MAX_AVG_VARIANCE;\n var bestMatch = -1;\n var max = patterns.length;\n for (var i = 0; i < max; i++) {\n var pattern = patterns[i];\n var variance = OneDReader_1.default.patternMatchVariance(counters, pattern, UPCEANReader.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_1.default();\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 UPCEANReader.MAX_AVG_VARIANCE = 0.48;\n UPCEANReader.MAX_INDIVIDUAL_VARIANCE = 0.7;\n /**\n * Start/end guard pattern.\n */\n UPCEANReader.START_END_PATTERN = [1, 1, 1];\n /**\n * Pattern marking the middle of a UPC/EAN pattern, separating the two halves.\n */\n UPCEANReader.MIDDLE_PATTERN = [1, 1, 1, 1, 1];\n /**\n * end guard pattern.\n */\n UPCEANReader.END_PATTERN = [1, 1, 1, 1, 1, 1];\n /**\n * \"Odd\", or \"L\" patterns used to encode UPC/EAN digits.\n */\n UPCEANReader.L_PATTERNS = [\n [3, 2, 1, 1],\n [2, 2, 2, 1],\n [2, 1, 2, 2],\n [1, 4, 1, 1],\n [1, 1, 3, 2],\n [1, 2, 3, 1],\n [1, 1, 1, 4],\n [1, 3, 1, 2],\n [1, 2, 1, 3],\n [3, 1, 1, 2],\n ];\n return UPCEANReader;\n}(OneDReader_1.default));\nexports.default = UPCEANReader;\n//# sourceMappingURL=UPCEANReader.js.map","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = require('./lib/axios');","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ReedSolomonDecoder_1 = require(\"../../common/reedsolomon/ReedSolomonDecoder\");\nvar GenericGF_1 = require(\"../../common/reedsolomon/GenericGF\");\nvar BitMatrixParser_1 = require(\"./BitMatrixParser\");\nvar DataBlock_1 = require(\"./DataBlock\");\nvar DecodedBitStreamParser_1 = require(\"./DecodedBitStreamParser\");\nvar ChecksumException_1 = require(\"../../ChecksumException\");\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 *

The 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 */\nvar Decoder = /** @class */ (function () {\n function Decoder() {\n this.rsDecoder = new ReedSolomonDecoder_1.default(GenericGF_1.default.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 Decoder.prototype.decode = function (bits) {\n // Construct a parser and read version, error-correction level\n var parser = new BitMatrixParser_1.default(bits);\n var version = parser.getVersion();\n // Read codewords\n var codewords = parser.readCodewords();\n // Separate into data blocks\n var dataBlocks = DataBlock_1.default.getDataBlocks(codewords, version);\n // Count total number of data bytes\n var totalBytes = 0;\n for (var _i = 0, dataBlocks_1 = dataBlocks; _i < dataBlocks_1.length; _i++) {\n var db = dataBlocks_1[_i];\n totalBytes += db.getNumDataCodewords();\n }\n var resultBytes = new Uint8Array(totalBytes);\n var dataBlocksCount = dataBlocks.length;\n // Error-correct and copy data blocks together into a stream of bytes\n for (var j = 0; j < dataBlocksCount; j++) {\n var dataBlock = dataBlocks[j];\n var codewordBytes = dataBlock.getCodewords();\n var numDataCodewords = dataBlock.getNumDataCodewords();\n this.correctErrors(codewordBytes, numDataCodewords);\n for (var 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_1.default.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 Decoder.prototype.correctErrors = function (codewordBytes, numDataCodewords) {\n var numCodewords = codewordBytes.length;\n // First read into an array of ints\n var 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_1.default();\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 (var i = 0; i < numDataCodewords; i++) {\n codewordBytes[i] = codewordsInts[i];\n }\n };\n return Decoder;\n}());\nexports.default = Decoder;\n//# sourceMappingURL=Decoder.js.map","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Integer = /** @class */ (function () {\n function Integer() {\n }\n Integer.numberOfTrailingZeros = function (i) {\n var y;\n if (i === 0)\n return 32;\n var 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 Integer.numberOfLeadingZeros = function (i) {\n // HD, Figure 5-6\n if (i === 0) {\n return 32;\n }\n var 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 Integer.toHexString = function (i) {\n return i.toString(16);\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 Integer.bitCount = function (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 Integer.MIN_VALUE_32_BITS = -2147483648;\n return Integer;\n}());\nexports.default = Integer;\n//# sourceMappingURL=Integer.js.map","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","module.exports = false;\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Exception_1 = require(\"./Exception\");\n/**\n * Custom Error class of type Exception.\n */\nvar NotFoundException = /** @class */ (function (_super) {\n __extends(NotFoundException, _super);\n function NotFoundException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return NotFoundException;\n}(Exception_1.default));\nexports.default = NotFoundException;\n//# sourceMappingURL=NotFoundException.js.map","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar StringBuilder_1 = require(\"./util/StringBuilder\");\nvar UnsupportedOperationException_1 = require(\"./UnsupportedOperationException\");\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 */\nvar LuminanceSource = /** @class */ (function () {\n function LuminanceSource(width /*int*/, height /*int*/) {\n this.width = width;\n this.height = height;\n }\n /**\n * @return The width of the bitmap.\n */\n LuminanceSource.prototype.getWidth = function () {\n return this.width;\n };\n /**\n * @return The height of the bitmap.\n */\n LuminanceSource.prototype.getHeight = function () {\n return this.height;\n };\n /**\n * @return Whether this subclass supports cropping.\n */\n LuminanceSource.prototype.isCropSupported = function () {\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 LuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n throw new UnsupportedOperationException_1.default('This luminance source does not support cropping.');\n };\n /**\n * @return Whether this subclass supports counter-clockwise rotation.\n */\n LuminanceSource.prototype.isRotateSupported = function () {\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 LuminanceSource.prototype.rotateCounterClockwise = function () {\n throw new UnsupportedOperationException_1.default('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 LuminanceSource.prototype.rotateCounterClockwise45 = function () {\n throw new UnsupportedOperationException_1.default('This luminance source does not support rotation by 45 degrees.');\n };\n /*@Override*/\n LuminanceSource.prototype.toString = function () {\n var row = new Uint8ClampedArray(this.width);\n var result = new StringBuilder_1.default();\n for (var y = 0; y < this.height; y++) {\n var sourceRow = this.getRow(y, row);\n for (var x = 0; x < this.width; x++) {\n var luminance = sourceRow[x] & 0xFF;\n var c = void 0;\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 return LuminanceSource;\n}());\nexports.default = LuminanceSource;\n//# sourceMappingURL=LuminanceSource.js.map","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","module.exports = {};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\n/**\n * @author Satoru Takabayashi\n * @author Daniel Switkin\n * @author Sean Owen\n */\nvar MaskUtil = /** @class */ (function () {\n function MaskUtil() {\n // do nothing\n }\n /**\n * Apply mask penalty rule 1 and return the penalty. Find repetitive cells with the same color and\n * give penalty to them. Example: 00000 or 11111.\n */\n MaskUtil.applyMaskPenaltyRule1 = function (matrix) {\n return MaskUtil.applyMaskPenaltyRule1Internal(matrix, true) + MaskUtil.applyMaskPenaltyRule1Internal(matrix, false);\n };\n /**\n * Apply mask penalty rule 2 and return the penalty. Find 2x2 blocks with the same color and give\n * penalty to them. This is actually equivalent to the spec's rule, which is to find MxN blocks and give a\n * penalty proportional to (M-1)x(N-1), because this is the number of 2x2 blocks inside such a block.\n */\n MaskUtil.applyMaskPenaltyRule2 = function (matrix) {\n var penalty = 0;\n var array = matrix.getArray();\n var width = matrix.getWidth();\n var height = matrix.getHeight();\n for (var y = 0; y < height - 1; y++) {\n var arrayY = array[y];\n for (var x = 0; x < width - 1; x++) {\n var value = arrayY[x];\n if (value === arrayY[x + 1] && value === array[y + 1][x] && value === array[y + 1][x + 1]) {\n penalty++;\n }\n }\n }\n return MaskUtil.N2 * penalty;\n };\n /**\n * Apply mask penalty rule 3 and return the penalty. Find consecutive runs of 1:1:3:1:1:4\n * starting with black, or 4:1:1:3:1:1 starting with white, and give penalty to them. If we\n * find patterns like 000010111010000, we give penalty once.\n */\n MaskUtil.applyMaskPenaltyRule3 = function (matrix) {\n var numPenalties = 0;\n var array = matrix.getArray();\n var width = matrix.getWidth();\n var height = matrix.getHeight();\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var arrayY = array[y]; // We can at least optimize this access\n if (x + 6 < width &&\n arrayY[x] === 1 &&\n arrayY[x + 1] === 0 &&\n arrayY[x + 2] === 1 &&\n arrayY[x + 3] === 1 &&\n arrayY[x + 4] === 1 &&\n arrayY[x + 5] === 0 &&\n arrayY[x + 6] === 1 &&\n (MaskUtil.isWhiteHorizontal(arrayY, x - 4, x) || MaskUtil.isWhiteHorizontal(arrayY, x + 7, x + 11))) {\n numPenalties++;\n }\n if (y + 6 < height &&\n array[y][x] === 1 &&\n array[y + 1][x] === 0 &&\n array[y + 2][x] === 1 &&\n array[y + 3][x] === 1 &&\n array[y + 4][x] === 1 &&\n array[y + 5][x] === 0 &&\n array[y + 6][x] === 1 &&\n (MaskUtil.isWhiteVertical(array, x, y - 4, y) || MaskUtil.isWhiteVertical(array, x, y + 7, y + 11))) {\n numPenalties++;\n }\n }\n }\n return numPenalties * MaskUtil.N3;\n };\n MaskUtil.isWhiteHorizontal = function (rowArray, from /*int*/, to /*int*/) {\n from = Math.max(from, 0);\n to = Math.min(to, rowArray.length);\n for (var i = from; i < to; i++) {\n if (rowArray[i] === 1) {\n return false;\n }\n }\n return true;\n };\n MaskUtil.isWhiteVertical = function (array, col /*int*/, from /*int*/, to /*int*/) {\n from = Math.max(from, 0);\n to = Math.min(to, array.length);\n for (var i = from; i < to; i++) {\n if (array[i][col] === 1) {\n return false;\n }\n }\n return true;\n };\n /**\n * Apply mask penalty rule 4 and return the penalty. Calculate the ratio of dark cells and give\n * penalty if the ratio is far from 50%. It gives 10 penalty for 5% distance.\n */\n MaskUtil.applyMaskPenaltyRule4 = function (matrix) {\n var numDarkCells = 0;\n var array = matrix.getArray();\n var width = matrix.getWidth();\n var height = matrix.getHeight();\n for (var y = 0; y < height; y++) {\n var arrayY = array[y];\n for (var x = 0; x < width; x++) {\n if (arrayY[x] === 1) {\n numDarkCells++;\n }\n }\n }\n var numTotalCells = matrix.getHeight() * matrix.getWidth();\n var fivePercentVariances = Math.floor(Math.abs(numDarkCells * 2 - numTotalCells) * 10 / numTotalCells);\n return fivePercentVariances * MaskUtil.N4;\n };\n /**\n * Return the mask bit for \"getMaskPattern\" at \"x\" and \"y\". See 8.8 of JISX0510:2004 for mask\n * pattern conditions.\n */\n MaskUtil.getDataMaskBit = function (maskPattern /*int*/, x /*int*/, y /*int*/) {\n var intermediate; /*int*/\n var temp; /*int*/\n switch (maskPattern) {\n case 0:\n intermediate = (y + x) & 0x1;\n break;\n case 1:\n intermediate = y & 0x1;\n break;\n case 2:\n intermediate = x % 3;\n break;\n case 3:\n intermediate = (y + x) % 3;\n break;\n case 4:\n intermediate = (Math.floor(y / 2) + Math.floor(x / 3)) & 0x1;\n break;\n case 5:\n temp = y * x;\n intermediate = (temp & 0x1) + (temp % 3);\n break;\n case 6:\n temp = y * x;\n intermediate = ((temp & 0x1) + (temp % 3)) & 0x1;\n break;\n case 7:\n temp = y * x;\n intermediate = ((temp % 3) + ((y + x) & 0x1)) & 0x1;\n break;\n default:\n throw new IllegalArgumentException_1.default('Invalid mask pattern: ' + maskPattern);\n }\n return intermediate === 0;\n };\n /**\n * Helper function for applyMaskPenaltyRule1. We need this for doing this calculation in both\n * vertical and horizontal orders respectively.\n */\n MaskUtil.applyMaskPenaltyRule1Internal = function (matrix, isHorizontal) {\n var penalty = 0;\n var iLimit = isHorizontal ? matrix.getHeight() : matrix.getWidth();\n var jLimit = isHorizontal ? matrix.getWidth() : matrix.getHeight();\n var array = matrix.getArray();\n for (var i = 0; i < iLimit; i++) {\n var numSameBitCells = 0;\n var prevBit = -1;\n for (var j = 0; j < jLimit; j++) {\n var bit = isHorizontal ? array[i][j] : array[j][i];\n if (bit === prevBit) {\n numSameBitCells++;\n }\n else {\n if (numSameBitCells >= 5) {\n penalty += MaskUtil.N1 + (numSameBitCells - 5);\n }\n numSameBitCells = 1; // Include the cell itself.\n prevBit = bit;\n }\n }\n if (numSameBitCells >= 5) {\n penalty += MaskUtil.N1 + (numSameBitCells - 5);\n }\n }\n return penalty;\n };\n // Penalty weights from section 6.8.2.1\n MaskUtil.N1 = 3;\n MaskUtil.N2 = 3;\n MaskUtil.N3 = 40;\n MaskUtil.N4 = 10;\n return MaskUtil;\n}());\nexports.default = MaskUtil;\n//# sourceMappingURL=MaskUtil.js.map","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// import DataMatrixWriter from './datamatrix/DataMatrixWriter'\n// import CodaBarWriter from './oned/CodaBarWriter'\n// import Code128Writer from './oned/Code128Writer'\n// import Code39Writer from './oned/Code39Writer'\n// import Code93Writer from './oned/Code93Writer'\n// import EAN13Writer from './oned/EAN13Writer'\n// import EAN8Writer from './oned/EAN8Writer'\n// import ITFWriter from './oned/ITFWriter'\n// import UPCAWriter from './oned/UPCAWriter'\n// import UPCEWriter from './oned/UPCEWriter'\n// import PDF417Writer from './pdf417/PDF417Writer'\nvar QRCodeWriter_1 = require(\"./qrcode/QRCodeWriter\");\nvar BarcodeFormat_1 = require(\"./BarcodeFormat\");\nvar IllegalArgumentException_1 = require(\"./IllegalArgumentException\");\n/*import java.util.Map;*/\n/**\n * This is a factory class which finds the appropriate Writer subclass for the BarcodeFormat\n * requested and encodes the barcode with the supplied contents.\n *\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar MultiFormatWriter = /** @class */ (function () {\n function MultiFormatWriter() {\n }\n /*@Override*/\n // public encode(contents: string,\n // format: BarcodeFormat,\n // width: number /*int*/,\n // height: number /*int*/): BitMatrix /*throws WriterException */ {\n // return encode(contents, format, width, height, null)\n // }\n /*@Override*/\n MultiFormatWriter.prototype.encode = function (contents, format, width /*int*/, height /*int*/, hints) {\n var writer;\n switch (format) {\n // case BarcodeFormat.EAN_8:\n // writer = new EAN8Writer()\n // break\n // case BarcodeFormat.UPC_E:\n // writer = new UPCEWriter()\n // break\n // case BarcodeFormat.EAN_13:\n // writer = new EAN13Writer()\n // break\n // case BarcodeFormat.UPC_A:\n // writer = new UPCAWriter()\n // break\n case BarcodeFormat_1.default.QR_CODE:\n writer = new QRCodeWriter_1.default();\n break;\n // case BarcodeFormat.CODE_39:\n // writer = new Code39Writer()\n // break\n // case BarcodeFormat.CODE_93:\n // writer = new Code93Writer()\n // break\n // case BarcodeFormat.CODE_128:\n // writer = new Code128Writer()\n // break\n // case BarcodeFormat.ITF:\n // writer = new ITFWriter()\n // break\n // case BarcodeFormat.PDF_417:\n // writer = new PDF417Writer()\n // break\n // case BarcodeFormat.CODABAR:\n // writer = new CodaBarWriter()\n // break\n // case BarcodeFormat.DATA_MATRIX:\n // writer = new DataMatrixWriter()\n // break\n // case BarcodeFormat.AZTEC:\n // writer = new AztecWriter()\n // break\n default:\n throw new IllegalArgumentException_1.default('No encoder available for format ' + format);\n }\n return writer.encode(contents, format, width, height, hints);\n };\n return MultiFormatWriter;\n}());\nexports.default = MultiFormatWriter;\n//# sourceMappingURL=MultiFormatWriter.js.map","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar InvertedLuminanceSource_1 = require(\"../core/InvertedLuminanceSource\");\nvar LuminanceSource_1 = require(\"../core/LuminanceSource\");\nvar IllegalArgumentException_1 = require(\"../core/IllegalArgumentException\");\n/**\n * @deprecated Moving to @zxing/browser\n */\nvar HTMLCanvasElementLuminanceSource = /** @class */ (function (_super) {\n __extends(HTMLCanvasElementLuminanceSource, _super);\n function HTMLCanvasElementLuminanceSource(canvas) {\n var _this = _super.call(this, canvas.width, canvas.height) || this;\n _this.canvas = canvas;\n _this.tempCanvasElement = null;\n _this.buffer = HTMLCanvasElementLuminanceSource.makeBufferFromCanvasImageData(canvas);\n return _this;\n }\n HTMLCanvasElementLuminanceSource.makeBufferFromCanvasImageData = function (canvas) {\n var imageData = canvas.getContext('2d').getImageData(0, 0, canvas.width, canvas.height);\n return HTMLCanvasElementLuminanceSource.toGrayscaleBuffer(imageData.data, canvas.width, canvas.height);\n };\n HTMLCanvasElementLuminanceSource.toGrayscaleBuffer = function (imageBuffer, width, height) {\n var grayscaleBuffer = new Uint8ClampedArray(width * height);\n for (var i = 0, j = 0, length_1 = imageBuffer.length; i < length_1; i += 4, j++) {\n var gray = void 0;\n var 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 var pixelR = imageBuffer[i];\n var pixelG = imageBuffer[i + 1];\n var 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 HTMLCanvasElementLuminanceSource.prototype.getRow = function (y /*int*/, row) {\n if (y < 0 || y >= this.getHeight()) {\n throw new IllegalArgumentException_1.default('Requested row is outside the image: ' + y);\n }\n var width = this.getWidth();\n var 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 HTMLCanvasElementLuminanceSource.prototype.getMatrix = function () {\n return this.buffer;\n };\n HTMLCanvasElementLuminanceSource.prototype.isCropSupported = function () {\n return true;\n };\n HTMLCanvasElementLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n this.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 HTMLCanvasElementLuminanceSource.prototype.isRotateSupported = function () {\n return true;\n };\n HTMLCanvasElementLuminanceSource.prototype.rotateCounterClockwise = function () {\n this.rotate(-90);\n return this;\n };\n HTMLCanvasElementLuminanceSource.prototype.rotateCounterClockwise45 = function () {\n this.rotate(-45);\n return this;\n };\n HTMLCanvasElementLuminanceSource.prototype.getTempCanvasElement = function () {\n if (null === this.tempCanvasElement) {\n var 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 HTMLCanvasElementLuminanceSource.prototype.rotate = function (angle) {\n var tempCanvasElement = this.getTempCanvasElement();\n var tempContext = tempCanvasElement.getContext('2d');\n var angleRadians = angle * HTMLCanvasElementLuminanceSource.DEGREE_TO_RADIANS;\n // Calculate and set new dimensions for temp canvas\n var width = this.canvas.width;\n var height = this.canvas.height;\n var newWidth = Math.ceil(Math.abs(Math.cos(angleRadians)) * width + Math.abs(Math.sin(angleRadians)) * height);\n var 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 HTMLCanvasElementLuminanceSource.prototype.invert = function () {\n return new InvertedLuminanceSource_1.default(this);\n };\n HTMLCanvasElementLuminanceSource.DEGREE_TO_RADIANS = Math.PI / 180;\n return HTMLCanvasElementLuminanceSource;\n}(LuminanceSource_1.default));\nexports.HTMLCanvasElementLuminanceSource = HTMLCanvasElementLuminanceSource;\n//# sourceMappingURL=HTMLCanvasElementLuminanceSource.js.map","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Exception_1 = require(\"./Exception\");\n/**\n * Custom Error class of type Exception.\n */\nvar IllegalArgumentException = /** @class */ (function (_super) {\n __extends(IllegalArgumentException, _super);\n function IllegalArgumentException() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return IllegalArgumentException;\n}(Exception_1.default));\nexports.default = IllegalArgumentException;\n//# sourceMappingURL=IllegalArgumentException.js.map","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","module.exports = {};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.qrcode {*/\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\nvar Result_1 = require(\"../Result\");\nvar ResultMetadataType_1 = require(\"../ResultMetadataType\");\nvar BitMatrix_1 = require(\"../common/BitMatrix\");\nvar Decoder_1 = require(\"./decoder/Decoder\");\nvar QRCodeDecoderMetaData_1 = require(\"./decoder/QRCodeDecoderMetaData\");\nvar Detector_1 = require(\"./detector/Detector\");\nvar NotFoundException_1 = require(\"../NotFoundException\");\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 */\nvar QRCodeReader = /** @class */ (function () {\n function QRCodeReader() {\n this.decoder = new Decoder_1.default();\n }\n QRCodeReader.prototype.getDecoder = function () {\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 QRCodeReader.prototype.decode = function (image, hints) {\n var decoderResult;\n var points;\n if (hints !== undefined && hints !== null && undefined !== hints.get(DecodeHintType_1.default.PURE_BARCODE)) {\n var bits = QRCodeReader.extractPureBits(image.getBlackMatrix());\n decoderResult = this.decoder.decodeBitMatrix(bits, hints);\n points = QRCodeReader.NO_POINTS;\n }\n else {\n var detectorResult = new Detector_1.default(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_1.default) {\n decoderResult.getOther().applyMirroredCorrection(points);\n }\n var result = new Result_1.default(decoderResult.getText(), decoderResult.getRawBytes(), undefined, points, BarcodeFormat_1.default.QR_CODE, undefined);\n var byteSegments = decoderResult.getByteSegments();\n if (byteSegments !== null) {\n result.putMetadata(ResultMetadataType_1.default.BYTE_SEGMENTS, byteSegments);\n }\n var ecLevel = decoderResult.getECLevel();\n if (ecLevel !== null) {\n result.putMetadata(ResultMetadataType_1.default.ERROR_CORRECTION_LEVEL, ecLevel);\n }\n if (decoderResult.hasStructuredAppend()) {\n result.putMetadata(ResultMetadataType_1.default.STRUCTURED_APPEND_SEQUENCE, decoderResult.getStructuredAppendSequenceNumber());\n result.putMetadata(ResultMetadataType_1.default.STRUCTURED_APPEND_PARITY, decoderResult.getStructuredAppendParity());\n }\n return result;\n };\n /*@Override*/\n QRCodeReader.prototype.reset = function () {\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 QRCodeReader.extractPureBits = function (image) {\n var leftTopBlack = image.getTopLeftOnBit();\n var rightBottomBlack = image.getBottomRightOnBit();\n if (leftTopBlack === null || rightBottomBlack === null) {\n throw new NotFoundException_1.default();\n }\n var moduleSize = this.moduleSize(leftTopBlack, image);\n var top = leftTopBlack[1];\n var bottom = rightBottomBlack[1];\n var left = leftTopBlack[0];\n var right = rightBottomBlack[0];\n // Sanity check!\n if (left >= right || top >= bottom) {\n throw new NotFoundException_1.default();\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_1.default();\n }\n }\n var matrixWidth = Math.round((right - left + 1) / moduleSize);\n var matrixHeight = Math.round((bottom - top + 1) / moduleSize);\n if (matrixWidth <= 0 || matrixHeight <= 0) {\n throw new NotFoundException_1.default();\n }\n if (matrixHeight !== matrixWidth) {\n // Only possibly decode square regions\n throw new NotFoundException_1.default();\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 var 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 var 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_1.default();\n }\n left -= nudgedTooFarRight;\n }\n // See logic above\n var 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_1.default();\n }\n top -= nudgedTooFarDown;\n }\n // Now just read off the bits\n var bits = new BitMatrix_1.default(matrixWidth, matrixHeight);\n for (var y = 0; y < matrixHeight; y++) {\n var iOffset = top + /*(int) */ Math.floor(y * moduleSize);\n for (var 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 QRCodeReader.moduleSize = function (leftTopBlack, image) {\n var height = image.getHeight();\n var width = image.getWidth();\n var x = leftTopBlack[0];\n var y = leftTopBlack[1];\n var inBlack = true;\n var 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_1.default();\n }\n return (x - leftTopBlack[0]) / 7.0;\n };\n QRCodeReader.NO_POINTS = new Array();\n return QRCodeReader;\n}());\nexports.default = QRCodeReader;\n//# sourceMappingURL=QRCodeReader.js.map","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","\"use strict\";\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\nvar OneDReader_1 = require(\"./OneDReader\");\nvar EAN13Reader_1 = require(\"./EAN13Reader\");\nvar EAN8Reader_1 = require(\"./EAN8Reader\");\nvar NotFoundException_1 = require(\"../NotFoundException\");\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 */\nvar MultiFormatUPCEANReader = /** @class */ (function (_super) {\n __extends(MultiFormatUPCEANReader, _super);\n function MultiFormatUPCEANReader(hints) {\n var _this = _super.call(this) || this;\n var possibleFormats = hints == null ? null : hints.get(DecodeHintType_1.default.POSSIBLE_FORMATS);\n var readers = [];\n if (possibleFormats != null) {\n if (possibleFormats.indexOf(BarcodeFormat_1.default.EAN_13) > -1) {\n readers.push(new EAN13Reader_1.default());\n }\n if (possibleFormats.indexOf(BarcodeFormat_1.default.EAN_8) > -1) {\n readers.push(new EAN8Reader_1.default());\n }\n // todo add UPC_A, UPC_E\n }\n if (readers.length === 0) {\n readers.push(new EAN13Reader_1.default());\n readers.push(new EAN8Reader_1.default());\n // todo add UPC_A, UPC_E\n }\n _this.readers = readers;\n return _this;\n }\n MultiFormatUPCEANReader.prototype.decodeRow = function (rowNumber, row, hints) {\n for (var _i = 0, _a = this.readers; _i < _a.length; _i++) {\n var reader = _a[_i];\n try {\n return reader.decodeRow(rowNumber, row, hints);\n // TODO ean13MayBeUPCA\n }\n catch (err) {\n // continue;\n }\n }\n throw new NotFoundException_1.default();\n };\n MultiFormatUPCEANReader.prototype.reset = function () {\n for (var _i = 0, _a = this.readers; _i < _a.length; _i++) {\n var reader = _a[_i];\n reader.reset();\n }\n };\n return MultiFormatUPCEANReader;\n}(OneDReader_1.default));\nexports.default = MultiFormatUPCEANReader;\n//# sourceMappingURL=MultiFormatUPCEANReader.js.map","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * RSS util functions.\n */\nvar RSSUtils = /** @class */ (function () {\n function RSSUtils() {\n }\n RSSUtils.prototype.RSSUtils = function () { };\n RSSUtils.getRSSvalue = function (widths, maxWidth, noNarrow) {\n var n = 0;\n for (var _i = 0, widths_1 = widths; _i < widths_1.length; _i++) {\n var width = widths_1[_i];\n n += width;\n }\n var val = 0;\n var narrowMask = 0;\n var elements = widths.length;\n for (var bar = 0; bar < elements - 1; bar++) {\n var elmWidth = void 0;\n for (elmWidth = 1, narrowMask |= 1 << bar; elmWidth < widths[bar]; elmWidth++, narrowMask &= ~(1 << bar)) {\n var 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 var lessVal = 0;\n for (var 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 RSSUtils.combins = function (n, r) {\n var maxDenom;\n var 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 var val = 1;\n var j = 1;\n for (var 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 return RSSUtils;\n}());\nexports.default = RSSUtils;\n//# sourceMappingURL=RSSUtils.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar OneDReader_1 = require(\"../OneDReader\");\nvar NotFoundException_1 = require(\"../../NotFoundException\");\nvar MathUtils_1 = require(\"../../common/detector/MathUtils\");\nvar AbstractRSSReader = /** @class */ (function (_super) {\n __extends(AbstractRSSReader, _super);\n function AbstractRSSReader() {\n var _this = _super.call(this) || this;\n _this.decodeFinderCounters = new Array(4);\n _this.dataCharacterCounters = new Array(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 return _this;\n }\n AbstractRSSReader.prototype.getDecodeFinderCounters = function () {\n return this.decodeFinderCounters;\n };\n AbstractRSSReader.prototype.getDataCharacterCounters = function () {\n return this.dataCharacterCounters;\n };\n AbstractRSSReader.prototype.getOddRoundingErrors = function () {\n return this.oddRoundingErrors;\n };\n AbstractRSSReader.prototype.getEvenRoundingErrors = function () {\n return this.evenRoundingErrors;\n };\n AbstractRSSReader.prototype.getOddCounts = function () {\n return this.oddCounts;\n };\n AbstractRSSReader.prototype.getEvenCounts = function () {\n return this.evenCounts;\n };\n AbstractRSSReader.prototype.parseFinderValue = function (counters, finderPatterns) {\n for (var value = 0; value < finderPatterns.length; value++) {\n if (OneDReader_1.default.patternMatchVariance(counters, finderPatterns[value], AbstractRSSReader.MAX_INDIVIDUAL_VARIANCE) < AbstractRSSReader.MAX_AVG_VARIANCE) {\n return value;\n }\n }\n throw new NotFoundException_1.default();\n };\n /**\n * @param array values to sum\n * @return sum of values\n * @deprecated call {@link MathUtils#sum(int[])}\n */\n AbstractRSSReader.count = function (array) {\n return MathUtils_1.default.sum(new Int32Array(array));\n };\n AbstractRSSReader.increment = function (array, errors) {\n var index = 0;\n var biggestError = errors[0];\n for (var 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 AbstractRSSReader.decrement = function (array, errors) {\n var index = 0;\n var biggestError = errors[0];\n for (var 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 AbstractRSSReader.isFinderPattern = function (counters) {\n var firstTwoSum = counters[0] + counters[1];\n var sum = firstTwoSum + counters[2] + counters[3];\n var 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 var minCounter = Number.MAX_SAFE_INTEGER;\n var maxCounter = Number.MIN_SAFE_INTEGER;\n for (var _i = 0, counters_1 = counters; _i < counters_1.length; _i++) {\n var counter = counters_1[_i];\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 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 return AbstractRSSReader;\n}(OneDReader_1.default));\nexports.default = AbstractRSSReader;\n//# sourceMappingURL=AbstractRSSReader.js.map","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common.detector {*/\n/**\n * General math-related and numeric utility functions.\n */\nvar MathUtils = /** @class */ (function () {\n function MathUtils() {\n }\n MathUtils.prototype.MathUtils = function () {\n };\n /**\n * Ends up being a bit faster than {@link Math#round(float)}. This merely rounds its\n * argument to the nearest int, where x.5 rounds up to x+1. Semantics of this shortcut\n * differ slightly from {@link Math#round(float)} in that half rounds down for negative\n * values. -2.5 rounds to -3, not -2. For purposes here it makes no difference.\n *\n * @param d real value to round\n * @return nearest {@code int}\n */\n MathUtils.round = function (d /*float*/) {\n if (NaN === d)\n return 0;\n if (d <= Number.MIN_SAFE_INTEGER)\n return Number.MIN_SAFE_INTEGER;\n if (d >= Number.MAX_SAFE_INTEGER)\n return Number.MAX_SAFE_INTEGER;\n return /*(int) */ (d + (d < 0.0 ? -0.5 : 0.5)) | 0;\n };\n // TYPESCRIPTPORT: maybe remove round method and call directly Math.round, it looks like it doesn't make sense for js\n /**\n * @param aX point A x coordinate\n * @param aY point A y coordinate\n * @param bX point B x coordinate\n * @param bY point B y coordinate\n * @return Euclidean distance between points A and B\n */\n MathUtils.distance = function (aX /*float|int*/, aY /*float|int*/, bX /*float|int*/, bY /*float|int*/) {\n var xDiff = aX - bX;\n var yDiff = aY - bY;\n return /*(float) */ Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n };\n /**\n * @param aX point A x coordinate\n * @param aY point A y coordinate\n * @param bX point B x coordinate\n * @param bY point B y coordinate\n * @return Euclidean distance between points A and B\n */\n // public static distance(aX: number /*int*/, aY: number /*int*/, bX: number /*int*/, bY: number /*int*/): float {\n // const xDiff = aX - bX\n // const yDiff = aY - bY\n // return (float) Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n // }\n /**\n * @param array values to sum\n * @return sum of values in array\n */\n MathUtils.sum = function (array) {\n var count = 0;\n for (var i = 0, length_1 = array.length; i !== length_1; i++) {\n var a = array[i];\n count += a;\n }\n return count;\n };\n return MathUtils;\n}());\nexports.default = MathUtils;\n//# sourceMappingURL=MathUtils.js.map","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DataCharacter = /** @class */ (function () {\n function DataCharacter(value, checksumPortion) {\n this.value = value;\n this.checksumPortion = checksumPortion;\n }\n DataCharacter.prototype.getValue = function () {\n return this.value;\n };\n DataCharacter.prototype.getChecksumPortion = function () {\n return this.checksumPortion;\n };\n DataCharacter.prototype.toString = function () {\n return this.value + '(' + this.checksumPortion + ')';\n };\n DataCharacter.prototype.equals = function (o) {\n if (!(o instanceof DataCharacter)) {\n return false;\n }\n var that = o;\n return this.value === that.value && this.checksumPortion === that.checksumPortion;\n };\n DataCharacter.prototype.hashCode = function () {\n return this.value ^ this.checksumPortion;\n };\n return DataCharacter;\n}());\nexports.default = DataCharacter;\n//# sourceMappingURL=DataCharacter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * @deprecated Moving to @zxing/browser\n *\n * Video input device metadata containing the id and label of the device if available.\n */\nvar VideoInputDevice = /** @class */ (function () {\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 function VideoInputDevice(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 VideoInputDevice.prototype.toJSON = function () {\n return {\n kind: this.kind,\n groupId: this.groupId,\n deviceId: this.deviceId,\n label: this.label,\n };\n };\n return VideoInputDevice;\n}());\nexports.VideoInputDevice = VideoInputDevice;\n//# sourceMappingURL=VideoInputDevice.js.map","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 */\nvar 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 = {}));\nexports.default = DecodeHintType;\n//# sourceMappingURL=DecodeHintType.js.map","\"use strict\";\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 */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LuminanceSource_1 = require(\"./LuminanceSource\");\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 */\nvar InvertedLuminanceSource = /** @class */ (function (_super) {\n __extends(InvertedLuminanceSource, _super);\n function InvertedLuminanceSource(delegate) {\n var _this = _super.call(this, delegate.getWidth(), delegate.getHeight()) || this;\n _this.delegate = delegate;\n return _this;\n }\n /*@Override*/\n InvertedLuminanceSource.prototype.getRow = function (y /*int*/, row) {\n var sourceRow = this.delegate.getRow(y, row);\n var width = this.getWidth();\n for (var i = 0; i < width; i++) {\n sourceRow[i] = /*(byte)*/ (255 - (sourceRow[i] & 0xFF));\n }\n return sourceRow;\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.getMatrix = function () {\n var matrix = this.delegate.getMatrix();\n var length = this.getWidth() * this.getHeight();\n var invertedMatrix = new Uint8ClampedArray(length);\n for (var i = 0; i < length; i++) {\n invertedMatrix[i] = /*(byte)*/ (255 - (matrix[i] & 0xFF));\n }\n return invertedMatrix;\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.isCropSupported = function () {\n return this.delegate.isCropSupported();\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n return new InvertedLuminanceSource(this.delegate.crop(left, top, width, height));\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.isRotateSupported = function () {\n return this.delegate.isRotateSupported();\n };\n /**\n * @return original delegate {@link LuminanceSource} since invert undoes itself\n */\n /*@Override*/\n InvertedLuminanceSource.prototype.invert = function () {\n return this.delegate;\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.rotateCounterClockwise = function () {\n return new InvertedLuminanceSource(this.delegate.rotateCounterClockwise());\n };\n /*@Override*/\n InvertedLuminanceSource.prototype.rotateCounterClockwise45 = function () {\n return new InvertedLuminanceSource(this.delegate.rotateCounterClockwise45());\n };\n return InvertedLuminanceSource;\n}(LuminanceSource_1.default));\nexports.default = InvertedLuminanceSource;\n//# sourceMappingURL=InvertedLuminanceSource.js.map","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar DecodeHintType_1 = require(\"./DecodeHintType\");\nvar BarcodeFormat_1 = require(\"./BarcodeFormat\");\nvar QRCodeReader_1 = require(\"./qrcode/QRCodeReader\");\nvar MultiFormatOneDReader_1 = require(\"./oned/MultiFormatOneDReader\");\nvar DataMatrixReader_1 = require(\"./datamatrix/DataMatrixReader\");\nvar NotFoundException_1 = require(\"./NotFoundException\");\nvar ReaderException_1 = require(\"./ReaderException\");\n/*namespace com.google.zxing {*/\n/**\n * MultiFormatReader is a convenience class and the main entry point into the library for most uses.\n * By default it attempts to decode all barcode formats that the library supports. Optionally, you\n * can provide a hints object to request different behavior, for example only decoding QR codes.\n *\n * @author Sean Owen\n * @author dswitkin@google.com (Daniel Switkin)\n */\nvar MultiFormatReader = /** @class */ (function () {\n function MultiFormatReader() {\n }\n /**\n * This version of decode honors the intent of Reader.decode(BinaryBitmap) in that it\n * passes null as a hint to the decoders. However, that makes it inefficient to call repeatedly.\n * Use setHints() followed by decodeWithState() for continuous scan applications.\n *\n * @param image The pixel data to decode\n * @return The contents of the image\n *\n * @throws NotFoundException Any errors which occurred\n */\n /*@Override*/\n // public decode(image: BinaryBitmap): Result {\n // setHints(null)\n // return decodeInternal(image)\n // }\n /**\n * Decode an image using the hints provided. Does not honor existing state.\n *\n * @param image The pixel data to decode\n * @param hints The hints to use, clearing the previous state.\n * @return The contents of the image\n *\n * @throws NotFoundException Any errors which occurred\n */\n /*@Override*/\n MultiFormatReader.prototype.decode = function (image, hints) {\n this.setHints(hints);\n return this.decodeInternal(image);\n };\n /**\n * Decode an image using the state set up by calling setHints() previously. Continuous scan\n * clients will get a large speed increase by using this instead of decode().\n *\n * @param image The pixel data to decode\n * @return The contents of the image\n *\n * @throws NotFoundException Any errors which occurred\n */\n MultiFormatReader.prototype.decodeWithState = function (image) {\n // Make sure to set up the default state so we don't crash\n if (this.readers === null || this.readers === undefined) {\n this.setHints(null);\n }\n return this.decodeInternal(image);\n };\n /**\n * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls\n * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This\n * is important for performance in continuous scan clients.\n *\n * @param hints The set of hints to use for subsequent calls to decode(image)\n */\n MultiFormatReader.prototype.setHints = function (hints) {\n this.hints = hints;\n var tryHarder = hints !== null && hints !== undefined && undefined !== hints.get(DecodeHintType_1.default.TRY_HARDER);\n /*@SuppressWarnings(\"unchecked\")*/\n var formats = hints === null || hints === undefined ? null : hints.get(DecodeHintType_1.default.POSSIBLE_FORMATS);\n var readers = new Array();\n if (formats !== null && formats !== undefined) {\n var addOneDReader = formats.some(function (f) {\n return f === BarcodeFormat_1.default.UPC_A ||\n f === BarcodeFormat_1.default.UPC_E ||\n f === BarcodeFormat_1.default.EAN_13 ||\n f === BarcodeFormat_1.default.EAN_8 ||\n f === BarcodeFormat_1.default.CODABAR ||\n f === BarcodeFormat_1.default.CODE_39 ||\n f === BarcodeFormat_1.default.CODE_93 ||\n f === BarcodeFormat_1.default.CODE_128 ||\n f === BarcodeFormat_1.default.ITF ||\n f === BarcodeFormat_1.default.RSS_14 ||\n f === BarcodeFormat_1.default.RSS_EXPANDED;\n });\n // Put 1D readers upfront in \"normal\" mode\n // TYPESCRIPTPORT: TODO: uncomment below as they are ported\n if (addOneDReader && !tryHarder) {\n readers.push(new MultiFormatOneDReader_1.default(hints));\n }\n if (formats.includes(BarcodeFormat_1.default.QR_CODE)) {\n readers.push(new QRCodeReader_1.default());\n }\n if (formats.includes(BarcodeFormat_1.default.DATA_MATRIX)) {\n readers.push(new DataMatrixReader_1.default());\n }\n // if (formats.includes(BarcodeFormat.AZTEC)) {\n // readers.push(new AztecReader())\n // }\n // if (formats.includes(BarcodeFormat.PDF_417)) {\n // readers.push(new PDF417Reader())\n // }\n // if (formats.includes(BarcodeFormat.MAXICODE)) {\n // readers.push(new MaxiCodeReader())\n // }\n // At end in \"try harder\" mode\n if (addOneDReader && tryHarder) {\n readers.push(new MultiFormatOneDReader_1.default(hints));\n }\n }\n if (readers.length === 0) {\n if (!tryHarder) {\n readers.push(new MultiFormatOneDReader_1.default(hints));\n }\n readers.push(new QRCodeReader_1.default());\n readers.push(new DataMatrixReader_1.default());\n // readers.push(new AztecReader())\n // readers.push(new PDF417Reader())\n // readers.push(new MaxiCodeReader())\n if (tryHarder) {\n readers.push(new MultiFormatOneDReader_1.default(hints));\n }\n }\n this.readers = readers; // .toArray(new Reader[readers.size()])\n };\n /*@Override*/\n MultiFormatReader.prototype.reset = function () {\n if (this.readers !== null) {\n for (var _i = 0, _a = this.readers; _i < _a.length; _i++) {\n var reader = _a[_i];\n reader.reset();\n }\n }\n };\n /**\n * @throws NotFoundException\n */\n MultiFormatReader.prototype.decodeInternal = function (image) {\n if (this.readers === null) {\n throw new ReaderException_1.default('No readers where selected, nothing can be read.');\n }\n for (var _i = 0, _a = this.readers; _i < _a.length; _i++) {\n var reader = _a[_i];\n // Trying to decode with ${reader} reader.\n try {\n return reader.decode(image, this.hints);\n }\n catch (ex) {\n if (ex instanceof ReaderException_1.default) {\n continue;\n }\n // Bad Exception.\n }\n }\n throw new NotFoundException_1.default('No MultiFormat Readers were able to detect the code.');\n };\n return MultiFormatReader;\n}());\nexports.default = MultiFormatReader;\n//# sourceMappingURL=MultiFormatReader.js.map","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// browser\n__export(require(\"./browser/BrowserBarcodeReader\"));\n__export(require(\"./browser/BrowserCodeReader\"));\n__export(require(\"./browser/BrowserDatamatrixCodeReader\"));\n__export(require(\"./browser/BrowserMultiFormatReader\"));\n__export(require(\"./browser/BrowserQRCodeReader\"));\n__export(require(\"./browser/BrowserQRCodeSvgWriter\"));\n__export(require(\"./browser/HTMLCanvasElementLuminanceSource\"));\n__export(require(\"./browser/VideoInputDevice\"));\n// Exceptions\nvar ArgumentException_1 = require(\"./core/ArgumentException\");\nexports.ArgumentException = ArgumentException_1.default;\nvar ArithmeticException_1 = require(\"./core/ArithmeticException\");\nexports.ArithmeticException = ArithmeticException_1.default;\nvar ChecksumException_1 = require(\"./core/ChecksumException\");\nexports.ChecksumException = ChecksumException_1.default;\nvar Exception_1 = require(\"./core/Exception\");\nexports.Exception = Exception_1.default;\nvar FormatException_1 = require(\"./core/FormatException\");\nexports.FormatException = FormatException_1.default;\nvar IllegalArgumentException_1 = require(\"./core/IllegalArgumentException\");\nexports.IllegalArgumentException = IllegalArgumentException_1.default;\nvar IllegalStateException_1 = require(\"./core/IllegalStateException\");\nexports.IllegalStateException = IllegalStateException_1.default;\nvar NotFoundException_1 = require(\"./core/NotFoundException\");\nexports.NotFoundException = NotFoundException_1.default;\nvar ReaderException_1 = require(\"./core/ReaderException\");\nexports.ReaderException = ReaderException_1.default;\nvar ReedSolomonException_1 = require(\"./core/ReedSolomonException\");\nexports.ReedSolomonException = ReedSolomonException_1.default;\nvar UnsupportedOperationException_1 = require(\"./core/UnsupportedOperationException\");\nexports.UnsupportedOperationException = UnsupportedOperationException_1.default;\nvar WriterException_1 = require(\"./core/WriterException\");\nexports.WriterException = WriterException_1.default;\n// core\nvar BarcodeFormat_1 = require(\"./core/BarcodeFormat\");\nexports.BarcodeFormat = BarcodeFormat_1.default;\nvar Binarizer_1 = require(\"./core/Binarizer\");\nexports.Binarizer = Binarizer_1.default;\nvar BinaryBitmap_1 = require(\"./core/BinaryBitmap\");\nexports.BinaryBitmap = BinaryBitmap_1.default;\nvar DecodeHintType_1 = require(\"./core/DecodeHintType\");\nexports.DecodeHintType = DecodeHintType_1.default;\nvar InvertedLuminanceSource_1 = require(\"./core/InvertedLuminanceSource\");\nexports.InvertedLuminanceSource = InvertedLuminanceSource_1.default;\nvar LuminanceSource_1 = require(\"./core/LuminanceSource\");\nexports.LuminanceSource = LuminanceSource_1.default;\nvar MultiFormatReader_1 = require(\"./core/MultiFormatReader\");\nexports.MultiFormatReader = MultiFormatReader_1.default;\nvar MultiFormatWriter_1 = require(\"./core/MultiFormatWriter\");\nexports.MultiFormatWriter = MultiFormatWriter_1.default;\nvar PlanarYUVLuminanceSource_1 = require(\"./core/PlanarYUVLuminanceSource\");\nexports.PlanarYUVLuminanceSource = PlanarYUVLuminanceSource_1.default;\nvar Result_1 = require(\"./core/Result\");\nexports.Result = Result_1.default;\nvar ResultMetadataType_1 = require(\"./core/ResultMetadataType\");\nexports.ResultMetadataType = ResultMetadataType_1.default;\nvar RGBLuminanceSource_1 = require(\"./core/RGBLuminanceSource\");\nexports.RGBLuminanceSource = RGBLuminanceSource_1.default;\n// core/common\nvar BitArray_1 = require(\"./core/common/BitArray\");\nexports.BitArray = BitArray_1.default;\nvar BitMatrix_1 = require(\"./core/common/BitMatrix\");\nexports.BitMatrix = BitMatrix_1.default;\nvar BitSource_1 = require(\"./core/common/BitSource\");\nexports.BitSource = BitSource_1.default;\nvar CharacterSetECI_1 = require(\"./core/common/CharacterSetECI\");\nexports.CharacterSetECI = CharacterSetECI_1.default;\nvar DecoderResult_1 = require(\"./core/common/DecoderResult\");\nexports.DecoderResult = DecoderResult_1.default;\nvar DefaultGridSampler_1 = require(\"./core/common/DefaultGridSampler\");\nexports.DefaultGridSampler = DefaultGridSampler_1.default;\nvar DetectorResult_1 = require(\"./core/common/DetectorResult\");\nexports.DetectorResult = DetectorResult_1.default;\nvar EncodeHintType_1 = require(\"./core/EncodeHintType\");\nexports.EncodeHintType = EncodeHintType_1.default;\nvar GlobalHistogramBinarizer_1 = require(\"./core/common/GlobalHistogramBinarizer\");\nexports.GlobalHistogramBinarizer = GlobalHistogramBinarizer_1.default;\nvar GridSampler_1 = require(\"./core/common/GridSampler\");\nexports.GridSampler = GridSampler_1.default;\nvar GridSamplerInstance_1 = require(\"./core/common/GridSamplerInstance\");\nexports.GridSamplerInstance = GridSamplerInstance_1.default;\nvar HybridBinarizer_1 = require(\"./core/common/HybridBinarizer\");\nexports.HybridBinarizer = HybridBinarizer_1.default;\nvar PerspectiveTransform_1 = require(\"./core/common/PerspectiveTransform\");\nexports.PerspectiveTransform = PerspectiveTransform_1.default;\nvar StringUtils_1 = require(\"./core/common/StringUtils\");\nexports.StringUtils = StringUtils_1.default;\n// core/common/detector\nvar MathUtils_1 = require(\"./core/common/detector/MathUtils\");\nexports.MathUtils = MathUtils_1.default;\n// export { default as MonochromeRectangleDetector } from './core/common/detector/MonochromeRectangleDetector';\nvar WhiteRectangleDetector_1 = require(\"./core/common/detector/WhiteRectangleDetector\");\nexports.WhiteRectangleDetector = WhiteRectangleDetector_1.default;\n// core/common/reedsolomon\nvar GenericGF_1 = require(\"./core/common/reedsolomon/GenericGF\");\nexports.GenericGF = GenericGF_1.default;\nvar GenericGFPoly_1 = require(\"./core/common/reedsolomon/GenericGFPoly\");\nexports.GenericGFPoly = GenericGFPoly_1.default;\nvar ReedSolomonDecoder_1 = require(\"./core/common/reedsolomon/ReedSolomonDecoder\");\nexports.ReedSolomonDecoder = ReedSolomonDecoder_1.default;\nvar ReedSolomonEncoder_1 = require(\"./core/common/reedsolomon/ReedSolomonEncoder\");\nexports.ReedSolomonEncoder = ReedSolomonEncoder_1.default;\n// core/datamatrix\nvar DataMatrixReader_1 = require(\"./core/datamatrix/DataMatrixReader\");\nexports.DataMatrixReader = DataMatrixReader_1.default;\n// core/twod/qrcode\nvar QRCodeReader_1 = require(\"./core/qrcode/QRCodeReader\");\nexports.QRCodeReader = QRCodeReader_1.default;\nvar QRCodeWriter_1 = require(\"./core/qrcode/QRCodeWriter\");\nexports.QRCodeWriter = QRCodeWriter_1.default;\nvar ErrorCorrectionLevel_1 = require(\"./core/qrcode/decoder/ErrorCorrectionLevel\");\nexports.QRCodeDecoderErrorCorrectionLevel = ErrorCorrectionLevel_1.default;\nvar Encoder_1 = require(\"./core/qrcode/encoder/Encoder\");\nexports.QRCodeEncoder = Encoder_1.default;\nvar QRCode_1 = require(\"./core/qrcode/encoder/QRCode\");\nexports.QRCodeEncoderQRCode = QRCode_1.default;\n// core/oned\nvar OneDReader_1 = require(\"./core/oned/OneDReader\");\nexports.OneDReader = OneDReader_1.default;\nvar EAN13Reader_1 = require(\"./core/oned/EAN13Reader\");\nexports.EAN13Reader = EAN13Reader_1.default;\nvar Code128Reader_1 = require(\"./core/oned/Code128Reader\");\nexports.Code128Reader = Code128Reader_1.default;\nvar ITFReader_1 = require(\"./core/oned/ITFReader\");\nexports.ITFReader = ITFReader_1.default;\nvar Code39Reader_1 = require(\"./core/oned/Code39Reader\");\nexports.Code39Reader = Code39Reader_1.default;\nvar RSS14Reader_1 = require(\"./core/oned/rss/RSS14Reader\");\nexports.RSS14Reader = RSS14Reader_1.default;\nvar MultiFormatOneDReader_1 = require(\"./core/oned/MultiFormatOneDReader\");\nexports.MultiformatReader = MultiFormatOneDReader_1.default;\n//# sourceMappingURL=index.js.map","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : nativeLastIndexOf;\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar StringBuilder_1 = require(\"../../util/StringBuilder\");\n/**\n * @author satorux@google.com (Satoru Takabayashi) - creator\n * @author dswitkin@google.com (Daniel Switkin) - ported from C++\n */\nvar QRCode = /** @class */ (function () {\n function QRCode() {\n this.maskPattern = -1;\n }\n QRCode.prototype.getMode = function () {\n return this.mode;\n };\n QRCode.prototype.getECLevel = function () {\n return this.ecLevel;\n };\n QRCode.prototype.getVersion = function () {\n return this.version;\n };\n QRCode.prototype.getMaskPattern = function () {\n return this.maskPattern;\n };\n QRCode.prototype.getMatrix = function () {\n return this.matrix;\n };\n /*@Override*/\n QRCode.prototype.toString = function () {\n var result = new StringBuilder_1.default(); // (200)\n result.append('<<\\n');\n result.append(' mode: ');\n result.append(this.mode ? this.mode.toString() : 'null');\n result.append('\\n ecLevel: ');\n result.append(this.ecLevel ? this.ecLevel.toString() : 'null');\n result.append('\\n version: ');\n result.append(this.version ? this.version.toString() : 'null');\n result.append('\\n maskPattern: ');\n result.append(this.maskPattern.toString());\n if (this.matrix) {\n result.append('\\n matrix:\\n');\n result.append(this.matrix.toString());\n }\n else {\n result.append('\\n matrix: null\\n');\n }\n result.append('>>\\n');\n return result.toString();\n };\n QRCode.prototype.setMode = function (value) {\n this.mode = value;\n };\n QRCode.prototype.setECLevel = function (value) {\n this.ecLevel = value;\n };\n QRCode.prototype.setVersion = function (version) {\n this.version = version;\n };\n QRCode.prototype.setMaskPattern = function (value /*int*/) {\n this.maskPattern = value;\n };\n QRCode.prototype.setMatrix = function (value) {\n this.matrix = value;\n };\n // Check if \"mask_pattern\" is valid.\n QRCode.isValidMaskPattern = function (maskPattern /*int*/) {\n return maskPattern >= 0 && maskPattern < QRCode.NUM_MASK_PATTERNS;\n };\n QRCode.NUM_MASK_PATTERNS = 8;\n return QRCode;\n}());\nexports.default = QRCode;\n//# sourceMappingURL=QRCode.js.map","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar isView = function isView(it) {\n var klass = classof(it);\n return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\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/**\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 */\nvar DataBlock = /** @class */ (function () {\n function DataBlock(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 DataBlock.getDataBlocks = function (rawCodewords, version) {\n // Figure out the number and size of data blocks used by this version\n var ecBlocks = version.getECBlocks();\n // First count the total number of data blocks\n var totalBlocks = 0;\n var ecBlockArray = ecBlocks.getECBlocks();\n for (var _i = 0, ecBlockArray_1 = ecBlockArray; _i < ecBlockArray_1.length; _i++) {\n var ecBlock = ecBlockArray_1[_i];\n totalBlocks += ecBlock.getCount();\n }\n // Now establish DataBlocks of the appropriate size and number of data codewords\n var result = new Array(totalBlocks);\n var numResultBlocks = 0;\n for (var _a = 0, ecBlockArray_2 = ecBlockArray; _a < ecBlockArray_2.length; _a++) {\n var ecBlock = ecBlockArray_2[_a];\n for (var i = 0; i < ecBlock.getCount(); i++) {\n var numDataCodewords = ecBlock.getDataCodewords();\n var 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 var longerBlocksTotalCodewords = result[0].codewords.length;\n // int shorterBlocksTotalCodewords = longerBlocksTotalCodewords - 1;\n var longerBlocksNumDataCodewords = longerBlocksTotalCodewords - ecBlocks.getECCodewords();\n var 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 var rawCodewordsOffset = 0;\n for (var i = 0; i < shorterBlocksNumDataCodewords; i++) {\n for (var 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 var specialVersion = version.getVersionNumber() === 24;\n var numLongerBlocks = specialVersion ? 8 : numResultBlocks;\n for (var j = 0; j < numLongerBlocks; j++) {\n result[j].codewords[longerBlocksNumDataCodewords - 1] = rawCodewords[rawCodewordsOffset++];\n }\n // Now add in error correction blocks\n var max = result[0].codewords.length;\n for (var i = longerBlocksNumDataCodewords; i < max; i++) {\n for (var j = 0; j < numResultBlocks; j++) {\n var jOffset = specialVersion ? (j + 8) % numResultBlocks : j;\n var 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_1.default();\n }\n return result;\n };\n DataBlock.prototype.getNumDataCodewords = function () {\n return this.numDataCodewords;\n };\n DataBlock.prototype.getCodewords = function () {\n return this.codewords;\n };\n return DataBlock;\n}());\nexports.default = DataBlock;\n//# sourceMappingURL=DataBlock.js.map","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common {*/\nvar IllegalArgumentException_1 = require(\"../IllegalArgumentException\");\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 */\nvar BitSource = /** @class */ (function () {\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 function BitSource(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 BitSource.prototype.getBitOffset = function () {\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 BitSource.prototype.getByteOffset = function () {\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 BitSource.prototype.readBits = function (numBits /*int*/) {\n if (numBits < 1 || numBits > 32 || numBits > this.available()) {\n throw new IllegalArgumentException_1.default('' + numBits);\n }\n var result = 0;\n var bitOffset = this.bitOffset;\n var byteOffset = this.byteOffset;\n var bytes = this.bytes;\n // First, read remainder from current byte\n if (bitOffset > 0) {\n var bitsLeft = 8 - bitOffset;\n var toRead = numBits < bitsLeft ? numBits : bitsLeft;\n var bitsToNotRead = bitsLeft - toRead;\n var 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 var bitsToNotRead = 8 - numBits;\n var 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 BitSource.prototype.available = function () {\n return 8 * (this.bytes.length - this.byteOffset) - this.bitOffset;\n };\n return BitSource;\n}());\nexports.default = BitSource;\n//# sourceMappingURL=BitSource.js.map","/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nvar SDPUtils = require('sdp');\n\nfunction fixStatsType(stat) {\n return {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n }[stat.type] || stat.type;\n}\n\nfunction writeMediaSection(transceiver, caps, type, stream, dtlsRole) {\n var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);\n\n // Map ICE parameters (ufrag, pwd) to SDP.\n sdp += SDPUtils.writeIceParameters(\n transceiver.iceGatherer.getLocalParameters());\n\n // Map DTLS parameters to SDP.\n sdp += SDPUtils.writeDtlsParameters(\n transceiver.dtlsTransport.getLocalParameters(),\n type === 'offer' ? 'actpass' : dtlsRole || 'active');\n\n sdp += 'a=mid:' + transceiver.mid + '\\r\\n';\n\n if (transceiver.rtpSender && transceiver.rtpReceiver) {\n sdp += 'a=sendrecv\\r\\n';\n } else if (transceiver.rtpSender) {\n sdp += 'a=sendonly\\r\\n';\n } else if (transceiver.rtpReceiver) {\n sdp += 'a=recvonly\\r\\n';\n } else {\n sdp += 'a=inactive\\r\\n';\n }\n\n if (transceiver.rtpSender) {\n var trackId = transceiver.rtpSender._initialTrackId ||\n transceiver.rtpSender.track.id;\n transceiver.rtpSender._initialTrackId = trackId;\n // spec.\n var msid = 'msid:' + (stream ? stream.id : '-') + ' ' +\n trackId + '\\r\\n';\n sdp += 'a=' + msid;\n // for Chrome. Legacy should no longer be required.\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +\n ' ' + msid;\n\n // RTX\n if (transceiver.sendEncodingParameters[0].rtx) {\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].rtx.ssrc +\n ' ' + msid;\n sdp += 'a=ssrc-group:FID ' +\n transceiver.sendEncodingParameters[0].ssrc + ' ' +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n '\\r\\n';\n }\n }\n // FIXME: this should be written by writeRtpDescription.\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +\n ' cname:' + SDPUtils.localCName + '\\r\\n';\n if (transceiver.rtpSender && transceiver.sendEncodingParameters[0].rtx) {\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].rtx.ssrc +\n ' cname:' + SDPUtils.localCName + '\\r\\n';\n }\n return sdp;\n}\n\n// Edge does not like\n// 1) stun: filtered after 14393 unless ?transport=udp is present\n// 2) turn: that does not have all of turn:host:port?transport=udp\n// 3) turn: with ipv6 addresses\n// 4) turn: occurring muliple times\nfunction filterIceServers(iceServers, edgeVersion) {\n var hasTurn = false;\n iceServers = JSON.parse(JSON.stringify(iceServers));\n return iceServers.filter(function(server) {\n if (server && (server.urls || server.url)) {\n var urls = server.urls || server.url;\n if (server.url && !server.urls) {\n console.warn('RTCIceServer.url is deprecated! Use urls instead.');\n }\n var isString = typeof urls === 'string';\n if (isString) {\n urls = [urls];\n }\n urls = urls.filter(function(url) {\n var validTurn = url.indexOf('turn:') === 0 &&\n url.indexOf('transport=udp') !== -1 &&\n url.indexOf('turn:[') === -1 &&\n !hasTurn;\n\n if (validTurn) {\n hasTurn = true;\n return true;\n }\n return url.indexOf('stun:') === 0 && edgeVersion >= 14393 &&\n url.indexOf('?transport=udp') === -1;\n });\n\n delete server.url;\n server.urls = isString ? urls[0] : urls;\n return !!urls.length;\n }\n });\n}\n\n// Determines the intersection of local and remote capabilities.\nfunction getCommonCapabilities(localCapabilities, remoteCapabilities) {\n var commonCapabilities = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: []\n };\n\n var findCodecByPayloadType = function(pt, codecs) {\n pt = parseInt(pt, 10);\n for (var i = 0; i < codecs.length; i++) {\n if (codecs[i].payloadType === pt ||\n codecs[i].preferredPayloadType === pt) {\n return codecs[i];\n }\n }\n };\n\n var rtxCapabilityMatches = function(lRtx, rRtx, lCodecs, rCodecs) {\n var lCodec = findCodecByPayloadType(lRtx.parameters.apt, lCodecs);\n var rCodec = findCodecByPayloadType(rRtx.parameters.apt, rCodecs);\n return lCodec && rCodec &&\n lCodec.name.toLowerCase() === rCodec.name.toLowerCase();\n };\n\n localCapabilities.codecs.forEach(function(lCodec) {\n for (var i = 0; i < remoteCapabilities.codecs.length; i++) {\n var rCodec = remoteCapabilities.codecs[i];\n if (lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&\n lCodec.clockRate === rCodec.clockRate) {\n if (lCodec.name.toLowerCase() === 'rtx' &&\n lCodec.parameters && rCodec.parameters.apt) {\n // for RTX we need to find the local rtx that has a apt\n // which points to the same local codec as the remote one.\n if (!rtxCapabilityMatches(lCodec, rCodec,\n localCapabilities.codecs, remoteCapabilities.codecs)) {\n continue;\n }\n }\n rCodec = JSON.parse(JSON.stringify(rCodec)); // deepcopy\n // number of channels is the highest common number of channels\n rCodec.numChannels = Math.min(lCodec.numChannels,\n rCodec.numChannels);\n // push rCodec so we reply with offerer payload type\n commonCapabilities.codecs.push(rCodec);\n\n // determine common feedback mechanisms\n rCodec.rtcpFeedback = rCodec.rtcpFeedback.filter(function(fb) {\n for (var j = 0; j < lCodec.rtcpFeedback.length; j++) {\n if (lCodec.rtcpFeedback[j].type === fb.type &&\n lCodec.rtcpFeedback[j].parameter === fb.parameter) {\n return true;\n }\n }\n return false;\n });\n // FIXME: also need to determine .parameters\n // see https://github.com/openpeer/ortc/issues/569\n break;\n }\n }\n });\n\n localCapabilities.headerExtensions.forEach(function(lHeaderExtension) {\n for (var i = 0; i < remoteCapabilities.headerExtensions.length;\n i++) {\n var rHeaderExtension = remoteCapabilities.headerExtensions[i];\n if (lHeaderExtension.uri === rHeaderExtension.uri) {\n commonCapabilities.headerExtensions.push(rHeaderExtension);\n break;\n }\n }\n });\n\n // FIXME: fecMechanisms\n return commonCapabilities;\n}\n\n// is action=setLocalDescription with type allowed in signalingState\nfunction isActionAllowedInSignalingState(action, type, signalingState) {\n return {\n offer: {\n setLocalDescription: ['stable', 'have-local-offer'],\n setRemoteDescription: ['stable', 'have-remote-offer']\n },\n answer: {\n setLocalDescription: ['have-remote-offer', 'have-local-pranswer'],\n setRemoteDescription: ['have-local-offer', 'have-remote-pranswer']\n }\n }[type][action].indexOf(signalingState) !== -1;\n}\n\nfunction maybeAddCandidate(iceTransport, candidate) {\n // Edge's internal representation adds some fields therefore\n // not all fieldѕ are taken into account.\n var alreadyAdded = iceTransport.getRemoteCandidates()\n .find(function(remoteCandidate) {\n return candidate.foundation === remoteCandidate.foundation &&\n candidate.ip === remoteCandidate.ip &&\n candidate.port === remoteCandidate.port &&\n candidate.priority === remoteCandidate.priority &&\n candidate.protocol === remoteCandidate.protocol &&\n candidate.type === remoteCandidate.type;\n });\n if (!alreadyAdded) {\n iceTransport.addRemoteCandidate(candidate);\n }\n return !alreadyAdded;\n}\n\n\nfunction makeError(name, description) {\n var e = new Error(description);\n e.name = name;\n // legacy error codes from https://heycam.github.io/webidl/#idl-DOMException-error-names\n e.code = {\n NotSupportedError: 9,\n InvalidStateError: 11,\n InvalidAccessError: 15,\n TypeError: undefined,\n OperationError: undefined\n }[name];\n return e;\n}\n\nmodule.exports = function(window, edgeVersion) {\n // https://w3c.github.io/mediacapture-main/#mediastream\n // Helper function to add the track to the stream and\n // dispatch the event ourselves.\n function addTrackToStreamAndFireEvent(track, stream) {\n stream.addTrack(track);\n stream.dispatchEvent(new window.MediaStreamTrackEvent('addtrack',\n {track: track}));\n }\n\n function removeTrackFromStreamAndFireEvent(track, stream) {\n stream.removeTrack(track);\n stream.dispatchEvent(new window.MediaStreamTrackEvent('removetrack',\n {track: track}));\n }\n\n function fireAddTrack(pc, track, receiver, streams) {\n var trackEvent = new Event('track');\n trackEvent.track = track;\n trackEvent.receiver = receiver;\n trackEvent.transceiver = {receiver: receiver};\n trackEvent.streams = streams;\n window.setTimeout(function() {\n pc._dispatchEvent('track', trackEvent);\n });\n }\n\n var RTCPeerConnection = function(config) {\n var pc = this;\n\n var _eventTarget = document.createDocumentFragment();\n ['addEventListener', 'removeEventListener', 'dispatchEvent']\n .forEach(function(method) {\n pc[method] = _eventTarget[method].bind(_eventTarget);\n });\n\n this.canTrickleIceCandidates = null;\n\n this.needNegotiation = false;\n\n this.localStreams = [];\n this.remoteStreams = [];\n\n this._localDescription = null;\n this._remoteDescription = null;\n\n this.signalingState = 'stable';\n this.iceConnectionState = 'new';\n this.connectionState = 'new';\n this.iceGatheringState = 'new';\n\n config = JSON.parse(JSON.stringify(config || {}));\n\n this.usingBundle = config.bundlePolicy === 'max-bundle';\n if (config.rtcpMuxPolicy === 'negotiate') {\n throw(makeError('NotSupportedError',\n 'rtcpMuxPolicy \\'negotiate\\' is not supported'));\n } else if (!config.rtcpMuxPolicy) {\n config.rtcpMuxPolicy = 'require';\n }\n\n switch (config.iceTransportPolicy) {\n case 'all':\n case 'relay':\n break;\n default:\n config.iceTransportPolicy = 'all';\n break;\n }\n\n switch (config.bundlePolicy) {\n case 'balanced':\n case 'max-compat':\n case 'max-bundle':\n break;\n default:\n config.bundlePolicy = 'balanced';\n break;\n }\n\n config.iceServers = filterIceServers(config.iceServers || [], edgeVersion);\n\n this._iceGatherers = [];\n if (config.iceCandidatePoolSize) {\n for (var i = config.iceCandidatePoolSize; i > 0; i--) {\n this._iceGatherers.push(new window.RTCIceGatherer({\n iceServers: config.iceServers,\n gatherPolicy: config.iceTransportPolicy\n }));\n }\n } else {\n config.iceCandidatePoolSize = 0;\n }\n\n this._config = config;\n\n // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...\n // everything that is needed to describe a SDP m-line.\n this.transceivers = [];\n\n this._sdpSessionId = SDPUtils.generateSessionId();\n this._sdpSessionVersion = 0;\n\n this._dtlsRole = undefined; // role for a=setup to use in answers.\n\n this._isClosed = false;\n };\n\n Object.defineProperty(RTCPeerConnection.prototype, 'localDescription', {\n configurable: true,\n get: function() {\n return this._localDescription;\n }\n });\n Object.defineProperty(RTCPeerConnection.prototype, 'remoteDescription', {\n configurable: true,\n get: function() {\n return this._remoteDescription;\n }\n });\n\n // set up event handlers on prototype\n RTCPeerConnection.prototype.onicecandidate = null;\n RTCPeerConnection.prototype.onaddstream = null;\n RTCPeerConnection.prototype.ontrack = null;\n RTCPeerConnection.prototype.onremovestream = null;\n RTCPeerConnection.prototype.onsignalingstatechange = null;\n RTCPeerConnection.prototype.oniceconnectionstatechange = null;\n RTCPeerConnection.prototype.onconnectionstatechange = null;\n RTCPeerConnection.prototype.onicegatheringstatechange = null;\n RTCPeerConnection.prototype.onnegotiationneeded = null;\n RTCPeerConnection.prototype.ondatachannel = null;\n\n RTCPeerConnection.prototype._dispatchEvent = function(name, event) {\n if (this._isClosed) {\n return;\n }\n this.dispatchEvent(event);\n if (typeof this['on' + name] === 'function') {\n this['on' + name](event);\n }\n };\n\n RTCPeerConnection.prototype._emitGatheringStateChange = function() {\n var event = new Event('icegatheringstatechange');\n this._dispatchEvent('icegatheringstatechange', event);\n };\n\n RTCPeerConnection.prototype.getConfiguration = function() {\n return this._config;\n };\n\n RTCPeerConnection.prototype.getLocalStreams = function() {\n return this.localStreams;\n };\n\n RTCPeerConnection.prototype.getRemoteStreams = function() {\n return this.remoteStreams;\n };\n\n // internal helper to create a transceiver object.\n // (which is not yet the same as the WebRTC 1.0 transceiver)\n RTCPeerConnection.prototype._createTransceiver = function(kind, doNotAdd) {\n var hasBundleTransport = this.transceivers.length > 0;\n var transceiver = {\n track: null,\n iceGatherer: null,\n iceTransport: null,\n dtlsTransport: null,\n localCapabilities: null,\n remoteCapabilities: null,\n rtpSender: null,\n rtpReceiver: null,\n kind: kind,\n mid: null,\n sendEncodingParameters: null,\n recvEncodingParameters: null,\n stream: null,\n associatedRemoteMediaStreams: [],\n wantReceive: true\n };\n if (this.usingBundle && hasBundleTransport) {\n transceiver.iceTransport = this.transceivers[0].iceTransport;\n transceiver.dtlsTransport = this.transceivers[0].dtlsTransport;\n } else {\n var transports = this._createIceAndDtlsTransports();\n transceiver.iceTransport = transports.iceTransport;\n transceiver.dtlsTransport = transports.dtlsTransport;\n }\n if (!doNotAdd) {\n this.transceivers.push(transceiver);\n }\n return transceiver;\n };\n\n RTCPeerConnection.prototype.addTrack = function(track, stream) {\n if (this._isClosed) {\n throw makeError('InvalidStateError',\n 'Attempted to call addTrack on a closed peerconnection.');\n }\n\n var alreadyExists = this.transceivers.find(function(s) {\n return s.track === track;\n });\n\n if (alreadyExists) {\n throw makeError('InvalidAccessError', 'Track already exists.');\n }\n\n var transceiver;\n for (var i = 0; i < this.transceivers.length; i++) {\n if (!this.transceivers[i].track &&\n this.transceivers[i].kind === track.kind) {\n transceiver = this.transceivers[i];\n }\n }\n if (!transceiver) {\n transceiver = this._createTransceiver(track.kind);\n }\n\n this._maybeFireNegotiationNeeded();\n\n if (this.localStreams.indexOf(stream) === -1) {\n this.localStreams.push(stream);\n }\n\n transceiver.track = track;\n transceiver.stream = stream;\n transceiver.rtpSender = new window.RTCRtpSender(track,\n transceiver.dtlsTransport);\n return transceiver.rtpSender;\n };\n\n RTCPeerConnection.prototype.addStream = function(stream) {\n var pc = this;\n if (edgeVersion >= 15025) {\n stream.getTracks().forEach(function(track) {\n pc.addTrack(track, stream);\n });\n } else {\n // Clone is necessary for local demos mostly, attaching directly\n // to two different senders does not work (build 10547).\n // Fixed in 15025 (or earlier)\n var clonedStream = stream.clone();\n stream.getTracks().forEach(function(track, idx) {\n var clonedTrack = clonedStream.getTracks()[idx];\n track.addEventListener('enabled', function(event) {\n clonedTrack.enabled = event.enabled;\n });\n });\n clonedStream.getTracks().forEach(function(track) {\n pc.addTrack(track, clonedStream);\n });\n }\n };\n\n RTCPeerConnection.prototype.removeTrack = function(sender) {\n if (this._isClosed) {\n throw makeError('InvalidStateError',\n 'Attempted to call removeTrack on a closed peerconnection.');\n }\n\n if (!(sender instanceof window.RTCRtpSender)) {\n throw new TypeError('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.');\n }\n\n var transceiver = this.transceivers.find(function(t) {\n return t.rtpSender === sender;\n });\n\n if (!transceiver) {\n throw makeError('InvalidAccessError',\n 'Sender was not created by this connection.');\n }\n var stream = transceiver.stream;\n\n transceiver.rtpSender.stop();\n transceiver.rtpSender = null;\n transceiver.track = null;\n transceiver.stream = null;\n\n // remove the stream from the set of local streams\n var localStreams = this.transceivers.map(function(t) {\n return t.stream;\n });\n if (localStreams.indexOf(stream) === -1 &&\n this.localStreams.indexOf(stream) > -1) {\n this.localStreams.splice(this.localStreams.indexOf(stream), 1);\n }\n\n this._maybeFireNegotiationNeeded();\n };\n\n RTCPeerConnection.prototype.removeStream = function(stream) {\n var pc = this;\n stream.getTracks().forEach(function(track) {\n var sender = pc.getSenders().find(function(s) {\n return s.track === track;\n });\n if (sender) {\n pc.removeTrack(sender);\n }\n });\n };\n\n RTCPeerConnection.prototype.getSenders = function() {\n return this.transceivers.filter(function(transceiver) {\n return !!transceiver.rtpSender;\n })\n .map(function(transceiver) {\n return transceiver.rtpSender;\n });\n };\n\n RTCPeerConnection.prototype.getReceivers = function() {\n return this.transceivers.filter(function(transceiver) {\n return !!transceiver.rtpReceiver;\n })\n .map(function(transceiver) {\n return transceiver.rtpReceiver;\n });\n };\n\n\n RTCPeerConnection.prototype._createIceGatherer = function(sdpMLineIndex,\n usingBundle) {\n var pc = this;\n if (usingBundle && sdpMLineIndex > 0) {\n return this.transceivers[0].iceGatherer;\n } else if (this._iceGatherers.length) {\n return this._iceGatherers.shift();\n }\n var iceGatherer = new window.RTCIceGatherer({\n iceServers: this._config.iceServers,\n gatherPolicy: this._config.iceTransportPolicy\n });\n Object.defineProperty(iceGatherer, 'state',\n {value: 'new', writable: true}\n );\n\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents = [];\n this.transceivers[sdpMLineIndex].bufferCandidates = function(event) {\n var end = !event.candidate || Object.keys(event.candidate).length === 0;\n // polyfill since RTCIceGatherer.state is not implemented in\n // Edge 10547 yet.\n iceGatherer.state = end ? 'completed' : 'gathering';\n if (pc.transceivers[sdpMLineIndex].bufferedCandidateEvents !== null) {\n pc.transceivers[sdpMLineIndex].bufferedCandidateEvents.push(event);\n }\n };\n iceGatherer.addEventListener('localcandidate',\n this.transceivers[sdpMLineIndex].bufferCandidates);\n return iceGatherer;\n };\n\n // start gathering from an RTCIceGatherer.\n RTCPeerConnection.prototype._gather = function(mid, sdpMLineIndex) {\n var pc = this;\n var iceGatherer = this.transceivers[sdpMLineIndex].iceGatherer;\n if (iceGatherer.onlocalcandidate) {\n return;\n }\n var bufferedCandidateEvents =\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents;\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents = null;\n iceGatherer.removeEventListener('localcandidate',\n this.transceivers[sdpMLineIndex].bufferCandidates);\n iceGatherer.onlocalcandidate = function(evt) {\n if (pc.usingBundle && sdpMLineIndex > 0) {\n // if we know that we use bundle we can drop candidates with\n // ѕdpMLineIndex > 0. If we don't do this then our state gets\n // confused since we dispose the extra ice gatherer.\n return;\n }\n var event = new Event('icecandidate');\n event.candidate = {sdpMid: mid, sdpMLineIndex: sdpMLineIndex};\n\n var cand = evt.candidate;\n // Edge emits an empty object for RTCIceCandidateComplete‥\n var end = !cand || Object.keys(cand).length === 0;\n if (end) {\n // polyfill since RTCIceGatherer.state is not implemented in\n // Edge 10547 yet.\n if (iceGatherer.state === 'new' || iceGatherer.state === 'gathering') {\n iceGatherer.state = 'completed';\n }\n } else {\n if (iceGatherer.state === 'new') {\n iceGatherer.state = 'gathering';\n }\n // RTCIceCandidate doesn't have a component, needs to be added\n cand.component = 1;\n // also the usernameFragment. TODO: update SDP to take both variants.\n cand.ufrag = iceGatherer.getLocalParameters().usernameFragment;\n\n var serializedCandidate = SDPUtils.writeCandidate(cand);\n event.candidate = Object.assign(event.candidate,\n SDPUtils.parseCandidate(serializedCandidate));\n\n event.candidate.candidate = serializedCandidate;\n event.candidate.toJSON = function() {\n return {\n candidate: event.candidate.candidate,\n sdpMid: event.candidate.sdpMid,\n sdpMLineIndex: event.candidate.sdpMLineIndex,\n usernameFragment: event.candidate.usernameFragment\n };\n };\n }\n\n // update local description.\n var sections = SDPUtils.getMediaSections(pc._localDescription.sdp);\n if (!end) {\n sections[event.candidate.sdpMLineIndex] +=\n 'a=' + event.candidate.candidate + '\\r\\n';\n } else {\n sections[event.candidate.sdpMLineIndex] +=\n 'a=end-of-candidates\\r\\n';\n }\n pc._localDescription.sdp =\n SDPUtils.getDescription(pc._localDescription.sdp) +\n sections.join('');\n var complete = pc.transceivers.every(function(transceiver) {\n return transceiver.iceGatherer &&\n transceiver.iceGatherer.state === 'completed';\n });\n\n if (pc.iceGatheringState !== 'gathering') {\n pc.iceGatheringState = 'gathering';\n pc._emitGatheringStateChange();\n }\n\n // Emit candidate. Also emit null candidate when all gatherers are\n // complete.\n if (!end) {\n pc._dispatchEvent('icecandidate', event);\n }\n if (complete) {\n pc._dispatchEvent('icecandidate', new Event('icecandidate'));\n pc.iceGatheringState = 'complete';\n pc._emitGatheringStateChange();\n }\n };\n\n // emit already gathered candidates.\n window.setTimeout(function() {\n bufferedCandidateEvents.forEach(function(e) {\n iceGatherer.onlocalcandidate(e);\n });\n }, 0);\n };\n\n // Create ICE transport and DTLS transport.\n RTCPeerConnection.prototype._createIceAndDtlsTransports = function() {\n var pc = this;\n var iceTransport = new window.RTCIceTransport(null);\n iceTransport.onicestatechange = function() {\n pc._updateIceConnectionState();\n pc._updateConnectionState();\n };\n\n var dtlsTransport = new window.RTCDtlsTransport(iceTransport);\n dtlsTransport.ondtlsstatechange = function() {\n pc._updateConnectionState();\n };\n dtlsTransport.onerror = function() {\n // onerror does not set state to failed by itself.\n Object.defineProperty(dtlsTransport, 'state',\n {value: 'failed', writable: true});\n pc._updateConnectionState();\n };\n\n return {\n iceTransport: iceTransport,\n dtlsTransport: dtlsTransport\n };\n };\n\n // Destroy ICE gatherer, ICE transport and DTLS transport.\n // Without triggering the callbacks.\n RTCPeerConnection.prototype._disposeIceAndDtlsTransports = function(\n sdpMLineIndex) {\n var iceGatherer = this.transceivers[sdpMLineIndex].iceGatherer;\n if (iceGatherer) {\n delete iceGatherer.onlocalcandidate;\n delete this.transceivers[sdpMLineIndex].iceGatherer;\n }\n var iceTransport = this.transceivers[sdpMLineIndex].iceTransport;\n if (iceTransport) {\n delete iceTransport.onicestatechange;\n delete this.transceivers[sdpMLineIndex].iceTransport;\n }\n var dtlsTransport = this.transceivers[sdpMLineIndex].dtlsTransport;\n if (dtlsTransport) {\n delete dtlsTransport.ondtlsstatechange;\n delete dtlsTransport.onerror;\n delete this.transceivers[sdpMLineIndex].dtlsTransport;\n }\n };\n\n // Start the RTP Sender and Receiver for a transceiver.\n RTCPeerConnection.prototype._transceive = function(transceiver,\n send, recv) {\n var params = getCommonCapabilities(transceiver.localCapabilities,\n transceiver.remoteCapabilities);\n if (send && transceiver.rtpSender) {\n params.encodings = transceiver.sendEncodingParameters;\n params.rtcp = {\n cname: SDPUtils.localCName,\n compound: transceiver.rtcpParameters.compound\n };\n if (transceiver.recvEncodingParameters.length) {\n params.rtcp.ssrc = transceiver.recvEncodingParameters[0].ssrc;\n }\n transceiver.rtpSender.send(params);\n }\n if (recv && transceiver.rtpReceiver && params.codecs.length > 0) {\n // remove RTX field in Edge 14942\n if (transceiver.kind === 'video'\n && transceiver.recvEncodingParameters\n && edgeVersion < 15019) {\n transceiver.recvEncodingParameters.forEach(function(p) {\n delete p.rtx;\n });\n }\n if (transceiver.recvEncodingParameters.length) {\n params.encodings = transceiver.recvEncodingParameters;\n } else {\n params.encodings = [{}];\n }\n params.rtcp = {\n compound: transceiver.rtcpParameters.compound\n };\n if (transceiver.rtcpParameters.cname) {\n params.rtcp.cname = transceiver.rtcpParameters.cname;\n }\n if (transceiver.sendEncodingParameters.length) {\n params.rtcp.ssrc = transceiver.sendEncodingParameters[0].ssrc;\n }\n transceiver.rtpReceiver.receive(params);\n }\n };\n\n RTCPeerConnection.prototype.setLocalDescription = function(description) {\n var pc = this;\n\n // Note: pranswer is not supported.\n if (['offer', 'answer'].indexOf(description.type) === -1) {\n return Promise.reject(makeError('TypeError',\n 'Unsupported type \"' + description.type + '\"'));\n }\n\n if (!isActionAllowedInSignalingState('setLocalDescription',\n description.type, pc.signalingState) || pc._isClosed) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not set local ' + description.type +\n ' in state ' + pc.signalingState));\n }\n\n var sections;\n var sessionpart;\n if (description.type === 'offer') {\n // VERY limited support for SDP munging. Limited to:\n // * changing the order of codecs\n sections = SDPUtils.splitSections(description.sdp);\n sessionpart = sections.shift();\n sections.forEach(function(mediaSection, sdpMLineIndex) {\n var caps = SDPUtils.parseRtpParameters(mediaSection);\n pc.transceivers[sdpMLineIndex].localCapabilities = caps;\n });\n\n pc.transceivers.forEach(function(transceiver, sdpMLineIndex) {\n pc._gather(transceiver.mid, sdpMLineIndex);\n });\n } else if (description.type === 'answer') {\n sections = SDPUtils.splitSections(pc._remoteDescription.sdp);\n sessionpart = sections.shift();\n var isIceLite = SDPUtils.matchPrefix(sessionpart,\n 'a=ice-lite').length > 0;\n sections.forEach(function(mediaSection, sdpMLineIndex) {\n var transceiver = pc.transceivers[sdpMLineIndex];\n var iceGatherer = transceiver.iceGatherer;\n var iceTransport = transceiver.iceTransport;\n var dtlsTransport = transceiver.dtlsTransport;\n var localCapabilities = transceiver.localCapabilities;\n var remoteCapabilities = transceiver.remoteCapabilities;\n\n // treat bundle-only as not-rejected.\n var rejected = SDPUtils.isRejected(mediaSection) &&\n SDPUtils.matchPrefix(mediaSection, 'a=bundle-only').length === 0;\n\n if (!rejected && !transceiver.rejected) {\n var remoteIceParameters = SDPUtils.getIceParameters(\n mediaSection, sessionpart);\n var remoteDtlsParameters = SDPUtils.getDtlsParameters(\n mediaSection, sessionpart);\n if (isIceLite) {\n remoteDtlsParameters.role = 'server';\n }\n\n if (!pc.usingBundle || sdpMLineIndex === 0) {\n pc._gather(transceiver.mid, sdpMLineIndex);\n if (iceTransport.state === 'new') {\n iceTransport.start(iceGatherer, remoteIceParameters,\n isIceLite ? 'controlling' : 'controlled');\n }\n if (dtlsTransport.state === 'new') {\n dtlsTransport.start(remoteDtlsParameters);\n }\n }\n\n // Calculate intersection of capabilities.\n var params = getCommonCapabilities(localCapabilities,\n remoteCapabilities);\n\n // Start the RTCRtpSender. The RTCRtpReceiver for this\n // transceiver has already been started in setRemoteDescription.\n pc._transceive(transceiver,\n params.codecs.length > 0,\n false);\n }\n });\n }\n\n pc._localDescription = {\n type: description.type,\n sdp: description.sdp\n };\n if (description.type === 'offer') {\n pc._updateSignalingState('have-local-offer');\n } else {\n pc._updateSignalingState('stable');\n }\n\n return Promise.resolve();\n };\n\n RTCPeerConnection.prototype.setRemoteDescription = function(description) {\n var pc = this;\n\n // Note: pranswer is not supported.\n if (['offer', 'answer'].indexOf(description.type) === -1) {\n return Promise.reject(makeError('TypeError',\n 'Unsupported type \"' + description.type + '\"'));\n }\n\n if (!isActionAllowedInSignalingState('setRemoteDescription',\n description.type, pc.signalingState) || pc._isClosed) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not set remote ' + description.type +\n ' in state ' + pc.signalingState));\n }\n\n var streams = {};\n pc.remoteStreams.forEach(function(stream) {\n streams[stream.id] = stream;\n });\n var receiverList = [];\n var sections = SDPUtils.splitSections(description.sdp);\n var sessionpart = sections.shift();\n var isIceLite = SDPUtils.matchPrefix(sessionpart,\n 'a=ice-lite').length > 0;\n var usingBundle = SDPUtils.matchPrefix(sessionpart,\n 'a=group:BUNDLE ').length > 0;\n pc.usingBundle = usingBundle;\n var iceOptions = SDPUtils.matchPrefix(sessionpart,\n 'a=ice-options:')[0];\n if (iceOptions) {\n pc.canTrickleIceCandidates = iceOptions.substr(14).split(' ')\n .indexOf('trickle') >= 0;\n } else {\n pc.canTrickleIceCandidates = false;\n }\n\n sections.forEach(function(mediaSection, sdpMLineIndex) {\n var lines = SDPUtils.splitLines(mediaSection);\n var kind = SDPUtils.getKind(mediaSection);\n // treat bundle-only as not-rejected.\n var rejected = SDPUtils.isRejected(mediaSection) &&\n SDPUtils.matchPrefix(mediaSection, 'a=bundle-only').length === 0;\n var protocol = lines[0].substr(2).split(' ')[2];\n\n var direction = SDPUtils.getDirection(mediaSection, sessionpart);\n var remoteMsid = SDPUtils.parseMsid(mediaSection);\n\n var mid = SDPUtils.getMid(mediaSection) || SDPUtils.generateIdentifier();\n\n // Reject datachannels which are not implemented yet.\n if (rejected || (kind === 'application' && (protocol === 'DTLS/SCTP' ||\n protocol === 'UDP/DTLS/SCTP'))) {\n // TODO: this is dangerous in the case where a non-rejected m-line\n // becomes rejected.\n pc.transceivers[sdpMLineIndex] = {\n mid: mid,\n kind: kind,\n protocol: protocol,\n rejected: true\n };\n return;\n }\n\n if (!rejected && pc.transceivers[sdpMLineIndex] &&\n pc.transceivers[sdpMLineIndex].rejected) {\n // recycle a rejected transceiver.\n pc.transceivers[sdpMLineIndex] = pc._createTransceiver(kind, true);\n }\n\n var transceiver;\n var iceGatherer;\n var iceTransport;\n var dtlsTransport;\n var rtpReceiver;\n var sendEncodingParameters;\n var recvEncodingParameters;\n var localCapabilities;\n\n var track;\n // FIXME: ensure the mediaSection has rtcp-mux set.\n var remoteCapabilities = SDPUtils.parseRtpParameters(mediaSection);\n var remoteIceParameters;\n var remoteDtlsParameters;\n if (!rejected) {\n remoteIceParameters = SDPUtils.getIceParameters(mediaSection,\n sessionpart);\n remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,\n sessionpart);\n remoteDtlsParameters.role = 'client';\n }\n recvEncodingParameters =\n SDPUtils.parseRtpEncodingParameters(mediaSection);\n\n var rtcpParameters = SDPUtils.parseRtcpParameters(mediaSection);\n\n var isComplete = SDPUtils.matchPrefix(mediaSection,\n 'a=end-of-candidates', sessionpart).length > 0;\n var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')\n .map(function(cand) {\n return SDPUtils.parseCandidate(cand);\n })\n .filter(function(cand) {\n return cand.component === 1;\n });\n\n // Check if we can use BUNDLE and dispose transports.\n if ((description.type === 'offer' || description.type === 'answer') &&\n !rejected && usingBundle && sdpMLineIndex > 0 &&\n pc.transceivers[sdpMLineIndex]) {\n pc._disposeIceAndDtlsTransports(sdpMLineIndex);\n pc.transceivers[sdpMLineIndex].iceGatherer =\n pc.transceivers[0].iceGatherer;\n pc.transceivers[sdpMLineIndex].iceTransport =\n pc.transceivers[0].iceTransport;\n pc.transceivers[sdpMLineIndex].dtlsTransport =\n pc.transceivers[0].dtlsTransport;\n if (pc.transceivers[sdpMLineIndex].rtpSender) {\n pc.transceivers[sdpMLineIndex].rtpSender.setTransport(\n pc.transceivers[0].dtlsTransport);\n }\n if (pc.transceivers[sdpMLineIndex].rtpReceiver) {\n pc.transceivers[sdpMLineIndex].rtpReceiver.setTransport(\n pc.transceivers[0].dtlsTransport);\n }\n }\n if (description.type === 'offer' && !rejected) {\n transceiver = pc.transceivers[sdpMLineIndex] ||\n pc._createTransceiver(kind);\n transceiver.mid = mid;\n\n if (!transceiver.iceGatherer) {\n transceiver.iceGatherer = pc._createIceGatherer(sdpMLineIndex,\n usingBundle);\n }\n\n if (cands.length && transceiver.iceTransport.state === 'new') {\n if (isComplete && (!usingBundle || sdpMLineIndex === 0)) {\n transceiver.iceTransport.setRemoteCandidates(cands);\n } else {\n cands.forEach(function(candidate) {\n maybeAddCandidate(transceiver.iceTransport, candidate);\n });\n }\n }\n\n localCapabilities = window.RTCRtpReceiver.getCapabilities(kind);\n\n // filter RTX until additional stuff needed for RTX is implemented\n // in adapter.js\n if (edgeVersion < 15019) {\n localCapabilities.codecs = localCapabilities.codecs.filter(\n function(codec) {\n return codec.name !== 'rtx';\n });\n }\n\n sendEncodingParameters = transceiver.sendEncodingParameters || [{\n ssrc: (2 * sdpMLineIndex + 2) * 1001\n }];\n\n // TODO: rewrite to use http://w3c.github.io/webrtc-pc/#set-associated-remote-streams\n var isNewTrack = false;\n if (direction === 'sendrecv' || direction === 'sendonly') {\n isNewTrack = !transceiver.rtpReceiver;\n rtpReceiver = transceiver.rtpReceiver ||\n new window.RTCRtpReceiver(transceiver.dtlsTransport, kind);\n\n if (isNewTrack) {\n var stream;\n track = rtpReceiver.track;\n // FIXME: does not work with Plan B.\n if (remoteMsid && remoteMsid.stream === '-') {\n // no-op. a stream id of '-' means: no associated stream.\n } else if (remoteMsid) {\n if (!streams[remoteMsid.stream]) {\n streams[remoteMsid.stream] = new window.MediaStream();\n Object.defineProperty(streams[remoteMsid.stream], 'id', {\n get: function() {\n return remoteMsid.stream;\n }\n });\n }\n Object.defineProperty(track, 'id', {\n get: function() {\n return remoteMsid.track;\n }\n });\n stream = streams[remoteMsid.stream];\n } else {\n if (!streams.default) {\n streams.default = new window.MediaStream();\n }\n stream = streams.default;\n }\n if (stream) {\n addTrackToStreamAndFireEvent(track, stream);\n transceiver.associatedRemoteMediaStreams.push(stream);\n }\n receiverList.push([track, rtpReceiver, stream]);\n }\n } else if (transceiver.rtpReceiver && transceiver.rtpReceiver.track) {\n transceiver.associatedRemoteMediaStreams.forEach(function(s) {\n var nativeTrack = s.getTracks().find(function(t) {\n return t.id === transceiver.rtpReceiver.track.id;\n });\n if (nativeTrack) {\n removeTrackFromStreamAndFireEvent(nativeTrack, s);\n }\n });\n transceiver.associatedRemoteMediaStreams = [];\n }\n\n transceiver.localCapabilities = localCapabilities;\n transceiver.remoteCapabilities = remoteCapabilities;\n transceiver.rtpReceiver = rtpReceiver;\n transceiver.rtcpParameters = rtcpParameters;\n transceiver.sendEncodingParameters = sendEncodingParameters;\n transceiver.recvEncodingParameters = recvEncodingParameters;\n\n // Start the RTCRtpReceiver now. The RTPSender is started in\n // setLocalDescription.\n pc._transceive(pc.transceivers[sdpMLineIndex],\n false,\n isNewTrack);\n } else if (description.type === 'answer' && !rejected) {\n transceiver = pc.transceivers[sdpMLineIndex];\n iceGatherer = transceiver.iceGatherer;\n iceTransport = transceiver.iceTransport;\n dtlsTransport = transceiver.dtlsTransport;\n rtpReceiver = transceiver.rtpReceiver;\n sendEncodingParameters = transceiver.sendEncodingParameters;\n localCapabilities = transceiver.localCapabilities;\n\n pc.transceivers[sdpMLineIndex].recvEncodingParameters =\n recvEncodingParameters;\n pc.transceivers[sdpMLineIndex].remoteCapabilities =\n remoteCapabilities;\n pc.transceivers[sdpMLineIndex].rtcpParameters = rtcpParameters;\n\n if (cands.length && iceTransport.state === 'new') {\n if ((isIceLite || isComplete) &&\n (!usingBundle || sdpMLineIndex === 0)) {\n iceTransport.setRemoteCandidates(cands);\n } else {\n cands.forEach(function(candidate) {\n maybeAddCandidate(transceiver.iceTransport, candidate);\n });\n }\n }\n\n if (!usingBundle || sdpMLineIndex === 0) {\n if (iceTransport.state === 'new') {\n iceTransport.start(iceGatherer, remoteIceParameters,\n 'controlling');\n }\n if (dtlsTransport.state === 'new') {\n dtlsTransport.start(remoteDtlsParameters);\n }\n }\n\n // If the offer contained RTX but the answer did not,\n // remove RTX from sendEncodingParameters.\n var commonCapabilities = getCommonCapabilities(\n transceiver.localCapabilities,\n transceiver.remoteCapabilities);\n\n var hasRtx = commonCapabilities.codecs.filter(function(c) {\n return c.name.toLowerCase() === 'rtx';\n }).length;\n if (!hasRtx && transceiver.sendEncodingParameters[0].rtx) {\n delete transceiver.sendEncodingParameters[0].rtx;\n }\n\n pc._transceive(transceiver,\n direction === 'sendrecv' || direction === 'recvonly',\n direction === 'sendrecv' || direction === 'sendonly');\n\n // TODO: rewrite to use http://w3c.github.io/webrtc-pc/#set-associated-remote-streams\n if (rtpReceiver &&\n (direction === 'sendrecv' || direction === 'sendonly')) {\n track = rtpReceiver.track;\n if (remoteMsid) {\n if (!streams[remoteMsid.stream]) {\n streams[remoteMsid.stream] = new window.MediaStream();\n }\n addTrackToStreamAndFireEvent(track, streams[remoteMsid.stream]);\n receiverList.push([track, rtpReceiver, streams[remoteMsid.stream]]);\n } else {\n if (!streams.default) {\n streams.default = new window.MediaStream();\n }\n addTrackToStreamAndFireEvent(track, streams.default);\n receiverList.push([track, rtpReceiver, streams.default]);\n }\n } else {\n // FIXME: actually the receiver should be created later.\n delete transceiver.rtpReceiver;\n }\n }\n });\n\n if (pc._dtlsRole === undefined) {\n pc._dtlsRole = description.type === 'offer' ? 'active' : 'passive';\n }\n\n pc._remoteDescription = {\n type: description.type,\n sdp: description.sdp\n };\n if (description.type === 'offer') {\n pc._updateSignalingState('have-remote-offer');\n } else {\n pc._updateSignalingState('stable');\n }\n Object.keys(streams).forEach(function(sid) {\n var stream = streams[sid];\n if (stream.getTracks().length) {\n if (pc.remoteStreams.indexOf(stream) === -1) {\n pc.remoteStreams.push(stream);\n var event = new Event('addstream');\n event.stream = stream;\n window.setTimeout(function() {\n pc._dispatchEvent('addstream', event);\n });\n }\n\n receiverList.forEach(function(item) {\n var track = item[0];\n var receiver = item[1];\n if (stream.id !== item[2].id) {\n return;\n }\n fireAddTrack(pc, track, receiver, [stream]);\n });\n }\n });\n receiverList.forEach(function(item) {\n if (item[2]) {\n return;\n }\n fireAddTrack(pc, item[0], item[1], []);\n });\n\n // check whether addIceCandidate({}) was called within four seconds after\n // setRemoteDescription.\n window.setTimeout(function() {\n if (!(pc && pc.transceivers)) {\n return;\n }\n pc.transceivers.forEach(function(transceiver) {\n if (transceiver.iceTransport &&\n transceiver.iceTransport.state === 'new' &&\n transceiver.iceTransport.getRemoteCandidates().length > 0) {\n console.warn('Timeout for addRemoteCandidate. Consider sending ' +\n 'an end-of-candidates notification');\n transceiver.iceTransport.addRemoteCandidate({});\n }\n });\n }, 4000);\n\n return Promise.resolve();\n };\n\n RTCPeerConnection.prototype.close = function() {\n this.transceivers.forEach(function(transceiver) {\n /* not yet\n if (transceiver.iceGatherer) {\n transceiver.iceGatherer.close();\n }\n */\n if (transceiver.iceTransport) {\n transceiver.iceTransport.stop();\n }\n if (transceiver.dtlsTransport) {\n transceiver.dtlsTransport.stop();\n }\n if (transceiver.rtpSender) {\n transceiver.rtpSender.stop();\n }\n if (transceiver.rtpReceiver) {\n transceiver.rtpReceiver.stop();\n }\n });\n // FIXME: clean up tracks, local streams, remote streams, etc\n this._isClosed = true;\n this._updateSignalingState('closed');\n };\n\n // Update the signaling state.\n RTCPeerConnection.prototype._updateSignalingState = function(newState) {\n this.signalingState = newState;\n var event = new Event('signalingstatechange');\n this._dispatchEvent('signalingstatechange', event);\n };\n\n // Determine whether to fire the negotiationneeded event.\n RTCPeerConnection.prototype._maybeFireNegotiationNeeded = function() {\n var pc = this;\n if (this.signalingState !== 'stable' || this.needNegotiation === true) {\n return;\n }\n this.needNegotiation = true;\n window.setTimeout(function() {\n if (pc.needNegotiation) {\n pc.needNegotiation = false;\n var event = new Event('negotiationneeded');\n pc._dispatchEvent('negotiationneeded', event);\n }\n }, 0);\n };\n\n // Update the ice connection state.\n RTCPeerConnection.prototype._updateIceConnectionState = function() {\n var newState;\n var states = {\n 'new': 0,\n closed: 0,\n checking: 0,\n connected: 0,\n completed: 0,\n disconnected: 0,\n failed: 0\n };\n this.transceivers.forEach(function(transceiver) {\n if (transceiver.iceTransport && !transceiver.rejected) {\n states[transceiver.iceTransport.state]++;\n }\n });\n\n newState = 'new';\n if (states.failed > 0) {\n newState = 'failed';\n } else if (states.checking > 0) {\n newState = 'checking';\n } else if (states.disconnected > 0) {\n newState = 'disconnected';\n } else if (states.new > 0) {\n newState = 'new';\n } else if (states.connected > 0) {\n newState = 'connected';\n } else if (states.completed > 0) {\n newState = 'completed';\n }\n\n if (newState !== this.iceConnectionState) {\n this.iceConnectionState = newState;\n var event = new Event('iceconnectionstatechange');\n this._dispatchEvent('iceconnectionstatechange', event);\n }\n };\n\n // Update the connection state.\n RTCPeerConnection.prototype._updateConnectionState = function() {\n var newState;\n var states = {\n 'new': 0,\n closed: 0,\n connecting: 0,\n connected: 0,\n completed: 0,\n disconnected: 0,\n failed: 0\n };\n this.transceivers.forEach(function(transceiver) {\n if (transceiver.iceTransport && transceiver.dtlsTransport &&\n !transceiver.rejected) {\n states[transceiver.iceTransport.state]++;\n states[transceiver.dtlsTransport.state]++;\n }\n });\n // ICETransport.completed and connected are the same for this purpose.\n states.connected += states.completed;\n\n newState = 'new';\n if (states.failed > 0) {\n newState = 'failed';\n } else if (states.connecting > 0) {\n newState = 'connecting';\n } else if (states.disconnected > 0) {\n newState = 'disconnected';\n } else if (states.new > 0) {\n newState = 'new';\n } else if (states.connected > 0) {\n newState = 'connected';\n }\n\n if (newState !== this.connectionState) {\n this.connectionState = newState;\n var event = new Event('connectionstatechange');\n this._dispatchEvent('connectionstatechange', event);\n }\n };\n\n RTCPeerConnection.prototype.createOffer = function() {\n var pc = this;\n\n if (pc._isClosed) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not call createOffer after close'));\n }\n\n var numAudioTracks = pc.transceivers.filter(function(t) {\n return t.kind === 'audio';\n }).length;\n var numVideoTracks = pc.transceivers.filter(function(t) {\n return t.kind === 'video';\n }).length;\n\n // Determine number of audio and video tracks we need to send/recv.\n var offerOptions = arguments[0];\n if (offerOptions) {\n // Reject Chrome legacy constraints.\n if (offerOptions.mandatory || offerOptions.optional) {\n throw new TypeError(\n 'Legacy mandatory/optional constraints not supported.');\n }\n if (offerOptions.offerToReceiveAudio !== undefined) {\n if (offerOptions.offerToReceiveAudio === true) {\n numAudioTracks = 1;\n } else if (offerOptions.offerToReceiveAudio === false) {\n numAudioTracks = 0;\n } else {\n numAudioTracks = offerOptions.offerToReceiveAudio;\n }\n }\n if (offerOptions.offerToReceiveVideo !== undefined) {\n if (offerOptions.offerToReceiveVideo === true) {\n numVideoTracks = 1;\n } else if (offerOptions.offerToReceiveVideo === false) {\n numVideoTracks = 0;\n } else {\n numVideoTracks = offerOptions.offerToReceiveVideo;\n }\n }\n }\n\n pc.transceivers.forEach(function(transceiver) {\n if (transceiver.kind === 'audio') {\n numAudioTracks--;\n if (numAudioTracks < 0) {\n transceiver.wantReceive = false;\n }\n } else if (transceiver.kind === 'video') {\n numVideoTracks--;\n if (numVideoTracks < 0) {\n transceiver.wantReceive = false;\n }\n }\n });\n\n // Create M-lines for recvonly streams.\n while (numAudioTracks > 0 || numVideoTracks > 0) {\n if (numAudioTracks > 0) {\n pc._createTransceiver('audio');\n numAudioTracks--;\n }\n if (numVideoTracks > 0) {\n pc._createTransceiver('video');\n numVideoTracks--;\n }\n }\n\n var sdp = SDPUtils.writeSessionBoilerplate(pc._sdpSessionId,\n pc._sdpSessionVersion++);\n pc.transceivers.forEach(function(transceiver, sdpMLineIndex) {\n // For each track, create an ice gatherer, ice transport,\n // dtls transport, potentially rtpsender and rtpreceiver.\n var track = transceiver.track;\n var kind = transceiver.kind;\n var mid = transceiver.mid || SDPUtils.generateIdentifier();\n transceiver.mid = mid;\n\n if (!transceiver.iceGatherer) {\n transceiver.iceGatherer = pc._createIceGatherer(sdpMLineIndex,\n pc.usingBundle);\n }\n\n var localCapabilities = window.RTCRtpSender.getCapabilities(kind);\n // filter RTX until additional stuff needed for RTX is implemented\n // in adapter.js\n if (edgeVersion < 15019) {\n localCapabilities.codecs = localCapabilities.codecs.filter(\n function(codec) {\n return codec.name !== 'rtx';\n });\n }\n localCapabilities.codecs.forEach(function(codec) {\n // work around https://bugs.chromium.org/p/webrtc/issues/detail?id=6552\n // by adding level-asymmetry-allowed=1\n if (codec.name === 'H264' &&\n codec.parameters['level-asymmetry-allowed'] === undefined) {\n codec.parameters['level-asymmetry-allowed'] = '1';\n }\n\n // for subsequent offers, we might have to re-use the payload\n // type of the last offer.\n if (transceiver.remoteCapabilities &&\n transceiver.remoteCapabilities.codecs) {\n transceiver.remoteCapabilities.codecs.forEach(function(remoteCodec) {\n if (codec.name.toLowerCase() === remoteCodec.name.toLowerCase() &&\n codec.clockRate === remoteCodec.clockRate) {\n codec.preferredPayloadType = remoteCodec.payloadType;\n }\n });\n }\n });\n localCapabilities.headerExtensions.forEach(function(hdrExt) {\n var remoteExtensions = transceiver.remoteCapabilities &&\n transceiver.remoteCapabilities.headerExtensions || [];\n remoteExtensions.forEach(function(rHdrExt) {\n if (hdrExt.uri === rHdrExt.uri) {\n hdrExt.id = rHdrExt.id;\n }\n });\n });\n\n // generate an ssrc now, to be used later in rtpSender.send\n var sendEncodingParameters = transceiver.sendEncodingParameters || [{\n ssrc: (2 * sdpMLineIndex + 1) * 1001\n }];\n if (track) {\n // add RTX\n if (edgeVersion >= 15019 && kind === 'video' &&\n !sendEncodingParameters[0].rtx) {\n sendEncodingParameters[0].rtx = {\n ssrc: sendEncodingParameters[0].ssrc + 1\n };\n }\n }\n\n if (transceiver.wantReceive) {\n transceiver.rtpReceiver = new window.RTCRtpReceiver(\n transceiver.dtlsTransport, kind);\n }\n\n transceiver.localCapabilities = localCapabilities;\n transceiver.sendEncodingParameters = sendEncodingParameters;\n });\n\n // always offer BUNDLE and dispose on return if not supported.\n if (pc._config.bundlePolicy !== 'max-compat') {\n sdp += 'a=group:BUNDLE ' + pc.transceivers.map(function(t) {\n return t.mid;\n }).join(' ') + '\\r\\n';\n }\n sdp += 'a=ice-options:trickle\\r\\n';\n\n pc.transceivers.forEach(function(transceiver, sdpMLineIndex) {\n sdp += writeMediaSection(transceiver, transceiver.localCapabilities,\n 'offer', transceiver.stream, pc._dtlsRole);\n sdp += 'a=rtcp-rsize\\r\\n';\n\n if (transceiver.iceGatherer && pc.iceGatheringState !== 'new' &&\n (sdpMLineIndex === 0 || !pc.usingBundle)) {\n transceiver.iceGatherer.getLocalCandidates().forEach(function(cand) {\n cand.component = 1;\n sdp += 'a=' + SDPUtils.writeCandidate(cand) + '\\r\\n';\n });\n\n if (transceiver.iceGatherer.state === 'completed') {\n sdp += 'a=end-of-candidates\\r\\n';\n }\n }\n });\n\n var desc = new window.RTCSessionDescription({\n type: 'offer',\n sdp: sdp\n });\n return Promise.resolve(desc);\n };\n\n RTCPeerConnection.prototype.createAnswer = function() {\n var pc = this;\n\n if (pc._isClosed) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not call createAnswer after close'));\n }\n\n if (!(pc.signalingState === 'have-remote-offer' ||\n pc.signalingState === 'have-local-pranswer')) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not call createAnswer in signalingState ' + pc.signalingState));\n }\n\n var sdp = SDPUtils.writeSessionBoilerplate(pc._sdpSessionId,\n pc._sdpSessionVersion++);\n if (pc.usingBundle) {\n sdp += 'a=group:BUNDLE ' + pc.transceivers.map(function(t) {\n return t.mid;\n }).join(' ') + '\\r\\n';\n }\n sdp += 'a=ice-options:trickle\\r\\n';\n\n var mediaSectionsInOffer = SDPUtils.getMediaSections(\n pc._remoteDescription.sdp).length;\n pc.transceivers.forEach(function(transceiver, sdpMLineIndex) {\n if (sdpMLineIndex + 1 > mediaSectionsInOffer) {\n return;\n }\n if (transceiver.rejected) {\n if (transceiver.kind === 'application') {\n if (transceiver.protocol === 'DTLS/SCTP') { // legacy fmt\n sdp += 'm=application 0 DTLS/SCTP 5000\\r\\n';\n } else {\n sdp += 'm=application 0 ' + transceiver.protocol +\n ' webrtc-datachannel\\r\\n';\n }\n } else if (transceiver.kind === 'audio') {\n sdp += 'm=audio 0 UDP/TLS/RTP/SAVPF 0\\r\\n' +\n 'a=rtpmap:0 PCMU/8000\\r\\n';\n } else if (transceiver.kind === 'video') {\n sdp += 'm=video 0 UDP/TLS/RTP/SAVPF 120\\r\\n' +\n 'a=rtpmap:120 VP8/90000\\r\\n';\n }\n sdp += 'c=IN IP4 0.0.0.0\\r\\n' +\n 'a=inactive\\r\\n' +\n 'a=mid:' + transceiver.mid + '\\r\\n';\n return;\n }\n\n // FIXME: look at direction.\n if (transceiver.stream) {\n var localTrack;\n if (transceiver.kind === 'audio') {\n localTrack = transceiver.stream.getAudioTracks()[0];\n } else if (transceiver.kind === 'video') {\n localTrack = transceiver.stream.getVideoTracks()[0];\n }\n if (localTrack) {\n // add RTX\n if (edgeVersion >= 15019 && transceiver.kind === 'video' &&\n !transceiver.sendEncodingParameters[0].rtx) {\n transceiver.sendEncodingParameters[0].rtx = {\n ssrc: transceiver.sendEncodingParameters[0].ssrc + 1\n };\n }\n }\n }\n\n // Calculate intersection of capabilities.\n var commonCapabilities = getCommonCapabilities(\n transceiver.localCapabilities,\n transceiver.remoteCapabilities);\n\n var hasRtx = commonCapabilities.codecs.filter(function(c) {\n return c.name.toLowerCase() === 'rtx';\n }).length;\n if (!hasRtx && transceiver.sendEncodingParameters[0].rtx) {\n delete transceiver.sendEncodingParameters[0].rtx;\n }\n\n sdp += writeMediaSection(transceiver, commonCapabilities,\n 'answer', transceiver.stream, pc._dtlsRole);\n if (transceiver.rtcpParameters &&\n transceiver.rtcpParameters.reducedSize) {\n sdp += 'a=rtcp-rsize\\r\\n';\n }\n });\n\n var desc = new window.RTCSessionDescription({\n type: 'answer',\n sdp: sdp\n });\n return Promise.resolve(desc);\n };\n\n RTCPeerConnection.prototype.addIceCandidate = function(candidate) {\n var pc = this;\n var sections;\n if (candidate && !(candidate.sdpMLineIndex !== undefined ||\n candidate.sdpMid)) {\n return Promise.reject(new TypeError('sdpMLineIndex or sdpMid required'));\n }\n\n // TODO: needs to go into ops queue.\n return new Promise(function(resolve, reject) {\n if (!pc._remoteDescription) {\n return reject(makeError('InvalidStateError',\n 'Can not add ICE candidate without a remote description'));\n } else if (!candidate || candidate.candidate === '') {\n for (var j = 0; j < pc.transceivers.length; j++) {\n if (pc.transceivers[j].rejected) {\n continue;\n }\n pc.transceivers[j].iceTransport.addRemoteCandidate({});\n sections = SDPUtils.getMediaSections(pc._remoteDescription.sdp);\n sections[j] += 'a=end-of-candidates\\r\\n';\n pc._remoteDescription.sdp =\n SDPUtils.getDescription(pc._remoteDescription.sdp) +\n sections.join('');\n if (pc.usingBundle) {\n break;\n }\n }\n } else {\n var sdpMLineIndex = candidate.sdpMLineIndex;\n if (candidate.sdpMid) {\n for (var i = 0; i < pc.transceivers.length; i++) {\n if (pc.transceivers[i].mid === candidate.sdpMid) {\n sdpMLineIndex = i;\n break;\n }\n }\n }\n var transceiver = pc.transceivers[sdpMLineIndex];\n if (transceiver) {\n if (transceiver.rejected) {\n return resolve();\n }\n var cand = Object.keys(candidate.candidate).length > 0 ?\n SDPUtils.parseCandidate(candidate.candidate) : {};\n // Ignore Chrome's invalid candidates since Edge does not like them.\n if (cand.protocol === 'tcp' && (cand.port === 0 || cand.port === 9)) {\n return resolve();\n }\n // Ignore RTCP candidates, we assume RTCP-MUX.\n if (cand.component && cand.component !== 1) {\n return resolve();\n }\n // when using bundle, avoid adding candidates to the wrong\n // ice transport. And avoid adding candidates added in the SDP.\n if (sdpMLineIndex === 0 || (sdpMLineIndex > 0 &&\n transceiver.iceTransport !== pc.transceivers[0].iceTransport)) {\n if (!maybeAddCandidate(transceiver.iceTransport, cand)) {\n return reject(makeError('OperationError',\n 'Can not add ICE candidate'));\n }\n }\n\n // update the remoteDescription.\n var candidateString = candidate.candidate.trim();\n if (candidateString.indexOf('a=') === 0) {\n candidateString = candidateString.substr(2);\n }\n sections = SDPUtils.getMediaSections(pc._remoteDescription.sdp);\n sections[sdpMLineIndex] += 'a=' +\n (cand.type ? candidateString : 'end-of-candidates')\n + '\\r\\n';\n pc._remoteDescription.sdp =\n SDPUtils.getDescription(pc._remoteDescription.sdp) +\n sections.join('');\n } else {\n return reject(makeError('OperationError',\n 'Can not add ICE candidate'));\n }\n }\n resolve();\n });\n };\n\n RTCPeerConnection.prototype.getStats = function(selector) {\n if (selector && selector instanceof window.MediaStreamTrack) {\n var senderOrReceiver = null;\n this.transceivers.forEach(function(transceiver) {\n if (transceiver.rtpSender &&\n transceiver.rtpSender.track === selector) {\n senderOrReceiver = transceiver.rtpSender;\n } else if (transceiver.rtpReceiver &&\n transceiver.rtpReceiver.track === selector) {\n senderOrReceiver = transceiver.rtpReceiver;\n }\n });\n if (!senderOrReceiver) {\n throw makeError('InvalidAccessError', 'Invalid selector.');\n }\n return senderOrReceiver.getStats();\n }\n\n var promises = [];\n this.transceivers.forEach(function(transceiver) {\n ['rtpSender', 'rtpReceiver', 'iceGatherer', 'iceTransport',\n 'dtlsTransport'].forEach(function(method) {\n if (transceiver[method]) {\n promises.push(transceiver[method].getStats());\n }\n });\n });\n return Promise.all(promises).then(function(allStats) {\n var results = new Map();\n allStats.forEach(function(stats) {\n stats.forEach(function(stat) {\n results.set(stat.id, stat);\n });\n });\n return results;\n });\n };\n\n // fix low-level stat names and return Map instead of object.\n var ortcObjects = ['RTCRtpSender', 'RTCRtpReceiver', 'RTCIceGatherer',\n 'RTCIceTransport', 'RTCDtlsTransport'];\n ortcObjects.forEach(function(ortcObjectName) {\n var obj = window[ortcObjectName];\n if (obj && obj.prototype && obj.prototype.getStats) {\n var nativeGetstats = obj.prototype.getStats;\n obj.prototype.getStats = function() {\n return nativeGetstats.apply(this)\n .then(function(nativeStats) {\n var mapStats = new Map();\n Object.keys(nativeStats).forEach(function(id) {\n nativeStats[id].type = fixStatsType(nativeStats[id]);\n mapStats.set(id, nativeStats[id]);\n });\n return mapStats;\n });\n };\n }\n });\n\n // legacy callback shims. Should be moved to adapter.js some days.\n var methods = ['createOffer', 'createAnswer'];\n methods.forEach(function(method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function() {\n var args = arguments;\n if (typeof args[0] === 'function' ||\n typeof args[1] === 'function') { // legacy\n return nativeMethod.apply(this, [arguments[2]])\n .then(function(description) {\n if (typeof args[0] === 'function') {\n args[0].apply(null, [description]);\n }\n }, function(error) {\n if (typeof args[1] === 'function') {\n args[1].apply(null, [error]);\n }\n });\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n methods = ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate'];\n methods.forEach(function(method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function() {\n var args = arguments;\n if (typeof args[1] === 'function' ||\n typeof args[2] === 'function') { // legacy\n return nativeMethod.apply(this, arguments)\n .then(function() {\n if (typeof args[1] === 'function') {\n args[1].apply(null);\n }\n }, function(error) {\n if (typeof args[2] === 'function') {\n args[2].apply(null, [error]);\n }\n });\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n // getStats is special. It doesn't have a spec legacy method yet we support\n // getStats(something, cb) without error callbacks.\n ['getStats'].forEach(function(method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function() {\n var args = arguments;\n if (typeof args[1] === 'function') {\n return nativeMethod.apply(this, arguments)\n .then(function() {\n if (typeof args[1] === 'function') {\n args[1].apply(null);\n }\n });\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n return RTCPeerConnection;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('input',{attrs:{\"type\":\"file\",\"name\":\"image\",\"accept\":\"image/*\",\"capture\":\"environment\"},on:{\"change\":_vm.onChangeInput}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--12-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--0-0!../../../vue-loader/lib/index.js??vue-loader-options!./ImageBarcodeReader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--12-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--0-0!../../../vue-loader/lib/index.js??vue-loader-options!./ImageBarcodeReader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ImageBarcodeReader.vue?vue&type=template&id=a9bff776&\"\nimport script from \"./ImageBarcodeReader.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageBarcodeReader.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"scanner-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}]},[_c('video',{ref:\"scanner\",attrs:{\"poster\":\"data:image/gif,AAAA\"}}),_c('div',{staticClass:\"overlay-element\"}),_c('div',{staticClass:\"laser\"})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--12-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--0-0!../../../vue-loader/lib/index.js??vue-loader-options!./StreamBarcodeReader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--12-0!../../../thread-loader/dist/cjs.js!../../../babel-loader/lib/index.js!../../../cache-loader/dist/cjs.js??ref--0-0!../../../vue-loader/lib/index.js??vue-loader-options!./StreamBarcodeReader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StreamBarcodeReader.vue?vue&type=template&id=eee31630&scoped=true&\"\nimport script from \"./StreamBarcodeReader.vue?vue&type=script&lang=js&\"\nexport * from \"./StreamBarcodeReader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./StreamBarcodeReader.vue?vue&type=style&index=0&id=eee31630&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eee31630\",\n null\n \n)\n\nexport default component.exports","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n 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 return extendStatics(d, b);\n };\n return function (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})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BrowserCodeReader_1 = require(\"./BrowserCodeReader\");\nvar QRCodeReader_1 = require(\"../core/qrcode/QRCodeReader\");\n/**\n * @deprecated Moving to @zxing/browser\n *\n * QR Code reader to use from browser.\n */\nvar BrowserQRCodeReader = /** @class */ (function (_super) {\n __extends(BrowserQRCodeReader, _super);\n /**\n * Creates an instance of BrowserQRCodeReader.\n * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\n */\n function BrowserQRCodeReader(timeBetweenScansMillis) {\n if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\n return _super.call(this, new QRCodeReader_1.default(), timeBetweenScansMillis) || this;\n }\n return BrowserQRCodeReader;\n}(BrowserCodeReader_1.BrowserCodeReader));\nexports.BrowserQRCodeReader = BrowserQRCodeReader;\n//# sourceMappingURL=BrowserQRCodeReader.js.map","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EncodeHintType_1 = require(\"../core/EncodeHintType\");\nvar Encoder_1 = require(\"../core/qrcode/encoder/Encoder\");\nvar ErrorCorrectionLevel_1 = require(\"../core/qrcode/decoder/ErrorCorrectionLevel\");\nvar IllegalArgumentException_1 = require(\"../core/IllegalArgumentException\");\nvar IllegalStateException_1 = require(\"../core/IllegalStateException\");\n/**\n * @deprecated Moving to @zxing/browser\n */\nvar BrowserQRCodeSvgWriter = /** @class */ (function () {\n function BrowserQRCodeSvgWriter() {\n }\n /**\n * Writes and renders a QRCode SVG element.\n *\n * @param contents\n * @param width\n * @param height\n * @param hints\n */\n BrowserQRCodeSvgWriter.prototype.write = function (contents, width, height, hints) {\n if (hints === void 0) { hints = null; }\n if (contents.length === 0) {\n throw new IllegalArgumentException_1.default('Found empty contents');\n }\n // if (format != BarcodeFormat.QR_CODE) {\n // throw new IllegalArgumentException(\"Can only encode QR_CODE, but got \" + format)\n // }\n if (width < 0 || height < 0) {\n throw new IllegalArgumentException_1.default('Requested dimensions are too small: ' + width + 'x' + height);\n }\n var errorCorrectionLevel = ErrorCorrectionLevel_1.default.L;\n var quietZone = BrowserQRCodeSvgWriter.QUIET_ZONE_SIZE;\n if (hints !== null) {\n if (undefined !== hints.get(EncodeHintType_1.default.ERROR_CORRECTION)) {\n errorCorrectionLevel = ErrorCorrectionLevel_1.default.fromString(hints.get(EncodeHintType_1.default.ERROR_CORRECTION).toString());\n }\n if (undefined !== hints.get(EncodeHintType_1.default.MARGIN)) {\n quietZone = Number.parseInt(hints.get(EncodeHintType_1.default.MARGIN).toString(), 10);\n }\n }\n var code = Encoder_1.default.encode(contents, errorCorrectionLevel, hints);\n return this.renderResult(code, width, height, quietZone);\n };\n /**\n * Renders the result and then appends it to the DOM.\n */\n BrowserQRCodeSvgWriter.prototype.writeToDom = function (containerElement, contents, width, height, hints) {\n if (hints === void 0) { hints = null; }\n if (typeof containerElement === 'string') {\n containerElement = document.querySelector(containerElement);\n }\n var svgElement = this.write(contents, width, height, hints);\n if (containerElement)\n containerElement.appendChild(svgElement);\n };\n /**\n * Note that the input matrix uses 0 == white, 1 == black.\n * The output matrix uses 0 == black, 255 == white (i.e. an 8 bit greyscale bitmap).\n */\n BrowserQRCodeSvgWriter.prototype.renderResult = function (code, width /*int*/, height /*int*/, quietZone /*int*/) {\n var input = code.getMatrix();\n if (input === null) {\n throw new IllegalStateException_1.default();\n }\n var inputWidth = input.getWidth();\n var inputHeight = input.getHeight();\n var qrWidth = inputWidth + (quietZone * 2);\n var qrHeight = inputHeight + (quietZone * 2);\n var outputWidth = Math.max(width, qrWidth);\n var outputHeight = Math.max(height, qrHeight);\n var multiple = Math.min(Math.floor(outputWidth / qrWidth), Math.floor(outputHeight / qrHeight));\n // Padding includes both the quiet zone and the extra white pixels to accommodate the requested\n // dimensions. For example, if input is 25x25 the QR will be 33x33 including the quiet zone.\n // If the requested size is 200x160, the multiple will be 4, for a QR of 132x132. These will\n // handle all the padding from 100x100 (the actual QR) up to 200x160.\n var leftPadding = Math.floor((outputWidth - (inputWidth * multiple)) / 2);\n var topPadding = Math.floor((outputHeight - (inputHeight * multiple)) / 2);\n var svgElement = this.createSVGElement(outputWidth, outputHeight);\n for (var inputY = 0, outputY = topPadding; inputY < inputHeight; inputY++, outputY += multiple) {\n // Write the contents of this row of the barcode\n for (var inputX = 0, outputX = leftPadding; inputX < inputWidth; inputX++, outputX += multiple) {\n if (input.get(inputX, inputY) === 1) {\n var svgRectElement = this.createSvgRectElement(outputX, outputY, multiple, multiple);\n svgElement.appendChild(svgRectElement);\n }\n }\n }\n return svgElement;\n };\n /**\n * Creates a SVG element.\n *\n * @param w SVG's width attribute\n * @param h SVG's height attribute\n */\n BrowserQRCodeSvgWriter.prototype.createSVGElement = function (w, h) {\n var svgElement = document.createElementNS(BrowserQRCodeSvgWriter.SVG_NS, 'svg');\n svgElement.setAttributeNS(null, 'height', w.toString());\n svgElement.setAttributeNS(null, 'width', h.toString());\n return svgElement;\n };\n /**\n * Creates a SVG rect element.\n *\n * @param x Element's x coordinate\n * @param y Element's y coordinate\n * @param w Element's width attribute\n * @param h Element's height attribute\n */\n BrowserQRCodeSvgWriter.prototype.createSvgRectElement = function (x, y, w, h) {\n var rect = document.createElementNS(BrowserQRCodeSvgWriter.SVG_NS, 'rect');\n rect.setAttributeNS(null, 'x', x.toString());\n rect.setAttributeNS(null, 'y', y.toString());\n rect.setAttributeNS(null, 'height', w.toString());\n rect.setAttributeNS(null, 'width', h.toString());\n rect.setAttributeNS(null, 'fill', '#000000');\n return rect;\n };\n BrowserQRCodeSvgWriter.QUIET_ZONE_SIZE = 4;\n /**\n * SVG markup NameSpace\n */\n BrowserQRCodeSvgWriter.SVG_NS = 'http://www.w3.org/2000/svg';\n return BrowserQRCodeSvgWriter;\n}());\nexports.BrowserQRCodeSvgWriter = BrowserQRCodeSvgWriter;\n//# sourceMappingURL=BrowserQRCodeSvgWriter.js.map","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 */\nvar PerspectiveTransform = /** @class */ (function () {\n function PerspectiveTransform(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 PerspectiveTransform.quadrilateralToQuadrilateral = function (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 var qToS = PerspectiveTransform.quadrilateralToSquare(x0, y0, x1, y1, x2, y2, x3, y3);\n var sToQ = PerspectiveTransform.squareToQuadrilateral(x0p, y0p, x1p, y1p, x2p, y2p, x3p, y3p);\n return sToQ.times(qToS);\n };\n PerspectiveTransform.prototype.transformPoints = function (points) {\n var max = points.length;\n var a11 = this.a11;\n var a12 = this.a12;\n var a13 = this.a13;\n var a21 = this.a21;\n var a22 = this.a22;\n var a23 = this.a23;\n var a31 = this.a31;\n var a32 = this.a32;\n var a33 = this.a33;\n for (var i = 0; i < max; i += 2) {\n var x = points[i];\n var y = points[i + 1];\n var 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 PerspectiveTransform.prototype.transformPointsWithValues = function (xValues, yValues) {\n var a11 = this.a11;\n var a12 = this.a12;\n var a13 = this.a13;\n var a21 = this.a21;\n var a22 = this.a22;\n var a23 = this.a23;\n var a31 = this.a31;\n var a32 = this.a32;\n var a33 = this.a33;\n var n = xValues.length;\n for (var i = 0; i < n; i++) {\n var x = xValues[i];\n var y = yValues[i];\n var 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 PerspectiveTransform.squareToQuadrilateral = function (x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/) {\n var dx3 = x0 - x1 + x2 - x3;\n var 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 var dx1 = x1 - x2;\n var dx2 = x3 - x2;\n var dy1 = y1 - y2;\n var dy2 = y3 - y2;\n var denominator = dx1 * dy2 - dx2 * dy1;\n var a13 = (dx3 * dy2 - dx2 * dy3) / denominator;\n var 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 PerspectiveTransform.quadrilateralToSquare = function (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 PerspectiveTransform.prototype.buildAdjoint = function () {\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 PerspectiveTransform.prototype.times = function (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 return PerspectiveTransform;\n}());\nexports.default = PerspectiveTransform;\n//# sourceMappingURL=PerspectiveTransform.js.map","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*namespace com.google.zxing.common {*/\n/*import java.util.Arrays;*/\nvar BitArray_1 = require(\"./BitArray\");\nvar System_1 = require(\"../util/System\");\nvar Arrays_1 = require(\"../util/Arrays\");\nvar StringBuilder_1 = require(\"../util/StringBuilder\");\nvar IllegalArgumentException_1 = require(\"../IllegalArgumentException\");\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 */\nvar BitMatrix /*implements Cloneable*/ = /** @class */ (function () {\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 function BitMatrix(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_1.default('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 * @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 BitMatrix.parseFromBooleanArray = function (image) {\n var height = image.length;\n var width = image[0].length;\n var bits = new BitMatrix(width, height);\n for (var i = 0; i < height; i++) {\n var imageI = image[i];\n for (var j = 0; j < width; j++) {\n if (imageI[j]) {\n bits.set(j, i);\n }\n }\n }\n return bits;\n };\n BitMatrix.parseFromString = function (stringRepresentation, setString, unsetString) {\n if (stringRepresentation === null) {\n throw new IllegalArgumentException_1.default('stringRepresentation cannot be null');\n }\n var bits = new Array(stringRepresentation.length);\n var bitsPos = 0;\n var rowStartPos = 0;\n var rowLength = -1;\n var nRows = 0;\n var 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_1.default('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_1.default('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_1.default('row lengths do not match');\n }\n nRows++;\n }\n var matrix = new BitMatrix(rowLength, nRows);\n for (var 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 BitMatrix.prototype.get = function (x /*int*/, y /*int*/) {\n var 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 BitMatrix.prototype.set = function (x /*int*/, y /*int*/) {\n var offset = y * this.rowSize + Math.floor(x / 32);\n this.bits[offset] |= (1 << (x & 0x1f)) & 0xFFFFFFFF;\n };\n BitMatrix.prototype.unset = function (x /*int*/, y /*int*/) {\n var 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 BitMatrix.prototype.flip = function (x /*int*/, y /*int*/) {\n var 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 BitMatrix.prototype.xor = function (mask) {\n if (this.width !== mask.getWidth() || this.height !== mask.getHeight()\n || this.rowSize !== mask.getRowSize()) {\n throw new IllegalArgumentException_1.default('input matrix dimensions do not match');\n }\n var rowArray = new BitArray_1.default(Math.floor(this.width / 32) + 1);\n var rowSize = this.rowSize;\n var bits = this.bits;\n for (var y = 0, height = this.height; y < height; y++) {\n var offset = y * rowSize;\n var row = mask.getRow(y, rowArray).getBitArray();\n for (var x = 0; x < rowSize; x++) {\n bits[offset + x] ^= row[x];\n }\n }\n };\n /**\n * Clears all bits (sets to false).\n */\n BitMatrix.prototype.clear = function () {\n var bits = this.bits;\n var max = bits.length;\n for (var 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 BitMatrix.prototype.setRegion = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\n if (top < 0 || left < 0) {\n throw new IllegalArgumentException_1.default('Left and top must be nonnegative');\n }\n if (height < 1 || width < 1) {\n throw new IllegalArgumentException_1.default('Height and width must be at least 1');\n }\n var right = left + width;\n var bottom = top + height;\n if (bottom > this.height || right > this.width) {\n throw new IllegalArgumentException_1.default('The region must fit inside the matrix');\n }\n var rowSize = this.rowSize;\n var bits = this.bits;\n for (var y = top; y < bottom; y++) {\n var offset = y * rowSize;\n for (var 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 BitMatrix.prototype.getRow = function (y /*int*/, row) {\n if (row === null || row === undefined || row.getSize() < this.width) {\n row = new BitArray_1.default(this.width);\n }\n else {\n row.clear();\n }\n var rowSize = this.rowSize;\n var bits = this.bits;\n var offset = y * rowSize;\n for (var 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 BitMatrix.prototype.setRow = function (y /*int*/, row) {\n System_1.default.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 BitMatrix.prototype.rotate180 = function () {\n var width = this.getWidth();\n var height = this.getHeight();\n var topRow = new BitArray_1.default(width);\n var bottomRow = new BitArray_1.default(width);\n for (var i = 0, length_1 = Math.floor((height + 1) / 2); i < length_1; 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 BitMatrix.prototype.getEnclosingRectangle = function () {\n var width = this.width;\n var height = this.height;\n var rowSize = this.rowSize;\n var bits = this.bits;\n var left = width;\n var top = height;\n var right = -1;\n var bottom = -1;\n for (var y = 0; y < height; y++) {\n for (var x32 = 0; x32 < rowSize; x32++) {\n var 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 var 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 var 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 BitMatrix.prototype.getTopLeftOnBit = function () {\n var rowSize = this.rowSize;\n var bits = this.bits;\n var bitsOffset = 0;\n while (bitsOffset < bits.length && bits[bitsOffset] === 0) {\n bitsOffset++;\n }\n if (bitsOffset === bits.length) {\n return null;\n }\n var y = bitsOffset / rowSize;\n var x = (bitsOffset % rowSize) * 32;\n var theBits = bits[bitsOffset];\n var bit = 0;\n while (((theBits << (31 - bit)) & 0xFFFFFFFF) === 0) {\n bit++;\n }\n x += bit;\n return Int32Array.from([x, y]);\n };\n BitMatrix.prototype.getBottomRightOnBit = function () {\n var rowSize = this.rowSize;\n var bits = this.bits;\n var bitsOffset = bits.length - 1;\n while (bitsOffset >= 0 && bits[bitsOffset] === 0) {\n bitsOffset--;\n }\n if (bitsOffset < 0) {\n return null;\n }\n var y = Math.floor(bitsOffset / rowSize);\n var x = Math.floor(bitsOffset % rowSize) * 32;\n var theBits = bits[bitsOffset];\n var 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 BitMatrix.prototype.getWidth = function () {\n return this.width;\n };\n /**\n * @return The height of the matrix\n */\n BitMatrix.prototype.getHeight = function () {\n return this.height;\n };\n /**\n * @return The row size of the matrix\n */\n BitMatrix.prototype.getRowSize = function () {\n return this.rowSize;\n };\n /*@Override*/\n BitMatrix.prototype.equals = function (o) {\n if (!(o instanceof BitMatrix)) {\n return false;\n }\n var other = o;\n return this.width === other.width && this.height === other.height && this.rowSize === other.rowSize &&\n Arrays_1.default.equals(this.bits, other.bits);\n };\n /*@Override*/\n BitMatrix.prototype.hashCode = function () {\n var 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_1.default.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 BitMatrix.prototype.toString = function (setString, unsetString, lineSeparator) {\n if (setString === void 0) { setString = 'x'; }\n if (unsetString === void 0) { unsetString = ' '; }\n if (lineSeparator === void 0) { lineSeparator = '\\n'; }\n return this.buildToString(setString, unsetString, lineSeparator);\n };\n BitMatrix.prototype.buildToString = function (setString, unsetString, lineSeparator) {\n var result = new StringBuilder_1.default();\n result.append(lineSeparator);\n for (var y = 0, height = this.height; y < height; y++) {\n for (var 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 BitMatrix.prototype.clone = function () {\n return new BitMatrix(this.width, this.height, this.rowSize, this.bits.slice());\n };\n return BitMatrix;\n}());\nexports.default = BitMatrix;\n//# sourceMappingURL=BitMatrix.js.map","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n"],"sourceRoot":""}