{"version":3,"sources":["webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/vuetify/lib/components/transitions/index.js","webpack:///./node_modules/core-js/library/modules/_has.js","webpack:///./node_modules/core-js/modules/es7.promise.finally.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/vuetify/lib/mixins/routable.js","webpack:///./node_modules/vuetify/lib/directives/resize.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/vuetify/lib/components/VGrid/VFlex.js","webpack:///./node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/xlsx/xlsx.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/library/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/vuetify/lib/components/VCard/VCardTitle.js","webpack:///./node_modules/vuetify/lib/components/VIcon/VIcon.js","webpack:///./node_modules/vuetify/lib/mixins/sizeable.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/vuetify/lib/mixins/overlayable.js","webpack:///./node_modules/xlsx/jszip.js","webpack:///./node_modules/vuetify/lib/mixins/delayable.js","webpack:///./node_modules/vuetify/lib/components/transitions/expand-transition.js","webpack:///./node_modules/core-js/library/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/vuetify/lib/components/VDialog/VDialog.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/xlsx/dist/cpexcel.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/vuetify/lib/mixins/measurable.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/library/modules/_to-object.js","webpack:///./node_modules/vuetify/lib/mixins/groupable.js","webpack:///./node_modules/core-js/library/modules/es6.promise.js","webpack:///./node_modules/vuetify/lib/components/VSubheader/index.js","webpack:///./node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/vuetify/lib/mixins/stackable.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/vuetify/lib/components/VTextarea/VTextarea.js","webpack:///./node_modules/vuetify/lib/components/VTextField/index.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/vuetify/lib/components/VToolbar/index.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/vue-cookies/vue-cookies.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/vuetify/lib/components/VSnackbar/VSnackbar.js","webpack:///./node_modules/lodash/lodash.js","webpack:///./node_modules/core-js/modules/_strict-method.js","webpack:///./node_modules/vuex/dist/vuex.esm.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/core-js/library/modules/_invoke.js","webpack:///./node_modules/vuetify/lib/mixins/detachable.js","webpack:///./node_modules/core-js/library/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/vuetify/lib/components/VMenu/index.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_html.js","webpack:///./node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/vuetify/lib/components/VChip/index.js","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_to-iobject.js","webpack:///./node_modules/core-js/library/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/_wks-ext.js","webpack:///./node_modules/core-js/modules/es6.regexp.search.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/vuetify/lib/components/VTooltip/VTooltip.js","webpack:///./node_modules/core-js/library/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_wks-define.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/core-js/library/modules/es7.promise.finally.js","webpack:///./node_modules/vuetify/lib/directives/ripple.js","webpack:///./node_modules/vuetify/lib/mixins/bootable.js","webpack:///./node_modules/core-js/library/modules/_classof.js","webpack:///./node_modules/vuetify/lib/components/VList/VListTileAction.js","webpack:///./node_modules/core-js/library/modules/_task.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/vuetify/lib/components/VCheckbox/index.js","webpack:///./node_modules/core-js/library/modules/es7.promise.try.js","webpack:///./node_modules/core-js/library/modules/_perform.js","webpack:///./node_modules/core-js/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/library/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/vuetify/lib/components/VForm/VForm.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/library/modules/_set-species.js","webpack:///./node_modules/vuetify/lib/mixins/transitionable.js","webpack:///./node_modules/vuetify/lib/components/VBadge/VBadge.js","webpack:///./node_modules/core-js/library/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/core-js/library/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_fails-is-regexp.js","webpack:///./node_modules/core-js/library/modules/_wks.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/library/modules/_object-gpo.js","webpack:///./node_modules/vuetify/lib/components/VGrid/VContent.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/es6.array.sort.js","webpack:///./node_modules/vuetify/lib/components/VList/VListGroup.js","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/vuetify/lib/util/mixins.js","webpack:///./node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/core-js/library/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/vuetify/lib/components/VList/index.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/vuetify/lib/mixins/comparable.js","webpack:///./node_modules/core-js/modules/_object-sap.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/vuetify/lib/mixins/proxyable.js","webpack:///./node_modules/vuetify/lib/components/VItemGroup/VItemGroup.js","webpack:///./node_modules/vuetify/lib/mixins/filterable.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/library/modules/_uid.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/vuetify-loader/lib/runtime/installComponents.js","webpack:///./node_modules/core-js/library/modules/_new-promise-capability.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/library/fn/promise.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/vuetify/lib/mixins/themeable.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/core-js/library/modules/web.dom.iterable.js","webpack:///./node_modules/vuetify/lib/components/VToolbar/VToolbarSideIcon.js","webpack:///./node_modules/vuetify/lib/components/VTabs/VTab.js","webpack:///./node_modules/core-js/library/modules/_string-at.js","webpack:///./node_modules/vuetify/lib/directives/scroll.js","webpack:///./node_modules/vuetify/lib/components/VToolbar/VToolbar.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/vuetify/lib/util/colorUtils.js","webpack:///./node_modules/vuetify/lib/util/color/transformSRGB.js","webpack:///./node_modules/vuetify/lib/util/color/transformCIELAB.js","webpack:///./node_modules/vuetify/lib/util/theme.js","webpack:///./node_modules/vuetify/lib/components/VApp/mixins/app-theme.js","webpack:///./node_modules/vuetify/lib/components/VApp/VApp.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/promise.js","webpack:///./node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack:///./node_modules/vuetify/lib/util/rebuildFunctionalSlots.js","webpack:///./node_modules/vuetify/lib/components/VProgressLinear/VProgressLinear.js","webpack:///./node_modules/vuetify/lib/components/VProgressLinear/index.js","webpack:///./node_modules/vuetify/lib/mixins/loadable.js","webpack:///./node_modules/core-js/library/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/vuetify/lib/util/helpers.js","webpack:///./node_modules/vuetify/lib/components/VProgressCircular/VProgressCircular.js","webpack:///./node_modules/vuetify/lib/components/VProgressCircular/index.js","webpack:///./node_modules/vuetify/lib/components/VBtn/VBtn.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_same-value.js","webpack:///./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/vuetify/lib/components/VCounter/VCounter.js","webpack:///./node_modules/vuetify/lib/components/VCounter/index.js","webpack:///./node_modules/vuetify/lib/util/mask.js","webpack:///./node_modules/vuetify/lib/mixins/maskable.js","webpack:///./node_modules/vuetify/lib/components/VTextField/VTextField.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/vuetify/lib/components/VList/VList.js","webpack:///./node_modules/core-js/modules/es6.symbol.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/core-js/library/modules/_iter-create.js","webpack:///./node_modules/vuetify/lib/mixins/data-iterable.js","webpack:///./node_modules/vuetify/lib/components/VDataTable/mixins/head.js","webpack:///./node_modules/vuetify/lib/components/VDataTable/mixins/body.js","webpack:///./node_modules/vuetify/lib/components/VDataTable/mixins/foot.js","webpack:///./node_modules/vuetify/lib/components/VDataTable/mixins/progress.js","webpack:///./node_modules/vuetify/lib/components/VDataTable/VDataTable.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/core-js/library/modules/_redefine.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/vuetify/lib/mixins/registrable.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/vuetify/lib/mixins/toggleable.js","webpack:///./node_modules/vuetify/lib/components/VGrid/index.js","webpack:///./node_modules/vuetify/lib/components/VResponsive/VResponsive.js","webpack:///./node_modules/vuetify/lib/components/VResponsive/index.js","webpack:///./node_modules/vuetify/lib/components/VImg/VImg.js","webpack:///./node_modules/vuetify/lib/components/VCard/VCardMedia.js","webpack:///./node_modules/vuetify/lib/components/VCard/index.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/vuetify/lib/components/VIcon/index.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/library/modules/_object-create.js","webpack:///./node_modules/core-js/library/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/vuetify/lib/components/VGrid/VContainer.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/vuetify/lib/components/VGrid/VLayout.js","webpack:///./node_modules/core-js/modules/_string-trim.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/vuetify/lib/util/dedupeModelListeners.js","webpack:///./node_modules/core-js/library/modules/_microtask.js","webpack:///./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/vuetify/lib/mixins/rippleable.js","webpack:///./node_modules/vuetify/lib/mixins/selectable.js","webpack:///./node_modules/vuetify/lib/components/VCheckbox/VCheckbox.js","webpack:///./node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/vuetify/lib/components/VBtn/index.js","webpack:///./node_modules/vuetify/lib/mixins/elevatable.js","webpack:///./node_modules/vuetify/lib/components/VSheet/VSheet.js","webpack:///./node_modules/vuetify/lib/components/VSheet/index.js","webpack:///./node_modules/vuetify/lib/components/VCard/VCard.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/core-js/library/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/core-js/library/modules/_to-length.js","webpack:///./node_modules/vuetify/lib/components/VSelect/VSelectList.js","webpack:///./node_modules/vuetify/lib/components/VSelect/VSelect.js","webpack:///./node_modules/vuetify/lib/components/VAutocomplete/VAutocomplete.js","webpack:///./node_modules/vuetify/lib/components/VAutocomplete/index.js","webpack:///./node_modules/vuetify/lib/components/VOverflowBtn/VOverflowBtn.js","webpack:///./node_modules/vuetify/lib/components/VOverflowBtn/index.js","webpack:///./node_modules/vuetify/lib/components/VCombobox/VCombobox.js","webpack:///./node_modules/vuetify/lib/components/VCombobox/index.js","webpack:///./node_modules/vuetify/lib/components/VSelect/index.js","webpack:///./node_modules/vuetify/lib/mixins/ssr-bootable.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/vuetify/lib/mixins/colorable.js","webpack:///./node_modules/vuetify/lib/components/VDivider/index.js","webpack:///./node_modules/vuetify/lib/mixins/menuable.js","webpack:///./node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/vuetify/lib/components/VLabel/VLabel.js","webpack:///./node_modules/vuetify/lib/components/VLabel/index.js","webpack:///./node_modules/vuetify/lib/components/VList/VListTile.js","webpack:///./node_modules/vuetify/lib/components/Vuetify/mixins/application.js","webpack:///./node_modules/vuetify/lib/components/Vuetify/mixins/breakpoint.js","webpack:///./node_modules/vuetify/lib/components/Vuetify/mixins/theme.js","webpack:///./node_modules/vuetify/lib/components/Vuetify/mixins/icons.js","webpack:///./node_modules/vuetify/lib/components/Vuetify/mixins/options.js","webpack:///./node_modules/vuetify/lib/locale/en.js","webpack:///./node_modules/vuetify/lib/components/Vuetify/mixins/lang.js","webpack:///./node_modules/vuetify/lib/components/Vuetify/goTo/easing-patterns.js","webpack:///./node_modules/vuetify/lib/components/Vuetify/goTo/util.js","webpack:///./node_modules/vuetify/lib/components/Vuetify/goTo/index.js","webpack:///./node_modules/vuetify/lib/components/Vuetify/index.js","webpack:///./node_modules/vuetify/lib/index.js","webpack:///./node_modules/core-js/library/modules/_user-agent.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/vuetify/lib/util/ThemeProvider.js","webpack:///./node_modules/vuetify/es5/util/colors.js","webpack:///./node_modules/vuetify/lib/mixins/positionable.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/vuetify/lib/directives/touch.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/library/modules/es6.array.iterator.js","webpack:///./node_modules/vuetify/lib/components/VMessages/VMessages.js","webpack:///./node_modules/vuetify/lib/components/VMessages/index.js","webpack:///./node_modules/vuetify/lib/mixins/validatable.js","webpack:///./node_modules/vuetify/lib/components/VInput/VInput.js","webpack:///./node_modules/vuetify/lib/components/VInput/index.js","webpack:///./node_modules/core-js/library/modules/_object-keys.js","webpack:///./node_modules/vuetify/lib/directives/click-outside.js","webpack:///./node_modules/core-js/modules/es6.number.constructor.js","webpack:///./node_modules/vuetify/lib/components/VWindow/VWindowItem.js","webpack:///./node_modules/vuetify/lib/components/VTabs/VTabItem.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/vuetify/lib/mixins/dependent.js","webpack:///./node_modules/vuetify/lib/mixins/applicationable.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/vuetify/lib/components/VAvatar/VAvatar.js","webpack:///./node_modules/vuetify/lib/components/VAvatar/index.js","webpack:///./node_modules/vuetify/lib/components/VList/VListTileAvatar.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/vuetify/lib/components/VChip/VChip.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/library/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/vuetify/lib/components/VDivider/VDivider.js","webpack:///./node_modules/core-js/modules/_string-context.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_enum-keys.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/vuetify/lib/components/VItemGroup/VItem.js","webpack:///./node_modules/vuetify/lib/util/console.js","webpack:///./node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/vuetify/lib/components/VSubheader/VSubheader.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/vuetify/lib/components/VMenu/mixins/menu-activator.js","webpack:///./node_modules/vuetify/lib/components/VMenu/mixins/menu-generators.js","webpack:///./node_modules/vuetify/lib/components/VMenu/mixins/menu-keyable.js","webpack:///./node_modules/vuetify/lib/components/VMenu/mixins/menu-position.js","webpack:///./node_modules/vuetify/lib/components/VMenu/VMenu.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/vuetify/lib/components/VGrid/grid.js","webpack:///./node_modules/vuetify/lib/mixins/returnable.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/core-js/library/modules/_species-constructor.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/vuetify/lib/components/VNavigationDrawer/VNavigationDrawer.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_string-ws.js","webpack:///./node_modules/vuetify/lib/components/VTabs/mixins/tabs-computed.js","webpack:///./node_modules/vuetify/lib/components/VWindow/VWindow.js","webpack:///./node_modules/vuetify/lib/components/VTabs/VTabsItems.js","webpack:///./node_modules/vuetify/lib/components/VTabs/VTabsSlider.js","webpack:///./node_modules/vuetify/lib/components/VTabs/mixins/tabs-generators.js","webpack:///./node_modules/vuetify/lib/components/VTabs/mixins/tabs-props.js","webpack:///./node_modules/vuetify/lib/components/VTabs/mixins/tabs-touch.js","webpack:///./node_modules/vuetify/lib/components/VTabs/mixins/tabs-watchers.js","webpack:///./node_modules/vuetify/lib/components/VTabs/VTabs.js"],"names":["LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","keys","FF_ITERATOR","KEYS","VALUES","returnThis","this","module","exports","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","methods","key","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","prototype","$native","$default","$entries","undefined","$anyNative","entries","call","Object","name","values","P","F","toInteger","defined","TO_STRING","that","pos","a","b","s","String","i","l","length","charCodeAt","charAt","slice","at","S","index","unicode","VFadeTransition","VSlideXTransition","VExpandTransition","hasOwnProperty","it","core","global","speciesConstructor","promiseResolve","R","onFinally","C","Promise","isFunction","then","x","e","ctx","IObject","toObject","toLength","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","$this","callbackfn","val","res","O","self","f","result","push","anObject","ignoreCase","multiline","sticky","_extends","assign","target","arguments","source","_defineProperty","obj","value","defineProperty","enumerable","configurable","writable","extend","directives","Ripple","props","activeClass","append","Boolean","disabled","exact","type","default","exactActiveClass","href","to","nuxt","replace","ripple","tag","computed","computedRipple","click","$emit","generateRouteLink","classes","data","attrs","class","$listeners","path","proxyClass","inserted","el","binding","callback","options","passive","window","addEventListener","_onResize","modifiers","quiet","unbind","_el$_onResize","removeEventListener","$keys","enumBugKeys","max","Math","min","make_xlsx_lib","XLSX","version","current_codepage","current_ansi","cptable","VALID_ANSI","CS2CP","0","1","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","o","len","utf16leread","fromCharCode","join","utf16beread","debom","c1","c2","_getchar","_getansi","utils","decode","DENSE","DIF_XL","Base64","map","encode","input","c3","e1","e2","e3","e4","isNaN","has_buf","Buffer","process","versions","node","Buffer_from","nbfs","from","buf","enc","bind","alloc","n","allocUnsafe","new_raw_buf","Array","new_unsafe_buf","s2a","split","s2ab","ArrayBuffer","view","Uint8Array","a2s","isArray","_chr","a2u","Error","ab2a","bconcat","bufs","concat","apply","chr0","chr1","SSF","make_ssf","_strrev","fill","c","pad0","v","d","t","pad_","rpad_","pad0r1","round","pad0r2","p2_32","pow","pad0r","isgeneral","days","months","init_table","table_fmt","frac","D","mixed","sgn","B","P_2","P_1","Q_2","Q_1","Q","A","floor","q","parse_date_code","opts","b2","date","time","dow","dout","out","T","u","y","m","H","M","abs","date1904","Date","setDate","getDate","getFullYear","getMonth","getDay","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","epoch","getTimezoneOffset","general_fmt_int","toString","_general_int","general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","w","gfn5","toFixed","toPrecision","toExponential","gfn3","gfn4","V","log","LOG10E","substr","general_fmt","format","write_date","fmt","ss0","ss","tt","outl","commaify","j","_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","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","toUpperCase","eval_fmt","flen","dt","lst","hr","toLowerCase","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","forEach","datestr","timestr","CRC32","DO_NOT_EXPORT_CFB","factory","signed_crc_table","Int32Array","crc32_bstr","bstr","seed","L","crc32_buf","crc32_buf_8","crc32_str","_fs","CFB","fs","namecmp","Z","dirname","p","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","parse","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","ENDOFCHAIN","files","Paths","FileIndex","FullPaths","read_directory","build_full_paths","shift","raw","HEADER_SIGNATURE","nsectors","ceil","FI","FP","pl","dad","get_mfat_entry","entry","payload","mini","start","size","MSSZ","__readInt32LE","new_buf","cnt","sector","get_sector_list","chkd","buf_chain","modulus","addr","nodes","__toBuffer","sl","k","minifat_store","namelen","__utf16le","color","clsid","state","ct","read_date","storage","content","offset","__readUInt32LE","read_file","readFileSync","read","init_cfb","cfb","root","CLSID","seed_cfb","nm","find","rebuild_cfb","gc","_file","pop","now","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","error","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","copy","set","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","bits","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","method","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","createElement","createObjectURL","url","chrome","downloads","download","revokeObjectURL","setTimeout","body","appendChild","removeChild","$","File","Folder","open","encoding","close","read_binary","infile","ks","o2","evert_key","K","evert","evert_num","evert_arr","datenum","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","cc2str","arr","dup","JSON","stringify","fuzzynum","Number","wt","fuzzydate","NaN","getYear","jszip","safe_split_regex","split_regex","re","def","getdatastr","asNodeBuffer","asBinary","_data","getContent","getdatabin","getdata","safegetzipfile","zip","g","getzipfile","getzipdata","safe","getzipstr","zipentries","resolve_path","step","JSZipSync","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","skip_root","z","eq","quot","trim","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","text","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","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","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","end","hexstr","fld","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","row","cstr","decode_col","colstr","unfix_col","col","split_cell","decode_cell","splt","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","run","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","BErr","RBErr","parse_BrtColor","xColorType","nTS","bR","bG","bB","auto","icv","XLSIcv","rgb","rgb2Hex","theme","tint","write_BrtColor","parse_FontFlags","fItalic","fStrikeout","fOutline","fShadow","fCondense","fExtend","write_FontFlags","font","grbit","italic","strike","outline","shadow","condense","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","ct2type","CT_LIST","workbooks","xlsx","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","defaults","CTYPE_XML_ROOT","xsd","xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","VBA","get_rels_path","parse_rels","currentFilePath","hash","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","add_rels","rId","relobj","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","hp","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","parse_ext_props","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","RE","hdr","piao","prop","pr","pio","unshift","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","width","cRun","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","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","id","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","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_Font","dyHeight","write_Font","b5","parse_LabelSst","isst","parse_Label","write_Label","os","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_to_aoa","memo","vfp","l7","nrow","fpos","rlen","current_cp","fields","field","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","metadata","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_rs","tregex","rpregex","rregex","rend","nlregex","parse_rpr","rpr","intro","outro","align","pass","uval","family","parse_r","terms","rs","sitregex","sirregex","sirphregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","count","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","xml","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","horizontal","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","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","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","THEME","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","fillcolor","strokecolor","on","parse_comments","dirComments","sheetRels","canonicalpath","parse_cmnt","sheetNames","sheetName","insertCommentsIntoSheet","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","$4","$5","fstr","crefregex","$0","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","formula_quote_sheet_name","sname","get_ixti_raw","supbooks","XTI","SID","get_ixti","stringify_formula","stack","nameidx","last_sp","sp","fflen","argc","func","args","lbl","names","XLSXFutureFunctions","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","PtgNonDisp","_left","rgcb","parse_XLSCellParsedFormula","parse_FormulaValue","parse_Formula","cbf","shared","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","Map","get_sst_id","has","revarr","get","col_obj_w","default_margins","margins","mode","defs","left","right","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_protection","deffalse","deftrue","location","Rel","tooltip","rng","margin","write_ws_xml_margins","seencol","coli","colm","colM","write_ws_xml_cols","write_ws_xml_autofilter","Workbook","Names","Sheet","Ref","sviewregex","rightToLeft","Views","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","cellFormula","si","_tag","_r","write_ws_xml_data","params","height","_cell","customHeight","WS_XML_ROOT","write_ws_xml","rdata","vbaraw","cname","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","relc","ignoreEC","numberStoredAsText","sqref","parse_BrtRowHdr","write_BrtRowHdr","ncolspan","lcs","caddr","first","last","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_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","write_BrtColInfo","BrtMarginKeys","parse_BrtMargins","write_BrtMargins","parse_BrtBeginWsView","write_BrtBeginWsView","write_BrtCellIgnoreEC","write_BrtSheetProtection","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_numCache","nf","parse_chart","csheet","nc","cache","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_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","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","seen","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","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_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","html_to_sheet","mtch2","hd","colspan","rowspan","_t","html_to_book","make_html_row","editable","make_html_preamble","_BEGIN","_END","sheet_to_html","_row","BEGIN","END","_preamble","parse_dom_table","getElementsByTagName","midx","is_dom_element_hidden","elts","innerHTML","getAttribute","table_to_book","element","get_computed_style","get_get_computed_style_function","getPropertyValue","ownerDocument","defaultView","getComputedStyle","parse_content_xml","parse_text_p","fixed","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","fix_write_opts","get_sheet_type","safe_parse_wbrels","wbrels","safe_parse_sheet","relsPath","stype","dfile","drelsp","draw","chartp","crelsp","strip_front_slash","binname","dir","link","propdata","deps","bookDeps","wbsheets","wbext","wbrelsi","wbrelsfile","nmode","Deps","Styles","bin","parse_xlsxcfb","dsm","seds","einfo","decrypt_agile","decrypt_std76","foo","vbafmt","_sn","_i","wsrels","_type","need_vml","rId1","read_cfb","read_zip","base64","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","Function","make_json_row","defval","isempty","__rowNum__","outi","counter","CC","blankrows","qreg","make_csv_row","FS","txt","endregex","skipHidden","strip","sheet_to_formulae","cmds","sheet_add_json","js","skipHeader","JS","json_to_sheet","get_formulae","make_csv","make_json","make_formulae","table_to_sheet","sheet_to_slk","sheet_to_row_object_array","add_consts","get_default","ws_get_cell_stub","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","cof","arg","forbiddenField","TypeError","pIE","createDesc","toIObject","toPrimitive","IE8_DOM_DEFINE","gOPD","getOwnPropertyDescriptor","functional","primaryTitle","render","_ref","children","staticClass","SIZE_MAP","large","medium","small","xLarge","isFontAwesome5","iconType","some","includes","VIcon","mixins","getIcon","iconName","$slots","getSize","sizes","explicitSize","getDefaultData","$attrs","applyColors","themeClasses","setTextColor","renderFontIcon","icon","newChildren","delimiterIndex","isMaterialIcon","fontSize","renderSvgIcon","component","nativeOn","$_wrapperFor","domProps","textContent","dP","getKeys","defineProperties","Properties","hideOverlay","overlay","overlayOffset","overlayTimeout","overlayTransitionDuration","watch","removeOverlay","genOverlay","beforeDestroy","_this","isActive","clearTimeout","classList","add","className","absolute","hideScroll","parent","$el","parentNode","querySelector","insertBefore","firstChild","clientHeight","requestAnimationFrame","activeZIndex","zIndex","_this2","showScroll","remove","scrollListener","tagName","isContentEditable","up","pageup","down","pagedown","keyCode","deltaY","checkPath","preventDefault","hasScrollbar","nodeType","Node","ELEMENT_NODE","overflowY","scrollHeight","shouldScroll","scrollTop","isInside","composedPath","dialog","$refs","selected","getSelection","anchorNode","documentElement","parentElement","$vuetify","breakpoint","smAndDown","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","binary","createFolders","string2binary","string2Uint8Array","uint8Array2String","array","string2Blob","buffer","arrayBuffer2Blob","outputType","checkSupport","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","isRegExp","object","USE_TYPEDARRAY","Uint32Array","pako","deflateRaw","inflateRaw","9","clone","newObj","support","compressions","10","ZipEntries","zipEntries","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","11","test","12","Uint8ArrayReader","NodeBufferReader","13","signature","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","getBinaryData","nodebuffer","dataToString","asUTF8","utf8decode","utf8encode","ZipObject","_initialMetadata","asText","asUint8Array","asArrayBuffer","decToHex","prepareFileAttrs","fileAdd","dataType","parentFolder","folderAdd","substring","lastSlash","generateCompressedObjectFrom","generateZipParts","compressedObject","dosTime","dosDate","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","extraFields","unicodePathExtraField","unicodeCommentExtraField","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","filter","search","relativePath","fileClone","regexp","folder","newFolder","kids","writer","zipData","localDirLength","centralDirLength","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","finalize","string","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","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","opt","gzip","err","ended","chunks","strm","avail_out","status","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","dest","src","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","wrap","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","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","head","insert","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","depth","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","done","34","BAD","_in","_out","dmax","wsize","whave","wnext","hold","lcode","dcode","lmask","dmask","here","op","dist","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","check","total","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","mask","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","elems","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","overflow","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","openDelay","closeDelay","openTimeout","closeTimeout","clearDelay","runDelay","delay","expandedParentClass","sizeProperty","beforeEnter","_parent","_initialStyle","transition","visibility","enter","initialStyle","setProperty","offsetHeight","afterEnter","resetStyles","enterCancelled","leave","afterLeave","leaveCancelled","$at","iterated","point","ClickOutside","persistent","fullscreen","fullWidth","noClickAnimation","light","dark","maxWidth","scrollable","animate","animateTimeout","stackClass","stackMinZIndex","contentClass","contentClasses","hasActivator","activator","$scopedSlots","show","beforeMount","$nextTick","isBooted","mounted","animateClick","closeConditional","_isDestroyed","contains","getMaxZIndex","focus","onKeydown","esc","getOpenDependents","getActivator","activatedBy","currentTarget","activatorNode","elm","genActivator","_this3","listeners","stopPropagation","$createElement","_this4","include","getOpenDependentElements","showLazyContent","tabIndex","getScopeIdAttrs","keydown","defer","channel","port","invoke","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","queue","ONREADYSTATECHANGE","fn","listener","event","nextTick","port2","port1","onmessage","postMessage","importScripts","clear","isObject","valueOf","isArrayIter","createProperty","getIterFn","iter","arrayLike","iterator","aLen","mapfn","mapping","iterFn","is","toByteArray","fromByteArray","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","constructor","nativeRegExpMethod","fns","nativeMethod","arg2","forceStringMethod","strfn","rxfn","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","maxHeight","minHeight","minWidth","measurableStyles","ARG","tryGet","callee","namespace","child","groupClasses","created","register","unregister","toggle","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","classof","aFunction","anInstance","forOf","task","microtask","newPromiseCapabilityModule","perform","userAgent","PROMISE","v8","$Promise","isNode","empty","newPromiseCapability","USE_NATIVE","promise","resolve","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","_n","chain","_c","ok","reaction","exited","handler","reject","domain","_h","onHandleUnhandled","exit","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_w","$resolve","wrapper","executor","onFulfilled","onRejected","capability","$$reject","all","iterable","remaining","$index","alreadyCalled","race","_toConsumableArray","arr2","stackElement","stackExclude","exclude","zis","activeElements","getElementsByClassName","getOwnPropertySymbols","extends","VTextField","autoGrow","noResize","rowHeight","validator","noResizeHandle","dynamicHeight","inputHeight","isEnclosed","textarea","lazyValue","internalChange","calculateInputHeight","genInput","onInput","onKeyDown","isFocused","multiLine","slots","dedupeModelListeners","VTextarea","getIteratorMethod","normalizeComponent","scriptExports","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","_scopeId","context","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","advanceStringIndex","callRegExpExec","$min","$push","$SPLIT","LAST_INDEX","MAX_UINT32","SUPPORTS_Y","SPLIT","$split","maybeCallNative","internalSplit","separator","lastLength","lastLastIndex","splitLimit","separatorCopy","splitter","rx","unicodeMatching","lim","VToolbarTitle","VToolbarItems","SRC","$toString","TPL","inspectSource","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","lt","gt","contentWindow","emptyObject","freeze","isUndef","isDef","isTrue","isFalse","isPrimitive","_toString","isPlainObject","isValidArrayIndex","isPromise","catch","toNumber","makeMap","expectsLowerCase","list","isReservedAttribute","item","hasOwn","cached","hit","camelizeRE","camelize","capitalize","hyphenateRE","hyphenate","polyfillBind","boundFn","_length","nativeBind","toArray","_from","noop","no","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","keysA","keysB","looseIndexOf","once","called","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","config","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","bailRE","parsePath","segments","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","isIE","isIE9","isEdge","isIOS","isFF","nativeWatch","supportsPassive","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Symbol","Reflect","ownKeys","Set","uid","Dep","subs","addSub","sub","removeSub","depend","addDep","targetStack","pushTarget","popTarget","VNode","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","original","ob","__ob__","observeArray","dep","arrayKeys","getOwnPropertyNames","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","__proto__","observe","asRootData","isExtensible","_isVue","defineReactive$$1","customSetter","shallow","property","getter","setter","childOb","dependArray","newVal","del","items","strats","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","dedupeHooks","hooks","mergeAssets","key$1","inject","provide","defaultStrat","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","def$$1","mergeOptions","_base","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","_props","getType","isSameType","expectedTypes","handleError","info","$parent","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","isUsingMicroTask","callbacks","flushCallbacks","copies","MutationObserver","observer","textNode","createTextNode","characterData","_resolve","seenObjects","traverse","_traverse","isA","isFrozen","depId","normalizeEvent","once$$1","createFnInvoker","invoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","altKey","checkProp","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","renderSlot","fallback","bindObject","scopedSlotFn","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_l","_q","_m","_k","_b","_e","_u","_g","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","needNormalization","injections","scopedSlots","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","componentVNodeHooks","init","hydrating","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","updateChildComponent","_isMounted","callHook","queueActivatedComponent","activateChildComponent","destroy","deactivateChildComponent","$destroy","hooksToMerge","createComponent","baseCtor","cid","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","transformModel","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","pre","applyNS","registerDeepBindings","force","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","Vue","_render","ensureCtor","comp","__esModule","toStringTag","errorComp","resolved","owner","owners","loading","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","$forceUpdate","timeout","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","$off","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","i$1","cbs","setActiveInstance","prevActiveInstance","initLifecycle","$children","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","teardown","_watchers","mountComponent","updateComponent","Watcher","before","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","propKeys","_propKeys","isInInactiveTree","handlers","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","createEvent","timeStamp","flushSchedulerQueue","watcher","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueWatcher","uid$2","expOrFn","isRenderWatcher","deep","user","lazy","active","dirty","newDeps","depIds","newDepIds","expression","cleanupDeps","oldValue","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initData","initComputed","initWatch","propsOptions","isRoot","getData","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","modified","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","pattern","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","current","cached$$1","patternTypes","KeepAlive","destroyed","ref$1","builtInComponents","initGlobalAPI","configDef","util","defineReactive","delete","observable","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","childNode","mergeClassData","renderClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","query","createElement$1","multiple","setAttribute","createElementNS","createComment","newNode","referenceNode","nextSibling","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","activate","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","initial","isRenderedModule","inVPre","hasChildNodes","childrenMatch","fullInvoke","isInitialPatch","isRealElement","hasAttribute","removeAttribute","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","componentUpdated","callInsert","emptyModifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","setAttributeNS","__ieph","blocker","stopImmediatePropagation","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","events","updateDOMProps","oldProps","childNodes","_value","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","activeElement","_vModifiers","number","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","normalizedName","normalize","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","addClass","removeClass","tar","resolveTransition","css","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","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeAppear","appear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","beforeLeave","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","trigger","directive","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","option","selectedIndex","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","kept","prevChildren","rawChildren","transitionData","removed","c$1","getBoundingClientRect","updated","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","moved","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","cloneNode","newPos","oldPos","dx","dy","platformComponents","defaultConfig","expires","VueCookies","$cookies","cookies","expireTimes","decodeURIComponent","cookie","encodeURIComponent","secure","_expires","_expireTime","toUTCString","isKey","_keys","_index","store","USE_SYMBOL","$exports","autoHeight","activeTimeout","setBackgroundColor","VERSION","LARGE_ARRAY_SIZE","CORE_ERROR_TEXT","FUNC_ERROR_TEXT","HASH_UNDEFINED","MAX_MEMOIZE_SIZE","PLACEHOLDER","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","WRAP_BIND_FLAG","WRAP_BIND_KEY_FLAG","WRAP_CURRY_BOUND_FLAG","WRAP_CURRY_FLAG","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","WRAP_FLIP_FLAG","DEFAULT_TRUNC_LENGTH","DEFAULT_TRUNC_OMISSION","HOT_COUNT","HOT_SPAN","LAZY_FILTER_FLAG","LAZY_MAP_FLAG","LAZY_WHILE_FLAG","INFINITY","MAX_SAFE_INTEGER","MAX_INTEGER","NAN","MAX_ARRAY_LENGTH","MAX_ARRAY_INDEX","HALF_MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","asyncTag","boolTag","dateTag","domExcTag","errorTag","funcTag","genTag","mapTag","numberTag","nullTag","objectTag","promiseTag","proxyTag","regexpTag","setTag","stringTag","symbolTag","undefinedTag","weakMapTag","weakSetTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reTrim","reTrimStart","reTrimEnd","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","deburredLetters","htmlEscapes","htmlUnescapes","stringEscapes","freeParseFloat","freeParseInt","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","types","nodeIsArrayBuffer","isArrayBuffer","nodeIsDate","isDate","nodeIsMap","isMap","nodeIsRegExp","nodeIsSet","isSet","nodeIsTypedArray","isTypedArray","thisArg","arrayAggregator","iteratee","accumulator","arrayEach","arrayEachRight","arrayEvery","predicate","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayPush","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","asciiToArray","asciiWords","baseFindKey","collection","eachFunc","baseFindIndex","fromIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseSortBy","comparer","baseTimes","baseToPairs","baseUnary","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","countHolders","deburrLetter","escapeHtmlChar","escapeStringChar","hasUnicode","hasUnicodeWord","iteratorToArray","mapToArray","overArg","replaceHolders","setToArray","setToPairs","strictLastIndexOf","stringSize","unicodeSize","stringToArray","unicodeToArray","unescapeHtmlChar","unicodeWords","runInContext","pick","funcProto","objectProto","coreJsData","funcToString","idCounter","maskSrcKey","nativeObjectToString","objectCtorString","oldDash","reIsNative","getPrototype","objectCreate","propertyIsEnumerable","spreadableSymbol","isConcatSpreadable","symIterator","symToStringTag","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","random","nativeReverse","reverse","DataView","WeakMap","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","lodash","isObjectLike","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","lazyClone","copyArray","lazyReverse","isArr","isRight","arrLength","getView","iteratees","iterLength","takeCount","baseWrapperValue","iterIndex","Hash","hashClear","__data__","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","SetCache","setCacheAdd","setCacheHas","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","arrayLikeKeys","inherited","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","baseClamp","arrayShuffle","assignMergeValue","baseAssignValue","assignValue","objValue","baseAggregator","baseEach","baseAssign","copyObject","baseAssignIn","keysIn","baseAt","paths","lower","upper","baseClone","bitmask","customizer","isDeep","isFlat","isFull","initCloneArray","getTag","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","copySymbols","initCloneByTag","stacked","subValue","keysFunc","getAllKeysIn","getAllKeys","baseConforms","baseConformsTo","baseDelay","wait","baseDifference","isCommon","valuesLength","valuesIndex","templateSettings","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFill","baseFilter","baseFlatten","isStrict","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","baseGet","castPath","toKey","baseGetAllKeys","symbolsFunc","baseGetTag","getRawTag","objectToString","baseGt","other","baseHas","baseHasIn","baseInRange","baseIntersection","arrays","othLength","othIndex","caches","maxLength","baseInverter","baseInvoke","baseIsArguments","baseIsArrayBuffer","baseIsDate","baseIsEqual","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsMap","baseIsMatch","matchData","noCustomizer","srcValue","baseIsNative","isMasked","baseIsRegExp","baseIsSet","baseIsTypedArray","isLength","baseIteratee","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseKeysIn","nativeKeysIn","isProto","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isStrictComparable","hasIn","baseMerge","srcIndex","baseMergeDeep","newValue","safeGet","mergeFunc","isTyped","isArrayLikeObject","cloneTypedArray","toPlainObject","baseNth","baseOrderBy","orders","getIteratee","criteria","compareMultiple","basePick","basePickBy","baseSet","basePropertyDeep","basePullAll","basePullAt","indexes","previous","baseUnset","baseRange","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","baseSetData","baseSetToString","constant","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","high","mid","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","updater","baseWhile","isDrop","actions","action","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","cloneArrayBuffer","arrayBuffer","cloneDataView","dataView","byteOffset","cloneRegExp","cloneSymbol","typedArray","compareAscending","valIsDefined","valIsReflexive","objCriteria","othCriteria","ordersLength","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","isNew","getSymbols","getSymbolsIn","createAggregator","initializer","createAssigner","assigner","guard","isIterateeCall","createBind","isBind","createCtor","createCaseFirst","methodName","trailing","createCompounder","deburr","thisBinding","createCurry","arity","getHolder","createRecurry","createHybrid","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","getFuncName","funcName","isLaziable","plant","partialsRight","holdersRight","argPos","ary","isAry","isBindKey","isFlip","holdersCount","newHolders","reorder","createInverter","toIteratee","createMathOperation","operator","defaultValue","createOver","arrayFunc","createPadding","chars","charsLength","createPartial","createRange","toFinite","createRelationalOperation","wrapFunc","isCurry","newHoldersRight","newPartials","newPartialsRight","newData","setData","setWrapToString","createRound","precision","pair","createToPairs","createWrap","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","isPartial","arrValue","othValue","compared","convert","objProps","objLength","othProps","skipCtor","objCtor","othCtor","flatten","otherFunc","isKeyable","isOwn","unmasked","stubArray","transforms","getWrapDetails","hasPath","hasFunc","insertWrapDetails","details","ctorString","isMaskable","stubFalse","memoizeCapped","memoize","srcBitmask","newBitmask","isCombo","otherArgs","oldArray","shortOut","reference","updateWrapDetails","lastCalled","stamp","rand","quote","subString","compact","difference","differenceBy","differenceWith","dropRight","dropRightWhile","dropWhile","findIndex","findLastIndex","flattenDeep","flattenDepth","fromPairs","intersection","mapped","intersectionBy","intersectionWith","nth","pull","pullAll","pullAllBy","pullAllWith","pullAt","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sortedUniq","sortedUniqBy","take","takeRight","takeRightWhile","takeWhile","union","unionBy","unionWith","uniq","uniqBy","uniqWith","unzip","group","unzipWith","without","xor","xorBy","xorWith","zipObject","zipObjectDeep","zipWith","tap","interceptor","wrapperAt","wrapperChain","wrapperCommit","wrapperNext","wrapperToIterator","wrapperPlant","wrapperReverse","wrapped","wrapperValue","countBy","findLast","flatMap","flatMapDeep","flatMapDepth","forEachRight","groupBy","isString","invokeMap","keyBy","orderBy","partition","reduce","reduceRight","negate","sample","sampleSize","shuffle","sortBy","after","bindKey","curry","curryRight","debounce","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","debounced","isInvoking","flip","resolver","memoized","Cache","overArgs","funcsLength","partial","partialRight","rearg","rest","spread","throttle","unary","castArray","cloneWith","cloneDeep","cloneDeepWith","conformsTo","gte","isBoolean","isElement","isEmpty","isEqual","isEqualWith","isError","isInteger","isMatch","isMatchWith","isNumber","isNull","isNil","isSafeInteger","isUndefined","isWeakMap","isWeakSet","lte","remainder","isBinary","toSafeInteger","assignIn","assignInWith","assignWith","properties","propsIndex","propsLength","defaultsDeep","mergeWith","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","functions","functionsIn","invert","invertBy","mapKeys","mapValues","merge","omit","omitBy","pickBy","setWith","toPairs","toPairsIn","isArrLike","unset","updateWith","valuesIn","clamp","inRange","floating","temp","camelCase","word","upperFirst","endsWith","position","escape","escapeRegExp","kebabCase","lowerCase","lowerFirst","strLength","padEnd","padStart","radix","repeat","snakeCase","startCase","startsWith","template","settings","isEscaping","isEvaluating","imports","importsKeys","importsValues","interpolate","reDelimiters","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","variable","attempt","toLower","toUpper","trimEnd","trimStart","truncate","omission","newEnd","unescape","upperCase","bindAll","methodNames","cond","conforms","defaultTo","flow","flowRight","matchesProperty","methodOf","noConflict","nthArg","over","overEvery","overSome","propertyOf","rangeRight","stubObject","stubString","stubTrue","times","toPath","uniqueId","prefix","augend","addend","divide","dividend","divisor","maxBy","mean","meanBy","minBy","multiply","multiplier","multiplicand","subtract","minuend","subtrahend","sum","sumBy","entriesIn","extendWith","each","eachRight","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","commit","toJSON","applyMixin","vuexInit","$store","devtoolHook","devtoolPlugin","_devtoolHook","targetState","replaceState","subscribe","mutation","forEachValue","Module","rawModule","runtime","_children","_rawModule","rawState","namespaced","addChild","getChild","mutations","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","targetModule","newModule","getNamespace","rawChildModule","Store","plugins","strict","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","dispatch","installModule","resetStoreVM","useDevtools","prototypeAccessors$1","genericSubscribe","resetStore","hot","oldVm","_vm","wrappedGetters","$$state","enableStrictMode","_withCommit","rootState","parentState","getNestedState","moduleName","local","makeLocalContext","namespacedType","registerMutation","registerAction","registerGetter","noNamespace","_payload","_options","unifyObjectStyle","makeLocalGetters","gettersProxy","splitPos","localType","rootGetters","rawGetter","_Vue","subscribeAction","registerModule","preserveState","unregisterModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","createNamespacedHelpers","isValidMap","helper","index_esm","INCLUDES","searchString","un","_typeof","validateAttachTarget","attach","hasDetached","initDetach","hasContent","deactivated","ArrayProto","sameValue","regExpExec","SEARCH","$search","previousLastIndex","ObjectProto","calculatedMinWidth","closeDependents","calculatedLeft","_dimensions","dimensions","unknown","activatorLeft","isAttached","offsetLeft","nudgeLeft","nudgeRight","calcXOverflow","calculatedTop","_dimensions2","activatorTop","offsetTop","nudgeTop","nudgeBottom","calcYOverflow","pageYOffset","computedTransition","offsetY","offsetX","opacity","callActivate","updateDimensions","startTransition","mouseenter","mouseleave","_class","activatorFixed","isContentActive","wksExt","$Symbol","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","isTouchEvent","calculate","touches","localX","clientX","localY","clientY","radius","scale","_ripple","circle","clientWidth","center","sqrt","centerX","centerY","enabled","container","animation","_calculate","dataset","previousPosition","activated","ripples","isHiding","diff","isRippleEnabled","rippleShow","touched","centered","rippleHide","updateRipple","wasEnabled","removeListeners","_ref$children","filteredChild","descriptor","promiseCapability","stat","bitmap","BREAK","RETURN","lazyValidation","inputs","errorBag","errors","watchInput","shouldValidate","validate","reset","resetValidation","unwatch","found","novalidate","submit","DESCRIPTORS","overlap","badge","SAFE_CLOSING","riter","skipClosing","strong","SET","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","_$vuetify$application","application","bar","insetFooter","paddingTop","paddingRight","paddingBottom","paddingLeft","SHARED","copyright","$sort","comparefn","appendIcon","noAction","prependIcon","subGroup","headerClasses","itemsClasses","listClick","$route","matchRoute","genIcon","genAppendIcon","genGroup","genPrependIcon","genItems","__e","_len","_key","toAbsoluteIndex","IS_INCLUDES","own","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","VListTileActionText","VListTileContent","VListTileTitle","VListTileSubTitle","setPrototypeOf","valueComparator","builtinExec","required","internalLazyValue","internalValue","Proxyable","BaseItemGroup","mandatory","selectedItems","toggleMethod","selectedValues","updateItemsState","onClick","updateInternalValue","updateMandatory","updateItem","valueIndex","updateMultiple","updateSingle","isSame","itemGroup","noDataText","webpackPolyfill","deprecate","IS_WRAP","virtual","PromiseCapability","$$resolve","$includes","META","setDesc","FREEZE","preventExtensions","setMeta","fastKey","getWeak","onFreeze","NEED","functionalThemeClasses","isDark","Themeable","themeableProvide","rootIsDark","rootThemeClasses","oldVal","TO_STRING_TAG","DOMIterables","Collection","defaultSlot","$router","onRouteChange","_onScroll","_el$_onScroll","Scroll","card","clippedLeft","clippedRight","extended","extensionHeight","flat","invertedScroll","manualScroll","prominent","scrollOffScreen","scrollToolbarOffScreen","scrollTarget","scrollThreshold","tabs","currentScroll","heights","mobileLandscape","mobile","desktop","isExtended","isScrollingUp","previousScroll","savedScroll","canScroll","computedContentHeight","mdAndUp","computedExtensionHeight","computedHeight","computedMarginTop","app","computedPaddingLeft","computedPaddingRight","computedTransform","currentThreshold","marginTop","onScroll","updateApplication","extension","gOPS","$assign","isEnum","colorToInt","char","intToHex","hexColor","colorToHex","srgbForwardMatrix","srgbForwardTransform","srgbReverseMatrix","srgbReverseTransform","fromXYZ","xyz","matrix","toXYZ","cielabForwardTransform","cbrt","cielabReverseTransform","transformedY","lab","Ln","_slicedToArray","sliceIterator","_arr","isItem","colors","parsedTheme","genVariations","genBaseColor","genVariantColor","variant","_variant$split","_variant$split2","genColorVariableName","genColorVariable","genStyles","cssVar","variablesCss","aColor","primary","variants","variantValue","lighten","_i2","darken","amount","generatedStyles","themeCache","customProperties","minifyTheme","vueMeta","cspNonce","nonce","metaInfo","applyTheme","$meta","$ssrContext","genStyle","getElementById","Resize","rtl","$find","forced","__g","gOPN","windowNames","getWindowNames","rebuildFunctionalSlots","backgroundColor","backgroundOpacity","bufferValue","indeterminate","backgroundStyle","normalizedBufer","effectiveWidth","normalizedValue","genDeterminate","genBar","genIndeterminate","fade","slide","background","genProgress","progress","FProto","nameRE","macrotask","WebKitMutationObserver","standalone","createSimpleFunctional","mergeTransitions","transitions","createSimpleTransition","hideOnLeave","leaveAbsolute","ourBeforeEnter","ourLeave","transformOrigin","webkitTransformOrigin","_context$data$on","createJavaScriptTransition","passiveSupported","testListenerOpts","addPassiveEventListener","getNestedValue","deepEqual","getObjectValueByPath","getPropertyFromItem","getZIndex","tagsToReplace","escapeHTML","filterObjectOnKeys","filtered","convertToUnit","unit","space","home","backspace","ICONS_PREFIX","remapInternalIcon","getSlotType","button","rotate","calculatedSize","circumference","PI","strokeDashArray","strokeDashOffset","strokeWidth","viewBoxSize","svgStyles","genCircle","cx","cy","genSvg","viewBox","baseMixins","block","depressed","fab","_extends2","defaultRipple","detail","blur","btnToggle","genContent","genLoader","loader","setColor","_generateRouteLink","isGreater","defaultDelimiters","isMaskDelimiter","allowedMasks","isMask","maskValidates","masked","dontFillMaskBlanks","textIndex","maskIndex","newText","returnMaskedValue","selection","lazySelection","preDefined","maskText","setCaretPosition","setSelectionRange","updateRange","unmaskText","resetSelections","selectionEnd","dirtyTypes","VInput","appendOuterIcon","appendOuterIconCb","autofocus","box","browserAutocomplete","clearable","clearIcon","clearIconCb","label","prependInnerIcon","prependInnerIconCb","singleLine","solo","soloInverted","suffix","badInput","initialValue","isClearing","isSingle","isSolo","hasOutline","counterValue","directivesInput","isDirty","isLabelActive","labelPosition","labelValue","prefixWidth","showLabel","hasLabel","prefixLabel","offsetWidth","hasColor","onFocus","onBlur","clearableCallback","genAppendSlot","genSlot","genPrependInnerSlot","genIconSlot","genInputSlot","prepend","genClearIcon","genCounter","maxlength","genDefaultSlot","genTextFieldSlot","genLabel","validationState","focused","for","VLabel","readonly","autocomplete","genMessages","hideDetails","genAffix","validity","onMouseDown","onMouseUp","hasMouseDown","Attributes","expand","subheader","threeLine","twoLine","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","return","role","$fails","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","findChild","setSymbolDesc","protoDesc","$defineProperty","$defineProperties","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","buggy","condition","isExtendedError","_name","View","routerView","route","_routerViewCache","inactive","_routerRoot","vnodeData","routerViewDepth","matched","registerRouteInstance","instances","propsToPass","resolveProps","encodeReserveRE","encodeReserveReplacer","commaRE","resolveQuery","extraQuery","_parseQuery","parsedQuery","parseQuery","param","stringifyQuery","val2","trailingSlashRE","createRoute","redirectedFrom","router","fullPath","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","isObjectEqual","aKeys","bKeys","aVal","bVal","isIncludedRoute","queryIncludes","resolvePath","relative","firstChar","segment","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","delimiter","escaped","modifier","asterisk","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","encodeAsterisk","token","attachKeys","sensitive","regexpToRegexp","arrayToRegexp","stringToRegexp","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","rawPath","parsedPath","basePath","toTypes","eventTypes","Link","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","scopedSlot","navigate","isExactActive","findAnchor","aData","handler$1","event$1","aAttrs","metaKey","ctrlKey","shiftKey","defaultPrevented","installed","registerInstance","callVal","_router","history","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","childMatchAs","alias","aliases","aliasRoute","createMatcher","addRoutes","currentRoute","_createRoute","paramNames","record$1","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","genStateKey","getStateKey","setStateKey","positionStore","setupScroll","protocolAndPath","protocol","host","absolutePath","saveScrollPosition","handleScroll","isPop","behavior","scrollBehavior","getScrollPosition","scrollToPosition","pageXOffset","getElementPosition","docEl","docRect","elRect","isValidPosition","normalizePosition","normalizeOffset","hashStartsWithNumberRE","selector","scrollTo","supportsPushState","ua","pushState","runQueue","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","isESModule","NavigationDuplicated","normalizedLocation","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","extractGuards","guards","instance","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","isValid","bindEnterGuard","poll","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","abort","beforeHooks","postEnterCbs","enterGuards","resolveHooks","afterHooks","HTML5History","expectScroll","supportsScroll","initLocation","getLocation","go","fromRoute","getCurrentLocation","decodeURI","pathname","HashHistory","checkFallback","ensureSlash","setupListeners","getHash","replaceHash","pushHash","searchIndex","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","registerHook","createHref","setupHashListener","beforeEach","beforeResolve","afterEach","forward","getMatchedComponents","normalizedTo","hideActions","disableInitialSort","mustSort","noResultsText","nextIcon","prevIcon","rowsPerPageItems","rowsPerPageText","selectAll","customFilter","customSort","isDescending","sortA","sortB","_map","toLocaleLowerCase","_map2","totalItems","itemKey","pagination","searchLength","defaultPagination","descending","page","rowsPerPage","expanded","actionsClasses","actionsRangeControlsClasses","actionsSelectClasses","actionsPaginationClasses","computedPagination","hasPagination","computedRowsPerPageItems","toLocaleString","lang","hasSelectAll","itemsLength","hasSearch","someItems","everyItem","filteredItems","isSelected","getPage","pageStart","pageStop","filteredItemsImpl","resetPagination","newItemKeys","_this5","updatePagination","initPagination","updatedPagination","isExpanded","additionalFilterArgs","_computedPagination","_this6","createProps","_this7","keyProp","noData","genEmptyItems","noResults","genFilteredItems","genPrevIcon","_this8","VBtn","genNextIcon","_this9","genSelect","_this10","VSelect","menuProps","genPagination","_this11","_$vuetify","stop","pageText","genActions","rangeControls","sortIcon","genTHead","hideHeaders","hasTag","genTR","genTProgress","genHeader","headerKey","checkbox","VCheckbox","inputValue","headerCell","headerText","genHeaderData","scope","sortable","genHeaderSortingData","beingSorted","genTBody","genExpandedRow","headerColumns","expandRow","genTFoot","genActionsFooter","VTableOverflow","headersLength","firstSortable","elements","tableOverflow","hiddenKeys","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","generateWarning","defaultImpl","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","skipTempReset","rootEntry","rootRecord","exception","handle","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","_watch","Toggleable","VSpacer","aspectRatio","computedAspectRatio","aspectStyle","__cachedSizer","alt","contain","gradient","lazySrc","srcset","currentSrc","image","isLoading","calculatedAspectRatio","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","Image","pollForSize","onLoad","getSrc","onload","onerror","img","naturalHeight","naturalWidth","__genPlaceholder","VImg","VCardActions","VCardText","VCard","VCardTitle","UNSCOPABLES","spaces","non","ltrim","rtrim","exporter","ALIAS","FORCE","$iterators","ArrayValues","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","genRipple","onChange","falseValue","trueValue","computedColor","isDisabled","checked","indeterminateIcon","onIcon","offIcon","inputIndeterminate","computedIcon","genCheckbox","elevation","computedElevation","elevationClasses","tile","hover","raised","hideSelected","itemAvatar","itemDisabled","itemText","itemValue","noFilter","searchInput","parsedItems","tileActiveClass","staticNoDataTile","mousedown","VListTile","genTileContent","genAction","VListTileAction","genDivider","VDivider","genFilteredText","_getMaskedCharacters","getMaskedCharacters","middle","genHighlight","VSubheader","genTile","avatar","hasItem","getAvatar","getDisabled","needsTile","getText","VList","divider","defaultMenuProps","closeOnClick","closeOnContentClick","openOnClick","appendIconCb","cacheItems","chips","deletableChips","openOnClear","returnObject","smallChips","attrsInput","cachedItems","isMenuActive","lastItem","keyboardLookupPrefix","keyboardLookupLastTime","allItems","filterDuplicates","hasChips","computedItems","hasSlot","listData","isHidingSelected","virtualizedItems","select","selectItem","staticList","VSelectList","$_menuProps","menuCanShow","normalisedProps","acc","setSelectedItems","menu","activateMenu","setValue","uniqueValues","findExistingIndex","genChipSelection","VChip","tabindex","onChipInput","genCommaSelection","selections","genSelections","genMenu","keypress","onKeyPress","genList","genListWithSlot","slotName","inheritedProps","VMenu","deprecatedProps","genSelection","genSlotSelection","getMenuIndex","listIndex","onEnterDown","onEscDown","KEYBOARD_LOOKUP_THRESHOLD","setMenuIndex","changeListIndex","onTabDown","appendInner","showMoreItems","menuIndex","listTile","tiles","_loop","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","offsetOverflow","allowOverflow","queryText","hideNoData","autoSelectFirst","lazySearch","hasDisplayedItems","currentRange","selectedItem","isSearching","internalSearch","isAnyValueAllowed","searchIsDirty","onFilteredItemsChanged","setSearch","updateSelf","onInternalSearchChanged","updateMenuDimensions","changeSelectedIndex","currentItem","updateAutocomplete","segmented","genSegmentedBtn","itemObj","VAutocomplete","delimiters","editingIndex","updateTags","chip","dblclick","selectionStart","updateEditing","updateCombobox","isUsingSlot","combobox","tags","ieee754","typedArraySupport","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","fromArrayBuffer","fromString","fromObject","assertSize","isEncoding","fromArrayLike","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","valLength","readUInt16BE","foundIndex","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","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","units","leadSurrogate","byteArray","hi","lo","isCssColor","_color$toString$trim$","_color$toString$trim$2","colorName","colorModifier","hasWindow","inputActivator","nudgeWidth","positionX","positionY","absoluteX","absoluteY","pageWidth","computedLeft","computedTop","callDeactivate","checkForWindow","absolutePosition","calcLeft","menuWidth","calcTop","xOverflow","getOffsetLeft","documentHeight","getInnerHeight","toTop","contentHeight","totalHeight","isOverflowing","deactivate","checkForPageYOffset","getOffsetTop","checkActivatorFixed","offsetParent","innerHeight","scrollLeft","getRoundedBoundedClientRect","rect","measure","marginLeft","sneakPeek","isShown","hasJustFocused","listClasses","isLink","hasClick","isRouteLink","BREAKPOINTS_DEFAULTS","thresholds","xs","sm","md","lg","scrollbarWidth","getClientHeight","getClientWidth","resizeTimeout","xl","xsOnly","smOnly","smAndUp","mdOnly","mdAndDown","lgOnly","lgAndDown","lgAndUp","xlOnly","onResize","setDimensions","innerWidth","THEME_DEFAULTS","secondary","accent","success","warning","ICONS_MATERIAL","ICONS_MDI","ICONS_FONTAWESOME4","ICONS_FONTAWESOME","convertToComponentDeclarations","iconSet","iconSets","mdi","fa","fa4","faSvg","icons","iconfont","OPTIONS_DEFAULTS","dataIterator","rowsPerPageAll","nextPage","prevPage","dataTable","carousel","LANG_PREFIX","getTranslation","locale","usingFallback","shortKey","translation","en","locales","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getOffset","totalOffset","getContainer","goTo","_settings","scrollingElement","easing","appOffset","isDrawer","isClipped","startTime","targetLocation","startLocation","ease","currentTime","timeElapsed","Vuetify","checkVueVersion","registerComponents","$_vuetify_subcomponents","requiredVue","vueDep","passes","red","lighten5","lighten4","lighten3","lighten2","lighten1","darken1","darken2","darken3","darken4","accent1","accent2","accent3","accent4","pink","purple","deepPurple","indigo","blue","lightBlue","cyan","teal","green","lightGreen","lime","yellow","amber","orange","deepOrange","brown","blueGrey","grey","shades","black","white","transparent","availableProps","redefineAll","$iterDefine","setSpecies","SIZE","getEntry","getConstructor","ADDER","setStrong","handleGesture","touchstartX","touchendX","touchstartY","touchendY","dirRatio","minDistance","_touchstart","touch","changedTouches","_touchend","_touchmove","touchmoveX","touchmoveY","move","createHandlers","touchstart","touchend","touchmove","_touchHandlers","eventName","addToUnscopables","Arguments","genChildren","genMessage","escapedHTML","errorCount","errorMessages","messages","rules","successMessages","validateOnBlur","errorBucket","hasFocused","hasInput","isResetting","hasError","internalErrorMessages","hasSuccess","internalSuccessMessages","externalError","hasMessages","validationTarget","hasState","genInternalMessages","internalMessages","validations","form","rule","hint","persistentHint","prependIconCb","classesInput","hasHint","$_modelEvent","genPrependSlot","genControl","shouldDeprecate","mouseup","isTrusted","pointerType","_clickOutside","inheritIfRequired","$trim","NUMBER","$Number","BROKEN_COF","TRIM","argument","third","maxCode","digits","Touch","reverseTransition","wasCancelled","windowGroup","internalReverse","onTransitionEnd","onAfterEnter","internalHeight","onBeforeEnter","onLeave","onEnterCancelled","onEnter","div","VWindowItem","searchChildren","results","isDependent","openDependents","getClickableDependentElements","applicationable","applicationProperty","removeApplication","callUpdate","textColor","genClose","inset","symbols","createMessage","$_alreadyWarned","generateComponentTrace","consoleInfo","newMessage","consoleWarn","consoleError","replacement","classifyRE","classify","formatComponentName","includeFile","__file","currentRecursiveSequence","$iterDetect","common","IS_WEAK","fixMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","activatorClickHandler","mouseEnterHandler","mouseLeaveHandler","relatedTarget","addActivatorEvents","removeActivatorEvents","openOnHover","genTransition","genDirectives","disableKeys","getTiles","querySelectorAll","calculatedTopAuto","calcScrollPosition","activeTile","maxScrollTop","calcLeftAuto","defaultOffset","calcTopAuto","tileDistanceFromMenuTop","firstTileOffsetTop","calculatedMaxHeight","calculatedMaxWidth","newActivator","oldActivator","_disabled","ThemeProvider","Grid","returnValue","originalValue","save","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","Item","title","browser","argv","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","clipped","disableRouteWatcher","disableResizeWatcher","miniVariant","miniVariantWidth","mobileBreakPoint","permanent","stateless","temporary","touchless","touchArea","calculatedTransform","calculatedWidth","isMobile","hasApp","reactsToClick","reactsToMobile","reactsToRoute","resizeIsDisabled","showOverlay","calculateTouchArea","parentRect","swipeLeft","swipeRight","transitionend","resizeEvent","initUIEvent","activeTab","containerStyles","hasArrows","showArrows","sliderStyles","sliderLeft","sliderWidth","isReverse","axis","direction","internalIndex","genContainer","nextIndex","updateReverse","VWindow","registerItems","tabProxy","unregisterItems","cycle","changeModel","genWrapper","alignWithTitle","fixedTabs","grow","iconsAndText","VTabsItems","overflowCheck","onTouchStart","onTouchMove","onTouchEnd","genSlider","VTabsSlider","sliderColor","hideSlider","newOffset","scrollOffset","startX","willChange","maxScrollOffset","setOverflow","tabItems","updateTabsView","prevIconVisible","checkPrevIcon","nextIconVisible","checkNextIcon","tabGroup","transitionTime","widths","checkIcons","callSlider","scrollWidth","setWidths","parseNodes","slider","scrollIntoView","totalWidth","_activeTab$$el","itemOffset","additionalOffset","_parseNodes"],"mappings":"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ACR,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,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,E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","file":"js/chunk-vendors.c50ce97e.js","sourcesContent":["'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","import { createSimpleTransition, createJavaScriptTransition } from '../../util/helpers';\nimport ExpandTransitionGenerator from './expand-transition';\n// Component specific transitions\nexport var VBottomSheetTransition = createSimpleTransition('bottom-sheet-transition');\nexport var VCarouselTransition = createSimpleTransition('carousel-transition');\nexport var VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition');\nexport var VTabTransition = createSimpleTransition('tab-transition');\nexport var VTabReverseTransition = createSimpleTransition('tab-reverse-transition');\nexport var VMenuTransition = createSimpleTransition('menu-transition');\nexport var VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in');\n// Generic transitions\nexport var VDialogTransition = createSimpleTransition('dialog-transition');\nexport var VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition');\nexport var VFadeTransition = createSimpleTransition('fade-transition');\nexport var VScaleTransition = createSimpleTransition('scale-transition');\nexport var VScrollXTransition = createSimpleTransition('scroll-x-transition');\nexport var VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition');\nexport var VScrollYTransition = createSimpleTransition('scroll-y-transition');\nexport var VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition');\nexport var VSlideXTransition = createSimpleTransition('slide-x-transition');\nexport var VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition');\nexport var VSlideYTransition = createSimpleTransition('slide-y-transition');\nexport var VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition');\n// JavaScript transitions\nexport var VExpandTransition = createJavaScriptTransition('expand-transition', ExpandTransitionGenerator());\nexport var VExpandXTransition = createJavaScriptTransition('expand-x-transition', ExpandTransitionGenerator('', true));\nexport var VRowExpandTransition = createJavaScriptTransition('row-expand-transition', ExpandTransitionGenerator('datatable__expand-col--expanded'));\nexport default {\n $_vuetify_subcomponents: {\n VBottomSheetTransition: VBottomSheetTransition,\n VCarouselTransition: VCarouselTransition,\n VCarouselReverseTransition: VCarouselReverseTransition,\n VDialogTransition: VDialogTransition,\n VDialogBottomTransition: VDialogBottomTransition,\n VFabTransition: VFabTransition,\n VFadeTransition: VFadeTransition,\n VMenuTransition: VMenuTransition,\n VScaleTransition: VScaleTransition,\n VScrollXTransition: VScrollXTransition,\n VScrollXReverseTransition: VScrollXReverseTransition,\n VScrollYTransition: VScrollYTransition,\n VScrollYReverseTransition: VScrollYReverseTransition,\n VSlideXTransition: VSlideXTransition,\n VSlideXReverseTransition: VSlideXReverseTransition,\n VSlideYTransition: VSlideYTransition,\n VSlideYReverseTransition: VSlideYReverseTransition,\n VTabReverseTransition: VTabReverseTransition,\n VTabTransition: VTabTransition,\n VExpandTransition: VExpandTransition,\n VExpandXTransition: VExpandXTransition,\n VRowExpandTransition: VRowExpandTransition\n }\n};\n//# sourceMappingURL=index.js.map","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\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 var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\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.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Vue from 'vue';\nimport Ripple from '../directives/ripple';\nexport default Vue.extend({\n name: 'routable',\n directives: {\n Ripple: Ripple\n },\n props: {\n activeClass: String,\n append: Boolean,\n disabled: Boolean,\n exact: {\n type: Boolean,\n default: undefined\n },\n exactActiveClass: String,\n href: [String, Object],\n to: [String, Object],\n nuxt: Boolean,\n replace: Boolean,\n ripple: [Boolean, Object],\n tag: String,\n target: String\n },\n computed: {\n computedRipple: function computedRipple() {\n return this.ripple && !this.disabled ? this.ripple : false;\n }\n },\n methods: {\n click: function click(e) {\n this.$emit('click', e);\n },\n generateRouteLink: function generateRouteLink(classes) {\n var exact = this.exact;\n var tag = void 0;\n var data = _defineProperty({\n attrs: { disabled: this.disabled },\n class: classes,\n props: {},\n directives: [{\n name: 'ripple',\n value: this.computedRipple\n }]\n }, this.to ? 'nativeOn' : 'on', _extends({}, this.$listeners, {\n click: this.click\n }));\n if (typeof this.exact === 'undefined') {\n exact = this.to === '/' || this.to === Object(this.to) && this.to.path === '/';\n }\n if (this.to) {\n // Add a special activeClass hook\n // for component level styles\n var activeClass = this.activeClass;\n var exactActiveClass = this.exactActiveClass || activeClass;\n // TODO: apply only in VListTile\n if (this.proxyClass) {\n activeClass += ' ' + this.proxyClass;\n exactActiveClass += ' ' + this.proxyClass;\n }\n tag = this.nuxt ? 'nuxt-link' : 'router-link';\n Object.assign(data.props, {\n to: this.to,\n exact: exact,\n activeClass: activeClass,\n exactActiveClass: exactActiveClass,\n append: this.append,\n replace: this.replace\n });\n } else {\n tag = this.href && 'a' || this.tag || 'a';\n if (tag === 'a' && this.href) data.attrs.href = this.href;\n }\n if (this.target) data.attrs.target = this.target;\n return { tag: tag, data: data };\n }\n }\n});\n//# sourceMappingURL=routable.js.map","function inserted(el, binding) {\n var callback = binding.value;\n var options = binding.options || { passive: true };\n window.addEventListener('resize', callback, options);\n el._onResize = {\n callback: callback,\n options: options\n };\n if (!binding.modifiers || !binding.modifiers.quiet) {\n callback();\n }\n}\nfunction unbind(el) {\n if (!el._onResize) return;\n var _el$_onResize = el._onResize,\n callback = _el$_onResize.callback,\n options = _el$_onResize.options;\n\n window.removeEventListener('resize', callback, options);\n delete el._onResize;\n}\nexport default {\n inserted: inserted,\n unbind: unbind\n};\n//# sourceMappingURL=resize.js.map","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","import '../../../src/stylus/components/_grid.styl';\nimport Grid from './grid';\nexport default Grid('flex');\n//# sourceMappingURL=VFlex.js.map","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","/*! 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.14.5';\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\t// $FlowIgnore\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(_chr).join(\"\");\n\tvar o = []; for(var i = 0; i < data.length; ++i) o[i] = _chr(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.10.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\tt[65535]= 'General';\n}\n\nvar table_fmt = {};\ninit_table(table_fmt);\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}\nfunction general_fmt_int(v) { return v.toString(10); }\nSSF._general_int = general_fmt_int;\nvar general_fmt_num = (function make_general_fmt_num() {\nvar gnr1 = /\\.(\\d*[1-9])0+$/, gnr2 = /\\.0*$/, gnr4 = /\\.(\\d*[1-9])0+/, gnr5 = /\\.0*[Ee]/, gnr6 = /(E[+-])(\\d)$/;\nfunction gfn2(v) {\n\tvar w = (v<0?12:11);\n\tvar o = gfn5(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\nfunction gfn3(v) {\n\tvar o = v.toFixed(11).replace(gnr1,\".$1\");\n\tif(o.length > (v<0?12:11)) o = v.toPrecision(6);\n\treturn o;\n}\nfunction gfn4(o) {\n\tfor(var i = 0; i != o.length; ++i) if((o.charCodeAt(i) | 0x20) === 101) return o.replace(gnr4,\".$1\").replace(gnr5,\"E\").replace(\"e\",\"E\").replace(gnr6,\"$10$2\");\n\treturn o;\n}\nfunction gfn5(o) {\n\treturn o.indexOf(\".\") > -1 ? o.replace(gnr2,\"\").replace(gnr1,\".$1\") : o;\n}\nreturn function general_fmt_num(v) {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = gfn2(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = gfn3(v);\n\treturn gfn5(gfn4(o));\n};})();\nSSF._general_num = general_fmt_num;\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 ? general_fmt_int(v) : 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() { return 0; }\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;\n\t}\n\tif(outl > 0) return pad0(out, outl); else return \"\";\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\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 0;\n\t}\n\treturn Math.round((val-Math.floor(val))*Math.pow(10,d));\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) { if(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0)); return \"\"+Math.floor(val); }\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':\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 { 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) || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && i < fmt.length - 2 && \"0#\".indexOf(fmt.charAt(i+2))>-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\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\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\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\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 '(': 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('(', 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\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 module, require:false, process:false, Buffer:false, 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.2';\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\tfor(j=k; j>=0;) {\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}\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 != _crc32) 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, URL, 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(o.hasOwnProperty(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\nvar dnthresh = basedate.getTime() + (new Date().getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\nfunction datenum(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nfunction numdate(v) {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\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(o.hasOwnProperty(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\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\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\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 = 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?[\\/\\?]?>/g;\nif(!(XML_HEADER.match(tagregex))) tagregex = /<[^>]*>/g;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag, skip_root) {\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\tz[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\tz[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]+));/g, coderegex = /_x([\\da-fA-F]{4})_/g;\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\t// $FlowIgnore\n\tvar utf8readc = function utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); };\n\tif(utf8read(corpus) == utf8readc(corpus)) utf8read = utf8readc;\n\n\t// $FlowIgnore\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] + ';', \"g\"), x[1]]; });\n\treturn function htmldecode(str) {\n\t\tvar o = str.replace(/^[\\t\\n\\r ]+/, \"\").replace(/[\\t\\n\\r ]+$/,\"\").replace(/[\\t\\n\\r ]+/g, \" \").replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\").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) {\n\tswitch(typeof s) {\n\t\tcase 'string': return writextag('vt:lpwstr', s);\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', 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\t/* TODO: codepage */\nval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\nfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\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); c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(c.cRel === 0) s = fix_col(s);\n\tif(c.rRel === 0) 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 ? 0xFFFF : 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 = Buffer(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) { 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(\",\"); }\nfunction decode_cell(cstr) { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction encode_cell(cell) { return encode_col(cell.c) + encode_row(cell.r); }\nfunction decode_range(range) { var x =range.split(\":\").map(decode_cell); return {s:x[0],e:x[x.length-1]}; }\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}\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\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\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.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-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) { return data.read_shift(8, 'f'); }\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\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\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) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if(color.theme) {\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) {\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\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\t/* fBold: d & 0x01 */\n\t\tfItalic: d & 0x02,\n\t\t/* fUnderline: 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(SpecialProperties.hasOwnProperty(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]);\n\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 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/* 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.chart+xml\": \"TODO\",\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/* 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\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\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\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\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\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\tif (!data) return data;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar rels = {};\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\nfunction add_rels(rels, rId, f, type, relobj) {\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(relobj.Type == RELS.HLINK) 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]] = 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\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 \"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 \"名前付き一覧\":\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\tswitch(f[2]) {\n\t\t\tcase \"string\": p[f[1]] = (data.match(matchtag(f[0]))||[])[1]; break;\n\t\t\tcase \"bool\": p[f[1]] = (data.match(matchtag(f[0]))||[])[1] === \"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 = 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(!Props.hasOwnProperty(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(!Custprops.hasOwnProperty(k)) return;\n\t\tif(Props && Props.hasOwnProperty(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}\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}\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 < 8) 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.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}\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 ? [] : 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\treturn {s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags};\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});\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);\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 ( cnt.hasOwnProperty(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 ( cnt.hasOwnProperty(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=\" && str.charCodeAt(5) == 10) { sep = str.charAt(4); str = str.slice(6); }\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(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/* Parse a list of tags */\nvar parse_rs = (function parse_rs_factory() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\"), rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/, nlregex = /\\r\\n/g;\n\t/* 18.4.7 rPr CT_RPrElt */\n\tvar parse_rpr = function parse_rpr(rpr, intro, outro) {\n\t\tvar font = {}, cp = 65001, align = \"\";\n\t\tvar pass = false;\n\t\tvar m = rpr.match(tagregex), i = 0;\n\t\tif(m) for(;i!=m.length; ++i) {\n\t\t\tvar y = parsexmltag(m[i]);\n\t\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t\t/* ** not required . */\n\t\t\t\tcase '':\n\t\t\t\tcase '': font.shadow = 1; break;\n\t\t\t\tcase '': break;\n\n\t\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\t\tcase '':\n\t\t\t\tcase '': font.outline = 1; break;\n\t\t\t\tcase '': break;\n\n\t\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\t\tcase '':\n\t\t\t\tcase '': font.strike = 1; break;\n\t\t\t\tcase '': break;\n\n\t\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\t\tcase '':\n\t\t\t\tcase '': font.u = 1; break;\n\t\t\t\tcase '': break;\n\n\t\t\t\t/* 18.8.2 b */\n\t\t\t\tcase '':\n\t\t\t\tcase '': font.b = 1; break;\n\t\t\t\tcase '': break;\n\n\t\t\t\t/* 18.8.26 i */\n\t\t\t\tcase '':\n\t\t\t\tcase '': font.i = 1; break;\n\t\t\t\tcase '': break;\n\n\t\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\t\tcase '': case '': break;\n\t\t\t\tcase '': pass = false; break;\n\t\t\t\tdefault:\n\t\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t\t}\n\t\t}\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\tif(align == \"superscript\") 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 cp;\n\t};\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\tvar terms = [[],\"\",[]];\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return \"\";\n\t\tterms[1] = t[1];\n\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) /*cp = */parse_rpr(rpr[1], terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).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 null;\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 = 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 = {}/*, sub_border = {}*/;\n\tvar pass = false;\n\tt[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 = y.diagonalUp; }\n\t\t\t\tif (y.diagonalDown) { border.diagonalDown = 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 '': break;\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\tt[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\tt[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/* 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\tt[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 = 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/* 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) { o[o.length] = (writextag('xf', null, c)); });\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\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\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.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\tif(grbit.fItalic) out.italic = 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\to.write_shift(1, 0); /* 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' */ break;\n\t\t\tcase 0x002E: /* 'BrtBorder' */ break;\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); 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});\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/* 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.push(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\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts) {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\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: break; /* text color */\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, 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}\nRELS.IMG = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\nRELS.DRAW = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";\n/* 20.5 DrawingML - SpreadsheetML 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) { var c = decode_cell(x[0]);\n\to = o.concat([\n\t'',\n\t\twritextag('v:fill', writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}), {'color2':\"#BEFF82\", 'angle':\"-180\", 'type':\"gradient\"}),\n\t\twritextag(\"v:shadow\", null, {on:\"t\", 'obscured':\"t\"}),\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, 0, c.r, 0, c.c+3, 100, c.r+5, 100].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}\n\nRELS.CMNT = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";\n\nfunction parse_comments(zip, dirComments, sheets, sheetRels, opts) {\n\tfor(var i = 0; i != dirComments.length; ++i) {\n\t\tvar canonicalpath=dirComments[i];\n\t\tvar comments=parse_cmnt(getzipdata(zip, canonicalpath.replace(/^\\//,''), true), canonicalpath, opts);\n\t\tif(!comments || !comments.length) continue;\n\t\t// find the sheets targeted by these comments\n\t\tvar sheetNames = keys(sheets);\n\t\tfor(var j = 0; j != sheetNames.length; ++j) {\n\t\t\tvar sheetName = sheetNames[j];\n\t\t\tvar rels = sheetRels[sheetName];\n\t\t\tif(rels) {\n\t\t\t\tvar rel = rels[canonicalpath];\n\t\t\t\tif(rel) insertCommentsIntoSheet(sheetName, sheets[sheetName], comments);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction insertCommentsIntoSheet(sheetName, 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 = {};\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 && 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+|)\\]?C(\\[?)(-?\\d+|)\\]?/g;\n\tvar rcbase = ({r:0,c:0});\n\tfunction rcfunc($$,$1,$2,$3,$4,$5) {\n\t\tvar R = $3.length>0?parseInt($3,10)|0:0, C = $5.length>0?parseInt($5,10)|0:0;\n\t\tif(C<0 && $4.length === 0) C=0;\n\t\tvar cRel = false, rRel = false;\n\t\tif($4.length > 0 || $5.length == 0) cRel = true; if(cRel) C += rcbase.c; else --C;\n\t\tif($2.length > 0 || $3.length == 0) rRel = true; if(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])([$]?)([1-9]\\d{0,5}|10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6])(?![_.\\(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};\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(sname.indexOf(\" \") > -1) 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}\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}\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.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) : rev.hasOwnProperty(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(!rev.hasOwnProperty(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\tif(p.t === 'z') return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\ttry {\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(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/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\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\t// $FlowIgnore\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 = data.codeName;\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nfunction write_ws_xml_protection(sp) {\n\t// algorithmName, hashValue, saltValue, spinCountpassword\n\tvar o = ({sheet:1});\n\tvar deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\n\tvar deftrue = [\n\t\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\t\"deleteColumns\", \"deleteRows\",\n\t\t\"sort\", \"autoFilter\", \"pivotTables\"\n\t];\n\tdeffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tdeftrue.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}\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 = {};\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\t(data.match(sviewregex)||[]).forEach(function(r) {\n\t\tvar tag = parsexmltag(r);\n\t\tif(parsexmlbool(tag.rightToLeft)) {\n\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\twb.Views[0].RTL = true;\n\t\t}\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 && cell.f === undefined || cell.t === 'z') return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tswitch(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.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\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(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(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\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(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=_xlfn(unescapexml(utf8read(cref[1])));\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\tsharedf[parseInt(ftag.si, 10)] = [ftag, _xlfn(unescapexml(utf8read(cref[1]))), 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(!opts.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(!opts.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(!opts.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]))) p.v = sstr.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\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\tws['!drawing'] = [];\n\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\to[o.length] = (writextag('sheetPr', null, {'codeName': escapexml(cname)}));\n\t}\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] = \"\";\n\t\tws['!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\tif (ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\t/* pageSetup */\n\n\t//var hfidx = o.length;\n\to[o.length] = \"\";\n\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(ws['!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}\n\telse delete ws['!drawing'];\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/* drawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extList */\n\n\tif(o.length>2) { 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.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\to.write_shift(1, flags); // bit flag\n\to.write_shift(1, 0); // 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\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 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) };\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\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 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\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 0x0097: /* 'BrtPane' */\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' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ 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) {\n\tif(!ws['!autofilter']) return;\n\twrite_record(ba, \"BrtBeginAFilter\", write_UncheckedRfX(safe_decode_range(ws['!autofilter'].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);\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}\nfunction parse_numCache(data) {\n\tvar col = [];\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]] = +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\treturn [col, nf];\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_numCache(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\", '!chart':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['!chart'] = 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\", '!chart':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['!chart'] = 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 = 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 */\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', String(n.Ref).replace(//g, \">\"), 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, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data), name, opts);\n\treturn parse_xlink_xml((data), 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:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nvar _chr = function(c) { return String.fromCharCode(c); };\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) : cell.r;\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: cell.t = 's'; cell.v = xlml_fixstr(ss||xml); break;\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\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'Data':\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: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':\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':\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': /* 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':\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':\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':\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':\n\t\t\tif(state[state.length-1][0] !== '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':\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': break;\n\t\tcase 'B': break;\n\t\tcase 'I': break;\n\t\tcase 'U': break;\n\t\tcase 'S': break;\n\t\tcase 'Sub': break;\n\t\tcase 'Sup': break;\n\t\tcase 'Span': break;\n\t\tcase 'Border': break;\n\t\tcase 'Alignment': break;\n\t\tcase 'Borders': break;\n\t\tcase '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':\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'Protection': break;\n\n\t\tcase 'Author':\n\t\tcase 'Title':\n\t\tcase 'Description':\n\t\tcase 'Created':\n\t\tcase 'Keywords':\n\t\tcase 'Subject':\n\t\tcase 'Category':\n\t\tcase 'Company':\n\t\tcase 'LastAuthor':\n\t\tcase 'LastSaved':\n\t\tcase 'LastPrinted':\n\t\tcase 'Version':\n\t\tcase 'Revision':\n\t\tcase 'TotalTime':\n\t\tcase 'HyperlinkBase':\n\t\tcase 'Manager':\n\t\tcase 'ContentStatus':\n\t\tcase 'Identifier':\n\t\tcase 'Language':\n\t\tcase 'AppName':\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, Rn[3], str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'Paragraphs': break;\n\n\t\tcase 'Styles':\n\t\tcase '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':\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':\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': break;\n\n\t\tcase 'ComponentOptions':\n\t\tcase 'DocumentProperties':\n\t\tcase 'CustomDocumentProperties':\n\t\tcase 'OfficeDocumentSettings':\n\t\tcase 'PivotTable':\n\t\tcase 'PivotCache':\n\t\tcase 'Names':\n\t\tcase 'MapInfo':\n\t\tcase 'PageBreaks':\n\t\tcase 'QueryTable':\n\t\tcase 'DataValidation':\n\t\tcase 'Sorting':\n\t\tcase 'Schema':\n\t\tcase 'data':\n\t\tcase 'ConditionalFormatting':\n\t\tcase 'SmartTagType':\n\t\tcase 'SmartTags':\n\t\tcase 'ExcelWorkbook':\n\t\tcase 'WorkbookOptions':\n\t\tcase '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\") 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': switch(Rn[3]) {\n\t\t\t\t\tcase 'AllowPNG': break;\n\t\t\t\t\tcase 'RemovePersonalInformation': break;\n\t\t\t\t\tcase 'DownloadComponents': break;\n\t\t\t\t\tcase 'LocationOfComponents': break;\n\t\t\t\t\tcase 'Colors': break;\n\t\t\t\t\tcase 'Color': break;\n\t\t\t\t\tcase 'Index': break;\n\t\t\t\t\tcase 'RGB': break;\n\t\t\t\t\tcase 'PixelsPerInch': break; // TODO: set PPI\n\t\t\t\t\tcase 'TargetScreenSize': break;\n\t\t\t\t\tcase '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': switch(Rn[3]) {\n\t\t\t\t\tcase 'Toolbar': break;\n\t\t\t\t\tcase 'HideOfficeLogo': break;\n\t\t\t\t\tcase 'SpreadsheetAutoFit': break;\n\t\t\t\t\tcase 'Label': break;\n\t\t\t\t\tcase 'Caption': break;\n\t\t\t\t\tcase 'MaxHeight': break;\n\t\t\t\t\tcase 'MaxWidth': break;\n\t\t\t\t\tcase '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': switch(Rn[3]) {\n\t\t\t\t\tcase 'Date1904':\nWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'WindowHeight': break;\n\t\t\t\t\tcase 'WindowWidth': break;\n\t\t\t\t\tcase 'WindowTopX': break;\n\t\t\t\t\tcase 'WindowTopY': break;\n\t\t\t\t\tcase 'TabRatio': break;\n\t\t\t\t\tcase 'ProtectStructure': break;\n\t\t\t\t\tcase 'ProtectWindows': break;\n\t\t\t\t\tcase 'ActiveSheet': break;\n\t\t\t\t\tcase 'DisplayInkNotes': break;\n\t\t\t\t\tcase 'FirstVisibleSheet': break;\n\t\t\t\t\tcase 'SupBook': break;\n\t\t\t\t\tcase 'SheetName': break;\n\t\t\t\t\tcase 'SheetIndex': break;\n\t\t\t\t\tcase 'SheetIndexFirst': break;\n\t\t\t\t\tcase 'SheetIndexLast': break;\n\t\t\t\t\tcase 'Dll': break;\n\t\t\t\t\tcase 'AcceptLabelsInFormulas': break;\n\t\t\t\t\tcase 'DoNotSaveLinkValues': break;\n\t\t\t\t\tcase 'Iteration': break;\n\t\t\t\t\tcase 'MaxIterations': break;\n\t\t\t\t\tcase 'MaxChange': break;\n\t\t\t\t\tcase 'Path': break;\n\t\t\t\t\tcase 'Xct': break;\n\t\t\t\t\tcase 'Count': break;\n\t\t\t\t\tcase 'SelectedSheets': break;\n\t\t\t\t\tcase 'Calculation': break;\n\t\t\t\t\tcase 'Uncalced': break;\n\t\t\t\t\tcase 'StartupPrompt': break;\n\t\t\t\t\tcase 'Crn': break;\n\t\t\t\t\tcase 'ExternName': break;\n\t\t\t\t\tcase 'Formula': break;\n\t\t\t\t\tcase 'ColFirst': break;\n\t\t\t\t\tcase 'ColLast': break;\n\t\t\t\t\tcase 'WantAdvise': break;\n\t\t\t\t\tcase 'Boolean': break;\n\t\t\t\t\tcase 'Error': break;\n\t\t\t\t\tcase 'Text': break;\n\t\t\t\t\tcase 'OLE': break;\n\t\t\t\t\tcase 'NoAutoRecover': break;\n\t\t\t\t\tcase 'PublishObjects': break;\n\t\t\t\t\tcase 'DoNotCalculateBeforeSave': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'RefModeR1C1': break;\n\t\t\t\t\tcase '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': switch(Rn[3]) {\n\t\t\t\t\tcase 'OWCVersion': break;\n\t\t\t\t\tcase 'Height': break;\n\t\t\t\t\tcase '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': switch(Rn[3]) {\n\t\t\t\t\tcase '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':\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':\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':\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':\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 'Unsynced': break;\n\t\t\t\t\tcase 'Print': break;\n\t\t\t\t\tcase 'Panes': break;\n\t\t\t\t\tcase 'Scale': break;\n\t\t\t\t\tcase 'Pane': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'Layout': break;\n\t\t\t\t\tcase 'PageSetup': break;\n\t\t\t\t\tcase 'Selected': break;\n\t\t\t\t\tcase 'ProtectObjects': break;\n\t\t\t\t\tcase 'EnableSelection': break;\n\t\t\t\t\tcase 'ProtectScenarios': break;\n\t\t\t\t\tcase 'ValidPrinterInfo': break;\n\t\t\t\t\tcase 'HorizontalResolution': break;\n\t\t\t\t\tcase 'VerticalResolution': break;\n\t\t\t\t\tcase 'NumberofCopies': break;\n\t\t\t\t\tcase 'ActiveRow': break;\n\t\t\t\t\tcase 'ActiveCol': break;\n\t\t\t\t\tcase 'ActivePane': break;\n\t\t\t\t\tcase 'TopRowVisible': break;\n\t\t\t\t\tcase 'TopRowBottomPane': break;\n\t\t\t\t\tcase 'LeftColumnVisible': break;\n\t\t\t\t\tcase 'LeftColumnRightPane': break;\n\t\t\t\t\tcase 'FitToPage': break;\n\t\t\t\t\tcase 'RangeSelection': break;\n\t\t\t\t\tcase 'PaperSizeIndex': break;\n\t\t\t\t\tcase 'PageLayoutZoom': break;\n\t\t\t\t\tcase 'PageBreakZoom': break;\n\t\t\t\t\tcase 'FilterOn': break;\n\t\t\t\t\tcase 'DoNotDisplayGridlines': break;\n\t\t\t\t\tcase 'SplitHorizontal': break;\n\t\t\t\t\tcase 'SplitVertical': break;\n\t\t\t\t\tcase 'FreezePanes': break;\n\t\t\t\t\tcase 'FrozenNoSplit': break;\n\t\t\t\t\tcase 'FitWidth': break;\n\t\t\t\t\tcase 'FitHeight': break;\n\t\t\t\t\tcase 'CommentsLayout': break;\n\t\t\t\t\tcase 'Zoom': break;\n\t\t\t\t\tcase 'LeftToRight': break;\n\t\t\t\t\tcase 'Gridlines': break;\n\t\t\t\t\tcase 'AllowSort': break;\n\t\t\t\t\tcase 'AllowFilter': break;\n\t\t\t\t\tcase 'AllowInsertRows': break;\n\t\t\t\t\tcase 'AllowDeleteRows': break;\n\t\t\t\t\tcase 'AllowInsertCols': break;\n\t\t\t\t\tcase 'AllowDeleteCols': break;\n\t\t\t\t\tcase 'AllowInsertHyperlinks': break;\n\t\t\t\t\tcase 'AllowFormatCells': break;\n\t\t\t\t\tcase 'AllowSizeCols': break;\n\t\t\t\t\tcase 'AllowSizeRows': break;\n\t\t\t\t\tcase 'NoSummaryRowsBelowDetail': break;\n\t\t\t\t\tcase 'TabColorIndex': break;\n\t\t\t\t\tcase 'DoNotDisplayHeadings': break;\n\t\t\t\t\tcase 'ShowPageLayoutZoom': break;\n\t\t\t\t\tcase 'NoSummaryColumnsRightDetail': break;\n\t\t\t\t\tcase 'BlackAndWhite': break;\n\t\t\t\t\tcase 'DoNotDisplayZeros': break;\n\t\t\t\t\tcase 'DisplayPageBreak': break;\n\t\t\t\t\tcase 'RowColHeadings': break;\n\t\t\t\t\tcase 'DoNotDisplayOutline': break;\n\t\t\t\t\tcase 'NoOrientation': break;\n\t\t\t\t\tcase 'AllowUsePivotTables': break;\n\t\t\t\t\tcase 'ZeroHeight': break;\n\t\t\t\t\tcase 'ViewableRange': break;\n\t\t\t\t\tcase 'Selection': break;\n\t\t\t\t\tcase '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 'PivotCache': switch(Rn[3]) {\n\t\t\t\t\tcase 'ImmediateItemsOnDrop': break;\n\t\t\t\t\tcase 'ShowPageMultipleItemLabel': break;\n\t\t\t\t\tcase 'CompactRowIndent': break;\n\t\t\t\t\tcase 'Location': break;\n\t\t\t\t\tcase 'PivotField': break;\n\t\t\t\t\tcase 'Orientation': break;\n\t\t\t\t\tcase 'LayoutForm': break;\n\t\t\t\t\tcase 'LayoutSubtotalLocation': break;\n\t\t\t\t\tcase 'LayoutCompactRow': break;\n\t\t\t\t\tcase 'Position': break;\n\t\t\t\t\tcase 'PivotItem': break;\n\t\t\t\t\tcase 'DataType': break;\n\t\t\t\t\tcase 'DataField': break;\n\t\t\t\t\tcase 'SourceName': break;\n\t\t\t\t\tcase 'ParentField': break;\n\t\t\t\t\tcase 'PTLineItems': break;\n\t\t\t\t\tcase 'PTLineItem': break;\n\t\t\t\t\tcase 'CountOfSameItems': break;\n\t\t\t\t\tcase 'Item': break;\n\t\t\t\t\tcase 'ItemType': break;\n\t\t\t\t\tcase 'PTSource': break;\n\t\t\t\t\tcase 'CacheIndex': break;\n\t\t\t\t\tcase 'ConsolidationReference': break;\n\t\t\t\t\tcase 'FileName': break;\n\t\t\t\t\tcase 'Reference': break;\n\t\t\t\t\tcase 'NoColumnGrand': break;\n\t\t\t\t\tcase 'NoRowGrand': break;\n\t\t\t\t\tcase 'BlankLineAfterItems': break;\n\t\t\t\t\tcase 'Hidden': break;\n\t\t\t\t\tcase 'Subtotal': break;\n\t\t\t\t\tcase 'BaseField': break;\n\t\t\t\t\tcase 'MapChildItems': break;\n\t\t\t\t\tcase 'Function': break;\n\t\t\t\t\tcase 'RefreshOnFileOpen': break;\n\t\t\t\t\tcase 'PrintSetTitles': break;\n\t\t\t\t\tcase 'MergeLabels': break;\n\t\t\t\t\tcase 'DefaultVersion': break;\n\t\t\t\t\tcase 'RefreshName': break;\n\t\t\t\t\tcase 'RefreshDate': break;\n\t\t\t\t\tcase 'RefreshDateCopy': break;\n\t\t\t\t\tcase 'VersionLastRefresh': break;\n\t\t\t\t\tcase 'VersionLastUpdate': break;\n\t\t\t\t\tcase 'VersionUpdateableMin': break;\n\t\t\t\t\tcase 'VersionRefreshableMin': break;\n\t\t\t\t\tcase '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': switch(Rn[3]) {\n\t\t\t\t\tcase 'ColBreaks': break;\n\t\t\t\t\tcase 'ColBreak': break;\n\t\t\t\t\tcase 'RowBreaks': break;\n\t\t\t\t\tcase 'RowBreak': break;\n\t\t\t\t\tcase 'ColStart': break;\n\t\t\t\t\tcase 'ColEnd': break;\n\t\t\t\t\tcase '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': switch(Rn[3]) {\n\t\t\t\t\tcase 'AutoFilterColumn': break;\n\t\t\t\t\tcase 'AutoFilterCondition': break;\n\t\t\t\t\tcase 'AutoFilterAnd': break;\n\t\t\t\t\tcase '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': switch(Rn[3]) {\n\t\t\t\t\tcase 'Id': break;\n\t\t\t\t\tcase 'AutoFormatFont': break;\n\t\t\t\t\tcase 'AutoFormatPattern': break;\n\t\t\t\t\tcase 'QuerySource': break;\n\t\t\t\t\tcase 'QueryType': break;\n\t\t\t\t\tcase 'EnableRedirections': break;\n\t\t\t\t\tcase 'RefreshedInXl9': break;\n\t\t\t\t\tcase 'URLString': break;\n\t\t\t\t\tcase 'HTMLTables': break;\n\t\t\t\t\tcase 'Connection': break;\n\t\t\t\t\tcase 'CommandText': break;\n\t\t\t\t\tcase 'RefreshInfo': break;\n\t\t\t\t\tcase 'NoTitles': break;\n\t\t\t\t\tcase 'NextId': break;\n\t\t\t\t\tcase 'ColumnInfo': break;\n\t\t\t\t\tcase 'OverwriteCells': break;\n\t\t\t\t\tcase 'DoNotPromptForFile': break;\n\t\t\t\t\tcase 'TextWizardSettings': break;\n\t\t\t\t\tcase 'Source': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'Decimal': break;\n\t\t\t\t\tcase 'ThousandSeparator': break;\n\t\t\t\t\tcase 'TrailingMinusNumbers': break;\n\t\t\t\t\tcase 'FormatSettings': break;\n\t\t\t\t\tcase 'FieldType': break;\n\t\t\t\t\tcase 'Delimiters': break;\n\t\t\t\t\tcase 'Tab': break;\n\t\t\t\t\tcase 'Comma': break;\n\t\t\t\t\tcase 'AutoFormatName': break;\n\t\t\t\t\tcase 'VersionLastEdit': break;\n\t\t\t\t\tcase 'VersionLastRefresh': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Sorting':\n\t\t\t\tcase 'ConditionalFormatting':\n\t\t\t\tcase 'DataValidation':\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'Range': break;\n\t\t\t\t\tcase 'Type': break;\n\t\t\t\t\tcase 'Min': break;\n\t\t\t\t\tcase 'Max': break;\n\t\t\t\t\tcase 'Sort': break;\n\t\t\t\t\tcase 'Descending': break;\n\t\t\t\t\tcase 'Order': break;\n\t\t\t\t\tcase 'CaseSensitive': break;\n\t\t\t\t\tcase 'Value': break;\n\t\t\t\t\tcase 'ErrorStyle': break;\n\t\t\t\t\tcase 'ErrorMessage': break;\n\t\t\t\t\tcase 'ErrorTitle': break;\n\t\t\t\t\tcase 'CellRangeList': break;\n\t\t\t\t\tcase 'InputMessage': break;\n\t\t\t\t\tcase 'InputTitle': break;\n\t\t\t\t\tcase 'ComboHide': break;\n\t\t\t\t\tcase 'InputHide': break;\n\t\t\t\t\tcase 'Condition': break;\n\t\t\t\t\tcase 'Qualifier': break;\n\t\t\t\t\tcase 'UseBlank': break;\n\t\t\t\t\tcase 'Value1': break;\n\t\t\t\t\tcase 'Value2': break;\n\t\t\t\t\tcase '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 'Schema': case 'data': switch(Rn[3]) {\n\t\t\t\t\tcase 'Map': break;\n\t\t\t\t\tcase 'Entry': break;\n\t\t\t\t\tcase 'Range': break;\n\t\t\t\t\tcase 'XPath': break;\n\t\t\t\t\tcase 'Field': break;\n\t\t\t\t\tcase 'XSDType': break;\n\t\t\t\t\tcase 'FilterOn': break;\n\t\t\t\t\tcase 'Aggregate': break;\n\t\t\t\t\tcase 'ElementType': break;\n\t\t\t\t\tcase 'AttributeType': break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema':\n\t\t\t\t\tcase 'element':\n\t\t\t\t\tcase 'complexType':\n\t\t\t\t\tcase 'datatype':\n\t\t\t\t\tcase 'all':\n\t\t\t\t\tcase 'attribute':\n\t\t\t\t\tcase 'extends': break;\n\n\t\t\t\t\tcase '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': 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(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]==='CustomDocumentProperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, Rn[3], 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\t\tstyles.push(writextag('Style', payload.join(\"\"), {\"ss:ID\": \"s\" + (21+id)}));\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': return \"\";\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 = '' + _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) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break;\n\tdefault:\n\t\tif(d.length === 0) break;\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') start += 12;\n\t\tbufs.push(blob.slice(start,blob.l+4+l));\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\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;\n\t\t\tif(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\t/* overrides based on test cases */\n\t\t\t\t\tswitch(val) {\n\t\t\t\t\t\tcase 0x5212: val = 1200; break;\n\t\t\t\t\t\tcase 0x8000: val = 10000; break;\n\t\t\t\t\t\tcase 0x8001: val = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = val);\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\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':\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) (DocSummaryRE.hasOwnProperty(Keys[i]) ? DSEntries : SummaryRE.hasOwnProperty(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(!(wb.Props||{}).hasOwnProperty(Keys[i])) (DocSummaryRE.hasOwnProperty(Keys[i]) ? DSEntries : SummaryRE.hasOwnProperty(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\" },\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\" },\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\" },\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\" },\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 },\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\" },\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_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/* ... */\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/* ... */\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 && _WB.Views) 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/* ... */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* ... */\n\twrite_biff_rec(ba, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t/* ... */\n\tif(b8) write_FEAT(ba, ws);\n\t/* ... */\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\twrite_biff_rec(A, \"CodePage\", writeuint16(b8 ? 0x04b0 : 0x04E4));\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) {\n\t\twrite_biff_rec(A, \"ObProj\");\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\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\tif(b8) write_biff_rec(C, \"Country\", write_Country());\n\t/* BIFF8: [SST *Continue] ExtSST */\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\to.cellXfs = [];\n\to.Strings = []; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\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\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\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\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\tvar sp = {};\n\t\t\tif(RS > 1) sp.rowspan = RS;\n\t\t\tif(CS > 1) sp.colspan = CS;\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\tsp.t = cell && cell.t || 'z';\n\t\t\tif(o.editable) w = '' + w + '';\n\t\t\tsp.id = \"sjs-\" + coord;\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\t}\n\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 parse_dom_table(table, _opts) {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar ws = opts.dense ? ([]) : ({});\n\tvar rows = table.getElementsByTagName('tr');\n\tvar sheetRows = opts.sheetRows || 10000000;\n\tvar range = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar merges = [], midx = 0;\n\tvar rowinfo = [];\n\tvar _R = 0, R = 0, _C, C, RS, CS;\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 = htmldecode(elt.innerHTML);\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 && m.s.r <= R && R <= m.e.r) { C = m.e.c+1; 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\"))>0 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 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(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\telse ws[encode_cell({c:C, r:R})] = o;\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = merges;\n\tif(rowinfo.length) ws['!rows'] = rowinfo;\n\trange.e.r = R - 1;\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1,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 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\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 || 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\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\t\t\tcase 'master-styles': break; // TODO: \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(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;\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\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\t\to.push(' \\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 = new jszip();\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.file(f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip.file(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.file(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.file(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.file(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.file(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(SYLK);\nvar write_dif_str = write_obj_str(DIF);\nvar write_prn_str = write_obj_str(PRN);\nvar write_rtf_str = write_obj_str(RTF);\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\nvar write_dbf_buf = write_obj_str(DBF);\nvar write_eth_str = write_obj_str(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 = fix_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]);\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['!chart']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!chart'].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}\n\t\tsheets[sheet] = _ws;\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\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), link, opts);\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\tfor(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\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tif(dir.comments) parse_comments(zip, dir.comments, sheets, sheetRels, opts);\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.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(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 = new jszip();\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.file(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.file(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.file(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\tf = \"xl/chartsheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip.file(f, write_cs(rId-1, f, opts, wb, wsrels));\n\t\t\tct.charts.push(f);\n\t\t\tadd_rels(wsrels, -1, \"chartsheets/sheet\" + rId + \".\" + wbext, RELS.CS);\n\t\t\tbreak; */\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip.file(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.file(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.file(\"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.file(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.file(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.file(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.file(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.file(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.file(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.file(\"[Content_Types].xml\", write_ct(ct, opts));\n\tzip.file('_rels/.rels', write_rels(opts.rels));\n\tzip.file('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]];\n\t\tcase 'base64': x = Base64.decode(f.slice(0,24)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3]];\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)];\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\tswitch(o.type) {\n\t\tcase \"base64\": zip = new jszip(d, { base64:true }); break;\n\t\tcase \"binary\": case \"array\": zip = new jszip(d, { base64:false }); break;\n\t\tcase \"buffer\": zip = new jszip(d); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\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\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: return read_cfb(CFB.read(d, o), o);\n\t\tcase 0x09: return parse_xlscfb(d, o);\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(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\n/*global encrypt_agile */\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.generate(oopts);\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o);\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\t// $FlowIgnore\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\t// $FlowIgnore\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\tcheck_wb(wb);\n\tvar o = opts||{};\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 || !o.hasOwnProperty(\"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 ? 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\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 = ''+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) {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}\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\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[encode_cell({c:_C + C,r:_R + R + offset})] = 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\tws[encode_cell({c:_C + C,r:_R + R + offset})] = cell = ({t:t, v:v});\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\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_dif: DIF.from_sheet,\n\tsheet_to_slk: SYLK.from_sheet,\n\tsheet_to_eth: ETH.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\") return ws[R] || (ws[R] = {t:'z'});\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}\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) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name) 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\nXLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_ods = parse_ods;\nXLSX.parse_fods = parse_fods;\nXLSX.write_ods = write_ods;\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;\nXLSX.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('xlsx', 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","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// Types\nimport Vue from 'vue';\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-card-title',\n functional: true,\n props: {\n primaryTitle: Boolean\n },\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props,\n children = _ref.children;\n\n data.staticClass = ('v-card__title ' + (data.staticClass || '')).trim();\n if (props.primaryTitle) data.staticClass += ' v-card__title--primary';\n return h('div', data, children);\n }\n});\n//# sourceMappingURL=VCardTitle.js.map","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport '../../../src/stylus/components/_icons.styl';\n// Mixins\nimport Colorable from '../../mixins/colorable';\nimport Sizeable from '../../mixins/sizeable';\nimport Themeable from '../../mixins/themeable';\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers';\n// Types\nimport Vue from 'vue';\nimport mixins from '../../util/mixins';\nvar SIZE_MAP;\n(function (SIZE_MAP) {\n SIZE_MAP[\"small\"] = \"16px\";\n SIZE_MAP[\"default\"] = \"24px\";\n SIZE_MAP[\"medium\"] = \"28px\";\n SIZE_MAP[\"large\"] = \"36px\";\n SIZE_MAP[\"xLarge\"] = \"40px\";\n})(SIZE_MAP || (SIZE_MAP = {}));\nfunction isFontAwesome5(iconType) {\n return ['fas', 'far', 'fal', 'fab'].some(function (val) {\n return iconType.includes(val);\n });\n}\nvar VIcon = mixins(Colorable, Sizeable, Themeable\n/* @vue/component */\n).extend({\n name: 'v-icon',\n props: {\n disabled: Boolean,\n left: Boolean,\n right: Boolean\n },\n methods: {\n getIcon: function getIcon() {\n var iconName = '';\n if (this.$slots.default) iconName = this.$slots.default[0].text.trim();\n return remapInternalIcon(this, iconName);\n },\n getSize: function getSize() {\n var sizes = {\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge\n };\n var explicitSize = keys(sizes).find(function (key) {\n return sizes[key];\n });\n return explicitSize && SIZE_MAP[explicitSize] || convertToUnit(this.size);\n },\n\n // Component data for both font and svg icon.\n getDefaultData: function getDefaultData() {\n var data = {\n staticClass: 'v-icon',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.$listeners.click || this.$listeners['!click'],\n 'v-icon--right': this.right\n },\n attrs: _extends({\n 'aria-hidden': true\n }, this.$attrs),\n on: this.$listeners\n };\n return data;\n },\n applyColors: function applyColors(data) {\n data.class = _extends({}, data.class, this.themeClasses);\n this.setTextColor(this.color, data);\n },\n renderFontIcon: function renderFontIcon(icon, h) {\n var newChildren = [];\n var data = this.getDefaultData();\n var iconType = 'material-icons';\n // Material Icon delimiter is _\n // https://material.io/icons/\n var delimiterIndex = icon.indexOf('-');\n var isMaterialIcon = delimiterIndex <= -1;\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon);\n } else {\n iconType = icon.slice(0, delimiterIndex);\n if (isFontAwesome5(iconType)) iconType = '';\n }\n data.class[iconType] = true;\n data.class[icon] = !isMaterialIcon;\n var fontSize = this.getSize();\n if (fontSize) data.style = { fontSize: fontSize };\n this.applyColors(data);\n return h('i', data, newChildren);\n },\n renderSvgIcon: function renderSvgIcon(icon, h) {\n var data = this.getDefaultData();\n data.class['v-icon--is-component'] = true;\n var size = this.getSize();\n if (size) {\n data.style = {\n fontSize: size,\n height: size\n };\n }\n this.applyColors(data);\n var component = icon.component;\n data.props = icon.props;\n data.nativeOn = data.on;\n return h(component, data);\n }\n },\n render: function render(h) {\n var icon = this.getIcon();\n if (typeof icon === 'string') {\n return this.renderFontIcon(icon, h);\n }\n return this.renderSvgIcon(icon, h);\n }\n});\nexport default Vue.extend({\n name: 'v-icon',\n $_wrapperFor: VIcon,\n functional: true,\n render: function render(h, _ref) {\n var data = _ref.data,\n children = _ref.children;\n\n var iconName = '';\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent || data.domProps.innerHTML || iconName;\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent;\n delete data.domProps.innerHTML;\n }\n return h(VIcon, data, iconName ? [iconName] : children);\n }\n});\n//# sourceMappingURL=VIcon.js.map","import Vue from 'vue';\nexport default Vue.extend({\n name: 'sizeable',\n props: {\n large: Boolean,\n medium: Boolean,\n size: {\n type: [Number, String]\n },\n small: Boolean,\n xLarge: Boolean\n }\n});\n//# sourceMappingURL=sizeable.js.map","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// Styles\nimport '../../src/stylus/components/_overlay.styl';\n// Utilities\nimport { keyCodes, addPassiveEventListener } from '../util/helpers';\n// Types\nimport Vue from 'vue';\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'overlayable',\n props: {\n hideOverlay: Boolean\n },\n data: function data() {\n return {\n overlay: null,\n overlayOffset: 0,\n overlayTimeout: undefined,\n overlayTransitionDuration: 500 + 150 // transition + delay\n };\n },\n\n watch: {\n hideOverlay: function hideOverlay(value) {\n if (value) this.removeOverlay();else this.genOverlay();\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.removeOverlay();\n },\n\n methods: {\n genOverlay: function genOverlay() {\n var _this = this;\n\n // If fn is called and timeout is active\n // or overlay already exists\n // cancel removal of overlay and re-add active\n if (!this.isActive || this.hideOverlay || this.isActive && this.overlayTimeout || this.overlay) {\n clearTimeout(this.overlayTimeout);\n return this.overlay && this.overlay.classList.add('v-overlay--active');\n }\n this.overlay = document.createElement('div');\n this.overlay.className = 'v-overlay';\n if (this.absolute) this.overlay.className += ' v-overlay--absolute';\n this.hideScroll();\n var parent = this.absolute ? this.$el.parentNode : document.querySelector('[data-app]');\n parent && parent.insertBefore(this.overlay, parent.firstChild);\n // eslint-disable-next-line no-unused-expressions\n this.overlay.clientHeight; // Force repaint\n requestAnimationFrame(function () {\n // https://github.com/vuetifyjs/vuetify/issues/4678\n if (!_this.overlay) return;\n _this.overlay.className += ' v-overlay--active';\n if (_this.activeZIndex !== undefined) {\n _this.overlay.style.zIndex = String(_this.activeZIndex - 1);\n }\n });\n return true;\n },\n\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay: function removeOverlay() {\n var _this2 = this;\n\n var showScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (!this.overlay) {\n return showScroll && this.showScroll();\n }\n this.overlay.classList.remove('v-overlay--active');\n this.overlayTimeout = window.setTimeout(function () {\n // IE11 Fix\n try {\n if (_this2.overlay && _this2.overlay.parentNode) {\n _this2.overlay.parentNode.removeChild(_this2.overlay);\n }\n _this2.overlay = null;\n showScroll && _this2.showScroll();\n } catch (e) {\n console.log(e);\n }\n clearTimeout(_this2.overlayTimeout);\n _this2.overlayTimeout = undefined;\n }, this.overlayTransitionDuration);\n },\n scrollListener: function scrollListener(e) {\n if (e.type === 'keydown') {\n if (['INPUT', 'TEXTAREA', 'SELECT'].includes(e.target.tagName) ||\n // https://github.com/vuetifyjs/vuetify/issues/4715\n e.target.isContentEditable) return;\n var up = [keyCodes.up, keyCodes.pageup];\n var down = [keyCodes.down, keyCodes.pagedown];\n if (up.includes(e.keyCode)) {\n e.deltaY = -1;\n } else if (down.includes(e.keyCode)) {\n e.deltaY = 1;\n } else {\n return;\n }\n }\n if (e.target === this.overlay || e.type !== 'keydown' && e.target === document.body || this.checkPath(e)) e.preventDefault();\n },\n hasScrollbar: function hasScrollbar(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\n var style = window.getComputedStyle(el);\n return ['auto', 'scroll'].includes(style.overflowY) && el.scrollHeight > el.clientHeight;\n },\n shouldScroll: function shouldScroll(el, delta) {\n if (el.scrollTop === 0 && delta < 0) return true;\n return el.scrollTop + el.clientHeight === el.scrollHeight && delta > 0;\n },\n isInside: function isInside(el, parent) {\n if (el === parent) {\n return true;\n } else if (el === null || el === document.body) {\n return false;\n } else {\n return this.isInside(el.parentNode, parent);\n }\n },\n checkPath: function checkPath(e) {\n var path = e.path || this.composedPath(e);\n var delta = e.deltaY;\n if (e.type === 'keydown' && path[0] === document.body) {\n var dialog = this.$refs.dialog;\n var selected = window.getSelection().anchorNode;\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return this.shouldScroll(dialog, delta);\n }\n return true;\n }\n for (var index = 0; index < path.length; index++) {\n var el = path[index];\n if (el === document) return true;\n if (el === document.documentElement) return true;\n if (el === this.$refs.content) return true;\n if (this.hasScrollbar(el)) return this.shouldScroll(el, delta);\n }\n return true;\n },\n\n /**\n * Polyfill for Event.prototype.composedPath\n */\n composedPath: function composedPath(e) {\n if (e.composedPath) return e.composedPath();\n var path = [];\n var el = e.target;\n while (el) {\n path.push(el);\n if (el.tagName === 'HTML') {\n path.push(document);\n path.push(window);\n return path;\n }\n el = el.parentElement;\n }\n return path;\n },\n hideScroll: function hideScroll() {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement.classList.add('overflow-y-hidden');\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener, { passive: false });\n window.addEventListener('keydown', this.scrollListener);\n }\n },\n showScroll: function showScroll() {\n document.documentElement.classList.remove('overflow-y-hidden');\n window.removeEventListener('wheel', this.scrollListener);\n window.removeEventListener('keydown', this.scrollListener);\n }\n }\n});\n//# sourceMappingURL=overlayable.js.map","/*\n\nJSZip - A Javascript class for generating and reading zip files\n\n\n(c) 2009-2014 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/master/LICENSE\n\nNote: since JSZip 3 removed critical functionality, this version assigns to the\n`JSZipSync` variable. Another JSZip version can be loaded in parallel.\n*/\n(function(e){\n\tif(\"object\"==typeof exports&&\"undefined\"!=typeof module&&\"undefined\"==typeof DO_NOT_EXPORT_JSZIP)module.exports=e();\n\telse if(\"function\"==typeof define&&define.amd&&\"undefined\"==typeof DO_NOT_EXPORT_JSZIP){JSZipSync=e();define([],e);}\n\telse{\n\t\tvar f;\n\t\t\"undefined\"!=typeof window?f=window:\n\t\t\"undefined\"!=typeof global?f=global:\n\t\t\"undefined\"!=typeof $ && $.global?f=$.global:\n\t\t\"undefined\"!=typeof self&&(f=self),f.JSZipSync=e()\n\t}\n}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error(\"Cannot find module '\"+o+\"'\")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n enc4 = chr3 & 63;\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n }\n else if (isNaN(chr3)) {\n enc4 = 64;\n }\n\n output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);\n\n }\n\n return output;\n};\n\n// public method for decoding\nexports.decode = function(input, utf8) {\n var output = \"\";\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0;\n\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n while (i < input.length) {\n\n enc1 = _keyStr.indexOf(input.charAt(i++));\n enc2 = _keyStr.indexOf(input.charAt(i++));\n enc3 = _keyStr.indexOf(input.charAt(i++));\n enc4 = _keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output = output + String.fromCharCode(chr1);\n\n if (enc3 != 64) {\n output = output + String.fromCharCode(chr2);\n }\n if (enc4 != 64) {\n output = output + String.fromCharCode(chr3);\n }\n\n }\n\n return output;\n\n};\n\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nfunction CompressedObject() {\n this.compressedSize = 0;\n this.uncompressedSize = 0;\n this.crc32 = 0;\n this.compressionMethod = null;\n this.compressedContent = null;\n}\n\nCompressedObject.prototype = {\n /**\n * Return the decompressed content in an unspecified format.\n * The format will depend on the decompressor.\n * @return {Object} the decompressed content.\n */\n getContent: function() {\n return null; // see implementation\n },\n /**\n * Return the compressed content in an unspecified format.\n * The format will depend on the compressed conten source.\n * @return {Object} the compressed content.\n */\n getCompressedContent: function() {\n return null; // see implementation\n }\n};\nmodule.exports = CompressedObject;\n\n},{}],3:[function(_dereq_,module,exports){\n'use strict';\nexports.STORE = {\n magic: \"\\x00\\x00\",\n compress: function(content) {\n return content; // no compression\n },\n uncompress: function(content) {\n return content; // no compression\n },\n compressInputType: null,\n uncompressInputType: null\n};\nexports.DEFLATE = _dereq_('./flate');\n\n},{\"./flate\":8}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\n\nvar table = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D\n];\n\n/**\n *\n * Javascript crc32\n * http://www.webtoolkit.info/\n *\n */\nmodule.exports = function crc32(input, crc) {\n if (typeof input === \"undefined\" || !input.length) {\n return 0;\n }\n\n var isArray = utils.getTypeOf(input) !== \"string\";\n\n if (typeof(crc) == \"undefined\") {\n crc = 0;\n }\n var x = 0;\n var y = 0;\n var b = 0;\n\n crc = crc ^ (-1);\n for (var i = 0, iTop = input.length; i < iTop; i++) {\n b = isArray ? input[i] : input.charCodeAt(i);\n y = (crc ^ b) & 0xFF;\n x = table[y];\n crc = (crc >>> 8) ^ x;\n }\n\n return crc ^ (-1);\n};\n// vim: set shiftwidth=4 softtabstop=4:\n\n},{\"./utils\":21}],5:[function(_dereq_,module,exports){\n'use strict';\nvar utils = _dereq_('./utils');\n\nfunction DataReader(data) {\n this.data = null; // type : see implementation\n this.length = 0;\n this.index = 0;\n}\nDataReader.prototype = {\n /**\n * Check that the offset will not go too far.\n * @param {string} offset the additional offset to check.\n * @throws {Error} an Error if the offset is out of bounds.\n */\n checkOffset: function(offset) {\n this.checkIndex(this.index + offset);\n },\n /**\n * Check that the specifed index will not be too far.\n * @param {string} newIndex the index to check.\n * @throws {Error} an Error if the index is out of bounds.\n */\n checkIndex: function(newIndex) {\n if (this.length < newIndex || newIndex < 0) {\n throw new Error(\"End of data reached (data length = \" + this.length + \", asked index = \" + (newIndex) + \"). Corrupted zip ?\");\n }\n },\n /**\n * Change the index.\n * @param {number} newIndex The new index.\n * @throws {Error} if the new index is out of the data.\n */\n setIndex: function(newIndex) {\n this.checkIndex(newIndex);\n this.index = newIndex;\n },\n /**\n * Skip the next n bytes.\n * @param {number} n the number of bytes to skip.\n * @throws {Error} if the new index is out of the data.\n */\n skip: function(n) {\n this.setIndex(this.index + n);\n },\n /**\n * Get the byte at the specified index.\n * @param {number} i the index to use.\n * @return {number} a byte.\n */\n byteAt: function(i) {\n // see implementations\n },\n /**\n * Get the next number with a given byte size.\n * @param {number} size the number of bytes to read.\n * @return {number} the corresponding number.\n */\n readInt: function(size) {\n var result = 0,\n i;\n this.checkOffset(size);\n for (i = this.index + size - 1; i >= this.index; i--) {\n result = (result << 8) + this.byteAt(i);\n }\n this.index += size;\n return result;\n },\n /**\n * Get the next string with a given byte size.\n * @param {number} size the number of bytes to read.\n * @return {string} the corresponding string.\n */\n readString: function(size) {\n return utils.transformTo(\"string\", this.readData(size));\n },\n /**\n * Get raw data without conversion, bytes.\n * @param {number} size the number of bytes to read.\n * @return {Object} the raw data, implementation specific.\n */\n readData: function(size) {\n // see implementations\n },\n /**\n * Find the last occurence of a zip signature (4 bytes).\n * @param {string} sig the signature to find.\n * @return {number} the index of the last occurence, -1 if not found.\n */\n lastIndexOfSignature: function(sig) {\n // see implementations\n },\n /**\n * Get the next date.\n * @return {Date} the date.\n */\n readDate: function() {\n var dostime = this.readInt(4);\n return new Date(\n ((dostime >> 25) & 0x7f) + 1980, // year\n ((dostime >> 21) & 0x0f) - 1, // month\n (dostime >> 16) & 0x1f, // day\n (dostime >> 11) & 0x1f, // hour\n (dostime >> 5) & 0x3f, // minute\n (dostime & 0x1f) << 1); // second\n }\n};\nmodule.exports = DataReader;\n\n},{\"./utils\":21}],6:[function(_dereq_,module,exports){\n'use strict';\nexports.base64 = false;\nexports.binary = false;\nexports.dir = false;\nexports.createFolders = false;\nexports.date = null;\nexports.compression = null;\nexports.comment = null;\n\n},{}],7:[function(_dereq_,module,exports){\n'use strict';\nvar utils = _dereq_('./utils');\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.string2binary = function(str) {\n return utils.string2binary(str);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.string2Uint8Array = function(str) {\n return utils.transformTo(\"uint8array\", str);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.uint8Array2String = function(array) {\n return utils.transformTo(\"string\", array);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.string2Blob = function(str) {\n var buffer = utils.transformTo(\"arraybuffer\", str);\n return utils.arrayBuffer2Blob(buffer);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.arrayBuffer2Blob = function(buffer) {\n return utils.arrayBuffer2Blob(buffer);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.transformTo = function(outputType, input) {\n return utils.transformTo(outputType, input);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.getTypeOf = function(input) {\n return utils.getTypeOf(input);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.checkSupport = function(type) {\n return utils.checkSupport(type);\n};\n\n/**\n * @deprecated\n * This value will be removed in a future version without replacement.\n */\nexports.MAX_VALUE_16BITS = utils.MAX_VALUE_16BITS;\n\n/**\n * @deprecated\n * This value will be removed in a future version without replacement.\n */\nexports.MAX_VALUE_32BITS = utils.MAX_VALUE_32BITS;\n\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.pretty = function(str) {\n return utils.pretty(str);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.findCompression = function(compressionMethod) {\n return utils.findCompression(compressionMethod);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.isRegExp = function (object) {\n return utils.isRegExp(object);\n};\n\n\n},{\"./utils\":21}],8:[function(_dereq_,module,exports){\n'use strict';\nvar USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined');\n\nvar pako = _dereq_(\"pako\");\nexports.uncompressInputType = USE_TYPEDARRAY ? \"uint8array\" : \"array\";\nexports.compressInputType = USE_TYPEDARRAY ? \"uint8array\" : \"array\";\n\nexports.magic = \"\\x08\\x00\";\nexports.compress = function(input) {\n return pako.deflateRaw(input);\n};\nexports.uncompress = function(input) {\n return pako.inflateRaw(input);\n};\n\n},{\"pako\":24}],9:[function(_dereq_,module,exports){\n'use strict';\n\nvar base64 = _dereq_('./base64');\n\n/**\nUsage:\n zip = new JSZip();\n zip.file(\"hello.txt\", \"Hello, World!\").file(\"tempfile\", \"nothing\");\n zip.folder(\"images\").file(\"smile.gif\", base64Data, {base64: true});\n zip.file(\"Xmas.txt\", \"Ho ho ho !\", {date : new Date(\"December 25, 2007 00:00:01\")});\n zip.remove(\"tempfile\");\n\n base64zip = zip.generate();\n\n**/\n\n/**\n * Representation a of zip file in js\n * @constructor\n * @param {String=|ArrayBuffer=|Uint8Array=} data the data to load, if any (optional).\n * @param {Object=} options the options for creating this objects (optional).\n */\nfunction JSZipSync(data, options) {\n // if this constructor is used without `new`, it adds `new` before itself:\n if(!(this instanceof JSZipSync)) return new JSZipSync(data, options);\n\n // object containing the files :\n // {\n // \"folder/\" : {...},\n // \"folder/data.txt\" : {...}\n // }\n this.files = {};\n\n this.comment = null;\n\n // Where we are in the hierarchy\n this.root = \"\";\n if (data) {\n this.load(data, options);\n }\n this.clone = function() {\n var newObj = new JSZipSync();\n for (var i in this) {\n if (typeof this[i] !== \"function\") {\n newObj[i] = this[i];\n }\n }\n return newObj;\n };\n}\nJSZipSync.prototype = _dereq_('./object');\nJSZipSync.prototype.load = _dereq_('./load');\nJSZipSync.support = _dereq_('./support');\nJSZipSync.defaults = _dereq_('./defaults');\n\n/**\n * @deprecated\n * This namespace will be removed in a future version without replacement.\n */\nJSZipSync.utils = _dereq_('./deprecatedPublicUtils');\n\nJSZipSync.base64 = {\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n encode : function(input) {\n return base64.encode(input);\n },\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n decode : function(input) {\n return base64.decode(input);\n }\n};\nJSZipSync.compressions = _dereq_('./compressions');\nmodule.exports = JSZipSync;\n\n},{\"./base64\":1,\"./compressions\":3,\"./defaults\":6,\"./deprecatedPublicUtils\":7,\"./load\":10,\"./object\":13,\"./support\":17}],10:[function(_dereq_,module,exports){\n'use strict';\nvar base64 = _dereq_('./base64');\nvar ZipEntries = _dereq_('./zipEntries');\nmodule.exports = function(data, options) {\n var files, zipEntries, i, input;\n options = options || {};\n if (options.base64) {\n data = base64.decode(data);\n }\n\n zipEntries = new ZipEntries(data, options);\n files = zipEntries.files;\n for (i = 0; i < files.length; i++) {\n input = files[i];\n this.file(input.fileName, input.decompressed, {\n binary: true,\n optimizedBinaryString: true,\n date: input.date,\n dir: input.dir,\n comment : input.fileComment.length ? input.fileComment : null,\n createFolders: options.createFolders\n });\n }\n if (zipEntries.zipComment.length) {\n this.comment = zipEntries.zipComment;\n }\n\n return this;\n};\n\n},{\"./base64\":1,\"./zipEntries\":22}],11:[function(_dereq_,module,exports){\n(function (Buffer){\n'use strict';\nvar Buffer_from = /*::(*/function(){}/*:: :any)*/;\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}\nmodule.exports = function(data, encoding){\n return typeof data == 'number' ? Buffer.alloc(data) : Buffer_from(data, encoding);\n};\nmodule.exports.test = function(b){\n return Buffer.isBuffer(b);\n};\n}).call(this,(typeof Buffer !== \"undefined\" ? Buffer : undefined))\n},{}],12:[function(_dereq_,module,exports){\n'use strict';\nvar Uint8ArrayReader = _dereq_('./uint8ArrayReader');\n\nfunction NodeBufferReader(data) {\n this.data = data;\n this.length = this.data.length;\n this.index = 0;\n}\nNodeBufferReader.prototype = new Uint8ArrayReader();\n\n/**\n * @see DataReader.readData\n */\nNodeBufferReader.prototype.readData = function(size) {\n this.checkOffset(size);\n var result = this.data.slice(this.index, this.index + size);\n this.index += size;\n return result;\n};\nmodule.exports = NodeBufferReader;\n\n},{\"./uint8ArrayReader\":18}],13:[function(_dereq_,module,exports){\n'use strict';\nvar support = _dereq_('./support');\nvar utils = _dereq_('./utils');\nvar crc32 = _dereq_('./crc32');\nvar signature = _dereq_('./signature');\nvar defaults = _dereq_('./defaults');\nvar base64 = _dereq_('./base64');\nvar compressions = _dereq_('./compressions');\nvar CompressedObject = _dereq_('./compressedObject');\nvar nodeBuffer = _dereq_('./nodeBuffer');\nvar utf8 = _dereq_('./utf8');\nvar StringWriter = _dereq_('./stringWriter');\nvar Uint8ArrayWriter = _dereq_('./uint8ArrayWriter');\n\n/**\n * Returns the raw data of a ZipObject, decompress the content if necessary.\n * @param {ZipObject} file the file to use.\n * @return {String|ArrayBuffer|Uint8Array|Buffer} the data.\n */\nvar getRawData = function(file) {\n if (file._data instanceof CompressedObject) {\n file._data = file._data.getContent();\n file.options.binary = true;\n file.options.base64 = false;\n\n if (utils.getTypeOf(file._data) === \"uint8array\") {\n var copy = file._data;\n // when reading an arraybuffer, the CompressedObject mechanism will keep it and subarray() a Uint8Array.\n // if we request a file in the same format, we might get the same Uint8Array or its ArrayBuffer (the original zip file).\n file._data = new Uint8Array(copy.length);\n // with an empty Uint8Array, Opera fails with a \"Offset larger than array size\"\n if (copy.length !== 0) {\n file._data.set(copy, 0);\n }\n }\n }\n return file._data;\n};\n\n/**\n * Returns the data of a ZipObject in a binary form. If the content is an unicode string, encode it.\n * @param {ZipObject} file the file to use.\n * @return {String|ArrayBuffer|Uint8Array|Buffer} the data.\n */\nvar getBinaryData = function(file) {\n var result = getRawData(file),\n type = utils.getTypeOf(result);\n if (type === \"string\") {\n if (!file.options.binary) {\n // unicode text !\n // unicode string => binary string is a painful process, check if we can avoid it.\n if (support.nodebuffer) {\n return nodeBuffer(result, \"utf-8\");\n }\n }\n return file.asBinary();\n }\n return result;\n};\n\n/**\n * Transform this._data into a string.\n * @param {function} filter a function String -> String, applied if not null on the result.\n * @return {String} the string representing this._data.\n */\nvar dataToString = function(asUTF8) {\n var result = getRawData(this);\n if (result === null || typeof result === \"undefined\") {\n return \"\";\n }\n // if the data is a base64 string, we decode it before checking the encoding !\n if (this.options.base64) {\n result = base64.decode(result);\n }\n if (asUTF8 && this.options.binary) {\n // JSZip.prototype.utf8decode supports arrays as input\n // skip to array => string step, utf8decode will do it.\n result = out.utf8decode(result);\n }\n else {\n // no utf8 transformation, do the array => string step.\n result = utils.transformTo(\"string\", result);\n }\n\n if (!asUTF8 && !this.options.binary) {\n result = utils.transformTo(\"string\", out.utf8encode(result));\n }\n return result;\n};\n/**\n * A simple object representing a file in the zip file.\n * @constructor\n * @param {string} name the name of the file\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data\n * @param {Object} options the options of the file\n */\nvar ZipObject = function(name, data, options) {\n this.name = name;\n this.dir = options.dir;\n this.date = options.date;\n this.comment = options.comment;\n\n this._data = data;\n this.options = options;\n\n /*\n * This object contains initial values for dir and date.\n * With them, we can check if the user changed the deprecated metadata in\n * `ZipObject#options` or not.\n */\n this._initialMetadata = {\n dir : options.dir,\n date : options.date\n };\n};\n\nZipObject.prototype = {\n /**\n * Return the content as UTF8 string.\n * @return {string} the UTF8 string.\n */\n asText: function() {\n return dataToString.call(this, true);\n },\n /**\n * Returns the binary content.\n * @return {string} the content as binary.\n */\n asBinary: function() {\n return dataToString.call(this, false);\n },\n /**\n * Returns the content as a nodejs Buffer.\n * @return {Buffer} the content as a Buffer.\n */\n asNodeBuffer: function() {\n var result = getBinaryData(this);\n return utils.transformTo(\"nodebuffer\", result);\n },\n /**\n * Returns the content as an Uint8Array.\n * @return {Uint8Array} the content as an Uint8Array.\n */\n asUint8Array: function() {\n var result = getBinaryData(this);\n return utils.transformTo(\"uint8array\", result);\n },\n /**\n * Returns the content as an ArrayBuffer.\n * @return {ArrayBuffer} the content as an ArrayBufer.\n */\n asArrayBuffer: function() {\n return this.asUint8Array().buffer;\n }\n};\n\n/**\n * Transform an integer into a string in hexadecimal.\n * @private\n * @param {number} dec the number to convert.\n * @param {number} bytes the number of bytes to generate.\n * @returns {string} the result.\n */\nvar decToHex = function(dec, bytes) {\n var hex = \"\",\n i;\n for (i = 0; i < bytes; i++) {\n hex += String.fromCharCode(dec & 0xff);\n dec = dec >>> 8;\n }\n return hex;\n};\n\n/**\n * Merge the objects passed as parameters into a new one.\n * @private\n * @param {...Object} var_args All objects to merge.\n * @return {Object} a new object with the data of the others.\n */\nvar extend = function() {\n var result = {}, i, attr;\n for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers\n for (attr in arguments[i]) {\n if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === \"undefined\") {\n result[attr] = arguments[i][attr];\n }\n }\n }\n return result;\n};\n\n/**\n * Transforms the (incomplete) options from the user into the complete\n * set of options to create a file.\n * @private\n * @param {Object} o the options from the user.\n * @return {Object} the complete set of options.\n */\nvar prepareFileAttrs = function(o) {\n o = o || {};\n if (o.base64 === true && (o.binary === null || o.binary === undefined)) {\n o.binary = true;\n }\n o = extend(o, defaults);\n o.date = o.date || new Date();\n if (o.compression !== null) o.compression = o.compression.toUpperCase();\n\n return o;\n};\n\n/**\n * Add a file in the current folder.\n * @private\n * @param {string} name the name of the file\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file\n * @param {Object} o the options of the file\n * @return {Object} the new file.\n */\nvar fileAdd = function(name, data, o) {\n // be sure sub folders exist\n var dataType = utils.getTypeOf(data),\n parent;\n\n o = prepareFileAttrs(o);\n\n if (o.createFolders && (parent = parentFolder(name))) {\n folderAdd.call(this, parent, true);\n }\n\n if (o.dir || data === null || typeof data === \"undefined\") {\n o.base64 = false;\n o.binary = false;\n data = null;\n }\n else if (dataType === \"string\") {\n if (o.binary && !o.base64) {\n // optimizedBinaryString == true means that the file has already been filtered with a 0xFF mask\n if (o.optimizedBinaryString !== true) {\n // this is a string, not in a base64 format.\n // Be sure that this is a correct \"binary string\"\n data = utils.string2binary(data);\n }\n }\n }\n else { // arraybuffer, uint8array, ...\n o.base64 = false;\n o.binary = true;\n\n if (!dataType && !(data instanceof CompressedObject)) {\n throw new Error(\"The data of '\" + name + \"' is in an unsupported format !\");\n }\n\n // special case : it's way easier to work with Uint8Array than with ArrayBuffer\n if (dataType === \"arraybuffer\") {\n data = utils.transformTo(\"uint8array\", data);\n }\n }\n\n var object = new ZipObject(name, data, o);\n this.files[name] = object;\n return object;\n};\n\n/**\n * Find the parent folder of the path.\n * @private\n * @param {string} path the path to use\n * @return {string} the parent folder, or \"\"\n */\nvar parentFolder = function (path) {\n if (path.slice(-1) == '/') {\n path = path.substring(0, path.length - 1);\n }\n var lastSlash = path.lastIndexOf('/');\n return (lastSlash > 0) ? path.substring(0, lastSlash) : \"\";\n};\n\n/**\n * Add a (sub) folder in the current folder.\n * @private\n * @param {string} name the folder's name\n * @param {boolean=} [createFolders] If true, automatically create sub\n * folders. Defaults to false.\n * @return {Object} the new folder.\n */\nvar folderAdd = function(name, createFolders) {\n // Check the name ends with a /\n if (name.slice(-1) != \"/\") {\n name += \"/\"; // IE doesn't like substr(-1)\n }\n\n createFolders = (typeof createFolders !== 'undefined') ? createFolders : false;\n\n // Does this folder already exist?\n if (!this.files[name]) {\n fileAdd.call(this, name, null, {\n dir: true,\n createFolders: createFolders\n });\n }\n return this.files[name];\n};\n\n/**\n * Generate a JSZip.CompressedObject for a given zipOject.\n * @param {ZipObject} file the object to read.\n * @param {JSZip.compression} compression the compression to use.\n * @return {JSZip.CompressedObject} the compressed result.\n */\nvar generateCompressedObjectFrom = function(file, compression) {\n var result = new CompressedObject(),\n content;\n\n // the data has not been decompressed, we might reuse things !\n if (file._data instanceof CompressedObject) {\n result.uncompressedSize = file._data.uncompressedSize;\n result.crc32 = file._data.crc32;\n\n if (result.uncompressedSize === 0 || file.dir) {\n compression = compressions['STORE'];\n result.compressedContent = \"\";\n result.crc32 = 0;\n }\n else if (file._data.compressionMethod === compression.magic) {\n result.compressedContent = file._data.getCompressedContent();\n }\n else {\n content = file._data.getContent();\n // need to decompress / recompress\n result.compressedContent = compression.compress(utils.transformTo(compression.compressInputType, content));\n }\n }\n else {\n // have uncompressed data\n content = getBinaryData(file);\n if (!content || content.length === 0 || file.dir) {\n compression = compressions['STORE'];\n content = \"\";\n }\n result.uncompressedSize = content.length;\n result.crc32 = crc32(content);\n result.compressedContent = compression.compress(utils.transformTo(compression.compressInputType, content));\n }\n\n result.compressedSize = result.compressedContent.length;\n result.compressionMethod = compression.magic;\n\n return result;\n};\n\n/**\n * Generate the various parts used in the construction of the final zip file.\n * @param {string} name the file name.\n * @param {ZipObject} file the file content.\n * @param {JSZip.CompressedObject} compressedObject the compressed object.\n * @param {number} offset the current offset from the start of the zip file.\n * @return {object} the zip parts.\n */\nvar generateZipParts = function(name, file, compressedObject, offset) {\n var data = compressedObject.compressedContent,\n utfEncodedFileName = utils.transformTo(\"string\", utf8.utf8encode(file.name)),\n comment = file.comment || \"\",\n utfEncodedComment = utils.transformTo(\"string\", utf8.utf8encode(comment)),\n useUTF8ForFileName = utfEncodedFileName.length !== file.name.length,\n useUTF8ForComment = utfEncodedComment.length !== comment.length,\n o = file.options,\n dosTime,\n dosDate,\n extraFields = \"\",\n unicodePathExtraField = \"\",\n unicodeCommentExtraField = \"\",\n dir, date;\n\n\n // handle the deprecated options.dir\n if (file._initialMetadata.dir !== file.dir) {\n dir = file.dir;\n } else {\n dir = o.dir;\n }\n\n // handle the deprecated options.date\n if(file._initialMetadata.date !== file.date) {\n date = file.date;\n } else {\n date = o.date;\n }\n\n\n dosTime = date.getHours();\n dosTime = dosTime << 6;\n dosTime = dosTime | date.getMinutes();\n dosTime = dosTime << 5;\n dosTime = dosTime | date.getSeconds() / 2;\n\n dosDate = date.getFullYear() - 1980;\n dosDate = dosDate << 4;\n dosDate = dosDate | (date.getMonth() + 1);\n dosDate = dosDate << 5;\n dosDate = dosDate | date.getDate();\n\n if (useUTF8ForFileName) {\n // set the unicode path extra field. unzip needs at least one extra\n // field to correctly handle unicode path, so using the path is as good\n // as any other information. This could improve the situation with\n // other archive managers too.\n // This field is usually used without the utf8 flag, with a non\n // unicode path in the header (winrar, winzip). This helps (a bit)\n // with the messy Windows' default compressed folders feature but\n // breaks on p7zip which doesn't seek the unicode path extra field.\n // So for now, UTF-8 everywhere !\n unicodePathExtraField =\n // Version\n decToHex(1, 1) +\n // NameCRC32\n decToHex(crc32(utfEncodedFileName), 4) +\n // UnicodeName\n utfEncodedFileName;\n\n extraFields +=\n // Info-ZIP Unicode Path Extra Field\n \"\\x75\\x70\" +\n // size\n decToHex(unicodePathExtraField.length, 2) +\n // content\n unicodePathExtraField;\n }\n\n if(useUTF8ForComment) {\n\n unicodeCommentExtraField =\n // Version\n decToHex(1, 1) +\n // CommentCRC32\n decToHex(this.crc32(utfEncodedComment), 4) +\n // UnicodeName\n utfEncodedComment;\n\n extraFields +=\n // Info-ZIP Unicode Path Extra Field\n \"\\x75\\x63\" +\n // size\n decToHex(unicodeCommentExtraField.length, 2) +\n // content\n unicodeCommentExtraField;\n }\n\n var header = \"\";\n\n // version needed to extract\n header += \"\\x0A\\x00\";\n // general purpose bit flag\n // set bit 11 if utf8\n header += (useUTF8ForFileName || useUTF8ForComment) ? \"\\x00\\x08\" : \"\\x00\\x00\";\n // compression method\n header += compressedObject.compressionMethod;\n // last mod file time\n header += decToHex(dosTime, 2);\n // last mod file date\n header += decToHex(dosDate, 2);\n // crc-32\n header += decToHex(compressedObject.crc32, 4);\n // compressed size\n header += decToHex(compressedObject.compressedSize, 4);\n // uncompressed size\n header += decToHex(compressedObject.uncompressedSize, 4);\n // file name length\n header += decToHex(utfEncodedFileName.length, 2);\n // extra field length\n header += decToHex(extraFields.length, 2);\n\n\n var fileRecord = signature.LOCAL_FILE_HEADER + header + utfEncodedFileName + extraFields;\n\n var dirRecord = signature.CENTRAL_FILE_HEADER +\n // version made by (00: DOS)\n \"\\x14\\x00\" +\n // file header (common to file and central directory)\n header +\n // file comment length\n decToHex(utfEncodedComment.length, 2) +\n // disk number start\n \"\\x00\\x00\" +\n // internal file attributes TODO\n \"\\x00\\x00\" +\n // external file attributes\n (dir === true ? \"\\x10\\x00\\x00\\x00\" : \"\\x00\\x00\\x00\\x00\") +\n // relative offset of local header\n decToHex(offset, 4) +\n // file name\n utfEncodedFileName +\n // extra field\n extraFields +\n // file comment\n utfEncodedComment;\n\n return {\n fileRecord: fileRecord,\n dirRecord: dirRecord,\n compressedObject: compressedObject\n };\n};\n\n\n// return the actual prototype of JSZip\nvar out = {\n /**\n * Read an existing zip and merge the data in the current JSZip object.\n * The implementation is in jszip-load.js, don't forget to include it.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} stream The stream to load\n * @param {Object} options Options for loading the stream.\n * options.base64 : is the stream in base64 ? default : false\n * @return {JSZip} the current JSZip object\n */\n load: function(stream, options) {\n throw new Error(\"Load method is not defined. Is the file jszip-load.js included ?\");\n },\n\n /**\n * Filter nested files/folders with the specified function.\n * @param {Function} search the predicate to use :\n * function (relativePath, file) {...}\n * It takes 2 arguments : the relative path and the file.\n * @return {Array} An array of matching elements.\n */\n filter: function(search) {\n var result = [],\n filename, relativePath, file, fileClone;\n for (filename in this.files) {\n if (!this.files.hasOwnProperty(filename)) {\n continue;\n }\n file = this.files[filename];\n // return a new object, don't let the user mess with our internal objects :)\n fileClone = new ZipObject(file.name, file._data, extend(file.options));\n relativePath = filename.slice(this.root.length, filename.length);\n if (filename.slice(0, this.root.length) === this.root && // the file is in the current root\n search(relativePath, fileClone)) { // and the file matches the function\n result.push(fileClone);\n }\n }\n return result;\n },\n\n /**\n * Add a file to the zip file, or search a file.\n * @param {string|RegExp} name The name of the file to add (if data is defined),\n * the name of the file to find (if no data) or a regex to match files.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data The file data, either raw or base64 encoded\n * @param {Object} o File options\n * @return {JSZip|Object|Array} this JSZip object (when adding a file),\n * a file (when searching by string) or an array of files (when searching by regex).\n */\n file: function(name, data, o) {\n if (arguments.length === 1) {\n if (utils.isRegExp(name)) {\n var regexp = name;\n return this.filter(function(relativePath, file) {\n return !file.dir && regexp.test(relativePath);\n });\n }\n else { // text\n return this.filter(function(relativePath, file) {\n return !file.dir && relativePath === name;\n })[0] || null;\n }\n }\n else { // more than one argument : we have data !\n name = this.root + name;\n fileAdd.call(this, name, data, o);\n }\n return this;\n },\n\n /**\n * Add a directory to the zip file, or search.\n * @param {String|RegExp} arg The name of the directory to add, or a regex to search folders.\n * @return {JSZip} an object with the new directory as the root, or an array containing matching folders.\n */\n folder: function(arg) {\n if (!arg) {\n return this;\n }\n\n if (utils.isRegExp(arg)) {\n return this.filter(function(relativePath, file) {\n return file.dir && arg.test(relativePath);\n });\n }\n\n // else, name is a new folder\n var name = this.root + arg;\n var newFolder = folderAdd.call(this, name);\n\n // Allow chaining by returning a new object with this folder as the root\n var ret = this.clone();\n ret.root = newFolder.name;\n return ret;\n },\n\n /**\n * Delete a file, or a directory and all sub-files, from the zip\n * @param {string} name the name of the file to delete\n * @return {JSZip} this JSZip object\n */\n remove: function(name) {\n name = this.root + name;\n var file = this.files[name];\n if (!file) {\n // Look for any folders\n if (name.slice(-1) != \"/\") {\n name += \"/\";\n }\n file = this.files[name];\n }\n\n if (file && !file.dir) {\n // file\n delete this.files[name];\n } else {\n // maybe a folder, delete recursively\n var kids = this.filter(function(relativePath, file) {\n return file.name.slice(0, name.length) === name;\n });\n for (var i = 0; i < kids.length; i++) {\n delete this.files[kids[i].name];\n }\n }\n\n return this;\n },\n\n /**\n * Generate the complete zip file\n * @param {Object} options the options to generate the zip file :\n * - base64, (deprecated, use type instead) true to generate base64.\n * - compression, \"STORE\" by default.\n * - type, \"base64\" by default. Values are : string, base64, uint8array, arraybuffer, blob.\n * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file\n */\n generate: function(options) {\n options = extend(options || {}, {\n base64: true,\n compression: \"STORE\",\n type: \"base64\",\n comment: null\n });\n\n utils.checkSupport(options.type);\n\n var zipData = [],\n localDirLength = 0,\n centralDirLength = 0,\n writer, i,\n utfEncodedComment = utils.transformTo(\"string\", this.utf8encode(options.comment || this.comment || \"\"));\n\n // first, generate all the zip parts.\n for (var name in this.files) {\n if (!this.files.hasOwnProperty(name)) {\n continue;\n }\n var file = this.files[name];\n\n var compressionName = file.options.compression || options.compression.toUpperCase();\n var compression = compressions[compressionName];\n if (!compression) {\n throw new Error(compressionName + \" is not a valid compression method !\");\n }\n\n var compressedObject = generateCompressedObjectFrom.call(this, file, compression);\n\n var zipPart = generateZipParts.call(this, name, file, compressedObject, localDirLength);\n localDirLength += zipPart.fileRecord.length + compressedObject.compressedSize;\n centralDirLength += zipPart.dirRecord.length;\n zipData.push(zipPart);\n }\n\n var dirEnd = \"\";\n\n // end of central dir signature\n dirEnd = signature.CENTRAL_DIRECTORY_END +\n // number of this disk\n \"\\x00\\x00\" +\n // number of the disk with the start of the central directory\n \"\\x00\\x00\" +\n // total number of entries in the central directory on this disk\n decToHex(zipData.length, 2) +\n // total number of entries in the central directory\n decToHex(zipData.length, 2) +\n // size of the central directory 4 bytes\n decToHex(centralDirLength, 4) +\n // offset of start of central directory with respect to the starting disk number\n decToHex(localDirLength, 4) +\n // .ZIP file comment length\n decToHex(utfEncodedComment.length, 2) +\n // .ZIP file comment\n utfEncodedComment;\n\n\n // we have all the parts (and the total length)\n // time to create a writer !\n var typeName = options.type.toLowerCase();\n if(typeName===\"uint8array\"||typeName===\"arraybuffer\"||typeName===\"blob\"||typeName===\"nodebuffer\") {\n writer = new Uint8ArrayWriter(localDirLength + centralDirLength + dirEnd.length);\n }else{\n writer = new StringWriter(localDirLength + centralDirLength + dirEnd.length);\n }\n\n for (i = 0; i < zipData.length; i++) {\n writer.append(zipData[i].fileRecord);\n writer.append(zipData[i].compressedObject.compressedContent);\n }\n for (i = 0; i < zipData.length; i++) {\n writer.append(zipData[i].dirRecord);\n }\n\n writer.append(dirEnd);\n\n var zip = writer.finalize();\n\n\n\n switch(options.type.toLowerCase()) {\n // case \"zip is an Uint8Array\"\n case \"uint8array\" :\n case \"arraybuffer\" :\n case \"nodebuffer\" :\n return utils.transformTo(options.type.toLowerCase(), zip);\n case \"blob\" :\n return utils.arrayBuffer2Blob(utils.transformTo(\"arraybuffer\", zip));\n // case \"zip is a string\"\n case \"base64\" :\n return (options.base64) ? base64.encode(zip) : zip;\n default : // case \"string\" :\n return zip;\n }\n\n },\n\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n crc32: function (input, crc) {\n return crc32(input, crc);\n },\n\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n utf8encode: function (string) {\n return utils.transformTo(\"string\", utf8.utf8encode(string));\n },\n\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n utf8decode: function (input) {\n return utf8.utf8decode(input);\n }\n};\nmodule.exports = out;\n\n},{\"./base64\":1,\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./defaults\":6,\"./nodeBuffer\":11,\"./signature\":14,\"./stringWriter\":16,\"./support\":17,\"./uint8ArrayWriter\":19,\"./utf8\":20,\"./utils\":21}],14:[function(_dereq_,module,exports){\n'use strict';\nexports.LOCAL_FILE_HEADER = \"PK\\x03\\x04\";\nexports.CENTRAL_FILE_HEADER = \"PK\\x01\\x02\";\nexports.CENTRAL_DIRECTORY_END = \"PK\\x05\\x06\";\nexports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = \"PK\\x06\\x07\";\nexports.ZIP64_CENTRAL_DIRECTORY_END = \"PK\\x06\\x06\";\nexports.DATA_DESCRIPTOR = \"PK\\x07\\x08\";\n\n},{}],15:[function(_dereq_,module,exports){\n'use strict';\nvar DataReader = _dereq_('./dataReader');\nvar utils = _dereq_('./utils');\n\nfunction StringReader(data, optimizedBinaryString) {\n this.data = data;\n if (!optimizedBinaryString) {\n this.data = utils.string2binary(this.data);\n }\n this.length = this.data.length;\n this.index = 0;\n}\nStringReader.prototype = new DataReader();\n/**\n * @see DataReader.byteAt\n */\nStringReader.prototype.byteAt = function(i) {\n return this.data.charCodeAt(i);\n};\n/**\n * @see DataReader.lastIndexOfSignature\n */\nStringReader.prototype.lastIndexOfSignature = function(sig) {\n return this.data.lastIndexOf(sig);\n};\n/**\n * @see DataReader.readData\n */\nStringReader.prototype.readData = function(size) {\n this.checkOffset(size);\n // this will work because the constructor applied the \"& 0xff\" mask.\n var result = this.data.slice(this.index, this.index + size);\n this.index += size;\n return result;\n};\nmodule.exports = StringReader;\n\n},{\"./dataReader\":5,\"./utils\":21}],16:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\n\n/**\n * An object to write any content to a string.\n * @constructor\n */\nvar StringWriter = function() {\n this.data = [];\n};\nStringWriter.prototype = {\n /**\n * Append any content to the current string.\n * @param {Object} input the content to add.\n */\n append: function(input) {\n input = utils.transformTo(\"string\", input);\n this.data.push(input);\n },\n /**\n * Finalize the construction an return the result.\n * @return {string} the generated string.\n */\n finalize: function() {\n return this.data.join(\"\");\n }\n};\n\nmodule.exports = StringWriter;\n\n},{\"./utils\":21}],17:[function(_dereq_,module,exports){\n(function (Buffer){\n'use strict';\nexports.base64 = true;\nexports.array = true;\nexports.string = true;\nexports.arraybuffer = typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\";\n// contains true if JSZip can read/generate nodejs Buffer, false otherwise.\n// Browserify will provide a Buffer implementation for browsers, which is\n// an augmented Uint8Array (i.e., can be used as either Buffer or U8).\nexports.nodebuffer = typeof Buffer !== \"undefined\";\n// contains true if JSZip can read/generate Uint8Array, false otherwise.\nexports.uint8array = typeof Uint8Array !== \"undefined\";\n\nif (typeof ArrayBuffer === \"undefined\") {\n exports.blob = false;\n}\nelse {\n var buffer = new ArrayBuffer(0);\n try {\n exports.blob = new Blob([buffer], {\n type: \"application/zip\"\n }).size === 0;\n }\n catch (e) {\n try {\n var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n var builder = new Builder();\n builder.append(buffer);\n exports.blob = builder.getBlob('application/zip').size === 0;\n }\n catch (e) {\n exports.blob = false;\n }\n }\n}\n\n}).call(this,(typeof Buffer !== \"undefined\" ? Buffer : undefined))\n},{}],18:[function(_dereq_,module,exports){\n'use strict';\nvar DataReader = _dereq_('./dataReader');\n\nfunction Uint8ArrayReader(data) {\n if (data) {\n this.data = data;\n this.length = this.data.length;\n this.index = 0;\n }\n}\nUint8ArrayReader.prototype = new DataReader();\n/**\n * @see DataReader.byteAt\n */\nUint8ArrayReader.prototype.byteAt = function(i) {\n return this.data[i];\n};\n/**\n * @see DataReader.lastIndexOfSignature\n */\nUint8ArrayReader.prototype.lastIndexOfSignature = function(sig) {\n var sig0 = sig.charCodeAt(0),\n sig1 = sig.charCodeAt(1),\n sig2 = sig.charCodeAt(2),\n sig3 = sig.charCodeAt(3);\n for (var i = this.length - 4; i >= 0; --i) {\n if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) {\n return i;\n }\n }\n\n return -1;\n};\n/**\n * @see DataReader.readData\n */\nUint8ArrayReader.prototype.readData = function(size) {\n this.checkOffset(size);\n if(size === 0) {\n // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of [].\n return new Uint8Array(0);\n }\n var result = this.data.subarray(this.index, this.index + size);\n this.index += size;\n return result;\n};\nmodule.exports = Uint8ArrayReader;\n\n},{\"./dataReader\":5}],19:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\n\n/**\n * An object to write any content to an Uint8Array.\n * @constructor\n * @param {number} length The length of the array.\n */\nvar Uint8ArrayWriter = function(length) {\n this.data = new Uint8Array(length);\n this.index = 0;\n};\nUint8ArrayWriter.prototype = {\n /**\n * Append any content to the current array.\n * @param {Object} input the content to add.\n */\n append: function(input) {\n if (input.length !== 0) {\n // with an empty Uint8Array, Opera fails with a \"Offset larger than array size\"\n input = utils.transformTo(\"uint8array\", input);\n this.data.set(input, this.index);\n this.index += input.length;\n }\n },\n /**\n * Finalize the construction an return the result.\n * @return {Uint8Array} the generated array.\n */\n finalize: function() {\n return this.data;\n }\n};\n\nmodule.exports = Uint8ArrayWriter;\n\n},{\"./utils\":21}],20:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\nvar support = _dereq_('./support');\nvar nodeBuffer = _dereq_('./nodeBuffer');\n\n/**\n * The following functions come from pako, from pako/lib/utils/strings\n * released under the MIT license, see pako https://github.com/nodeca/pako/\n */\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nvar _utf8len = new Array(256);\nfor (var i=0; i<256; i++) {\n _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);\n}\n_utf8len[254]=_utf8len[254]=1; // Invalid sequence start\n\n// convert string to array (typed, when possible)\nvar string2buf = function (str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if (((c & 0xfc00) === 0xd800) && (m_pos+1 < str_len)) {\n c2 = str.charCodeAt(m_pos+1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += (c < 0x80) ? 1 : ((c < 0x800) ? 2 : ((c < 0x10000) ? 3 : 4));\n }\n\n // allocate buffer\n if (support.uint8array) {\n buf = new Uint8Array(buf_len);\n } else {\n buf = new Array(buf_len);\n }\n\n // convert\n for (i=0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {\n c2 = str.charCodeAt(m_pos+1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | ((c >>> 6) & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | ((c >>> 12) & 0x3f);\n buf[i++] = 0x80 | ((c >>> 6) & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = function(buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max-1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Fuckup - very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means vuffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\n// convert array to string\nvar buf2string = function (buf) {\n var str, i, out, c, c_len;\n var len = buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len*2);\n\n for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n // shrinkBuf(utf16buf, out)\n if (utf16buf.length !== out) {\n if(utf16buf.subarray) {\n utf16buf = utf16buf.subarray(0, out);\n } else {\n utf16buf.length = out;\n }\n }\n\n // return String.fromCharCode.apply(null, utf16buf);\n return utils.applyFromCharCode(utf16buf);\n};\n\n\n// That's all for the pako functions.\n\n\n/**\n * Transform a javascript string into an array (typed if possible) of bytes,\n * UTF-8 encoded.\n * @param {String} str the string to encode\n * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string.\n */\nexports.utf8encode = function utf8encode(str) {\n if (support.nodebuffer) {\n return nodeBuffer(str, \"utf-8\");\n }\n\n return string2buf(str);\n};\n\n\n/**\n * Transform a bytes array (or a representation) representing an UTF-8 encoded\n * string into a javascript string.\n * @param {Array|Uint8Array|Buffer} buf the data de decode\n * @return {String} the decoded string.\n */\nexports.utf8decode = function utf8decode(buf) {\n if (support.nodebuffer) {\n return utils.transformTo(\"nodebuffer\", buf).toString(\"utf-8\");\n }\n\n buf = utils.transformTo(support.uint8array ? \"uint8array\" : \"array\", buf);\n\n // return buf2string(buf);\n // Chrome prefers to work with \"small\" chunks of data\n // for the method buf2string.\n // Firefox and Chrome has their own shortcut, IE doesn't seem to really care.\n var result = [], k = 0, len = buf.length, chunk = 65536;\n while (k < len) {\n var nextBoundary = utf8border(buf, Math.min(k + chunk, len));\n if (support.uint8array) {\n result.push(buf2string(buf.subarray(k, nextBoundary)));\n } else {\n result.push(buf2string(buf.slice(k, nextBoundary)));\n }\n k = nextBoundary;\n }\n return result.join(\"\");\n\n};\n// vim: set shiftwidth=4 softtabstop=4:\n\n},{\"./nodeBuffer\":11,\"./support\":17,\"./utils\":21}],21:[function(_dereq_,module,exports){\n'use strict';\nvar support = _dereq_('./support');\nvar compressions = _dereq_('./compressions');\nvar nodeBuffer = _dereq_('./nodeBuffer');\n/**\n * Convert a string to a \"binary string\" : a string containing only char codes between 0 and 255.\n * @param {string} str the string to transform.\n * @return {String} the binary string.\n */\nexports.string2binary = function(str) {\n var result = \"\";\n for (var i = 0; i < str.length; i++) {\n result += String.fromCharCode(str.charCodeAt(i) & 0xff);\n }\n return result;\n};\nexports.arrayBuffer2Blob = function(buffer) {\n exports.checkSupport(\"blob\");\n\n try {\n // Blob constructor\n return new Blob([buffer], {\n type: \"application/zip\"\n });\n }\n catch (e) {\n\n try {\n // deprecated, browser only, old way\n var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n var builder = new Builder();\n builder.append(buffer);\n return builder.getBlob('application/zip');\n }\n catch (e) {\n\n // well, fuck ?!\n throw new Error(\"Bug : can't construct the Blob.\");\n }\n }\n\n\n};\n/**\n * The identity function.\n * @param {Object} input the input.\n * @return {Object} the same input.\n */\nfunction identity(input) {\n return input;\n}\n\n/**\n * Fill in an array with a string.\n * @param {String} str the string to use.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated).\n * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array.\n */\nfunction stringToArrayLike(str, array) {\n for (var i = 0; i < str.length; ++i) {\n array[i] = str.charCodeAt(i) & 0xFF;\n }\n return array;\n}\n\n/**\n * Transform an array-like object to a string.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.\n * @return {String} the result.\n */\nfunction arrayLikeToString(array) {\n // Performances notes :\n // --------------------\n // String.fromCharCode.apply(null, array) is the fastest, see\n // see http://jsperf.com/converting-a-uint8array-to-a-string/2\n // but the stack is limited (and we can get huge arrays !).\n //\n // result += String.fromCharCode(array[i]); generate too many strings !\n //\n // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2\n var chunk = 65536;\n var result = [],\n len = array.length,\n type = exports.getTypeOf(array),\n k = 0,\n canUseApply = true;\n try {\n switch(type) {\n case \"uint8array\":\n String.fromCharCode.apply(null, new Uint8Array(0));\n break;\n case \"nodebuffer\":\n String.fromCharCode.apply(null, nodeBuffer(0));\n break;\n }\n } catch(e) {\n canUseApply = false;\n }\n\n // no apply : slow and painful algorithm\n // default browser on android 4.*\n if (!canUseApply) {\n var resultStr = \"\";\n for(var i = 0; i < array.length;i++) {\n resultStr += String.fromCharCode(array[i]);\n }\n return resultStr;\n }\n while (k < len && chunk > 1) {\n try {\n if (type === \"array\" || type === \"nodebuffer\") {\n result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len))));\n }\n else {\n result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len))));\n }\n k += chunk;\n }\n catch (e) {\n chunk = Math.floor(chunk / 2);\n }\n }\n return result.join(\"\");\n}\n\nexports.applyFromCharCode = arrayLikeToString;\n\n\n/**\n * Copy the data from an array-like to an other array-like.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated.\n * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array.\n */\nfunction arrayLikeToArrayLike(arrayFrom, arrayTo) {\n for (var i = 0; i < arrayFrom.length; i++) {\n arrayTo[i] = arrayFrom[i];\n }\n return arrayTo;\n}\n\n// a matrix containing functions to transform everything into everything.\nvar transform = {};\n\n// string to ?\ntransform[\"string\"] = {\n \"string\": identity,\n \"array\": function(input) {\n return stringToArrayLike(input, new Array(input.length));\n },\n \"arraybuffer\": function(input) {\n return transform[\"string\"][\"uint8array\"](input).buffer;\n },\n \"uint8array\": function(input) {\n return stringToArrayLike(input, new Uint8Array(input.length));\n },\n \"nodebuffer\": function(input) {\n return stringToArrayLike(input, nodeBuffer(input.length));\n }\n};\n\n// array to ?\ntransform[\"array\"] = {\n \"string\": arrayLikeToString,\n \"array\": identity,\n \"arraybuffer\": function(input) {\n return (new Uint8Array(input)).buffer;\n },\n \"uint8array\": function(input) {\n return new Uint8Array(input);\n },\n \"nodebuffer\": function(input) {\n return nodeBuffer(input);\n }\n};\n\n// arraybuffer to ?\ntransform[\"arraybuffer\"] = {\n \"string\": function(input) {\n return arrayLikeToString(new Uint8Array(input));\n },\n \"array\": function(input) {\n return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength));\n },\n \"arraybuffer\": identity,\n \"uint8array\": function(input) {\n return new Uint8Array(input);\n },\n \"nodebuffer\": function(input) {\n return nodeBuffer(new Uint8Array(input));\n }\n};\n\n// uint8array to ?\ntransform[\"uint8array\"] = {\n \"string\": arrayLikeToString,\n \"array\": function(input) {\n return arrayLikeToArrayLike(input, new Array(input.length));\n },\n \"arraybuffer\": function(input) {\n return input.buffer;\n },\n \"uint8array\": identity,\n \"nodebuffer\": function(input) {\n return nodeBuffer(input);\n }\n};\n\n// nodebuffer to ?\ntransform[\"nodebuffer\"] = {\n \"string\": arrayLikeToString,\n \"array\": function(input) {\n return arrayLikeToArrayLike(input, new Array(input.length));\n },\n \"arraybuffer\": function(input) {\n return transform[\"nodebuffer\"][\"uint8array\"](input).buffer;\n },\n \"uint8array\": function(input) {\n return arrayLikeToArrayLike(input, new Uint8Array(input.length));\n },\n \"nodebuffer\": identity\n};\n\n/**\n * Transform an input into any type.\n * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer.\n * If no output type is specified, the unmodified input will be returned.\n * @param {String} outputType the output type.\n * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert.\n * @throws {Error} an Error if the browser doesn't support the requested output type.\n */\nexports.transformTo = function(outputType, input) {\n if (!input) {\n // undefined, null, etc\n // an empty string won't harm.\n input = \"\";\n }\n if (!outputType) {\n return input;\n }\n exports.checkSupport(outputType);\n var inputType = exports.getTypeOf(input);\n var result = transform[inputType][outputType](input);\n return result;\n};\n\n/**\n * Return the type of the input.\n * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer.\n * @param {Object} input the input to identify.\n * @return {String} the (lowercase) type of the input.\n */\nexports.getTypeOf = function(input) {\n if (typeof input === \"string\") {\n return \"string\";\n }\n if (Object.prototype.toString.call(input) === \"[object Array]\") {\n return \"array\";\n }\n if (support.nodebuffer && nodeBuffer.test(input)) {\n return \"nodebuffer\";\n }\n if (support.uint8array && input instanceof Uint8Array) {\n return \"uint8array\";\n }\n if (support.arraybuffer && input instanceof ArrayBuffer) {\n return \"arraybuffer\";\n }\n};\n\n/**\n * Throw an exception if the type is not supported.\n * @param {String} type the type to check.\n * @throws {Error} an Error if the browser doesn't support the requested type.\n */\nexports.checkSupport = function(type) {\n var supported = support[type.toLowerCase()];\n if (!supported) {\n throw new Error(type + \" is not supported by this browser\");\n }\n};\nexports.MAX_VALUE_16BITS = 65535;\nexports.MAX_VALUE_32BITS = -1; // well, \"\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\" is parsed as -1\n\n/**\n * Prettify a string read as binary.\n * @param {string} str the string to prettify.\n * @return {string} a pretty string.\n */\nexports.pretty = function(str) {\n var res = '',\n code, i;\n for (i = 0; i < (str || \"\").length; i++) {\n code = str.charCodeAt(i);\n res += '\\\\x' + (code < 16 ? \"0\" : \"\") + code.toString(16).toUpperCase();\n }\n return res;\n};\n\n/**\n * Find a compression registered in JSZip.\n * @param {string} compressionMethod the method magic to find.\n * @return {Object|null} the JSZip compression object, null if none found.\n */\nexports.findCompression = function(compressionMethod) {\n for (var method in compressions) {\n if (!compressions.hasOwnProperty(method)) {\n continue;\n }\n if (compressions[method].magic === compressionMethod) {\n return compressions[method];\n }\n }\n return null;\n};\n/**\n* Cross-window, cross-Node-context regular expression detection\n* @param {Object} object Anything\n* @return {Boolean} true if the object is a regular expression,\n* false otherwise\n*/\nexports.isRegExp = function (object) {\n return Object.prototype.toString.call(object) === \"[object RegExp]\";\n};\n\n\n},{\"./compressions\":3,\"./nodeBuffer\":11,\"./support\":17}],22:[function(_dereq_,module,exports){\n'use strict';\nvar StringReader = _dereq_('./stringReader');\nvar NodeBufferReader = _dereq_('./nodeBufferReader');\nvar Uint8ArrayReader = _dereq_('./uint8ArrayReader');\nvar utils = _dereq_('./utils');\nvar sig = _dereq_('./signature');\nvar ZipEntry = _dereq_('./zipEntry');\nvar support = _dereq_('./support');\nvar jszipProto = _dereq_('./object');\n// class ZipEntries {{{\n/**\n * All the entries in the zip file.\n * @constructor\n * @param {String|ArrayBuffer|Uint8Array} data the binary stream to load.\n * @param {Object} loadOptions Options for loading the stream.\n */\nfunction ZipEntries(data, loadOptions) {\n this.files = [];\n this.loadOptions = loadOptions;\n if (data) {\n this.load(data);\n }\n}\nZipEntries.prototype = {\n /**\n * Check that the reader is on the speficied signature.\n * @param {string} expectedSignature the expected signature.\n * @throws {Error} if it is an other signature.\n */\n checkSignature: function(expectedSignature) {\n var signature = this.reader.readString(4);\n if (signature !== expectedSignature) {\n throw new Error(\"Corrupted zip or bug : unexpected signature \" + \"(\" + utils.pretty(signature) + \", expected \" + utils.pretty(expectedSignature) + \")\");\n }\n },\n /**\n * Read the end of the central directory.\n */\n readBlockEndOfCentral: function() {\n this.diskNumber = this.reader.readInt(2);\n this.diskWithCentralDirStart = this.reader.readInt(2);\n this.centralDirRecordsOnThisDisk = this.reader.readInt(2);\n this.centralDirRecords = this.reader.readInt(2);\n this.centralDirSize = this.reader.readInt(4);\n this.centralDirOffset = this.reader.readInt(4);\n\n this.zipCommentLength = this.reader.readInt(2);\n // warning : the encoding depends of the system locale\n // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded.\n // On a windows machine, this field is encoded with the localized windows code page.\n this.zipComment = this.reader.readString(this.zipCommentLength);\n // To get consistent behavior with the generation part, we will assume that\n // this is utf8 encoded.\n this.zipComment = jszipProto.utf8decode(this.zipComment);\n },\n /**\n * Read the end of the Zip 64 central directory.\n * Not merged with the method readEndOfCentral :\n * The end of central can coexist with its Zip64 brother,\n * I don't want to read the wrong number of bytes !\n */\n readBlockZip64EndOfCentral: function() {\n this.zip64EndOfCentralSize = this.reader.readInt(8);\n this.versionMadeBy = this.reader.readString(2);\n this.versionNeeded = this.reader.readInt(2);\n this.diskNumber = this.reader.readInt(4);\n this.diskWithCentralDirStart = this.reader.readInt(4);\n this.centralDirRecordsOnThisDisk = this.reader.readInt(8);\n this.centralDirRecords = this.reader.readInt(8);\n this.centralDirSize = this.reader.readInt(8);\n this.centralDirOffset = this.reader.readInt(8);\n\n this.zip64ExtensibleData = {};\n var extraDataSize = this.zip64EndOfCentralSize - 44,\n index = 0,\n extraFieldId,\n extraFieldLength,\n extraFieldValue;\n while (index < extraDataSize) {\n extraFieldId = this.reader.readInt(2);\n extraFieldLength = this.reader.readInt(4);\n extraFieldValue = this.reader.readString(extraFieldLength);\n this.zip64ExtensibleData[extraFieldId] = {\n id: extraFieldId,\n length: extraFieldLength,\n value: extraFieldValue\n };\n }\n },\n /**\n * Read the end of the Zip 64 central directory locator.\n */\n readBlockZip64EndOfCentralLocator: function() {\n this.diskWithZip64CentralDirStart = this.reader.readInt(4);\n this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8);\n this.disksCount = this.reader.readInt(4);\n if (this.disksCount > 1) {\n throw new Error(\"Multi-volumes zip are not supported\");\n }\n },\n /**\n * Read the local files, based on the offset read in the central part.\n */\n readLocalFiles: function() {\n var i, file;\n for (i = 0; i < this.files.length; i++) {\n file = this.files[i];\n this.reader.setIndex(file.localHeaderOffset);\n this.checkSignature(sig.LOCAL_FILE_HEADER);\n file.readLocalPart(this.reader);\n file.handleUTF8();\n }\n },\n /**\n * Read the central directory.\n */\n readCentralDir: function() {\n var file;\n\n this.reader.setIndex(this.centralDirOffset);\n while (this.reader.readString(4) === sig.CENTRAL_FILE_HEADER) {\n file = new ZipEntry({\n zip64: this.zip64\n }, this.loadOptions);\n file.readCentralPart(this.reader);\n this.files.push(file);\n }\n },\n /**\n * Read the end of central directory.\n */\n readEndOfCentral: function() {\n var offset = this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END);\n if (offset === -1) {\n throw new Error(\"Corrupted zip : can't find end of central directory\");\n }\n this.reader.setIndex(offset);\n this.checkSignature(sig.CENTRAL_DIRECTORY_END);\n this.readBlockEndOfCentral();\n\n\n /* extract from the zip spec :\n 4) If one of the fields in the end of central directory\n record is too small to hold required data, the field\n should be set to -1 (0xFFFF or 0xFFFFFFFF) and the\n ZIP64 format record should be created.\n 5) The end of central directory record and the\n Zip64 end of central directory locator record must\n reside on the same disk when splitting or spanning\n an archive.\n */\n if (this.diskNumber === utils.MAX_VALUE_16BITS || this.diskWithCentralDirStart === utils.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === utils.MAX_VALUE_16BITS || this.centralDirRecords === utils.MAX_VALUE_16BITS || this.centralDirSize === utils.MAX_VALUE_32BITS || this.centralDirOffset === utils.MAX_VALUE_32BITS) {\n this.zip64 = true;\n\n /*\n Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from\n the zip file can fit into a 32bits integer. This cannot be solved : Javascript represents\n all numbers as 64-bit double precision IEEE 754 floating point numbers.\n So, we have 53bits for integers and bitwise operations treat everything as 32bits.\n see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators\n and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5\n */\n\n // should look for a zip64 EOCD locator\n offset = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);\n if (offset === -1) {\n throw new Error(\"Corrupted zip : can't find the ZIP64 end of central directory locator\");\n }\n this.reader.setIndex(offset);\n this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);\n this.readBlockZip64EndOfCentralLocator();\n\n // now the zip64 EOCD record\n this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir);\n this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END);\n this.readBlockZip64EndOfCentral();\n }\n },\n prepareReader: function(data) {\n var type = utils.getTypeOf(data);\n if (type === \"string\" && !support.uint8array) {\n this.reader = new StringReader(data, this.loadOptions.optimizedBinaryString);\n }\n else if (type === \"nodebuffer\") {\n this.reader = new NodeBufferReader(data);\n }\n else {\n this.reader = new Uint8ArrayReader(utils.transformTo(\"uint8array\", data));\n }\n },\n /**\n * Read a zip file and create ZipEntries.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file.\n */\n load: function(data) {\n this.prepareReader(data);\n this.readEndOfCentral();\n this.readCentralDir();\n this.readLocalFiles();\n }\n};\n// }}} end of ZipEntries\nmodule.exports = ZipEntries;\n\n},{\"./nodeBufferReader\":12,\"./object\":13,\"./signature\":14,\"./stringReader\":15,\"./support\":17,\"./uint8ArrayReader\":18,\"./utils\":21,\"./zipEntry\":23}],23:[function(_dereq_,module,exports){\n'use strict';\nvar StringReader = _dereq_('./stringReader');\nvar utils = _dereq_('./utils');\nvar CompressedObject = _dereq_('./compressedObject');\nvar jszipProto = _dereq_('./object');\n// class ZipEntry {{{\n/**\n * An entry in the zip file.\n * @constructor\n * @param {Object} options Options of the current file.\n * @param {Object} loadOptions Options for loading the stream.\n */\nfunction ZipEntry(options, loadOptions) {\n this.options = options;\n this.loadOptions = loadOptions;\n}\nZipEntry.prototype = {\n /**\n * say if the file is encrypted.\n * @return {boolean} true if the file is encrypted, false otherwise.\n */\n isEncrypted: function() {\n // bit 1 is set\n return (this.bitFlag & 0x0001) === 0x0001;\n },\n /**\n * say if the file has utf-8 filename/comment.\n * @return {boolean} true if the filename/comment is in utf-8, false otherwise.\n */\n useUTF8: function() {\n // bit 11 is set\n return (this.bitFlag & 0x0800) === 0x0800;\n },\n /**\n * Prepare the function used to generate the compressed content from this ZipFile.\n * @param {DataReader} reader the reader to use.\n * @param {number} from the offset from where we should read the data.\n * @param {number} length the length of the data to read.\n * @return {Function} the callback to get the compressed content (the type depends of the DataReader class).\n */\n prepareCompressedContent: function(reader, from, length) {\n return function() {\n var previousIndex = reader.index;\n reader.setIndex(from);\n var compressedFileData = reader.readData(length);\n reader.setIndex(previousIndex);\n\n return compressedFileData;\n };\n },\n /**\n * Prepare the function used to generate the uncompressed content from this ZipFile.\n * @param {DataReader} reader the reader to use.\n * @param {number} from the offset from where we should read the data.\n * @param {number} length the length of the data to read.\n * @param {JSZip.compression} compression the compression used on this file.\n * @param {number} uncompressedSize the uncompressed size to expect.\n * @return {Function} the callback to get the uncompressed content (the type depends of the DataReader class).\n */\n prepareContent: function(reader, from, length, compression, uncompressedSize) {\n return function() {\n\n var compressedFileData = utils.transformTo(compression.uncompressInputType, this.getCompressedContent());\n var uncompressedFileData = compression.uncompress(compressedFileData);\n\n if (uncompressedFileData.length !== uncompressedSize) {\n throw new Error(\"Bug : uncompressed data size mismatch\");\n }\n\n return uncompressedFileData;\n };\n },\n /**\n * Read the local part of a zip file and add the info in this object.\n * @param {DataReader} reader the reader to use.\n */\n readLocalPart: function(reader) {\n var compression, localExtraFieldsLength;\n\n // we already know everything from the central dir !\n // If the central dir data are false, we are doomed.\n // On the bright side, the local part is scary : zip64, data descriptors, both, etc.\n // The less data we get here, the more reliable this should be.\n // Let's skip the whole header and dash to the data !\n reader.skip(22);\n // in some zip created on windows, the filename stored in the central dir contains \\ instead of /.\n // Strangely, the filename here is OK.\n // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes\n // or APPNOTE#4.4.17.1, \"All slashes MUST be forward slashes '/'\") but there are a lot of bad zip generators...\n // Search \"unzip mismatching \"local\" filename continuing with \"central\" filename version\" on\n // the internet.\n //\n // I think I see the logic here : the central directory is used to display\n // content and the local directory is used to extract the files. Mixing / and \\\n // may be used to display \\ to windows users and use / when extracting the files.\n // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394\n this.fileNameLength = reader.readInt(2);\n localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir\n this.fileName = reader.readString(this.fileNameLength);\n reader.skip(localExtraFieldsLength);\n\n if (this.compressedSize == -1 || this.uncompressedSize == -1) {\n throw new Error(\"Bug or corrupted zip : didn't get enough informations from the central directory \" + \"(compressedSize == -1 || uncompressedSize == -1)\");\n }\n\n compression = utils.findCompression(this.compressionMethod);\n if (compression === null) { // no compression found\n throw new Error(\"Corrupted zip : compression \" + utils.pretty(this.compressionMethod) + \" unknown (inner file : \" + this.fileName + \")\");\n }\n this.decompressed = new CompressedObject();\n this.decompressed.compressedSize = this.compressedSize;\n this.decompressed.uncompressedSize = this.uncompressedSize;\n this.decompressed.crc32 = this.crc32;\n this.decompressed.compressionMethod = this.compressionMethod;\n this.decompressed.getCompressedContent = this.prepareCompressedContent(reader, reader.index, this.compressedSize, compression);\n this.decompressed.getContent = this.prepareContent(reader, reader.index, this.compressedSize, compression, this.uncompressedSize);\n\n // we need to compute the crc32...\n if (this.loadOptions.checkCRC32) {\n this.decompressed = utils.transformTo(\"string\", this.decompressed.getContent());\n if (jszipProto.crc32(this.decompressed) !== this.crc32) {\n throw new Error(\"Corrupted zip : CRC32 mismatch\");\n }\n }\n },\n\n /**\n * Read the central part of a zip file and add the info in this object.\n * @param {DataReader} reader the reader to use.\n */\n readCentralPart: function(reader) {\n this.versionMadeBy = reader.readString(2);\n this.versionNeeded = reader.readInt(2);\n this.bitFlag = reader.readInt(2);\n this.compressionMethod = reader.readString(2);\n this.date = reader.readDate();\n this.crc32 = reader.readInt(4);\n this.compressedSize = reader.readInt(4);\n this.uncompressedSize = reader.readInt(4);\n this.fileNameLength = reader.readInt(2);\n this.extraFieldsLength = reader.readInt(2);\n this.fileCommentLength = reader.readInt(2);\n this.diskNumberStart = reader.readInt(2);\n this.internalFileAttributes = reader.readInt(2);\n this.externalFileAttributes = reader.readInt(4);\n this.localHeaderOffset = reader.readInt(4);\n\n if (this.isEncrypted()) {\n throw new Error(\"Encrypted zip are not supported\");\n }\n\n this.fileName = reader.readString(this.fileNameLength);\n this.readExtraFields(reader);\n this.parseZIP64ExtraField(reader);\n this.fileComment = reader.readString(this.fileCommentLength);\n\n // warning, this is true only for zip with madeBy == DOS (plateform dependent feature)\n this.dir = this.externalFileAttributes & 0x00000010 ? true : false;\n },\n /**\n * Parse the ZIP64 extra field and merge the info in the current ZipEntry.\n * @param {DataReader} reader the reader to use.\n */\n parseZIP64ExtraField: function(reader) {\n\n if (!this.extraFields[0x0001]) {\n return;\n }\n\n // should be something, preparing the extra reader\n var extraReader = new StringReader(this.extraFields[0x0001].value);\n\n // I really hope that these 64bits integer can fit in 32 bits integer, because js\n // won't let us have more.\n if (this.uncompressedSize === utils.MAX_VALUE_32BITS) {\n this.uncompressedSize = extraReader.readInt(8);\n }\n if (this.compressedSize === utils.MAX_VALUE_32BITS) {\n this.compressedSize = extraReader.readInt(8);\n }\n if (this.localHeaderOffset === utils.MAX_VALUE_32BITS) {\n this.localHeaderOffset = extraReader.readInt(8);\n }\n if (this.diskNumberStart === utils.MAX_VALUE_32BITS) {\n this.diskNumberStart = extraReader.readInt(4);\n }\n },\n /**\n * Read the central part of a zip file and add the info in this object.\n * @param {DataReader} reader the reader to use.\n */\n readExtraFields: function(reader) {\n var start = reader.index,\n extraFieldId,\n extraFieldLength,\n extraFieldValue;\n\n this.extraFields = this.extraFields || {};\n\n while (reader.index < start + this.extraFieldsLength) {\n extraFieldId = reader.readInt(2);\n extraFieldLength = reader.readInt(2);\n extraFieldValue = reader.readString(extraFieldLength);\n\n this.extraFields[extraFieldId] = {\n id: extraFieldId,\n length: extraFieldLength,\n value: extraFieldValue\n };\n }\n },\n /**\n * Apply an UTF8 transformation if needed.\n */\n handleUTF8: function() {\n if (this.useUTF8()) {\n this.fileName = jszipProto.utf8decode(this.fileName);\n this.fileComment = jszipProto.utf8decode(this.fileComment);\n } else {\n var upath = this.findExtraFieldUnicodePath();\n if (upath !== null) {\n this.fileName = upath;\n }\n var ucomment = this.findExtraFieldUnicodeComment();\n if (ucomment !== null) {\n this.fileComment = ucomment;\n }\n }\n },\n\n /**\n * Find the unicode path declared in the extra field, if any.\n * @return {String} the unicode path, null otherwise.\n */\n findExtraFieldUnicodePath: function() {\n var upathField = this.extraFields[0x7075];\n if (upathField) {\n var extraReader = new StringReader(upathField.value);\n\n // wrong version\n if (extraReader.readInt(1) !== 1) {\n return null;\n }\n\n // the crc of the filename changed, this field is out of date.\n if (jszipProto.crc32(this.fileName) !== extraReader.readInt(4)) {\n return null;\n }\n\n return jszipProto.utf8decode(extraReader.readString(upathField.length - 5));\n }\n return null;\n },\n\n /**\n * Find the unicode comment declared in the extra field, if any.\n * @return {String} the unicode comment, null otherwise.\n */\n findExtraFieldUnicodeComment: function() {\n var ucommentField = this.extraFields[0x6375];\n if (ucommentField) {\n var extraReader = new StringReader(ucommentField.value);\n\n // wrong version\n if (extraReader.readInt(1) !== 1) {\n return null;\n }\n\n // the crc of the comment changed, this field is out of date.\n if (jszipProto.crc32(this.fileComment) !== extraReader.readInt(4)) {\n return null;\n }\n\n return jszipProto.utf8decode(extraReader.readString(ucommentField.length - 5));\n }\n return null;\n }\n};\nmodule.exports = ZipEntry;\n\n},{\"./compressedObject\":2,\"./object\":13,\"./stringReader\":15,\"./utils\":21}],24:[function(_dereq_,module,exports){\n// Top level file is just a mixin of submodules & constants\n'use strict';\n\nvar assign = _dereq_('./lib/utils/common').assign;\n\nvar deflate = _dereq_('./lib/deflate');\nvar inflate = _dereq_('./lib/inflate');\nvar constants = _dereq_('./lib/zlib/constants');\n\nvar pako = {};\n\nassign(pako, deflate, inflate, constants);\n\nmodule.exports = pako;\n},{\"./lib/deflate\":25,\"./lib/inflate\":26,\"./lib/utils/common\":27,\"./lib/zlib/constants\":30}],25:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar zlib_deflate = _dereq_('./zlib/deflate.js');\nvar utils = _dereq_('./utils/common');\nvar strings = _dereq_('./utils/strings');\nvar msg = _dereq_('./zlib/messages');\nvar zstream = _dereq_('./zlib/zstream');\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nvar Z_NO_FLUSH = 0;\nvar Z_FINISH = 4;\n\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\n\nvar Z_DEFAULT_COMPRESSION = -1;\n\nvar Z_DEFAULT_STRATEGY = 0;\n\nvar Z_DEFLATED = 8;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overriden.\n **/\n\n/**\n * Deflate.result -> Uint8Array|Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nvar Deflate = function(options) {\n\n this.options = utils.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n var status = zlib_deflate.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n if (opt.header) {\n zlib_deflate.deflateSetHeader(this.strm, opt.header);\n }\n};\n\n/**\n * Deflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|String): input data. Strings will be converted to\n * utf8 byte sequence.\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That flush internal pending buffers and call\n * [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * array format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate.prototype.push = function(data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var status, _mode;\n\n if (this.ended) { return false; }\n\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n status = zlib_deflate.deflate(strm, _mode); /* no bad return value */\n\n if (status !== Z_STREAM_END && status !== Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n if (strm.avail_out === 0 || (strm.avail_in === 0 && _mode === Z_FINISH)) {\n if (this.options.to === 'string') {\n this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);\n\n // Finalize on the last chunk.\n if (_mode === Z_FINISH) {\n status = zlib_deflate.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): ouput data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate.prototype.onData = function(chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that input stream complete\n * or error happenned. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate.prototype.onEnd = function(status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate alrorythm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , data = Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate(input, options) {\n var deflator = new Deflate(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return deflate(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate(input, options);\n}\n\n\nexports.Deflate = Deflate;\nexports.deflate = deflate;\nexports.deflateRaw = deflateRaw;\nexports.gzip = gzip;\n},{\"./utils/common\":27,\"./utils/strings\":28,\"./zlib/deflate.js\":32,\"./zlib/messages\":37,\"./zlib/zstream\":39}],26:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar zlib_inflate = _dereq_('./zlib/inflate.js');\nvar utils = _dereq_('./utils/common');\nvar strings = _dereq_('./utils/strings');\nvar c = _dereq_('./zlib/constants');\nvar msg = _dereq_('./zlib/messages');\nvar zstream = _dereq_('./zlib/zstream');\nvar gzheader = _dereq_('./zlib/gzheader');\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overriden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nvar Inflate = function(options) {\n\n this.options = utils.assign({\n chunkSize: 16384,\n windowBits: 0,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n var status = zlib_inflate.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== c.Z_OK) {\n throw new Error(msg[status]);\n }\n\n this.header = new gzheader();\n\n zlib_inflate.inflateGetHeader(this.strm, this.header);\n};\n\n/**\n * Inflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|String): input data\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That flush internal pending buffers and call\n * [[Inflate#onEnd]].\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate.prototype.push = function(data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var status, _mode;\n var next_out_utf8, tail, utf8str;\n\n if (this.ended) { return false; }\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // Only binary strings can be decompressed on practice\n strm.input = strings.binstring2buf(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */\n\n if (status !== c.Z_STREAM_END && status !== c.Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && _mode === c.Z_FINISH)) {\n\n if (this.options.to === 'string') {\n\n next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n tail = strm.next_out - next_out_utf8;\n utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }\n\n this.onData(utf8str);\n\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n }\n } while ((strm.avail_in > 0) && status !== c.Z_STREAM_END);\n\n if (status === c.Z_STREAM_END) {\n _mode = c.Z_FINISH;\n }\n // Finalize on the last chunk.\n if (_mode === c.Z_FINISH) {\n status = zlib_inflate.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === c.Z_OK;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): ouput data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function(chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell inflate that input stream complete\n * or error happenned. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function(status) {\n // On success - join\n if (status === c.Z_OK) {\n if (this.options.to === 'string') {\n // Glue & convert here, until we teach pako to send\n // utf8 alligned strings to onData\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , input = pako.deflate([1,2,3,4,5,6,7,8,9])\n * , output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err)\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate(input, options) {\n var inflator = new Inflate(options);\n\n inflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) { throw inflator.msg; }\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nexports.Inflate = Inflate;\nexports.inflate = inflate;\nexports.inflateRaw = inflateRaw;\nexports.ungzip = inflate;\n\n},{\"./utils/common\":27,\"./utils/strings\":28,\"./zlib/constants\":30,\"./zlib/gzheader\":33,\"./zlib/inflate.js\":35,\"./zlib/messages\":37,\"./zlib/zstream\":39}],27:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar TYPED_OK = (typeof Uint8Array !== 'undefined') &&\n (typeof Uint16Array !== 'undefined') &&\n (typeof Int32Array !== 'undefined');\n\n\nexports.assign = function (obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n var source = sources.shift();\n if (!source) { continue; }\n\n if (typeof(source) !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (var p in source) {\n if (source.hasOwnProperty(p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// reduce buffer size, avoiding mem copy\nexports.shrinkBuf = function (buf, size) {\n if (buf.length === size) { return buf; }\n if (buf.subarray) { return buf.subarray(0, size); }\n buf.length = size;\n return buf;\n};\n\n\nvar fnTyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs+len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for(var i=0; i= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);\n}\n_utf8len[254]=_utf8len[254]=1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nexports.string2buf = function (str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {\n c2 = str.charCodeAt(m_pos+1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new utils.Buf8(buf_len);\n\n // convert\n for (i=0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {\n c2 = str.charCodeAt(m_pos+1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper (used in 2 places)\nfunction buf2binstring(buf, len) {\n // use fallback for big arrays to avoid stack overflow\n if (len < 65537) {\n if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {\n return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));\n }\n }\n\n var result = '';\n for(var i=0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n}\n\n\n// Convert byte array to binary string\nexports.buf2binstring = function(buf) {\n return buf2binstring(buf, buf.length);\n};\n\n\n// Convert binary string (typed, when possible)\nexports.binstring2buf = function(str) {\n var buf = new utils.Buf8(str.length);\n for(var i=0, len=buf.length; i < len; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n};\n\n\n// convert array to string\nexports.buf2string = function (buf, max) {\n var i, out, c, c_len;\n var len = max || buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len*2);\n\n for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nexports.utf8border = function(buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max-1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Fuckup - very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means vuffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\n},{\"./common\":27}],29:[function(_dereq_,module,exports){\n'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It doesn't worth to make additional optimizationa as in original.\n// Small size is preferable.\n\nfunction adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0\n , s2 = ((adler >>> 16) & 0xffff) |0\n , n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n\n\nmodule.exports = adler32;\n},{}],30:[function(_dereq_,module,exports){\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n},{}],31:[function(_dereq_,module,exports){\n'use strict';\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c, table = [];\n\n for(var n =0; n < 256; n++){\n c = n;\n for(var k =0; k < 8; k++){\n c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable\n , end = pos + len;\n\n crc = crc ^ (-1);\n\n for (var i = pos; i < end; i++ ) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n\nmodule.exports = crc32;\n},{}],32:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('../utils/common');\nvar trees = _dereq_('./trees');\nvar adler32 = _dereq_('./adler32');\nvar crc32 = _dereq_('./crc32');\nvar msg = _dereq_('./messages');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH = 0;\nvar Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\nvar Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\n//var Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\n//var Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\n//var Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n\n/* compression levels */\n//var Z_NO_COMPRESSION = 0;\n//var Z_BEST_SPEED = 1;\n//var Z_BEST_COMPRESSION = 9;\nvar Z_DEFAULT_COMPRESSION = -1;\n\n\nvar Z_FILTERED = 1;\nvar Z_HUFFMAN_ONLY = 2;\nvar Z_RLE = 3;\nvar Z_FIXED = 4;\nvar Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY = 0;\n//var Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n/*============================================================================*/\n\n\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_MEM_LEVEL = 8;\n\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES = 30;\n/* number of distance codes */\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE = 2*L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\n\nfunction flush_block_only (s, last) {\n trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n// put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n utils.arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH-1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// var curr = s.strstart + s.lookahead;\n// var init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH-1)) ? s.strstart : MIN_MATCH-1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH-1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size-MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH-1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = trees._tr_tally(s, s.strstart - 1- s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length-1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH-1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart-1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart-1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH-1 ? s.strstart : MIN_MATCH-1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nvar Config = function (good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n};\n\nvar configuration_table;\n\nconfiguration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new utils.Buf16((2*D_CODES+1) * 2);\n this.bl_tree = new utils.Buf16((2*BL_CODES+1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new utils.Buf16(MAX_BITS+1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new utils.Buf16(2*L_CODES+1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new utils.Buf16(2*L_CODES+1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n trees._tr_init(s);\n return Z_OK;\n}\n\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n}\n\n\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new utils.Buf8(s.w_size * 2);\n s.head = new utils.Buf16(s.hash_size);\n s.prev = new utils.Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n s.pending_buf = new utils.Buf8(s.pending_buf_size);\n\n s.d_buf = s.lit_bufsize >> 1;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\n\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg){\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n trees._tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n trees._tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n\n/* =========================================================================\n * Copy the source state to the destination state\n */\n//function deflateCopy(dest, source) {\n//\n//}\n\nexports.deflateInit = deflateInit;\nexports.deflateInit2 = deflateInit2;\nexports.deflateReset = deflateReset;\nexports.deflateResetKeep = deflateResetKeep;\nexports.deflateSetHeader = deflateSetHeader;\nexports.deflate = deflate;\nexports.deflateEnd = deflateEnd;\nexports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateSetDictionary = deflateSetDictionary;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n},{\"../utils/common\":27,\"./adler32\":29,\"./crc32\":31,\"./messages\":37,\"./trees\":38}],33:[function(_dereq_,module,exports){\n'use strict';\n\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nmodule.exports = GZheader;\n},{}],34:[function(_dereq_,module,exports){\n'use strict';\n\n// See state defs from inflate.js\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n var window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n},{}],35:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar utils = _dereq_('../utils/common');\nvar adler32 = _dereq_('./adler32');\nvar crc32 = _dereq_('./crc32');\nvar inflate_fast = _dereq_('./inffast');\nvar inflate_table = _dereq_('./inftrees');\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\nvar Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_WBITS = MAX_WBITS;\n\n\nfunction ZSWAP32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n this.work = new utils.Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) { return Z_STREAM_ERROR; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n}\n\nfunction inflateInit(strm) {\n return inflateInit2(strm, DEF_WBITS);\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = new utils.Buf32(512);\n distfix = new utils.Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, {bits: 9});\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, {bits: 5});\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new utils.Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n utils.arraySet(state.window,src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n utils.arraySet(state.window,src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n utils.arraySet(state.window,src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */\n [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more conveniend processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n utils.arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0 /*crc32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = ZSWAP32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n utils.arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = {bits: state.lenbits};\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = {bits: state.lenbits};\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = {bits: state.distbits};\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) -1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) -1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) -1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) -1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) -1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) -1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' insdead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, ZSWAP32 returns signed too\n if ((state.flags ? hold : ZSWAP32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n}\n\nfunction inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n}\n\n\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSetDictionary = inflateSetDictionary;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n},{\"../utils/common\":27,\"./adler32\":29,\"./crc32\":31,\"./inffast\":34,\"./inftrees\":36}],36:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar utils = _dereq_('../utils/common');\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n{\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0, max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n// var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new utils.Buf16(MAXBITS+1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new utils.Buf16(MAXBITS+1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n var i=0;\n /* process all codes and make table entries */\n for (;;) {\n i++;\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n},{\"../utils/common\":27}],37:[function(_dereq_,module,exports){\n'use strict';\n\nmodule.exports = {\n '2': 'need dictionary', /* Z_NEED_DICT 2 */\n '1': 'stream end', /* Z_STREAM_END 1 */\n '0': '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n},{}],38:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar utils = _dereq_('../utils/common');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED = 4;\n//var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY = 0;\nvar Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2*L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\nvar extra_lbits = /* extra bits for each length code */\n [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];\n\nvar extra_dbits = /* extra bits for each distance code */\n [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];\n\nvar extra_blbits = /* extra bits for each bit length code */\n [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree = new Array((L_CODES+2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH-MIN_MATCH+1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nvar StaticTreeDesc = function (static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n};\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nvar TreeDesc = function(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n};\n\n\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short (s, w) {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n}\n\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c*2]/*.Code*/, tree[c*2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max]*2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max+1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n*2 +1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n*2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n-base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n*2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length-1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits+1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m*2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m*2 + 1]/*.Len*/)*tree[m*2]/*.Freq*/;\n tree[m*2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS+1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits-1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES-1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1< dist code (0..29) */\n dist = 0;\n for (code = 0 ; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1<>= 7; /* from now on, all distances are divided by 128 */\n for ( ; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n*2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n*2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n*2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n*2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES+1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n*2 + 1]/*.Len*/ = 5;\n static_dtree[n*2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc =new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n*2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n*2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n*2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK*2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n*2;\n var _m2 = m*2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j+1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx*2] << 8) | (s.pending_buf[s.d_buf + lx*2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code+LITERALS+1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n*2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node*2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n*2 + 1]/*.Dad*/ = tree[m*2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0*2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code+1)*2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n+1)*2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6*2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10*2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138*2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0*2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n+1)*2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count-3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count-3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count-11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex]*2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3*(max_blindex+1) + 5+5+4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes-1, 5);\n send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank]*2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes-1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes-1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n*2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s)\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK<<1)+(last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES<<1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len+3+7) >>> 3;\n static_lenb = (s.static_len+3+7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len+4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES<<1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES<<1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code+1, s.d_desc.max_code+1, max_blindex+1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc*2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc]+LITERALS+1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize-1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\nexports._tr_init = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_flush_block = _tr_flush_block;\nexports._tr_tally = _tr_tally;\nexports._tr_align = _tr_align;\n},{\"../utils/common\":27}],39:[function(_dereq_,module,exports){\n'use strict';\n\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nmodule.exports = ZStream;\n},{}]},{},[9])\n(9)\n}));\n","import Vue from 'vue';\n/**\n * Delayable\n *\n * @mixin\n *\n * Changes the open or close delay time for elements\n */\nexport default Vue.extend().extend({\n name: 'delayable',\n props: {\n openDelay: {\n type: [Number, String],\n default: 0\n },\n closeDelay: {\n type: [Number, String],\n default: 0\n }\n },\n data: function data() {\n return {\n openTimeout: undefined,\n closeTimeout: undefined\n };\n },\n methods: {\n /**\n * Clear any pending delay timers from executing\n */\n clearDelay: function clearDelay() {\n clearTimeout(this.openTimeout);\n clearTimeout(this.closeTimeout);\n },\n\n /**\n * Runs callback after a specified delay\n */\n runDelay: function runDelay(type, cb) {\n var _this = this;\n\n this.clearDelay();\n var delay = parseInt(this[type + 'Delay'], 10);\n this[type + 'Timeout'] = setTimeout(cb || function () {\n _this.isActive = { open: true, close: false }[type];\n }, delay);\n }\n }\n});\n//# sourceMappingURL=delayable.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { upperFirst } from '../../util/helpers';\nexport default function () {\n var expandedParentClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var sizeProperty = x ? 'width' : 'height';\n return {\n beforeEnter: function beforeEnter(el) {\n el._parent = el.parentNode;\n el._initialStyle = _defineProperty({\n transition: el.style.transition,\n visibility: el.style.visibility,\n overflow: el.style.overflow\n }, sizeProperty, el.style[sizeProperty]);\n },\n enter: function enter(el) {\n var initialStyle = el._initialStyle;\n el.style.setProperty('transition', 'none', 'important');\n el.style.visibility = 'hidden';\n var size = el['offset' + upperFirst(sizeProperty)] + 'px';\n el.style.visibility = initialStyle.visibility;\n el.style.overflow = 'hidden';\n el.style[sizeProperty] = 0;\n void el.offsetHeight; // force reflow\n el.style.transition = initialStyle.transition;\n expandedParentClass && el._parent && el._parent.classList.add(expandedParentClass);\n requestAnimationFrame(function () {\n el.style[sizeProperty] = size;\n });\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n leave: function leave(el) {\n el._initialStyle = _defineProperty({\n overflow: el.style.overflow\n }, sizeProperty, el.style[sizeProperty]);\n el.style.overflow = 'hidden';\n el.style[sizeProperty] = el['offset' + upperFirst(sizeProperty)] + 'px';\n void el.offsetHeight; // force reflow\n requestAnimationFrame(function () {\n return el.style[sizeProperty] = 0;\n });\n },\n\n afterLeave: afterLeave,\n leaveCancelled: afterLeave\n };\n function afterLeave(el) {\n expandedParentClass && el._parent && el._parent.classList.remove(expandedParentClass);\n resetStyles(el);\n }\n function resetStyles(el) {\n el.style.overflow = el._initialStyle.overflow;\n el.style[sizeProperty] = el._initialStyle[sizeProperty];\n delete el._initialStyle;\n }\n}\n//# sourceMappingURL=expand-transition.js.map","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport '../../../src/stylus/components/_dialogs.styl';\n// Mixins\nimport Dependent from '../../mixins/dependent';\nimport Detachable from '../../mixins/detachable';\nimport Overlayable from '../../mixins/overlayable';\nimport Returnable from '../../mixins/returnable';\nimport Stackable from '../../mixins/stackable';\nimport Toggleable from '../../mixins/toggleable';\n// Directives\nimport ClickOutside from '../../directives/click-outside';\n// Helpers\nimport { convertToUnit, keyCodes, getSlotType } from '../../util/helpers';\nimport ThemeProvider from '../../util/ThemeProvider';\nimport { consoleError } from '../../util/console';\n/* @vue/component */\nexport default {\n name: 'v-dialog',\n directives: {\n ClickOutside: ClickOutside\n },\n mixins: [Dependent, Detachable, Overlayable, Returnable, Stackable, Toggleable],\n props: {\n disabled: Boolean,\n persistent: Boolean,\n fullscreen: Boolean,\n fullWidth: Boolean,\n noClickAnimation: Boolean,\n light: Boolean,\n dark: Boolean,\n maxWidth: {\n type: [String, Number],\n default: 'none'\n },\n origin: {\n type: String,\n default: 'center center'\n },\n width: {\n type: [String, Number],\n default: 'auto'\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition'\n }\n },\n data: function data() {\n return {\n animate: false,\n animateTimeout: null,\n stackClass: 'v-dialog__content--active',\n stackMinZIndex: 200\n };\n },\n\n computed: {\n classes: function classes() {\n var _ref;\n\n return _ref = {}, _defineProperty(_ref, ('v-dialog ' + this.contentClass).trim(), true), _defineProperty(_ref, 'v-dialog--active', this.isActive), _defineProperty(_ref, 'v-dialog--persistent', this.persistent), _defineProperty(_ref, 'v-dialog--fullscreen', this.fullscreen), _defineProperty(_ref, 'v-dialog--scrollable', this.scrollable), _defineProperty(_ref, 'v-dialog--animated', this.animate), _ref;\n },\n contentClasses: function contentClasses() {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive\n };\n },\n hasActivator: function hasActivator() {\n return Boolean(!!this.$slots.activator || !!this.$scopedSlots.activator);\n }\n },\n watch: {\n isActive: function isActive(val) {\n if (val) {\n this.show();\n this.hideScroll();\n } else {\n this.removeOverlay();\n }\n },\n fullscreen: function fullscreen(val) {\n if (!this.isActive) return;\n if (val) {\n this.hideScroll();\n this.removeOverlay(false);\n } else {\n this.showScroll();\n this.genOverlay();\n }\n }\n },\n beforeMount: function beforeMount() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.isBooted = _this.isActive;\n _this.isActive && _this.show();\n });\n },\n mounted: function mounted() {\n if (getSlotType(this, 'activator', true) === 'v-slot') {\n consoleError('v-dialog\\'s activator slot must be bound, try \\'