{"version":3,"file":"src_app_admin_students_students_module_ts.e8cb1bbde62bc8a4.js","mappings":"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","sources":["./src/app/admin/students/import-dialog/import-dialog.component.ts","./src/app/admin/students/import-dialog/import-dialog.component.html","./src/app/admin/students/student-dialog/student-dialog.component.ts","./src/app/admin/students/student-dialog/student-dialog.component.html","./src/app/admin/students/students.component.ts","./src/app/admin/students/students.component.html","./src/app/admin/students/students.module.ts","./node_modules/xlsx/xlsx.mjs"],"sourcesContent":["import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AppService } from 'src/app/app.service';\nimport { EncryptDecrypt } from 'src/app/theme/directives/encrypt_decrypt';\nimport * as XLSX from 'xlsx';\n\ntype AOA = any[][];\n@Component({\n selector: 'app-import-dialog',\n templateUrl: './import-dialog.component.html',\n styleUrls: ['./import-dialog.component.scss']\n})\nexport class ImportDialogComponent implements OnInit {\n dataSource: any = [];\n filename: any ='';\n data: AOA = [[1, 2], [3, 4]];\n request: any = [];\n loading=false;\n constructor(\n public dialogRef: MatDialogRef<ImportDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public dialogdata: any, public appService: AppService,\n public snackBar: MatSnackBar, private encrypt: EncryptDecrypt,\n ) {\n\n\n }\n\n ngOnInit(): void {\n }\n onFileChange(evt: any) { \n const target: DataTransfer = <DataTransfer>(evt.target);\n this.filename=target.files[0].name;\n if (target.files.length !== 1) throw new Error('Cannot use multiple files');\n const reader: FileReader = new FileReader();\n reader.onload = (e: any) => {\n /* read workbook */\n const bstr: string = e.target.result;\n const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\n\n /* grab first sheet */\n const wsname: string = wb.SheetNames[0];\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\n\n /* save data */\n this.data = <AOA>(XLSX.utils.sheet_to_json(ws, { header: 1 }));\n if (this.data.length >0)\n { \n if (this.data[0].length==5)\n { \n let username: string = \"\";\n if (localStorage.getItem('TamuApp')) {\n \n const TamuApp = JSON.parse(this.encrypt.Decrypt(localStorage.getItem('TamuApp')));\n username = TamuApp.Username;\n }\n\n \n for (let index = 1; index < this.data.length; index++) {\n const element = this.data[index];\n\n const std = new StudentData(element[0],element[1], element[2], element[3], element[4]) \n\n this.dataSource.push(std);\n\n const req = {\n Id: 0,\n StudentId: element[0],\n Surname: element[1],\n Othernames: element[2],\n Grade:element[3],\n Stream: element[4],\n Status: true,\n CreatedBy:username\n }\n this.request.push(req);\n \n }\n\n }\n else {\n this.snackBar.open('Invalid template, please refer to the template format', '×', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\n }\n }\n \n \n\n\n\n\n\n };\n reader.readAsBinaryString(target.files[0]);\n \n\n }\n onSubmit() {\n \n this.loading = true;\n this.appService.StudentImport(this.request)\n .subscribe({\n next: (data) => {\n this.loading = false;\n if (data === \"\") {\n\n this.snackBar.open('Student imported successfully.', '×', { panelClass: 'success', verticalPosition: 'top', duration: 6000 });\n this.dialogRef.close (1);\n } else {\n\n if (data != null)\n this.snackBar.open(data.toString(), '×', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\n this.dialogRef.close (0);\n }\n\n },\n error: (e) => {\n this.loading = false;\n this.dialogRef.close (null);\n this.snackBar.open(e.error, 'X', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\n },\n complete: () => {\n this.loading = false;\n\n }\n });\n\n\n\n\n\n \n\n \n }\n\n}\nexport class StudentData\n{ \n public StudentId: string;\n public Surname: string;\n public Othernames: string;\n public Grade: string;\n public Stream: string;\n constructor(StudentId: string,Surname: string, Othernames: string, Grade: string, Stream: string) {\n this.StudentId=StudentId\n this.Surname = Surname;\n this.Othernames = Othernames;\n this.Grade = Grade;\n this.Stream = Stream;\n\n} \n}\n","<div class=\"header bg-primary\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\n <h2 class=\"fw-500 secondary-font\">Import Students</h2>\n <app-dialog-header-controls [dialogRef]=\"dialogRef\"></app-dialog-header-controls>\n </div>\n</div>\n<form autocomplete=\"off\" class=\"pt-3\">\n\n <div fxLayout=\"row wrap\" class=\"mt-2\" style=\"margin-bottom: 15px;\">\n <div fxFlex=\"100\" fxFlex.gt-md=\"100\" class=\"px-3\">\n <input type=\"file\" id=\"actual-btn\" (change)=\"onFileChange($event)\" multiple=\"false\"\n accept=\".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"\n hidden/>\n\n <!-- our custom upload button -->\n <label for=\"actual-btn\">Choose File</label>\n \n <!-- name of file chosen -->\n <span id=\"file-chosen\">{{ filename == ''? 'No file chosen': filename}}</span>\n </div>\n \n<span class=\"template\">\n <b>Template:</b> StudentId,Surname,Othernames,Grade,Stream\n</span>\n\n </div>\n\n\n\n\n <mat-divider></mat-divider>\n\n <dx-data-grid id=\"gridContainer\" [dataSource]=\"dataSource\" [rowAlternationEnabled]=\"true\" [showBorders]=\"true\"\n [showRowLines]=\"true\" [columnHidingEnabled]=\"true\" width=\"100%\"\n >\n <dxo-search-panel\n [visible]=\"true\"\n [width]=\"300\"\n placeholder=\"Search...\"\n ></dxo-search-panel>\n <dxo-paging [pageSize]=\"5\"></dxo-paging>\n <dxo-pager [visible]=\"true\" [allowedPageSizes]=\"[5, 10,20,50, 'all']\" [displayMode]=\"'full'\"\n [showPageSizeSelector]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n <dxo-scrolling columnRenderingMode=\"virtual\"></dxo-scrolling>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxi-column dataField=\"StudentId\" caption=\"StudentId\" width=\"180\"></dxi-column>\n <dxi-column dataField=\"Surname\" caption=\"Surname\"></dxi-column>\n <dxi-column dataField=\"Othernames\" caption=\"Othernames\"></dxi-column>\n <dxi-column dataField=\"Grade\" caption=\"Grade\" width=\"100\"></dxi-column>\n <dxi-column dataField=\"Stream\" caption=\"Stream\" width=\"100\"></dxi-column>\n \n </dx-data-grid> \n\n\n <div fxLayout=\"row wrap\" class=\"mt-2\" style=\"margin-bottom: 15px;\">\n <div fxFlex=\"100\" fxFlex.gt-md=\"100\" class=\"px-3 text-right\">\n <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"onSubmit()\" class=\"uppercase\">Submit</button>\n\n </div>\n </div>\n</form>\n\n<div class=\"overlay\" *ngIf=\"loading\">\n <div class=\"center\">\n <mat-spinner *ngIf=\"loading\"></mat-spinner>\n </div>\n\n</div>","import { Component, Inject, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AppService } from 'src/app/app.service';\nimport { EncryptDecrypt } from 'src/app/theme/directives/encrypt_decrypt';\nimport { emailValidator } from 'src/app/theme/utils/app-validators';\n\n@Component({\n selector: 'app-student-dialog',\n templateUrl: './student-dialog.component.html',\n styleUrls: ['./student-dialog.component.scss']\n})\nexport class StudentDialogComponent implements OnInit {\n\n public form!: UntypedFormGroup;\n constructor(\n public dialogRef: MatDialogRef<StudentDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any, public appService: AppService,\n public fb: UntypedFormBuilder, public snackBar: MatSnackBar, private encrypt: EncryptDecrypt,\n ) {\n\n\n }\n\n ngOnInit(): void {\n this.form = this.fb.group({\n Id: 0,\n StudentId: ['', Validators.required],\n Surname: ['', Validators.required],\n Othernames: ['', Validators.required],\n Grade: ['', Validators.required],\n Stream: [''],\n }); \n if(this.data){\n this.form.patchValue(this.data); \n };\n }\n onSubmit() {\n if(this.form.valid){\n \n this.dialogRef.close(this.form.value);\n\n }\n }\n}\n","<div class=\"header bg-primary\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between center\">\n <h2 class=\"fw-500 secondary-font\">{{(data) ? 'Edit' : 'Add'}} Student</h2>\n <app-dialog-header-controls [dialogRef]=\"dialogRef\"></app-dialog-header-controls>\n </div>\n</div>\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" autocomplete=\"off\" class=\"pt-3\">\n\n <div fxLayout=\"row wrap\" class=\"mt-2\">\n <div fxFlex=\"100\" fxFlex.gt-md=\"30\" class=\"px-3\">\n <mat-form-field appearance=\"outline\" class=\"w-100\">\n <mat-label>StudentId</mat-label>\n <input matInput formControlName=\"StudentId\" required>\n <mat-error *ngIf=\"form.controls.StudentId.errors?.required\">StudentId are required\n </mat-error>\n </mat-form-field>\n </div>\n <div fxLayout=\"row wrap\" class=\"mt-2\" fxFlex=\"100\">\n <div fxFlex=\"100\" fxFlex.gt-md=\"30\" class=\"px-3\">\n <mat-form-field appearance=\"outline\" class=\"w-100\">\n <mat-label>Surname</mat-label>\n <input matInput formControlName=\"Surname\" required>\n <mat-error *ngIf=\"form.controls.Surname.errors?.required\">Surname is required\n </mat-error>\n </mat-form-field>\n </div>\n <div fxFlex=\"100\" fxFlex.gt-md=\"70\" class=\"px-3\">\n <mat-form-field appearance=\"outline\" class=\"w-100\">\n <mat-label>Othernames</mat-label>\n <input matInput formControlName=\"Othernames\" required>\n <mat-error *ngIf=\"form.controls.Othernames.errors?.required\">Othernames is required\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n\n\n <div fxLayout=\"row wrap\" class=\"mt-2\" fxFlex=\"100\">\n <div fxFlex=\"100\" fxFlex.gt-md=\"30\" class=\"px-3\">\n <mat-form-field appearance=\"outline\" class=\"w-100\">\n <mat-label>Grade</mat-label>\n <input matInput formControlName=\"Grade\" required>\n <mat-error *ngIf=\"form.controls.Grade.errors?.required\">Grade is required\n </mat-error>\n </mat-form-field>\n </div>\n <div fxFlex=\"100\" fxFlex.gt-md=\"30\" class=\"px-3\">\n <mat-form-field appearance=\"outline\" class=\"w-100\">\n <mat-label>Stream</mat-label>\n <input matInput formControlName=\"Stream\">\n </mat-form-field>\n </div>\n </div>\n\n\n </div>\n\n\n\n\n <mat-divider></mat-divider>\n\n <div fxLayout=\"row wrap\" class=\"mt-2\" style=\"margin-bottom: 15px;\">\n <div fxFlex=\"100\" fxFlex.gt-md=\"100\" class=\"px-3 text-right\">\n <button mat-raised-button color=\"primary\" type=\"submit\" class=\"uppercase\">Submit</button>\n\n </div>\n </div>\n</form>","import { Component, OnInit } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AppService } from 'src/app/app.service';\nimport { EncryptDecrypt } from 'src/app/theme/directives/encrypt_decrypt';\nimport { exportDataGrid } from 'devextreme/excel_exporter';\nimport { Workbook } from 'exceljs';\nimport { saveAs } from 'file-saver';\nimport { StudentDialogComponent } from './student-dialog/student-dialog.component';\nimport { ImportDialogComponent } from './import-dialog/import-dialog.component';\n@Component({\n selector: 'app-students',\n templateUrl: './students.component.html',\n styleUrls: ['./students.component.scss']\n})\nexport class StudentsComponent implements OnInit {\n\n dataSource: any = [];\n loading = false;\n constructor(\n public appService: AppService,\n public snackBar: MatSnackBar,\n private encrypt: EncryptDecrypt,\n ) { }\n\n ngOnInit(): void {\n this.listStudents();\n }\n listStudents() {\n this.loading = true;\n this.appService.StudentList()\n .subscribe({\n next: (data) => {\n const body = JSON.parse(JSON.stringify(data));\n this.dataSource = body;\n this.loading = false;\n },\n error: (e) => {\n this.loading = false;\n },\n complete: () => {\n this.loading = false;\n }\n });\n }\n\n addStudent() {\n this.openDialogStudent(null);\n }\n importStudent() {\n this.openDialogImportStudent(null);\n }\n editStudent(data: any, $event: any) {\n this.openDialogStudent(data.data);\n }\n public openDialogStudent(data: any | null) {\n const dialogRef = this.appService.openDialog(StudentDialogComponent, data, 'theme-dialog');\n dialogRef.afterClosed().subscribe(dat => {\n\n let username: string = \"\";\n if (localStorage.getItem('TamuApp')) {\n\n const TamuApp = JSON.parse(this.encrypt.Decrypt(localStorage.getItem('TamuApp')));\n username = TamuApp.Username;\n }\n\n if (dat != null) {\n const req = {\n Id: dat.Id,\n StudentId: dat.StudentId,\n Surname: dat.Surname,\n Othernames: dat.Othernames,\n Grade: dat.Grade,\n Stream: dat.Stream,\n Status: true,\n CreatedBy:username\n }\n\n this.loading = true;\n this.appService.Student(req)\n .subscribe({\n next: (data) => {\n \n if (data === \"\") {\n\n this.snackBar.open('Student saved successfully', '×', { panelClass: 'success', verticalPosition: 'top', duration: 6000 });\n this.listStudents();\n this.loading = false;\n } else {\n\n if (data != null)\n this.snackBar.open(data.toString(), '×', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\n }\n\n },\n error: (e) => {\n this.loading = false;\n\n this.snackBar.open(e.error, 'X', { panelClass: 'error', verticalPosition: 'top', duration: 4000 });\n },\n complete: () => {\n this.loading = false;\n }\n });\n }\n\n\n });\n\n }\n\n public openDialogImportStudent(data: any | null) {\n const dialogRef = this.appService.openDialog(ImportDialogComponent, data, 'theme-dialog');\n dialogRef.afterClosed().subscribe(dat => {\n\n let username: string = \"\";\n if (localStorage.getItem('TamuApp')) {\n\n const TamuApp = JSON.parse(this.encrypt.Decrypt(localStorage.getItem('TamuApp')));\n username = TamuApp.Username;\n }\n\n if (dat != null) {\n this.listStudents();\n\n }\n\n\n });\n\n }\n\n onExporting(e) {\n const workbook = new Workbook();\n const worksheet = workbook.addWorksheet('Employees');\n\n exportDataGrid({\n component: e.component,\n worksheet,\n autoFilterEnabled: true,\n }).then(() => {\n workbook.xlsx.writeBuffer().then((buffer) => {\n saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'Report.xlsx');\n });\n });\n e.cancel = true;\n }\n}\n","<div fxLayout=\"row wrap\" fxLayoutAlign=\"left\" class=\"w-100 p-1\">\n <div fxFlex=\"100\" fxFlex.gt-sm=\"20\" class=\"px-3\" ngClass.sm=\"mt-1\" ngClass.xs=\"mt-1\">\n <button mat-raised-button color=\"primary\" type=\"button\" class=\"uppercase\" (click)=\"addStudent()\">\n <mat-icon>person_add</mat-icon>\n Add Student</button> \n \n </div>\n <div fxFlex=\"100\" fxFlex.gt-sm=\"20\" class=\"px-3\" ngClass.sm=\"mt-1\" ngClass.xs=\"mt-1\">\n <button mat-raised-button color=\"primary\" type=\"button\" class=\"uppercase\" (click)=\"importStudent()\">\n <mat-icon>import_export</mat-icon>\n Import Student</button> \n \n </div>\n<mat-divider></mat-divider>\n \n<dx-data-grid id=\"gridContainer\" [dataSource]=\"dataSource\" [rowAlternationEnabled]=\"true\" [showBorders]=\"true\"\n[showRowLines]=\"true\" [columnHidingEnabled]=\"true\" width=\"100%\"\n(onExporting)=\"onExporting($event)\">\n<dxo-search-panel\n [visible]=\"true\"\n [width]=\"300\"\n placeholder=\"Search...\"\n ></dxo-search-panel>\n<dxo-paging [pageSize]=\"5\"></dxo-paging>\n<dxo-pager [visible]=\"true\" [allowedPageSizes]=\"[5, 10,20,50, 'all']\" [displayMode]=\"'full'\"\n [showPageSizeSelector]=\"true\" [showInfo]=\"true\" [showNavigationButtons]=\"true\"></dxo-pager>\n<dxo-scrolling columnRenderingMode=\"virtual\"></dxo-scrolling>\n<dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n<dxo-export [enabled]=\"true\" [formats]=\"['Excel']\" [allowExportSelectedData]=\"true\"></dxo-export>\n<dxi-column dataField=\"Id\" caption=\"Id\" width=\"70\"></dxi-column>\n<dxi-column dataField=\"StudentId\" caption=\"StudentId\" width=\"180\"></dxi-column>\n<dxi-column dataField=\"Surname\" caption=\"Surname\"></dxi-column>\n<dxi-column dataField=\"Othernames\" caption=\"Othernames\"></dxi-column>\n<dxi-column dataField=\"ParentName\" caption=\"ParentName\"></dxi-column>\n<dxi-column dataField=\"Grade\" caption=\"Grade\" width=\"100\"></dxi-column>\n<dxi-column dataField=\"Stream\" caption=\"Stream\" width=\"100\"></dxi-column>\n<!--<dxi-column dataField=\"Status\" caption=\"Status\" width=\"120\"></dxi-column> -->\n<dxi-column dataField=\"DateCreated\" caption=\"DateCreated\" width=\"120\"></dxi-column>\n<dxi-column dataField=\"CreatedBy\" caption=\"DoneBy\" width=\"150\"></dxi-column>\n<dxi-column caption=\"\" [width]=\"35\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"actions\"\n [fixed]=\"true\" fixedPosition=\"right\"></dxi-column>\n<div *dxTemplate=\"let data of 'actions'\">\n \n <button class=\"gridbutton\" (click)=\"editStudent(data,$event)\" matTooltip=\"Edit Student\">\n <mat-icon color=\"primary\">edit</mat-icon>\n </button>\n</div>\n</dx-data-grid> \n</div>\n\n<div class=\"overlay\" *ngIf=\"loading\">\n <div class=\"center\">\n <mat-spinner *ngIf=\"loading\"></mat-spinner>\n </div>\n\n</div>\n \n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { InMemoryWebApiModule } from 'angular-in-memory-web-api';\r\nimport { NgxPaginationModule } from 'ngx-pagination';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { PipesModule } from '../../theme/pipes/pipes.module';\r\nimport { StudentsComponent } from './students.component';\r\nimport { StudentDialogComponent } from './student-dialog/student-dialog.component';\r\nimport { ImportDialogComponent } from './import-dialog/import-dialog.component';\r\nimport { AuthGuard } from 'src/app/theme/utils/auth.guard';\r\n\r\nexport const routes: Routes = [\r\n { path: '', component: StudentsComponent, pathMatch: 'full' ,canActivate: [AuthGuard]}\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule.forChild(routes),\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxPaginationModule,\r\n SharedModule,\r\n PipesModule \r\n ],\r\n declarations: [\r\n StudentsComponent,\r\n StudentDialogComponent,\r\n ImportDialogComponent,\r\n ] \r\n})\r\nexport class StudentsModule { }\r\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.18.5';\nvar current_codepage = 1200, current_ansi = 1252;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t/*::[*/0/*::]*/: 1252, /* ANSI */\n\t/*::[*/1/*::]*/: 65001, /* DEFAULT */\n\t/*::[*/2/*::]*/: 65001, /* SYMBOL */\n\t/*::[*/77/*::]*/: 10000, /* MAC */\n\t/*::[*/128/*::]*/: 932, /* SHIFTJIS */\n\t/*::[*/129/*::]*/: 949, /* HANGUL */\n\t/*::[*/130/*::]*/: 1361, /* JOHAB */\n\t/*::[*/134/*::]*/: 936, /* GB2312 */\n\t/*::[*/136/*::]*/: 950, /* CHINESEBIG5 */\n\t/*::[*/161/*::]*/: 1253, /* GREEK */\n\t/*::[*/162/*::]*/: 1254, /* TURKISH */\n\t/*::[*/163/*::]*/: 1258, /* VIETNAMESE */\n\t/*::[*/177/*::]*/: 1255, /* HEBREW */\n\t/*::[*/178/*::]*/: 1256, /* ARABIC */\n\t/*::[*/186/*::]*/: 1257, /* BALTIC */\n\t/*::[*/204/*::]*/: 1251, /* RUSSIAN */\n\t/*::[*/222/*::]*/: 874, /* THAI */\n\t/*::[*/238/*::]*/: 1250, /* EASTEUROPE */\n\t/*::[*/255/*::]*/: 1252, /* OEM */\n\t/*::[*/69/*::]*/: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array<number>*/ { var o/*:Array<number>*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\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/*:string*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\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/*:string*/)/*:string*/ {\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/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nvar $cptable;\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\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/*:number*/)/*:string*/ {\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/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nexport { set_cptable };\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n input = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\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/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array<string>*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array<number>*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array<number>*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar 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 = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") { throw \"wtf\"; }\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array<string>};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { 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/*:Array<Array<string> >*/ = [\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/*:Array<Array<string> >*/ = [\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 SSF_init_table(t/*:any*/) {\n\tif(!t) 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\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上åˆ/ä¸‹åˆ \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array<number>*/ {\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 SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\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 = SSF_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}\nvar SSFbasedate = /*#__PURE__*/new Date(1899, 11, 31, 0, 0, 0);\nvar SSFdnthresh = /*#__PURE__*/SSFbasedate.getTime();\nvar SSFbase1904 = /*#__PURE__*/new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= SSFbase1904) epoch += 24*60*60*1000;\n\treturn (epoch - (SSFdnthresh + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/SSFbasedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(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}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_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 SSF_format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\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);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\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 pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\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}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\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}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\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/*:Array<string>*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\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/*:Array<string>*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\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/*:string*/)/*:string*/ {\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/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\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/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\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/*:?Array<string>*/, 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<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_flt(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(/*::String(*/r[4]/*::)*/.length,7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", /*::String(*/r[1]/*::)*/, ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + /*::String(*/r[2]/*::)*/ + \"/\" + /*::String(*/r[3]/*::)*/;\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = pad0r(val, 0);\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0?]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\tri = dec(val, r[1].length);\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(flr(val)).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(ri,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,##0.00\": return write_num_flt(type, \"#,##0.00\", val);\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(pad0r(aval,0)); return x !== \"0\" ? sign + x : \"\";\n\t\tcase \"###,###.00\": return write_num_flt(type, \"###,##0.00\",val).replace(/^0\\./,\".\");\n\t\tcase \"#,###.00\": return write_num_flt(type, \"#,##0.00\",val).replace(/^0\\./,\".\");\n\t\tdefault:\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num_cm2(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\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_pct2(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\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_exp2(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\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_exp2(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.match(/[Ee]/)) {\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\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}\nfunction write_num_int(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\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_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/*:?Array<string>*/, 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))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $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<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_int(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(/*::String(*/r[4]/*::)*/.length,7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", /*::String(*/r[1]/*::)*/, ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + /*::String(*/r[2]/*::)*/ + \"/\" + /*::String(*/r[3]/*::)*/;\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = \"\" + val;\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify(\"\"+val).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(0,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(\"\"+aval); return x !== \"0\" ? sign + x : \"\";\n\t\tdefault:\n\t\t\tif(fmt.match(/\\.[0#?]*$/)) return write_num_int(type, fmt.slice(0,fmt.lastIndexOf(\".\")), val) + hashq(fmt.slice(fmt.lastIndexOf(\".\")));\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\treturn (val|0) === val ? write_num_int(type, fmt, val) : write_num_flt(type, fmt, val);\n}\nfunction SSF_split_fmt(fmt/*:string*/)/*:Array<string>*/ {\n\tvar out/*:Array<string>*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\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\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上åˆ/下åˆ\") return true;\n\t\t\t\t++i; 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.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -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}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\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(!SSF_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=SSF_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=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上åˆ/下åˆ\") { if(dt!=null) q.v = dt.H >= 12 ? \"下åˆ\" : \"上åˆ\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(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:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t}\n\t\telse if(decpt !== out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tjj = ostr.indexOf(\".\")-1;\n\t\t\tfor(i=decpt; i>= 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<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t\tjj = ostr.indexOf(\".\")+1;\n\t\t\tfor(i=decpt; i<out.length; ++i) {\n\t\t\t\tif(out[i] == null || ('n?('.indexOf(out[i].t) === -1 && i !== decpt)) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-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<out[i].v.length; ++j) {\n\t\t\t\t\tif(jj<ostr.length) vv += ostr.charAt(jj++);\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}\n\t}\n\tfor(i=0; i<out.length; ++i) if(out[i] != null && 'n?'.indexOf(out[i].t)>-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}\n\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/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_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(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != 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 SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\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/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(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 SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\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}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array<string>*/)/*:string*/ {\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\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array<number>;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array<number>;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array<number>*/ = 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 T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array<number>*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array<number>*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(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) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports = {};\nexports.version = '1.2.1';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\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/*:string*/)/*:string*/ {\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/*:string*/)/*:string*/ {\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/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (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/*:CFBlob*/)/*:Date*/ {\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/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\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/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = {}); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(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/*:Array<number>*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\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)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = 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/*:Array<RawBytes>*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = 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/*:CFBFiles*/ = {}, Paths/*:Array<string>*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\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/*:CFBlob*/)/*:[number, number]*/ {\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/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\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/*:RawBytes*/, ssz/*:number*/)/*:Array<RawBytes>*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array<RawBytes>*/ = [];\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/*:CFBFileIndex*/, FP/*:Array<string>*/, Paths/*:Array<string>*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array<number>*/ = [], q/*:Array<number>*/ = [];\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/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\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)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\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/*:number*/, cnt/*:number*/, sectors/*:Array<RawBytes>*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = 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/*:Array<RawBytes>*/, start/*:number*/, fat_addrs/*:Array<number>*/, ssz/*:number*/, chkd/*:?Array<boolean>*/)/*:SectorEntry*/ {\n\tvar buf/*:Array<number>*/ = [], buf_chain/*:Array<any>*/ = [];\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/*:Array<RawBytes>*/, dir_start/*:number*/, fat_addrs/*:Array<number>*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array<boolean>*/ = [], buf/*:Array<number>*/ = [], buf_chain/*:Array<RawBytes>*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array<number>*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array<RawBytes>*/, Paths/*:Array<string>*/, 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/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\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/*:CFBEntry*/ = ({\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/*:number*/ = 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/*:number*/ = 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)/*:any*/);\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/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\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/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\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 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\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 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\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\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\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 = fullPaths[dad];\n\t\tif(!s) {\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\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/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array<number>*/{\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;\n\t\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\t\tvar 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/*:number*/)/*:void*/ {\n\t\tfor(T += w; i<T-1; ++i) o.write_shift(-4, i+1);\n\t\tif(w) { ++i; o.write_shift(-4, ENDOFCHAIN); }\n\t};\n\tT = i = 0;\n\tfor(T+=L[1]; i<T; ++i) o.write_shift(-4, consts.DIFSECT);\n\tfor(T+=L[2]; i<T; ++i) o.write_shift(-4, consts.FATSECT);\n\tchainit(L[3]);\n\tchainit(L[4]);\n\tvar j/*:number*/ = 0, flen/*:number*/ = 0;\n\tvar file/*:CFBEntry*/ = cfb.FileIndex[0];\n\tfor(; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(flen < 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x01FF) >> 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;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = 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/*:string*/ = (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];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array<string>*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array<string>*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = 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/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = 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/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\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/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : 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<<n)-1);\n\tvar v = buf[h] >>> 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/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\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 < L; ++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}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\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<<cleni)] = (cleni&15) | (i<<4);\n\t\t}\n\t}\n\treturn maxlen;\n}\n\n/* Fixed Huffman */\nvar fix_lmap = use_typed_arrays ? new Uint16Array(512) : zero_fill_array(512);\nvar fix_dmap = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\nif(!use_typed_arrays) {\n\tfor(var i = 0; i < 512; ++i) fix_lmap[i] = 0;\n\tfor(i = 0; i < 32; ++i) fix_dmap[i] = 0;\n}\n(function() {\n\tvar dlens/*:Array<number>*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array<number>*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(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\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\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(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/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\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 = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<<cleni)] = (cleni&7) | (i<<3);\n\t\t}\n\t}\n\n\t/* read literal and dist codes at once */\n\tvar hcodes/*:Array<number>*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 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/*:number*/) {\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(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\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\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\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 + 100); 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\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [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/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\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)/*:: :any)*/);\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\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, 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)/*:: :any)*/);\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; // TODO: scan for magic number\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\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = 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/*::||[]):any)*/, 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: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\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/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n<table class=3DMsoTableGrid border=3D1 cellspacing=3D0 cellpadding=3D0 width=\n=\"70%\"\n```\n*/\nfunction write_quoted_printable(text/*:string*/)/*:string*/ {\n\tvar encoded = text.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF=]/g, function(c) {\n\t\tvar w = c.charCodeAt(0).toString(16).toUpperCase();\n\t\treturn \"=\" + (w.length == 1 ? \"0\" + w : w);\n\t});\n\n\tencoded = encoded.replace(/ $/mg, \"=20\").replace(/\\t$/mg, \"=09\");\n\n\tif(encoded.charAt(0) == \"\\n\") encoded = \"=0D\" + encoded.slice(1);\n\tencoded = encoded.replace(/\\r(?!\\n)/mg, \"=0D\").replace(/\\n\\n/mg, \"\\n=0A\").replace(/([^\\r\\n])\\n/mg, \"$1=0A\");\n\n\tvar o/*:Array<string>*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array<string>*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array<string>*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^(.*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\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/*:string*/ = 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}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\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/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\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/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\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/*:CFBContainer*/)/*:void*/ { 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\nlet _fs = void 0;\nfunction set_fs(fs) { _fs = fs; }\nexport { set_fs };\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/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(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\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(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);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(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) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.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/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.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/*:any*/)/*:Array<any>*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), 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/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), 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/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), 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/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), 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 = /*#__PURE__*/new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = /*#__PURE__*/new Date();\nvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/refdate.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\nvar refoffset = /*#__PURE__*/refdate.getTimezoneOffset();\nfunction numdate(v/*:number*/)/*:Date*/ {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date_1 = /*#__PURE__*/new Date('2017-02-19T19:06:09.000Z');\nvar good_pd_date = /*#__PURE__*/isNaN(/*#__PURE__*/good_pd_date_1.getFullYear()) ? /*#__PURE__*/new Date('2/19/17') : good_pd_date_1;\nvar good_pd = /*#__PURE__*/good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str/*:string|Date*/, fixdate/*:?number*/)/*:Date*/ {\n\tvar d = new Date(str);\n\tif(good_pd) {\n\t\t/*:: if(fixdate == null) fixdate = 0; */\n\t\tif(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/*:Array<number>*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“â€â€¢â€“—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [];\n\tfor(var i = 0; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\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\tvar lower = s.toLowerCase();\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array<string>*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\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\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i<k.length; ++i) {\n\t\tvar n = k[i].replace(/^Root Entry[\\/]/,\"\").toLowerCase();\n\t\tif(f == n || g == n) return zip.files ? zip.files[k[i]] : zip.FileIndex[i];\n\t}\n\treturn null;\n}\n\nfunction getzipfile(zip, file/*:string*/) {\n\tvar o = safegetzipfile(zip, file);\n\tif(o == null) throw new Error(\"Cannot find file \" + file + \" in zip\");\n\treturn o;\n}\n\nfunction getzipdata(zip, file/*:string*/, safe/*:?boolean*/)/*:any*/ {\n\tif(!safe) return getdata(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipdata(zip, file); } catch(e) { return null; }\n}\n\nfunction getzipstr(zip, file/*:string*/, safe/*:?boolean*/)/*:?string*/ {\n\tif(!safe) return getdatastr(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipstr(zip, file); } catch(e) { return null; }\n}\n\nfunction getzipbin(zip, file/*:string*/, safe/*:?boolean*/)/*:any*/ {\n\tif(!safe) return getdatabin(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipbin(zip, file); } catch(e) { return null; }\n}\n\nfunction zipentries(zip) {\n\tvar k = zip.FullPaths || keys(zip.files), o = [];\n\tfor(var i = 0; i < k.length; ++i) if(k[i].slice(-1) != '/') o.push(k[i].replace(/^Root Entry[\\/]/, \"\"));\n\treturn o.sort();\n}\n\nfunction zip_add_file(zip, path, content) {\n\tif(zip.FullPaths) {\n\t\tif(typeof content == \"string\") {\n\t\t\tvar res;\n\t\t\tif(has_buf) res = Buffer_from(content);\n\t\t\t/* TODO: investigate performance in Edge 13 */\n\t\t\t//else if(typeof TextEncoder !== \"undefined\") res = new TextEncoder().encode(content);\n\t\t\telse res = utf8decode(content);\n\t\t\treturn CFB.utils.cfb_add(zip, path, res);\n\t\t}\n\t\tCFB.utils.cfb_add(zip, path, content);\n\t}\n\telse zip.file(path, content);\n}\n\nfunction zip_new() { return CFB.utils.cfb_new(); }\n\nfunction zip_read(d, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": return CFB.read(d, { type: \"base64\" });\n\t\tcase \"binary\": return CFB.read(d, { type: \"binary\" });\n\t\tcase \"buffer\": case \"array\": return CFB.read(d, { type: \"buffer\" });\n\t}\n\tthrow new Error(\"Unrecognized type \" + o.type);\n}\n\nfunction resolve_path(path/*:string*/, base/*:string*/)/*:string*/ {\n\tif(path.charAt(0) == \"/\") return path.slice(1);\n\tvar result = base.split('/');\n\tif(base.slice(-1) != \"/\") result.pop(); // folder path\n\tvar target = path.split('/');\n\twhile (target.length !== 0) {\n\t\tvar step = target.shift();\n\t\tif (step === '..') result.pop();\n\t\telse if (step !== '.') result.push(step);\n\t}\n\treturn result.join('/');\n}\nvar XML_HEADER = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\r\\n';\nvar attregexg=/([^\"\\s?>\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"<![CDATA[\");\n\t\tif(i == -1) return s.replace(encregex, function($$, $1) { return encodings[$$]||String.fromCharCode(parseInt($1,$$.indexOf(\"x\")>-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/*:string*/)/*:string*/{\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/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"<br/>\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\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/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); }\n\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\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\nfunction utf8reada(orig/*:string*/)/*:string*/ {\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\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\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\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array<string>*/ = [], 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\n// matches <foo>...</foo> extracts content\nvar matchtag = /*#__PURE__*/(function() {\n\tvar mtcache/*:{[k:string]:RegExp}*/ = ({}/*:any*/);\n\treturn function matchtag(f/*:string*/,g/*:?string*/)/*:RegExp*/ {\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]*?)</(?:\\\\w+:)?'+f+'>',((g||\"\")/*:any*/)));\n\t};\n})();\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\")\n\t\t\t\t// Replace remaining new lines and spaces with space\n\t\t\t\t.replace(/[\\t\\n\\r ]+/g, \" \")\n\t\t\t\t// Replace <br> tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = /*#__PURE__*/(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]*?)</(?:vt:)?\" + bt + \">\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)</;\nfunction parseVector(data/*:string*/, opts)/*:Array<{v:string,t:string}>*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array<string>*/ = data.match(vtregex(h.baseType))||[];\n\tvar res/*:Array<any>*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f + '>'; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f : \"/\") + '>';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ 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/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?><!\\/:]*:|)([^\\s?<>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\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}/*:any*/);\n\nvar XMLNS_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}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\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/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\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/*:Array<Array<RawBytes> >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i<bufs[0].length;++i) if(bufs[0][i]) for(var j=0,L=bufs[0][i].length;j<L;j+=w) x.push.apply(x, bufs[0][i].slice(j,j+w)); return x; };\nvar __toBuffer = has_buf ? function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array<string>*/=[]; for(var i=s; i<e; i+=2) ss.push(String.fromCharCode(__readUInt16LE(b,i))); return ss.join(\"\").replace(chr0,''); };\nvar __utf16le = has_buf ? function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___utf16le(b,s,e); return b.toString('utf16le',s,e).replace(chr0,'')/*.replace(chr1,'!')*/; } : ___utf16le;\n\nvar ___hexlify = function(b/*:RawBytes|CFBlob*/,s/*:number*/,l/*:number*/)/*:string*/ { var ss/*:Array<string>*/=[]; for(var i=s; i<s+l; ++i) ss.push((\"0\" + b[i].toString(16)).slice(-2)); return ss.join(\"\"); };\nvar __hexlify = has_buf ? function(b/*:RawBytes|CFBlob*/,s/*:number*/,l/*:number*/)/*:string*/ { return Buffer.isBuffer(b)/*:: && b instanceof Buffer*/ ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); } : ___hexlify;\n\nvar ___utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { var ss=[]; for(var i=s; i<e; i++) ss.push(String.fromCharCode(__readUInt8(b,i))); return ss.join(\"\"); };\nvar __utf8 = has_buf ? function utf8_b(b/*:RawBytes|CFBlob*/, s/*:number*/, e/*:number*/) { return (Buffer.isBuffer(b)/*:: && (b instanceof Buffer)*/) ? b.toString('utf8',s,e) : ___utf8(b,s,e); } : ___utf8;\n\nvar ___lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) 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/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) 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/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) 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/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) 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/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { 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/*:RawBytes|CFBlob*/,i/*:number*/) { 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/*:RawBytes|CFBlob*/,i/*:number*/) { 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/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, 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/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { 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/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { 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/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = 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 /*:: if(typeof val === 'number') */ 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/*:string*/, fld/*:string*/)/*:void*/ {\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/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\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/*:RecordHopperCB*/, opts/*:?any*/) {\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 && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array<Block>*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = 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/*:number*/)/*:Block*/ {\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 bconcat(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 }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +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 != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\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/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { 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/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array<string>*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr/*:string*/)/*:CellAddress*/ { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell/*:CellAddress*/)/*:string*/ { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range/*:string*/)/*: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 || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\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/*:Cell*/, v/*:any*/) {\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/*:Cell*/, v/*:any*/, o/*:any*/) {\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(cell.t == \"e\") return BErr[cell.v] || cell.v;\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/*:Worksheet*/, opts)/*:Workbook*/ {\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/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || (dense ? ([]/*:any*/) : ({}/*:any*/));\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/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\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/*:Cell*/ = ({v: data[R][C] }/*:any*/);\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) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\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 || table_fmt[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}/*:any*/));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, 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/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\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 }/*:any*/);\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/*:XLString*/, o/*:?Block*/)/*:Block*/ {\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/*:XLString*/, o/*:?Block*/)/*:Block*/ {\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)/*:any*/ {\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/*:any*/, o/*:?Block*/) {\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/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\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:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\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/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, 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)/*:number*/ {\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\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, 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 /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\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/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = 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// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\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;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\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 = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Category', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'PresentationFormat', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'ByteCount', t: VT_I4 },\n\t/*::[*/0x05/*::]*/: { n: 'LineCount', t: VT_I4 },\n\t/*::[*/0x06/*::]*/: { n: 'ParagraphCount', t: VT_I4 },\n\t/*::[*/0x07/*::]*/: { n: 'SlideCount', t: VT_I4 },\n\t/*::[*/0x08/*::]*/: { n: 'NoteCount', t: VT_I4 },\n\t/*::[*/0x09/*::]*/: { n: 'HiddenCount', t: VT_I4 },\n\t/*::[*/0x0a/*::]*/: { n: 'MultimediaClipCount', t: VT_I4 },\n\t/*::[*/0x0b/*::]*/: { n: 'ScaleCrop', t: VT_BOOL },\n\t/*::[*/0x0c/*::]*/: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t/*::[*/0x0d/*::]*/: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t/*::[*/0x0e/*::]*/: { n: 'Manager', t: VT_STRING },\n\t/*::[*/0x0f/*::]*/: { n: 'Company', t: VT_STRING },\n\t/*::[*/0x10/*::]*/: { n: 'LinksUpToDate', t: VT_BOOL },\n\t/*::[*/0x11/*::]*/: { n: 'CharacterCount', t: VT_I4 },\n\t/*::[*/0x13/*::]*/: { n: 'SharedDoc', t: VT_BOOL },\n\t/*::[*/0x16/*::]*/: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t/*::[*/0x17/*::]*/: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t/*::[*/0x18/*::]*/: { n: 'DigSig', t: VT_BLOB },\n\t/*::[*/0x1A/*::]*/: { n: 'ContentType', t: VT_STRING },\n\t/*::[*/0x1B/*::]*/: { n: 'ContentStatus', t: VT_STRING },\n\t/*::[*/0x1C/*::]*/: { n: 'Language', t: VT_STRING },\n\t/*::[*/0x1D/*::]*/: { n: 'Version', t: VT_STRING },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Title', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'Subject', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'Author', t: VT_STRING },\n\t/*::[*/0x05/*::]*/: { n: 'Keywords', t: VT_STRING },\n\t/*::[*/0x06/*::]*/: { n: 'Comments', t: VT_STRING },\n\t/*::[*/0x07/*::]*/: { n: 'Template', t: VT_STRING },\n\t/*::[*/0x08/*::]*/: { n: 'LastAuthor', t: VT_STRING },\n\t/*::[*/0x09/*::]*/: { n: 'RevNumber', t: VT_STRING },\n\t/*::[*/0x0A/*::]*/: { n: 'EditTime', t: VT_FILETIME },\n\t/*::[*/0x0B/*::]*/: { n: 'LastPrinted', t: VT_FILETIME },\n\t/*::[*/0x0C/*::]*/: { n: 'CreatedDate', t: VT_FILETIME },\n\t/*::[*/0x0D/*::]*/: { n: 'ModifiedDate', t: VT_FILETIME },\n\t/*::[*/0x0E/*::]*/: { n: 'PageCount', t: VT_I4 },\n\t/*::[*/0x0F/*::]*/: { n: 'WordCount', t: VT_I4 },\n\t/*::[*/0x10/*::]*/: { n: 'CharCount', t: VT_I4 },\n\t/*::[*/0x11/*::]*/: { n: 'Thumbnail', t: VT_CF },\n\t/*::[*/0x12/*::]*/: { n: 'Application', t: VT_STRING },\n\t/*::[*/0x13/*::]*/: { n: 'DocSecurity', t: VT_I4 },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t/*::[*/0x0001/*::]*/: \"US\", // United States\n\t/*::[*/0x0002/*::]*/: \"CA\", // Canada\n\t/*::[*/0x0003/*::]*/: \"\", // Latin America (except Brazil)\n\t/*::[*/0x0007/*::]*/: \"RU\", // Russia\n\t/*::[*/0x0014/*::]*/: \"EG\", // Egypt\n\t/*::[*/0x001E/*::]*/: \"GR\", // Greece\n\t/*::[*/0x001F/*::]*/: \"NL\", // Netherlands\n\t/*::[*/0x0020/*::]*/: \"BE\", // Belgium\n\t/*::[*/0x0021/*::]*/: \"FR\", // France\n\t/*::[*/0x0022/*::]*/: \"ES\", // Spain\n\t/*::[*/0x0024/*::]*/: \"HU\", // Hungary\n\t/*::[*/0x0027/*::]*/: \"IT\", // Italy\n\t/*::[*/0x0029/*::]*/: \"CH\", // Switzerland\n\t/*::[*/0x002B/*::]*/: \"AT\", // Austria\n\t/*::[*/0x002C/*::]*/: \"GB\", // United Kingdom\n\t/*::[*/0x002D/*::]*/: \"DK\", // Denmark\n\t/*::[*/0x002E/*::]*/: \"SE\", // Sweden\n\t/*::[*/0x002F/*::]*/: \"NO\", // Norway\n\t/*::[*/0x0030/*::]*/: \"PL\", // Poland\n\t/*::[*/0x0031/*::]*/: \"DE\", // Germany\n\t/*::[*/0x0034/*::]*/: \"MX\", // Mexico\n\t/*::[*/0x0037/*::]*/: \"BR\", // Brazil\n\t/*::[*/0x003d/*::]*/: \"AU\", // Australia\n\t/*::[*/0x0040/*::]*/: \"NZ\", // New Zealand\n\t/*::[*/0x0042/*::]*/: \"TH\", // Thailand\n\t/*::[*/0x0051/*::]*/: \"JP\", // Japan\n\t/*::[*/0x0052/*::]*/: \"KR\", // Korea\n\t/*::[*/0x0054/*::]*/: \"VN\", // Viet Nam\n\t/*::[*/0x0056/*::]*/: \"CN\", // China\n\t/*::[*/0x005A/*::]*/: \"TR\", // Turkey\n\t/*::[*/0x0069/*::]*/: \"JS\", // Ramastan\n\t/*::[*/0x00D5/*::]*/: \"DZ\", // Algeria\n\t/*::[*/0x00D8/*::]*/: \"MA\", // Morocco\n\t/*::[*/0x00DA/*::]*/: \"LY\", // Libya\n\t/*::[*/0x015F/*::]*/: \"PT\", // Portugal\n\t/*::[*/0x0162/*::]*/: \"IS\", // Iceland\n\t/*::[*/0x0166/*::]*/: \"FI\", // Finland\n\t/*::[*/0x01A4/*::]*/: \"CZ\", // Czech Republic\n\t/*::[*/0x0376/*::]*/: \"TW\", // Taiwan\n\t/*::[*/0x03C1/*::]*/: \"LB\", // Lebanon\n\t/*::[*/0x03C2/*::]*/: \"JO\", // Jordan\n\t/*::[*/0x03C3/*::]*/: \"SY\", // Syria\n\t/*::[*/0x03C4/*::]*/: \"IQ\", // Iraq\n\t/*::[*/0x03C5/*::]*/: \"KW\", // Kuwait\n\t/*::[*/0x03C6/*::]*/: \"SA\", // Saudi Arabia\n\t/*::[*/0x03CB/*::]*/: \"AE\", // United Arab Emirates\n\t/*::[*/0x03CC/*::]*/: \"IL\", // Israel\n\t/*::[*/0x03CE/*::]*/: \"QA\", // Qatar\n\t/*::[*/0x03D5/*::]*/: \"IR\", // Iran\n\t/*::[*/0xFFFF/*::]*/: \"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/*:Array<number>*/)/*:Array<[number, number, number]>*/ { 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 = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t/*::[*/0x00/*::]*/: \"#NULL!\",\n\t/*::[*/0x07/*::]*/: \"#DIV/0!\",\n\t/*::[*/0x0F/*::]*/: \"#VALUE!\",\n\t/*::[*/0x17/*::]*/: \"#REF!\",\n\t/*::[*/0x1D/*::]*/: \"#NAME?\",\n\t/*::[*/0x24/*::]*/: \"#NUM!\",\n\t/*::[*/0x2A/*::]*/: \"#N/A\",\n\t/*::[*/0x2B/*::]*/: \"#GETTING_DATA\",\n\t/*::[*/0xFF/*::]*/: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary <SpreadsheetML> */\n/* 14.2 Part Summary <DrawingML> */\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\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\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/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* 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\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\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\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\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};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\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 '<?xml': break;\n\t\t\tcase '<Types': ct.xmlns = y['xmlns' + (y[0].match(/<(\\w+):/)||[\"\",\"\"])[1] ]; break;\n\t\t\tcase '<Default': ctext[y.Extension] = y.ContentType; break;\n\t\t\tcase '<Override':\n\t\t\t\tif(ct[ct2type[y.ContentType]] !== undefined) ct[ct2type[y.ContentType]].push(y.PartName);\n\t\t\t\tbreak;\n\t\t}\n\t});\n\tif(ct.xmlns !== XMLNS.CT) throw new Error(\"Unknown Namespace: \" + ct.xmlns);\n\tct.calcchain = ct.calcchains.length > 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\nfunction write_ct(ct, opts)/*:string*/ {\n\tvar type2ct/*{[string]:Array<string>}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array<string>*/ = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = writextag('Types', null, {\n\t\t'xmlns': XMLNS.CT,\n\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t});\n\n\to = o.concat([\n\t\t['xml', 'application/xml'],\n\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t/* from test files */\n\t\t['bmp', 'image/bmp'],\n\t\t['png', 'image/png'],\n\t\t['gif', 'image/gif'],\n\t\t['emf', 'image/x-emf'],\n\t\t['wmf', 'image/x-wmf'],\n\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t['pdf', 'application/pdf'],\n\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t].map(function(x) {\n\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t}));\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(o.length>2){ o[o.length] = ('</Types>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '<Relationship') {\n\t\t\tvar rel = {}; rel.Type = y.Type; rel.Target = y.Target; rel.Id = y.Id; if(y.TargetMode) rel.TargetMode = y.TargetMode;\n\t\t\tvar canonictarget = y.TargetMode === 'External' ? y.Target : resolve_path(y.Target, currentFilePath);\n\t\t\trels[canonictarget] = rel;\n\t\t\thash[y.Id] = rel;\n\t\t}\n\t});\n\trels[\"!id\"] = hash;\n\treturn rels;\n}\n\n\n/* TODO */\nfunction write_rels(rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('Relationships', null, {\n\t\t//'xmlns:ns0': XMLNS.RELS,\n\t\t'xmlns': XMLNS.RELS\n\t})];\n\tkeys(rels['!id']).forEach(function(rid) {\n\t\to[o.length] = (writextag('Relationship', null, rels['!id'][rid]));\n\t});\n\tif(o.length>2){ o[o.length] = ('</Relationships>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 <manifest:manifest>\n\t\tcase 'file-entry': // 4.3 <manifest:file-entry>\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 <manifest:encryption-data>\n\t\tcase 'algorithm': // 4.5 <manifest:algorithm>\n\t\tcase 'start-key-generation': // 4.6 <manifest:start-key-generation>\n\t\tcase 'key-derivation': // 4.7 <manifest:key-derivation>\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/*:Array<Array<string> >*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to.push('<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\" manifest:version=\"1.2\">\\n');\n\to.push(' <manifest:file-entry manifest:full-path=\"/\" manifest:version=\"1.2\" manifest:media-type=\"application/vnd.oasis.opendocument.spreadsheet\"/>\\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' <manifest:file-entry manifest:full-path=\"' + manifest[i][0] + '\" manifest:media-type=\"' + manifest[i][1] + '\"/>\\n');\n\to.push('</manifest:manifest>');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file/*:string*/, res/*:string*/, tag/*:?string*/) {\n\treturn [\n\t\t' <rdf:Description rdf:about=\"' + file + '\">\\n',\n\t\t' <rdf:type rdf:resource=\"http://docs.oasis-open.org/ns/office/1.2/meta/' + (tag || \"odf\") + '#' + res + '\"/>\\n',\n\t\t' </rdf:Description>\\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base/*:string*/, file/*:string*/) {\n\treturn [\n\t\t' <rdf:Description rdf:about=\"' + base + '\">\\n',\n\t\t' <ns0:hasPart xmlns:ns0=\"http://docs.oasis-open.org/ns/office/1.2/meta/pkg#\" rdf:resource=\"' + file + '\"/>\\n',\n\t\t' </rdf:Description>\\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\\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('</rdf:RDF>');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nfunction write_meta_ods(/*:: wb: Workbook, opts: any*/)/*:string*/ {\n\treturn '<office:document-meta xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\" xmlns:meta=\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" office:version=\"1.2\"><office:meta><meta:generator>Sheet' + 'JS ' + XLSX.version + '</meta:generator></office:meta></office:document-meta>';\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/*:Array<Array<string> >*/ = [\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\nvar CORE_PROPS_REGEX/*:Array<RegExp>*/ = /*#__PURE__*/(function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], 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] = ('</cp:coreProperties>'); 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/*:Array<Array<string> >*/ = [\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\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array<Array<any>>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"ЛиÑÑ‚Ñ‹\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"×’×œ×™×•× ×•×ª עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"åå‰ä»˜ã一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne omrÃ¥der\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', '<vt:lpstr>Worksheets</vt:lpstr>')+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 \"<vt:lpstr>\" + escapexml(s) + \"</vt:lpstr>\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = ('</Properties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, 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 '<?xml': break;\n\t\t\tcase '<Properties': break;\n\t\t\tcase '<property': name = unescapexml(y.name); break;\n\t\t\tcase '</property>': name = null; break;\n\t\t\tdefault: if (x.indexOf('<vt:') === 0) {\n\t\t\t\tvar toks = x.split('>');\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) === \"</\") {/* empty */\n\t\t\t} else if(opts.WTF) throw new Error(x);\n\t\t}\n\t}\n\treturn p;\n}\n\nfunction write_cust_props(cp/*::, opts*/)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('Properties', null, {\n\t\t'xmlns': XMLNS.CUST_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t})];\n\tif(!cp) return o.join(\"\");\n\tvar pid = 1;\n\tkeys(cp).forEach(function custprop(k) { ++pid;\n\t\to[o.length] = (writextag('property', write_vt(cp[k], true), {\n\t\t\t'fmtid': '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}',\n\t\t\t'pid': pid,\n\t\t\t'name': escapexml(k)\n\t\t}));\n\t});\n\tif(o.length>2){ o[o.length] = '</Properties>'; 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;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array<string>*/ = [];\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/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array<string>*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '</' + T + '>';\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/*:string|Date*/) {\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/*:?number*/) {\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/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array<string>*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array<string>*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array<string>*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array<string>*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\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-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/*:{[number]:string}*/ = ({}/*:any*/);\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/*:number*/, _opts)/*:any*/ {\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 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) 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_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, 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*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = 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/*:{[number]:string}*/ = ({}/*:any*/);\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)/*:number*/);\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/*:any*/)/*:number*/ {\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 || PseudoPropsPairs.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\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar 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 ({}/*:any*/);\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 }/*:any*/);\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/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\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<n; ++j) o.write_shift(1, 0); return o; }\n\nfunction parslurp(blob, length, cb) {\n\tvar arr = [], target = blob.l + length;\n\twhile(blob.l < target) arr.push(cb(blob, target - blob.l));\n\tif(target !== blob.l) throw new Error(\"Slurp error\");\n\treturn arr;\n}\n\nfunction parsebool(blob, length/*:number*/) { return blob.read_shift(length) === 0x1; }\nfunction writebool(v/*:any*/, o) { if(!o) o=new_buf(2); o.write_shift(2, +!!v); return o; }\n\nfunction parseuint16(blob/*::, length:?number, opts:?any*/) { return blob.read_shift(2, 'u'); }\nfunction writeuint16(v/*:number*/, o) { if(!o) o=new_buf(2); o.write_shift(2, v); return o; }\nfunction parseuint16a(blob, length/*:: :?number, opts:?any*/) { return parslurp(blob,length,parseuint16);}\n\n/* --- 2.5 Structures --- */\n\n/* [MS-XLS] 2.5.10 Bes (boolean or error) */\nfunction parse_Bes(blob/*::, length*/) {\n\tvar v = blob.read_shift(1), t = blob.read_shift(1);\n\treturn t === 0x01 ? v : v === 0x01;\n}\nfunction write_Bes(v, t/*:string*/, o) {\n\tif(!o) o = new_buf(2);\n\to.write_shift(1, ((t == 'e') ? +v : +!!v));\n\to.write_shift(1, ((t == 'e') ? 1 : 0));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.240 ShortXLUnicodeString */\nfunction parse_ShortXLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff >= 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 = \"<t>\" + z.t + \"</t>\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\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/*::, length, opts*/) {\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/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\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 preamble + 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 preamble + 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/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\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\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\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\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -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\twrite_HyperlinkString(Target, out);\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\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\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 - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 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/*::, length*/) { 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/*::, length*/)/*:Cell*/ {\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}/*:any*/);\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, 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/*::, length*/) {\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/*:Range*/, 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/*::, length*/) {\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/*::, length*/) {\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 = {\n\t/*::[*/0x00/*::]*/: parse_FtSkip, /* FtEnd */\n\t/*::[*/0x04/*::]*/: parse_FtSkip, /* FtMacro */\n\t/*::[*/0x05/*::]*/: parse_FtSkip, /* FtButton */\n\t/*::[*/0x06/*::]*/: parse_FtSkip, /* FtGmo */\n\t/*::[*/0x07/*::]*/: parse_FtCf, /* FtCf */\n\t/*::[*/0x08/*::]*/: parse_FtSkip, /* FtPioGrbit */\n\t/*::[*/0x09/*::]*/: parse_FtSkip, /* FtPictFmla */\n\t/*::[*/0x0A/*::]*/: parse_FtSkip, /* FtCbls */\n\t/*::[*/0x0B/*::]*/: parse_FtSkip, /* FtRbo */\n\t/*::[*/0x0C/*::]*/: parse_FtSkip, /* FtSbs */\n\t/*::[*/0x0D/*::]*/: parse_FtNts, /* FtNts */\n\t/*::[*/0x0E/*::]*/: parse_FtSkip, /* FtSbsFmla */\n\t/*::[*/0x0F/*::]*/: parse_FtSkip, /* FtGboData */\n\t/*::[*/0x10/*::]*/: parse_FtSkip, /* FtEdoData */\n\t/*::[*/0x11/*::]*/: parse_FtSkip, /* FtRboData */\n\t/*::[*/0x12/*::]*/: parse_FtSkip, /* FtCblsData */\n\t/*::[*/0x13/*::]*/: parse_FtSkip, /* FtLbsData */\n\t/*::[*/0x14/*::]*/: parse_FtSkip, /* FtCblsFmla */\n\t/*::[*/0x15/*::]*/: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\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/*:Workbook*/, t/*:number*/, 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/*:string*/, 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, fBelow: flags & 0x40, fRight: flags & 0x80 };\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)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\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(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\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/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, 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/*:number*/, f/*:string*/, 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\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\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/*:Array<number>*/) {\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 || length == 9) ++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/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\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, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\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/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\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}/*:any*/);\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\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\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)/*:Array<Range>*/ {\n\tvar merges/*:Array<Range>*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array<Range>*/) {\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 = {\n0x08: 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};\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); // eslint-disable-line no-unused-vars\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)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\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\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\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/*::, length*/) {\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/*:number*/, c/*:number*/, val/*:number*/) {\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/*:number*/, c/*:number*/, val/*:number*/) {\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_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\n\t/* shapefile DBF extension */\n\t/*::[*/0x00/*::]*/: 20127, /*::[*/0x08/*::]*/: 865,\n\t/*::[*/0x09/*::]*/: 437, /*::[*/0x0A/*::]*/: 850,\n\t/*::[*/0x0B/*::]*/: 437, /*::[*/0x0D/*::]*/: 437,\n\t/*::[*/0x0E/*::]*/: 850, /*::[*/0x0F/*::]*/: 437,\n\t/*::[*/0x10/*::]*/: 850, /*::[*/0x11/*::]*/: 437,\n\t/*::[*/0x12/*::]*/: 850, /*::[*/0x13/*::]*/: 932,\n\t/*::[*/0x14/*::]*/: 850, /*::[*/0x15/*::]*/: 437,\n\t/*::[*/0x16/*::]*/: 850, /*::[*/0x17/*::]*/: 865,\n\t/*::[*/0x18/*::]*/: 437, /*::[*/0x19/*::]*/: 437,\n\t/*::[*/0x1A/*::]*/: 850, /*::[*/0x1B/*::]*/: 437,\n\t/*::[*/0x1C/*::]*/: 863, /*::[*/0x1D/*::]*/: 850,\n\t/*::[*/0x1F/*::]*/: 852, /*::[*/0x22/*::]*/: 852,\n\t/*::[*/0x23/*::]*/: 852, /*::[*/0x24/*::]*/: 860,\n\t/*::[*/0x25/*::]*/: 850, /*::[*/0x26/*::]*/: 866,\n\t/*::[*/0x37/*::]*/: 850, /*::[*/0x40/*::]*/: 852,\n\t/*::[*/0x4D/*::]*/: 936, /*::[*/0x4E/*::]*/: 949,\n\t/*::[*/0x4F/*::]*/: 950, /*::[*/0x50/*::]*/: 874,\n\t/*::[*/0x57/*::]*/: 1252, /*::[*/0x58/*::]*/: 1252,\n\t/*::[*/0x59/*::]*/: 1252, /*::[*/0x6C/*::]*/: 863,\n\t/*::[*/0x86/*::]*/: 737, /*::[*/0x87/*::]*/: 852,\n\t/*::[*/0x88/*::]*/: 857, /*::[*/0xCC/*::]*/: 1257,\n\n\t/*::[*/0xFF/*::]*/: 16969\n};\nvar dbf_reverse_map = evert({\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\t/*::[*/0x00/*::]*/: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\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\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array<DBFField>*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\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': // Double (VFP) / Binary (dBASE L7)\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 (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\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) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\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\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\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.trim().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 '?': break;\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':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\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 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); 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\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\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/*:Worksheet*/, opts/*:WriteOpts*/) {\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/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[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/*:Array<string>*/ = [];\n\tvar colwidths/*:Array<number>*/ = [];\n\tvar coldecimals/*:Array<number>*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array<any>*/ = [];\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\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\tmaxlen = Math.max(maxlen, String(col[j]).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\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[/*::String(*/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, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 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 += (colwidths[i] || _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<headers.length; ++j) {\n\t\t\tif(headers[j] == null) continue;\n\t\t\tswitch(coltypes[j]) {\n\t\t\t\tcase 'L': rout.write_shift(1, data[i][j] == null ? 0x3F : data[i][j] ? 0x54 : 0x46); break;\n\t\t\t\tcase 'B': rout.write_shift(8, data[i][j]||0, 'f'); break;\n\t\t\t\tcase 'N':\n\t\t\t\t\tvar _n = \"0\";\n\t\t\t\t\tif(typeof data[i][j] == \"number\") _n = data[i][j].toFixed(coldecimals[j]||0);\n\t\t\t\t\tfor(hcnt=0; hcnt < colwidths[j]-_n.length; ++hcnt) rout.write_shift(1, 0x20);\n\t\t\t\t\trout.write_shift(1, _n, \"sbcs\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(!data[i][j]) rout.write_shift(8, \"00000000\", \"sbcs\");\n\t\t\t\t\telse {\n\t\t\t\t\t\trout.write_shift(4, (\"0000\"+data[i][j].getFullYear()).slice(-4), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+(data[i][j].getMonth()+1)).slice(-2), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+data[i][j].getDate()).slice(-2), \"sbcs\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C':\n\t\t\t\t\tvar _s = String(data[i][j] != null ? data[i][j] : \"\").slice(0, colwidths[j]);\n\t\t\t\t\trout.write_shift(1, _s, \"sbcs\");\n\t\t\t\t\tfor(hcnt=0; hcnt < colwidths[j]-_s.length; ++hcnt) rout.write_shift(1, 0x20); break;\n\t\t\t}\n\t\t}\n\t\t// data\n\t}\n\tba.next(1).write_shift(1, 0x1A);\n\treturn ba.end();\n}\n\treturn {\n\t\tto_workbook: dbf_to_workbook,\n\t\tto_sheet: dbf_to_sheet,\n\t\tfrom_sheet: sheet_to_dbf\n\t};\n})();\n\nvar SYLK = /*#__PURE__*/(function() {\n\t/* TODO: stress test sequences */\n\tvar sylk_escapes = ({\n\t\tAA:'À', BA:'Ã', CA:'Â', DA:195, HA:'Ä', JA:197,\n\t\tAE:'È', BE:'É', CE:'Ê', HE:'Ë',\n\t\tAI:'ÃŒ', BI:'Ã', CI:'ÃŽ', HI:'Ã',\n\t\tAO:'Ã’', BO:'Ó', CO:'Ô', DO:213, HO:'Ö',\n\t\tAU:'Ù', BU:'Ú', CU:'Û', HU:'Ãœ',\n\t\tAa:'à ', Ba:'á', Ca:'â', Da:227, Ha:'ä', Ja:229,\n\t\tAe:'è', Be:'é', Ce:'ê', He:'ë',\n\t\tAi:'ì', Bi:'Ã', Ci:'î', Hi:'ï',\n\t\tAo:'ò', Bo:'ó', Co:'ô', Do:245, Ho:'ö',\n\t\tAu:'ù', Bu:'ú', Cu:'û', Hu:'ü',\n\t\tKC:'Ç', Kc:'ç', q:'æ', z:'Å“', a:'Æ', j:'Å’',\n\t\tDN:209, Dn:241, Hy:255,\n\t\tS:169, c:170, R:174, \"B \":180,\n\t\t/*::[*/0/*::]*/:176, /*::[*/1/*::]*/:177, /*::[*/2/*::]*/:178,\n\t\t/*::[*/3/*::]*/:179, /*::[*/5/*::]*/:181, /*::[*/6/*::]*/:182,\n\t\t/*::[*/7/*::]*/:183, Q:185, k:186, b:208, i:216, l:222, s:240, y:248,\n\t\t\"!\":161, '\"':162, \"#\":163, \"(\":164, \"%\":165, \"'\":167, \"H \":168,\n\t\t\"+\":171, \";\":187, \"<\":188, \"=\":189, \">\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\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/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\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(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), 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/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array<string>*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array<RowInfo>*/ = [], colinfo/*:Array<ColInfo>*/ = [], cw/*:Array<string>*/ = [];\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 'W': break; /* window? */\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, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'A': break; // TODO: comment\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1))-1; C_seen_X = true; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1; if(!C_seen_X) C = 0;\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'K':\n\t\t\t\t\tval = record[rj].slice(1);\n\t\t\t\t\tif(val.charAt(0) === '\"') val = val.slice(1,val.length - 1);\n\t\t\t\t\telse if(val === 'TRUE') val = true;\n\t\t\t\t\telse if(val === 'FALSE') val = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(val))) {\n\t\t\t\t\t\tval = fuzzynum(val);\n\t\t\t\t\t\tif(next_cell_format !== null && fmt_is_date(next_cell_format)) val = numdate(val);\n\t\t\t\t\t} else if(!isNaN(fuzzydate(val).getDate())) {\n\t\t\t\t\t\tval = parseDate(val);\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof $cptable !== 'undefined' && typeof val == \"string\" && ((opts||{}).type != \"string\") && (opts||{}).codepage) val = $cptable.utils.decode(opts.codepage, val);\n\t\t\t\t\tC_seen_K = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'E':\n\t\t\t\t\tC_seen_E = true;\n\t\t\t\t\tvar formula = rc_to_a1(record[rj].slice(1), {r:R,c:C});\n\t\t\t\t\tarr[R][C] = [arr[R][C], formula];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'S':\n\t\t\t\t\tC_seen_S = true;\n\t\t\t\t\tarr[R][C] = [arr[R][C], \"S5S\"];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'G': break; // unknown\n\t\t\t\tcase 'R': _R = parseInt(record[rj].slice(1))-1; break;\n\t\t\t\tcase 'C': _C = parseInt(record[rj].slice(1))-1; break;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(C_seen_K) {\n\t\t\t\tif(arr[R][C] && arr[R][C].length == 2) arr[R][C][0] = val;\n\t\t\t\telse arr[R][C] = val;\n\t\t\t\tnext_cell_format = null;\n\t\t\t}\n\t\t\tif(C_seen_S) {\n\t\t\t\tif(C_seen_E) throw new Error(\"SYLK shared formula cannot have own formula\");\n\t\t\t\tvar shrbase = _R > -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tarr[R][C][1] = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1))-1; ++F_seen; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1; /*C = 0;*/\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'M': Mval = parseInt(record[rj].slice(1)) / 20; break;\n\t\t\t\tcase 'F': break; /* ??? */\n\t\t\t\tcase 'G': break; /* hide grid */\n\t\t\t\tcase 'P':\n\t\t\t\t\tnext_cell_format = formats[parseInt(record[rj].slice(1))];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'S': break; /* cell style */\n\t\t\t\tcase 'D': break; /* column */\n\t\t\t\tcase 'N': break; /* font */\n\t\t\t\tcase 'W':\n\t\t\t\t\tcw = record[rj].slice(1).split(\" \");\n\t\t\t\t\tfor(j = parseInt(cw[0], 10); j <= parseInt(cw[1], 10); ++j) {\n\t\t\t\t\t\tMval = parseInt(cw[2], 10);\n\t\t\t\t\t\tcolinfo[j-1] = Mval === 0 ? {hidden:true}: {wch:Mval}; process_col(colinfo[j-1]);\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C': /* default column format */\n\t\t\t\t\tC = parseInt(record[rj].slice(1))-1;\n\t\t\t\t\tif(!colinfo[C]) colinfo[C] = {};\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'R': /* row properties */\n\t\t\t\t\tR = parseInt(record[rj].slice(1))-1;\n\t\t\t\t\tif(!rowinfo[R]) rowinfo[R] = {};\n\t\t\t\t\tif(Mval > 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/*:RawData*/, opts)/*:Worksheet*/ {\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/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*//*::, opts*/)/*:string*/ {\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,\"\").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) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) 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/*:Array<string>*/, rows/*:Array<RowInfo>*/) {\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/*:Worksheet*/, opts/*:?any*/)/*:string*/ {\n\t\tvar preamble/*:Array<string>*/ = [\"ID;PWXL;N;E\"], o/*:Array<string>*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*: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 = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\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(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), 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/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\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] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.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\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -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/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = /*#__PURE__*/(function() {\n\t\tvar push_field = function pf(o/*:Array<string>*/, topic/*:string*/, v/*:number*/, n/*:number*/, s/*:string*/) {\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/*:Array<string>*/, type/*:number*/, v/*:any*/, s/*:string*/) {\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/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\t\tvar o/*:Array<string>*/ = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell/*: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 || table_fmt[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 = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\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/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { 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/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array<string>*/ = [], oo/*:Array<string>*/ = [], 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 || table_fmt[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/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\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 = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\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/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\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 = {\n\t\t/*::[*/0x2C/*::]*/: ',',\n\t\t/*::[*/0x09/*::]*/: \"\\t\",\n\t\t/*::[*/0x3B/*::]*/: ';',\n\t\t/*::[*/0x7C/*::]*/: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t/*::[*/0x2C/*::]*/: 3,\n\t\t/*::[*/0x09/*::]*/: 2,\n\t\t/*::[*/0x3B/*::]*/: 1,\n\t\t/*::[*/0x7C/*::]*/: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\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, startcc=str.charCodeAt(0);\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re/*:?RegExp*/ = 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 = ({}/*:any*/);\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 || table_fmt[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; startcc = str.charCodeAt(start);\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: if(startcc === 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/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\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'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\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 != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,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/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array<string>*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*: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/*:Array<string>*/ = [];\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_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\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[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, 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)/*:Workbook*/ {\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/*:Worksheet*/ = ((o.dense ? [] : {})/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [];\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] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\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 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\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\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 || table_fmt[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\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (s[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tbreak;\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\tdefault:\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\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\tsnames.push(n);\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}\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\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = Array.isArray(ws);\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell.v));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell.v));\n\t\t\t\t} else {\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 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\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\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\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\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\tfunction write_INTEGER(R, C, v) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, v, '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\tfunction write_NUMBER(R, C, v) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, v, '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\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t0x6F: [\"T\", 1]\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\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\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\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\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\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 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; 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}\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) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\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: WK3 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\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"CALCMODE\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCORDER\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"SPLIT\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SYNC\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"RANGE\", f:parse_RANGE },\n\t\t/*::[*/0x0007/*::]*/: { n:\"WINDOW1\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"COLW1\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"WINTWO\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"COLW2\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"NAME\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"BLANK\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t/*::[*/0x000E/*::]*/: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t/*::[*/0x000F/*::]*/: { n:\"LABEL\", f:parse_LABEL },\n\t\t/*::[*/0x0010/*::]*/: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t/*::[*/0x0018/*::]*/: { n:\"TABLE\" },\n\t\t/*::[*/0x0019/*::]*/: { n:\"ORANGE\" },\n\t\t/*::[*/0x001A/*::]*/: { n:\"PRANGE\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"SRANGE\" },\n\t\t/*::[*/0x001C/*::]*/: { n:\"FRANGE\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"KRANGE1\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"HRANGE\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"KRANGE2\" },\n\t\t/*::[*/0x0024/*::]*/: { n:\"PROTEC\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"FOOTER\" },\n\t\t/*::[*/0x0026/*::]*/: { n:\"HEADER\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"SETUP\" },\n\t\t/*::[*/0x0028/*::]*/: { n:\"MARGINS\" },\n\t\t/*::[*/0x0029/*::]*/: { n:\"LABELFMT\" },\n\t\t/*::[*/0x002A/*::]*/: { n:\"TITLES\" },\n\t\t/*::[*/0x002B/*::]*/: { n:\"SHEETJS\" },\n\t\t/*::[*/0x002D/*::]*/: { n:\"GRAPH\" },\n\t\t/*::[*/0x002E/*::]*/: { n:\"NGRAPH\" },\n\t\t/*::[*/0x002F/*::]*/: { n:\"CALCCOUNT\" },\n\t\t/*::[*/0x0030/*::]*/: { n:\"UNFORMATTED\" },\n\t\t/*::[*/0x0031/*::]*/: { n:\"CURSORW12\" },\n\t\t/*::[*/0x0032/*::]*/: { n:\"WINDOW\" },\n\t\t/*::[*/0x0033/*::]*/: { n:\"STRING\", f:parse_LABEL },\n\t\t/*::[*/0x0037/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0038/*::]*/: { n:\"LOCKED\" },\n\t\t/*::[*/0x003C/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x003D/*::]*/: { n:\"QUERYNAME\" },\n\t\t/*::[*/0x003E/*::]*/: { n:\"PRINT\" },\n\t\t/*::[*/0x003F/*::]*/: { n:\"PRINTNAME\" },\n\t\t/*::[*/0x0040/*::]*/: { n:\"GRAPH2\" },\n\t\t/*::[*/0x0041/*::]*/: { n:\"GRAPHNAME\" },\n\t\t/*::[*/0x0042/*::]*/: { n:\"ZOOM\" },\n\t\t/*::[*/0x0043/*::]*/: { n:\"SYMSPLIT\" },\n\t\t/*::[*/0x0044/*::]*/: { n:\"NSROWS\" },\n\t\t/*::[*/0x0045/*::]*/: { n:\"NSCOLS\" },\n\t\t/*::[*/0x0046/*::]*/: { n:\"RULER\" },\n\t\t/*::[*/0x0047/*::]*/: { n:\"NNAME\" },\n\t\t/*::[*/0x0048/*::]*/: { n:\"ACOMM\" },\n\t\t/*::[*/0x0049/*::]*/: { n:\"AMACRO\" },\n\t\t/*::[*/0x004A/*::]*/: { n:\"PARSE\" },\n\t\t/*::[*/0x0066/*::]*/: { n:\"PRANGES??\" },\n\t\t/*::[*/0x0067/*::]*/: { n:\"RRANGES??\" },\n\t\t/*::[*/0x0068/*::]*/: { n:\"FNAME??\" },\n\t\t/*::[*/0x0069/*::]*/: { n:\"MRANGES??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00DE/*::]*/: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\" },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCSET\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"WINDOWSET\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SHEETCELLPTR\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"SHEETLAYOUT\" },\n\t\t/*::[*/0x0007/*::]*/: { n:\"COLUMNWIDTH\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"HIDDENCOLUMN\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"USERRANGE\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"SYSTEMRANGE\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"ZEROFORCE\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"SORTKEYDIR\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"FILESEAL\" },\n\t\t/*::[*/0x000E/*::]*/: { n:\"DATAFILLNUMS\" },\n\t\t/*::[*/0x000F/*::]*/: { n:\"PRINTMAIN\" },\n\t\t/*::[*/0x0010/*::]*/: { n:\"PRINTSTRING\" },\n\t\t/*::[*/0x0011/*::]*/: { n:\"GRAPHMAIN\" },\n\t\t/*::[*/0x0012/*::]*/: { n:\"GRAPHSTRING\" },\n\t\t/*::[*/0x0013/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0014/*::]*/: { n:\"ERRCELL\" },\n\t\t/*::[*/0x0015/*::]*/: { n:\"NACELL\" },\n\t\t/*::[*/0x0016/*::]*/: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t/*::[*/0x0017/*::]*/: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t/*::[*/0x0018/*::]*/: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t/*::[*/0x0019/*::]*/: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t/*::[*/0x001A/*::]*/: { n:\"FORMULA1A\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t/*::[*/0x001C/*::]*/: { n:\"DTLABELMISC\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"DTLABELCELL\" },\n\t\t/*::[*/0x001E/*::]*/: { n:\"GRAPHWINDOW\" },\n\t\t/*::[*/0x001F/*::]*/: { n:\"CPA\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"LPLAUTO\" },\n\t\t/*::[*/0x0021/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x0022/*::]*/: { n:\"HIDDENSHEET\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t/*::[*/0x0026/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t/*::[*/0x0028/*::]*/: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t/*::[*/0x008E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0093/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0096/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0097/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0098/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0099/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00A3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B1/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B8/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BA/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BB/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BC/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00CD/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00D0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0100/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0103/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0104/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0105/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0106/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0107/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0109/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010F/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0180/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0185/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0186/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0189/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x018C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0200/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0202/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0201/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0204/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0205/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0280/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0281/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0282/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0283/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0284/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0285/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0286/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0287/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0288/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0292/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0293/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0294/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0295/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0296/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0299/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x029A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0300/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0304/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0601/*::]*/: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t/*::[*/0x0640/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0642/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0701/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0702/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0703/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0704/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0780/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0800/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0801/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0804/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0A80/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x2AF6/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x3231/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6E49/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6F44/*::]*/: { n:\"??\" },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<condense': break;\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<extend': break;\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<shadow':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<shadow>':\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\t\t\tcase '</shadow>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\tfont.cp = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty TODO */\n\t\t\tcase '<outline':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<outline>':\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\t\t\tcase '</outline>': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '<rFont': font.name = y.val; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': font.sz = y.val; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<strike>':\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\t\t\tcase '</strike>': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tif(!y.val) break;\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase 'double': font.uval = \"double\"; break;\n\t\t\t\t\tcase 'singleAccounting': font.uval = \"single-accounting\"; break;\n\t\t\t\t\tcase 'doubleAccounting': font.uval = \"double-accounting\"; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '<u>':\n\t\t\tcase '<u/>': font.u = 1; break;\n\t\t\tcase '</u>': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '<b':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<b>':\n\t\t\tcase '<b/>': font.b = 1; break;\n\t\t\tcase '</b>': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '<i':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<i>':\n\t\t\tcase '<i/>': font.i = 1; break;\n\t\t\tcase '</i>': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '<color':\n\t\t\t\tif(y.rgb) font.color = y.rgb.slice(2,8);\n\t\t\t\tbreak;\n\t\t\tcase '<color>': case '<color/>': case '</color>': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '<family': font.family = y.val; break;\n\t\t\tcase '<family>': case '<family/>': case '</family>': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '<vertAlign': font.valign = y.val; break;\n\t\t\tcase '<vertAlign>': case '<vertAlign/>': case '</vertAlign>': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '<scheme': break;\n\t\t\tcase '<scheme>': case '<scheme/>': case '</scheme>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of <r> tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array<string>*/ = [];\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('<span style=\"' + style.join(\"\") + '\">');\n\n\t\tif(font.b) { intro.push(\"<b>\"); outro.push(\"</b>\"); }\n\t\tif(font.i) { intro.push(\"<i>\"); outro.push(\"</i>\"); }\n\t\tif(font.strike) { intro.push(\"<s>\"); outro.push(\"</s>\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"</\" + align + \">\"); }\n\n\t\toutro.push(\"</span>\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array<string>, string, Array<string>]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'<br/>') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), 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\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\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/*:XLString*/ = sst[i];\n\t\tvar sitag = \"<si>\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"<t\";\n\t\t\tif(!s.t) s.t = \"\";\n\t\t\tif(s.t.match(straywsregex)) sitag += ' xml:space=\"preserve\"';\n\t\t\tsitag += \">\" + escapexml(s.t) + \"</t>\";\n\t\t}\n\t\tsitag += \"</si>\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = ('</sst>'); 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)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, 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.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\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/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array<number>*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array<number>*/ = [], 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/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(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/*:Array<{t:number, v:string}>*/ = [];\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)/*:Array<string>*/ {\n\tvar o/*:Array<string>*/ = [];\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/*:number*/) {\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/*:number*/) {\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/*::, vers*/) {\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(/*::blob, vers*/) { 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/*::, vers*/) {\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/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<encryption': case '</encryption>': break;\n\t\t\tcase '<keyData': KeyData.forEach(function(k) { o[k] = y[k]; }); break;\n\t\t\tcase '<dataIntegrity': o.encryptedHmacKey = y.encryptedHmacKey; o.encryptedHmacValue = y.encryptedHmacValue; break;\n\t\t\tcase '<keyEncryptors>': case '<keyEncryptors': o.encs = []; break;\n\t\t\tcase '</keyEncryptors>': break;\n\n\t\t\tcase '<keyEncryptor': o.uri = y.uri; break;\n\t\t\tcase '</keyEncryptor>': break;\n\t\t\tcase '<encryptedKey': o.encs.push(y); break;\n\t\t\tdefault: throw y[0];\n\t\t}\n\t});\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.5.1 RC4 CryptoAPI Encryption Header */\nfunction parse_RC4CryptoHeader(blob, length/*:number*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4); length -= 4;\n\tif(vers.Minor != 2) throw new Error('unrecognized minor version code: ' + vers.Minor);\n\tif(vers.Major > 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/*::, length*/) {\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/*:string*/) {\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 = /*#__PURE__*/(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/*:string*/) {\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/*:string*/, 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/*:string*/) {\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) }/*:any*/);\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/*:number*/, 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/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* 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 = /*#__PURE__*/(function() {\n\tfunction rtf_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\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(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), 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\t/* TODO: this is a stub */\n\tfunction rtf_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\n\t\tvar rows = str.match(/\\\\trowd.*?\\\\row\\b/g);\n\t\tif(!rows.length) throw new Error(\"RTF missing table\");\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:rows.length - 1}}/*:any*/);\n\t\trows.forEach(function(rowtf, R) {\n\t\t\tif(Array.isArray(ws)) ws[R] = [];\n\t\t\tvar rtfre = /\\\\\\w+\\b/g;\n\t\t\tvar last_index = 0;\n\t\t\tvar res;\n\t\t\tvar C = -1;\n\t\t\twhile((res = rtfre.exec(rowtf))) {\n\t\t\t\tswitch(res[0]) {\n\t\t\t\t\tcase \"\\\\cell\":\n\t\t\t\t\t\tvar data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n\t\t\t\t\t\tif(data[0] == \" \") data = data.slice(1);\n\t\t\t\t\t\t++C;\n\t\t\t\t\t\tif(data.length) {\n\t\t\t\t\t\t\t// TODO: value parsing, including codepage adjustments\n\t\t\t\t\t\t\tvar cell = {v: data, t:\"s\"};\n\t\t\t\t\t\t\tif(Array.isArray(ws)) ws[R][C] = cell;\n\t\t\t\t\t\t\telse ws[encode_cell({r:R, c:C})] = cell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tlast_index = rtfre.lastIndex;\n\t\t\t}\n\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t});\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws/*:Worksheet*//*::, opts*/)/*:string*/ {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*: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<MAX_MDW; ++MDW) if(Math.abs(collw - cycle_width(collw)) <= delta) { delta = Math.abs(collw - cycle_width(collw)); _MDW = MDW; }\n\tMDW = _MDW;\n}\n/* XLML specifies width in terms of pixels */\n/*function find_mdw_wpx(wpx) {\n\tvar delta = Infinity, guess = 0, _MDW = MIN_MDW;\n\tfor(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) {\n\t\tguess = char2width_(px2char_(wpx))*256;\n\t\tguess = (guess) % 1;\n\t\tif(guess > 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/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<borders': case '<borders>': case '</borders>': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '<border': case '<border>': case '<border/>':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '</border>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<left/>': break;\n\t\t\tcase '<left': case '<left>': break;\n\t\t\tcase '</left>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<right/>': break;\n\t\t\tcase '<right': case '<right>': break;\n\t\t\tcase '</right>': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '<top/>': break;\n\t\t\tcase '<top': case '<top>': break;\n\t\t\tcase '</top>': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '<bottom/>': break;\n\t\t\tcase '<bottom': case '<bottom>': break;\n\t\t\tcase '</bottom>': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '<diagonal': case '<diagonal>': case '<diagonal/>': break;\n\t\t\tcase '</diagonal>': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '<horizontal': case '<horizontal>': case '<horizontal/>': break;\n\t\t\tcase '</horizontal>': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '<vertical': case '<vertical>': case '<vertical/>': break;\n\t\t\tcase '</vertical>': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '<start': case '<start>': case '<start/>': break;\n\t\t\tcase '</start>': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '<end': case '<end>': case '<end/>': break;\n\t\t\tcase '</end>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color>':\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fills': case '<fills>': case '</fills>': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '<fill>': case '<fill': case '<fill/>':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '</fill>': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '<gradientFill>': break;\n\t\t\tcase '<gradientFill':\n\t\t\tcase '</gradientFill>': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '<patternFill': case '<patternFill>':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '<patternFill/>': case '</patternFill>': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '<bgColor':\n\t\t\t\tif(!fill.bgColor) fill.bgColor = {};\n\t\t\t\tif(y.indexed) fill.bgColor.indexed = parseInt(y.indexed, 10);\n\t\t\t\tif(y.theme) fill.bgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.bgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb) fill.bgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<bgColor/>': case '</bgColor>': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '<fgColor':\n\t\t\t\tif(!fill.fgColor) fill.fgColor = {};\n\t\t\t\tif(y.theme) fill.fgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.fgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb != null) fill.fgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<fgColor/>': case '</fgColor>': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '<stop': case '<stop/>': break;\n\t\t\tcase '</stop>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color/>': break;\n\t\t\tcase '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fonts': case '<fonts>': case '</fonts>': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '<font': case '<font>': break;\n\t\t\tcase '</font>': case '<font/>':\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 '<name': if(y.val) font.name = utf8read(y.val); break;\n\t\t\tcase '<name/>': case '</name>': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '<b': font.bold = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<b/>': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '<i': font.italic = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<i/>': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase \"none\": font.underline = 0x00; break;\n\t\t\t\t\tcase \"single\": font.underline = 0x01; break;\n\t\t\t\t\tcase \"double\": font.underline = 0x02; break;\n\t\t\t\t\tcase \"singleAccounting\": font.underline = 0x21; break;\n\t\t\t\t\tcase \"doubleAccounting\": font.underline = 0x22; break;\n\t\t\t\t} break;\n\t\t\tcase '<u/>': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike': font.strike = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '<outline': font.outline = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '<shadow': font.shadow = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '<condense': font.condense = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<condense/>': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '<extend': font.extend = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<extend/>': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': if(y.val) font.sz = +y.val; break;\n\t\t\tcase '<sz/>': case '</sz>': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '<vertAlign': if(y.val) font.vertAlign = y.val; break;\n\t\t\tcase '<vertAlign/>': case '</vertAlign>': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '<family': if(y.val) font.family = parseInt(y.val,10); break;\n\t\t\tcase '<family/>': case '</family>': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '<scheme': if(y.val) font.scheme = y.val; break;\n\t\t\tcase '<scheme/>': case '</scheme>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\ty.codepage = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.?.? color CT_Color */\n\t\t\tcase '<color':\n\t\t\t\tif(!font.color) font.color = {};\n\t\t\t\tif(y.auto) font.color.auto = parsexmlbool(y.auto);\n\n\t\t\t\tif(y.rgb) font.color.rgb = y.rgb.slice(-6);\n\t\t\t\telse if(y.indexed) {\n\t\t\t\t\tfont.color.index = parseInt(y.indexed, 10);\n\t\t\t\t\tvar icv = XLSIcv[font.color.index];\n\t\t\t\t\tif(font.color.index == 81) icv = XLSIcv[1];\n\t\t\t\t\tif(!icv) icv = XLSIcv[1]; //throw new Error(x); // note: 206 is valid\n\t\t\t\t\tfont.color.rgb = icv[0].toString(16) + icv[1].toString(16) + icv[2].toString(16);\n\t\t\t\t} else if(y.theme) {\n\t\t\t\t\tfont.color.theme = parseInt(y.theme, 10);\n\t\t\t\t\tif(y.tint) font.color.tint = parseFloat(y.tint);\n\t\t\t\t\tif(y.theme && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\t\tfont.color.rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': 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<number>*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[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 '<numFmts': case '</numFmts>': case '<numFmts/>': case '<numFmts>': break;\n\t\t\tcase '<numFmt': {\n\t\t\t\tvar f=unescapexml(utf8read(y.formatCode)), j=parseInt(y.numFmtId,10);\n\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\tif(j>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 '</numFmt>': 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:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"<numFmts>\"];\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] = (\"</numFmts>\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<cellXfs': case '<cellXfs>': case '<cellXfs/>': case '</cellXfs>': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '<xf': case '<xf/>':\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(styles.NumberFmt && 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 '</xf>': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '<alignment': case '<alignment/>':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '</alignment>': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '<protection':\n\t\t\t\tbreak;\n\t\t\tcase '</protection>': case '<protection/>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': 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)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"</cellXfs>\");\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= /*#__PURE__*/(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(/<!--([\\s\\S]*?)-->/mg,\"\").replace(/<!DOCTYPE[^\\[]*\\[[^\\]]*\\]>/gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('<fonts count=\"1\"><font><sz val=\"12\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts>');\n\to[o.length] = ('<fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills>');\n\to[o.length] = ('<borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>');\n\to[o.length] = ('<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('<cellStyles count=\"1\"><cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\"/></cellStyles>');\n\to[o.length] = ('<dxfs count=\"0\"/>');\n\to[o.length] = ('<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\"/>');\n\n\tif(o.length>2){ o[o.length] = ('</styleSheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, 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/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, 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/*:EvertNumType*/;\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\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = 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/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF_load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* 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(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(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, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* 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, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* 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, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* 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, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\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, 0x0116 /* 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, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'</a:lt1>', '</a:dk1>', '</a:lt2>', '</a:dk2>',\n\t'</a:accent1>', '</a:accent2>', '</a:accent3>',\n\t'</a:accent4>', '</a:accent5>', '</a:accent6>',\n\t'</a:hlink>', '</a:folHlink>'\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 '<a:clrScheme': case '</a:clrScheme>': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '<a:srgbClr':\n\t\t\t\tcolor.rgb = y.val; break;\n\n\t\t\t/* 20.1.2.3.33 sysClr CT_SystemColor */\n\t\t\tcase '<a:sysClr':\n\t\t\t\tcolor.rgb = y.lastClr; break;\n\n\t\t\t/* 20.1.4.1.1 accent1 (Accent 1) */\n\t\t\t/* 20.1.4.1.2 accent2 (Accent 2) */\n\t\t\t/* 20.1.4.1.3 accent3 (Accent 3) */\n\t\t\t/* 20.1.4.1.4 accent4 (Accent 4) */\n\t\t\t/* 20.1.4.1.5 accent5 (Accent 5) */\n\t\t\t/* 20.1.4.1.6 accent6 (Accent 6) */\n\t\t\t/* 20.1.4.1.9 dk1 (Dark 1) */\n\t\t\t/* 20.1.4.1.10 dk2 (Dark 2) */\n\t\t\t/* 20.1.4.1.15 folHlink (Followed Hyperlink) */\n\t\t\t/* 20.1.4.1.19 hlink (Hyperlink) */\n\t\t\t/* 20.1.4.1.22 lt1 (Light 1) */\n\t\t\t/* 20.1.4.1.23 lt2 (Light 2) */\n\t\t\tcase '<a:dk1>': case '</a:dk1>':\n\t\t\tcase '<a:lt1>': case '</a:lt1>':\n\t\t\tcase '<a:dk2>': case '</a:dk2>':\n\t\t\tcase '<a:lt2>': case '</a:lt2>':\n\t\t\tcase '<a:accent1>': case '</a:accent1>':\n\t\t\tcase '<a:accent2>': case '</a:accent2>':\n\t\t\tcase '<a:accent3>': case '</a:accent3>':\n\t\t\tcase '<a:accent4>': case '</a:accent4>':\n\t\t\tcase '<a:accent5>': case '</a:accent5>':\n\t\t\tcase '<a:accent6>': case '</a:accent6>':\n\t\t\tcase '<a:hlink>': case '</a:hlink>':\n\t\t\tcase '<a:folHlink>': case '</a:folHlink>':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\nvar clrsregex = /<a:clrScheme([^>]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /<a:fontScheme([^>]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /<a:fmtScheme([^>]*)>[\\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 = /<a:themeElements([^>]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">';\n\to[o.length] = '<a:themeElements>';\n\n\to[o.length] = '<a:clrScheme name=\"Office\">';\n\to[o.length] = '<a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>';\n\to[o.length] = '<a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>';\n\to[o.length] = '<a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2>';\n\to[o.length] = '<a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2>';\n\to[o.length] = '<a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1>';\n\to[o.length] = '<a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2>';\n\to[o.length] = '<a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3>';\n\to[o.length] = '<a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4>';\n\to[o.length] = '<a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5>';\n\to[o.length] = '<a:accent6><a:srgbClr val=\"F79646\"/></a:accent6>';\n\to[o.length] = '<a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink>';\n\to[o.length] = '<a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink>';\n\to[o.length] = '</a:clrScheme>';\n\n\to[o.length] = '<a:fontScheme name=\"Office\">';\n\to[o.length] = '<a:majorFont>';\n\to[o.length] = '<a:latin typeface=\"Cambria\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"ï¼ï¼³ Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"ë§‘ì€ ê³ ë”•\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"MoolBoran\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:majorFont>';\n\to[o.length] = '<a:minorFont>';\n\to[o.length] = '<a:latin typeface=\"Calibri\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"ï¼ï¼³ Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"ë§‘ì€ ê³ ë”•\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"DaunPenh\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:minorFont>';\n\to[o.length] = '</a:fontScheme>';\n\n\to[o.length] = '<a:fmtScheme name=\"Office\">';\n\to[o.length] = '<a:fillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"1\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"100000\"/><a:shade val=\"100000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:shade val=\"100000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"0\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:fillStyleLst>';\n\to[o.length] = '<a:lnStyleLst>';\n\to[o.length] = '<a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"><a:shade val=\"95000\"/><a:satMod val=\"105000\"/></a:schemeClr></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '</a:lnStyleLst>';\n\to[o.length] = '<a:effectStyleLst>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '<a:scene3d><a:camera prst=\"orthographicFront\"><a:rot lat=\"0\" lon=\"0\" rev=\"0\"/></a:camera><a:lightRig rig=\"threePt\" dir=\"t\"><a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/></a:lightRig></a:scene3d>';\n\to[o.length] = '<a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '</a:effectStyleLst>';\n\to[o.length] = '<a:bgFillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:bgFillStyleLst>';\n\to[o.length] = '</a:fmtScheme>';\n\to[o.length] = '</a:themeElements>';\n\n\to[o.length] = '<a:objectDefaults>';\n\to[o.length] = '<a:spDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"3\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"lt1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:spDef>';\n\to[o.length] = '<a:lnDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"0\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"tx1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:lnDef>';\n\to[o.length] = '</a:objectDefaults>';\n\to[o.length] = '<a:extraClrSchemeLst/>';\n\to[o.length] = '</a:theme>';\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) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } 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/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\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/*::, length*/)/*:Array<any>*/ {\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/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"<?xml\":\n break;\n case \"<metadata\":\n case \"</metadata>\":\n break;\n case \"<metadataTypes\":\n case \"</metadataTypes>\":\n break;\n case \"<metadataType\":\n out.Types.push({ name: y.name });\n break;\n case \"</metadataType>\":\n break;\n case \"<futureMetadata\":\n for (var j = 0; j < out.Types.length; ++j)\n if (out.Types[j].name == y.name)\n lastmeta = out.Types[j];\n break;\n case \"</futureMetadata>\":\n break;\n case \"<bk>\":\n break;\n case \"</bk>\":\n break;\n case \"<rc\":\n if (metatype == 1)\n out.Cell.push({ type: out.Types[y.t - 1].name, index: +y.v });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[y.t - 1].name, index: +y.v });\n break;\n case \"</rc>\":\n break;\n case \"<cellMetadata\":\n metatype = 1;\n break;\n case \"</cellMetadata>\":\n metatype = 2;\n break;\n case \"<valueMetadata\":\n metatype = 0;\n break;\n case \"</valueMetadata>\":\n metatype = 2;\n break;\n case \"<extLst\":\n case \"<extLst>\":\n case \"</extLst>\":\n case \"<extLst/>\":\n break;\n case \"<ext\":\n pass = true;\n break;\n case \"</ext>\":\n pass = false;\n break;\n case \"<rvb\":\n if (!lastmeta)\n break;\n if (!lastmeta.offsets)\n lastmeta.offsets = [];\n lastmeta.offsets.push(+y.i);\n break;\n default:\n if (!pass && opts.WTF)\n throw new Error(\"unrecognized \" + y[0] + \" in metadata\");\n }\n return x;\n });\n return out;\n}\nfunction write_xlmeta_xml() {\n var o = [XML_HEADER];\n o.push('<metadata xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:xlrd=\"http://schemas.microsoft.com/office/spreadsheetml/2017/richdata\" xmlns:xda=\"http://schemas.microsoft.com/office/spreadsheetml/2017/dynamicarray\">\\n <metadataTypes count=\"1\">\\n <metadataType name=\"XLDAPR\" minSupportedVersion=\"120000\" copy=\"1\" pasteAll=\"1\" pasteValues=\"1\" merge=\"1\" splitFirst=\"1\" rowColShift=\"1\" clearFormats=\"1\" clearComments=\"1\" assign=\"1\" coerce=\"1\" cellMeta=\"1\"/>\\n </metadataTypes>\\n <futureMetadata name=\"XLDAPR\" count=\"1\">\\n <bk>\\n <extLst>\\n <ext uri=\"{bdbb8cdc-fa1e-496e-a857-3c3f30c029c3}\">\\n <xda:dynamicArrayProperties fDynamic=\"1\" fCollapsed=\"0\"/>\\n </ext>\\n </extLst>\\n </bk>\\n </futureMetadata>\\n <cellMetadata count=\"1\">\\n <bk>\\n <rc t=\"1\" v=\"0\"/>\\n </bk>\\n </cellMetadata>\\n</metadata>');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array<any>*/ {\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 '<?xml': break;\n\t\t\t/* 18.6.2 calcChain CT_CalcChain 1 */\n\t\t\tcase '<calcChain': case '<calcChain>': case '</calcChain>': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase '<c': delete y[0]; if(y.i) i = y.i; else y.i = i; d.push(y); break;\n\t\t}\n\t});\n\treturn d;\n}\n\n//function write_cc_xml(data, opts) { }\n\n/* [MS-XLSB] 2.6.4.1 */\nfunction parse_BrtCalcChainItem$(data) {\n\tvar out = {};\n\tout.i = data.read_shift(4);\n\tvar cell = {};\n\tcell.r = data.read_shift(4);\n\tcell.c = data.read_shift(4);\n\tout.r = encode_cell(cell);\n\tvar flags = data.read_shift(1);\n\tif(flags & 0x2) out.l = '1';\n\tif(flags & 0x8) out.a = '1';\n\treturn out;\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_bin(data, name, opts) {\n\tvar out = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_cc(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x003F: /* 'BrtCalcChainItem$' */\n\t\t\t\tout.push(val); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\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(/*::data, rel, name:string, _opts*/) {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name/*:string*/, _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, 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.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels/*:any*/) {\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(/<c:chart [^>]*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/*:number*/, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\t++_shapeid;\n\n\to = o.concat([\n\t'<v:shape' + wxt_helper({\n\t\tid:'_x0000_s' + _shapeid,\n\t\ttype:\"#_x0000_t202\",\n\t\tstyle:\"position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10\" + (x[1].hidden ? \";visibility:hidden\" : \"\") ,\n\t\tfillcolor:\"#ECFAD4\",\n\t\tstrokecolor:\"#edeaa1\"\n\t}) + '>',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'<v:textbox><div style=\"text-align:left\"></div></v:textbox>',\n\t\t'<x:ClientData ObjectType=\"Note\">',\n\t\t\t'<x:MoveWithCells/>',\n\t\t\t'<x:SizeWithCells/>',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '<x:Visible/>',\n\t\t'</x:ClientData>',\n\t'</v:shape>'\n\t]); });\n\to.push('</xml>');\n\treturn o.join(\"\");\n}\nfunction sheet_insert_comments(sheet, comments/*:Array<RawComment>*/, threaded/*:boolean*/, people/*:?Array<any>*/) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\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/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array<RawComment>*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array<string>*/ = [];\n\tvar commentList/*:Array<RawComment>*/ = [];\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/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\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 == \"<t></t>\") 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\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array<string>*/ = [];\n\to.push(\"<authors>\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"<author>\" + a + \"</author>\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"<author>\" + \"tc=\" + w.ID + \"</author>\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"<author>SheetJ5</author>\"); }\n\to.push(\"</authors>\");\n\to.push(\"<commentList>\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [];\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\telse d[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tts.push(c.t||\"\");\n\t\t});\n\t\to.push('<comment ref=\"' + d[0] + '\" authorId=\"' + lastauthor + '\"><text>');\n\t\tif(ts.length <= 1) o.push(writetag(\"t\", escapexml(ts[0]||\"\")));\n\t\telse {\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t}\n\t\to.push('</text></comment>');\n\t});\n\to.push(\"</commentList>\");\n\tif(o.length>2) { o[o.length] = ('</comments>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array<RawComment>*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 2.6.207 ThreadedComments CT_ThreadedComments */\n\t\t\tcase '<ThreadedComments': break;\n\t\t\tcase '</ThreadedComments>': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '<threadedComment': comment = {author: y.personId, guid: y.id, ref: y.ref, T: 1}; break;\n\t\t\tcase '</threadedComment>': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '<text>': case '<text': tidx = idx + x.length; break;\n\t\t\tcase '</text>': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '<mentions': case '<mentions>': pass = true; break;\n\t\t\tcase '</mentions>': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break;\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('</ThreadedComments>');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 2.4.85 personList CT_PersonList */\n\t\t\tcase '<personList': break;\n\t\t\tcase '</personList>': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '<person': out.push({name: y.displayname, id: y.id }); break;\n\t\t\tcase '</person>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break;\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"</personList>\");\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]/*:any*/), 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)/*:Array<RawComment>*/ {\n\tvar out/*:Array<RawComment>*/ = [];\n\tvar authors/*:Array<string>*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, 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/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array<string>*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* 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, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* 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, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\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/*:string*/, delta/*:Cell*/)/*:string*/ {\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/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\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/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\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/*::, length, opts*/) {\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/*::, length, opts*/) {\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/*::, length, opts*/) {\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/*::, length:number, opts*/) {\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)/*:Array<number>*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array<number>*/ = [];\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/*::, length*/) {\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/*:number*/) {\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/*:Array<Range>*/ = [];\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/*:Array<Array<any>>*/ = []; 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/*::, length, opts*/) {\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/*::, length, opts*/) {\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/*::, length, opts*/) {\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/*::, length, opts*/) {\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/*::, length, opts*/) {\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/*::, length, opts*/) {\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/*::, length, opts*/) {\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/*::, length, opts*/) {\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 = {\n\t/*::[*/0x01/*::]*/: { n:'PtgExp', f:parse_PtgExp },\n\t/*::[*/0x02/*::]*/: { n:'PtgTbl', f:parse_PtgTbl },\n\t/*::[*/0x03/*::]*/: { n:'PtgAdd', f:parseread1 },\n\t/*::[*/0x04/*::]*/: { n:'PtgSub', f:parseread1 },\n\t/*::[*/0x05/*::]*/: { n:'PtgMul', f:parseread1 },\n\t/*::[*/0x06/*::]*/: { n:'PtgDiv', f:parseread1 },\n\t/*::[*/0x07/*::]*/: { n:'PtgPower', f:parseread1 },\n\t/*::[*/0x08/*::]*/: { n:'PtgConcat', f:parseread1 },\n\t/*::[*/0x09/*::]*/: { n:'PtgLt', f:parseread1 },\n\t/*::[*/0x0A/*::]*/: { n:'PtgLe', f:parseread1 },\n\t/*::[*/0x0B/*::]*/: { n:'PtgEq', f:parseread1 },\n\t/*::[*/0x0C/*::]*/: { n:'PtgGe', f:parseread1 },\n\t/*::[*/0x0D/*::]*/: { n:'PtgGt', f:parseread1 },\n\t/*::[*/0x0E/*::]*/: { n:'PtgNe', f:parseread1 },\n\t/*::[*/0x0F/*::]*/: { n:'PtgIsect', f:parseread1 },\n\t/*::[*/0x10/*::]*/: { n:'PtgUnion', f:parseread1 },\n\t/*::[*/0x11/*::]*/: { n:'PtgRange', f:parseread1 },\n\t/*::[*/0x12/*::]*/: { n:'PtgUplus', f:parseread1 },\n\t/*::[*/0x13/*::]*/: { n:'PtgUminus', f:parseread1 },\n\t/*::[*/0x14/*::]*/: { n:'PtgPercent', f:parseread1 },\n\t/*::[*/0x15/*::]*/: { n:'PtgParen', f:parseread1 },\n\t/*::[*/0x16/*::]*/: { n:'PtgMissArg', f:parseread1 },\n\t/*::[*/0x17/*::]*/: { n:'PtgStr', f:parse_PtgStr },\n\t/*::[*/0x1A/*::]*/: { n:'PtgSheet', f:parse_PtgSheet },\n\t/*::[*/0x1B/*::]*/: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t/*::[*/0x1C/*::]*/: { n:'PtgErr', f:parse_PtgErr },\n\t/*::[*/0x1D/*::]*/: { n:'PtgBool', f:parse_PtgBool },\n\t/*::[*/0x1E/*::]*/: { n:'PtgInt', f:parse_PtgInt },\n\t/*::[*/0x1F/*::]*/: { n:'PtgNum', f:parse_PtgNum },\n\t/*::[*/0x20/*::]*/: { n:'PtgArray', f:parse_PtgArray },\n\t/*::[*/0x21/*::]*/: { n:'PtgFunc', f:parse_PtgFunc },\n\t/*::[*/0x22/*::]*/: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t/*::[*/0x23/*::]*/: { n:'PtgName', f:parse_PtgName },\n\t/*::[*/0x24/*::]*/: { n:'PtgRef', f:parse_PtgRef },\n\t/*::[*/0x25/*::]*/: { n:'PtgArea', f:parse_PtgArea },\n\t/*::[*/0x26/*::]*/: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t/*::[*/0x27/*::]*/: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t/*::[*/0x28/*::]*/: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t/*::[*/0x29/*::]*/: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t/*::[*/0x2A/*::]*/: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t/*::[*/0x2B/*::]*/: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t/*::[*/0x2C/*::]*/: { n:'PtgRefN', f:parse_PtgRefN },\n\t/*::[*/0x2D/*::]*/: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t/*::[*/0x2E/*::]*/: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t/*::[*/0x2F/*::]*/: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t/*::[*/0x39/*::]*/: { n:'PtgNameX', f:parse_PtgNameX },\n\t/*::[*/0x3A/*::]*/: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t/*::[*/0x3B/*::]*/: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t/*::[*/0x3C/*::]*/: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t/*::[*/0x3D/*::]*/: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t/*::[*/0xFF/*::]*/: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t/*::[*/0x40/*::]*/: 0x20, /*::[*/0x60/*::]*/: 0x20,\n\t/*::[*/0x41/*::]*/: 0x21, /*::[*/0x61/*::]*/: 0x21,\n\t/*::[*/0x42/*::]*/: 0x22, /*::[*/0x62/*::]*/: 0x22,\n\t/*::[*/0x43/*::]*/: 0x23, /*::[*/0x63/*::]*/: 0x23,\n\t/*::[*/0x44/*::]*/: 0x24, /*::[*/0x64/*::]*/: 0x24,\n\t/*::[*/0x45/*::]*/: 0x25, /*::[*/0x65/*::]*/: 0x25,\n\t/*::[*/0x46/*::]*/: 0x26, /*::[*/0x66/*::]*/: 0x26,\n\t/*::[*/0x47/*::]*/: 0x27, /*::[*/0x67/*::]*/: 0x27,\n\t/*::[*/0x48/*::]*/: 0x28, /*::[*/0x68/*::]*/: 0x28,\n\t/*::[*/0x49/*::]*/: 0x29, /*::[*/0x69/*::]*/: 0x29,\n\t/*::[*/0x4A/*::]*/: 0x2A, /*::[*/0x6A/*::]*/: 0x2A,\n\t/*::[*/0x4B/*::]*/: 0x2B, /*::[*/0x6B/*::]*/: 0x2B,\n\t/*::[*/0x4C/*::]*/: 0x2C, /*::[*/0x6C/*::]*/: 0x2C,\n\t/*::[*/0x4D/*::]*/: 0x2D, /*::[*/0x6D/*::]*/: 0x2D,\n\t/*::[*/0x4E/*::]*/: 0x2E, /*::[*/0x6E/*::]*/: 0x2E,\n\t/*::[*/0x4F/*::]*/: 0x2F, /*::[*/0x6F/*::]*/: 0x2F,\n\t/*::[*/0x58/*::]*/: 0x22, /*::[*/0x78/*::]*/: 0x22,\n\t/*::[*/0x59/*::]*/: 0x39, /*::[*/0x79/*::]*/: 0x39,\n\t/*::[*/0x5A/*::]*/: 0x3A, /*::[*/0x7A/*::]*/: 0x3A,\n\t/*::[*/0x5B/*::]*/: 0x3B, /*::[*/0x7B/*::]*/: 0x3B,\n\t/*::[*/0x5C/*::]*/: 0x3C, /*::[*/0x7C/*::]*/: 0x3C,\n\t/*::[*/0x5D/*::]*/: 0x3D, /*::[*/0x7D/*::]*/: 0x3D\n};\n\nvar Ptg18 = {\n\t/*::[*/0x01/*::]*/: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t/*::[*/0x02/*::]*/: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t/*::[*/0x03/*::]*/: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t/*::[*/0x06/*::]*/: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t/*::[*/0x07/*::]*/: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t/*::[*/0x0A/*::]*/: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t/*::[*/0x0B/*::]*/: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t/*::[*/0x0D/*::]*/: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t/*::[*/0x0F/*::]*/: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t/*::[*/0x10/*::]*/: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t/*::[*/0x19/*::]*/: { n:'PtgList', f:parse_PtgList },\n\t/*::[*/0x1D/*::]*/: { n:'PtgSxName', f:parse_PtgSxName },\n\t/*::[*/0xFF/*::]*/: {}\n};\nvar Ptg19 = {\n\t/*::[*/0x00/*::]*/: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t/*::[*/0x01/*::]*/: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t/*::[*/0x02/*::]*/: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t/*::[*/0x04/*::]*/: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t/*::[*/0x08/*::]*/: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t/*::[*/0x10/*::]*/: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t/*::[*/0x20/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x21/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x40/*::]*/: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t/*::[*/0x41/*::]*/: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t/*::[*/0x80/*::]*/: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t/*::[*/0xFF/*::]*/: {}\n};\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] || PtgTypes[PtgDupes[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/*:Array<Array<string>>*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array<string>*/ = [];\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:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\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/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array<any>*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\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/*:Array<string>*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, 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 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _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 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\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 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _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/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\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(/*::String(*/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(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/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/*:any*/), 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]/*:any*/);\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\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\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/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); 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]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\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} else {\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(/*::String(*/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]/*:: :any)*/) + \"}\");\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/*::, ref*/) {\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/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\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/*:string*/)/*:string*/ {\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/*:string*/)/*:[string, string]*/ {\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/*:string*/)/*:string*/ {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\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\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\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/*:Array<any>*/, cell/*: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/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[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 = p.v.toString(10);\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 = dd.toString(10);\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/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\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/*:Worksheet*/, s/*:string*/) {\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 sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = 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\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array<ColInfo>*/ = [];\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/*:Array<Range>*/ = [];\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/*:Array<Range>*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '<mergeCells count=\"' + merges.length + '\">';\n\tfor(var i = 0; i != merges.length; ++i) o += '<mergeCell ref=\"' + encode_range(merges[i]) + '\"/>';\n\treturn o + '</mergeCells>';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array<string>*/, 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 += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(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)/*:string*/ {\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\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"<cols>\"], 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] = \"</cols>\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array<any> */ = 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/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\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/*:Cell*/, ref, ws, opts/*::, idx, wb*/)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z' && !cell.f) return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(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/*:string*/, s, opts, guess/*:Range*/, themes, styles) {\n\tvar ri = 0, x = \"\", cells/*:Array<string>*/ = [], cref/*:?Array<string>*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\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/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows/*:Array<RowInfo>*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"<c \" + (x.slice(0,1)==\"<\"?\">\":\"\") + 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:\"\"}/*:any*/);\n\n\t\t\tif((cref=d.match(match_v))!= null && /*::cref != 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 != null && */cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(/*::cref != null && cref[0] != null && */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 != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/<f[^>]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\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/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [], r/*:Array<string>*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array<string>*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, 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}/*:any*/);\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}/*:any*/);\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\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '<sheetData/>';\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] = ('</sheetData>'); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) 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] = \"<hyperlinks>\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\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] = \"</hyperlinks>\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = ('</worksheet>'); 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 = ({}/*:any*/);\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/*:number*/, 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, 0x0000 /* 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(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; 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}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\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}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(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}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\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}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(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}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(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}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\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}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(8 + 4 * cell.v.length);\n\twrite_XLSBShortCell(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/*::, opts*/) {\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}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\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) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\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/*:Worksheet*/ = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array<Range>*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\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/*:Array<ColInfo>*/ = [], rowinfo/*:Array<RowInfo>*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\n\trecordhopper(data, function ws_parse(val, RR, 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\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\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\tcase 'is': p.t = 's'; p.v = val[1].t; 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 == -1 ? C + 1 : 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\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' && fmt_is_date(table_fmt[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\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : 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\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\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 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} 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])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\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 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\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/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/)/*:boolean*/ {\n\tif(cell.v === undefined) return false;\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 || table_fmt[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/*:any*/ = ({r:R, c:C}/*:any*/);\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/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\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) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array<string>*/ = [];\n\twrite_record(ba, 0x0091 /* 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\tvar last_seen = false;\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) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, 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, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, 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, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array<any> */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* 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, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = 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, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* 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, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array<number|string>, string, ?string]*/ {\n\tvar col/*:Array<number|string>*/ = [];\n\tvar num = data.match(/^<c:numCache>/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/<c:pt idx=\"(\\d*)\">(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/<c:pt idx=\"(\\d*?)\"><c:v>(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/<c:formatCode>([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/<c:f>(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\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(/<c:numCache>[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\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] = ('</chartsheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\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/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, 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(RT); 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.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0081 /* 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, 0x0082 /* 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/*:Workbook*/)/*:string*/ {\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 = /*#__PURE__*/\"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\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)/*:WorkbookFile*/ {\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/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 18.2.27 workbook CT_Workbook 1 */\n\t\t\tcase '<workbook':\n\t\t\t\tif(x.match(wbnsregex)) xmlns = \"xmlns\" + x.match(/<(\\w+):/)[1];\n\t\t\t\twb.xmlns = y[xmlns];\n\t\t\t\tbreak;\n\t\t\tcase '</workbook>': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '<fileVersion': delete y[0]; wb.AppVersion = y; break;\n\t\t\tcase '<fileVersion/>': case '</fileVersion>': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '<fileSharing':\n\t\t\t\tbreak;\n\t\t\tcase '<fileSharing/>': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '<workbookPr':\n\t\t\tcase '<workbookPr/>':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '</workbookPr>': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '<workbookProtection':\n\t\t\t\tbreak;\n\t\t\tcase '<workbookProtection/>': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '<bookViews': case '<bookViews>': case '</bookViews>': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '<workbookView': case '<workbookView/>': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '</workbookView>': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '<sheets': case '<sheets>': case '</sheets>': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '<sheet':\n\t\t\t\tswitch(y.state) {\n\t\t\t\t\tcase \"hidden\": y.Hidden = 1; break;\n\t\t\t\t\tcase \"veryHidden\": y.Hidden = 2; break;\n\t\t\t\t\tdefault: y.Hidden = 0;\n\t\t\t\t}\n\t\t\t\tdelete y.state;\n\t\t\t\ty.name = unescapexml(utf8read(y.name));\n\t\t\t\tdelete y[0]; wb.Sheets.push(y); break;\n\t\t\tcase '</sheet>': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '<functionGroups': case '<functionGroups/>': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '<functionGroup': break;\n\n\t\t\t/* 18.2.9 externalReferences CT_ExternalReferences ? */\n\t\t\tcase '<externalReferences': case '</externalReferences>': case '<externalReferences>': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '<externalReference': break;\n\n\t\t\t/* 18.2.6 definedNames CT_DefinedNames ? */\n\t\t\tcase '<definedNames/>': break;\n\t\t\tcase '<definedNames>': case '<definedNames': pass=true; break;\n\t\t\tcase '</definedNames>': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '<definedName': {\n\t\t\t\tdname = {};\n\t\t\t\tdname.Name = utf8read(y.name);\n\t\t\t\tif(y.comment) dname.Comment = y.comment;\n\t\t\t\tif(y.localSheetId) dname.Sheet = +y.localSheetId;\n\t\t\t\tif(parsexmlbool(y.hidden||\"0\")) dname.Hidden = true;\n\t\t\t\tdnstart = idx + x.length;\n\t\t\t}\tbreak;\n\t\t\tcase '</definedName>': {\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 '<definedName/>': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '<calcPr': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '<calcPr/>': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '</calcPr>': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '<oleSize': break;\n\n\t\t\t/* 18.2.4 customWorkbookViews CT_CustomWorkbookViews ? */\n\t\t\tcase '<customWorkbookViews>': case '</customWorkbookViews>': case '<customWorkbookViews': break;\n\t\t\t/* 18.2.3 customWorkbookView CT_CustomWorkbookView + */\n\t\t\tcase '<customWorkbookView': case '</customWorkbookView>': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '<pivotCaches>': case '</pivotCaches>': case '<pivotCaches': break;\n\t\t\t/* 18.2.17 pivotCache CT_PivotCache ? */\n\t\t\tcase '<pivotCache': break;\n\n\t\t\t/* 18.2.21 smartTagPr CT_SmartTagPr ? */\n\t\t\tcase '<smartTagPr': case '<smartTagPr/>': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '<smartTagTypes': case '<smartTagTypes>': case '</smartTagTypes>': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '<smartTagType': break;\n\n\t\t\t/* 18.2.24 webPublishing CT_WebPublishing ? */\n\t\t\tcase '<webPublishing': case '<webPublishing/>': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '<fileRecoveryPr': case '<fileRecoveryPr/>': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '<webPublishObjects>': case '<webPublishObjects': case '</webPublishObjects>': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '<webPublishObject': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break; //TODO: check with versions of excel\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '<ArchID': break;\n\t\t\tcase '<AlternateContent':\n\t\t\tcase '<AlternateContent>': pass=true; break;\n\t\t\tcase '</AlternateContent>': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase '<revisionPtr': break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in workbook');\n\t\t}\n\t\treturn x;\n\t});\n\tif(XMLNS_main.indexOf(wb.xmlns) === -1) throw new Error(\"Unknown Namespace: \" + wb.xmlns);\n\n\tparse_wb_defaults(wb);\n\n\treturn wb;\n}\n\nfunction write_wb_xml(wb/*:Workbook*//*::, opts:?WriteOpts*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to[o.length] = writextag('workbook', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t//'xmlns:mx': XMLNS.mx,\n\t\t//'xmlns:s': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t});\n\n\tvar write_names = (wb.Workbook && (wb.Workbook.Names||[]).length > 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"<bookViews>\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '<workbookView firstSheet=\"' + i + '\" activeTab=\"' + i + '\"/>';\n\t\to[o.length] = \"</bookViews>\";\n\t}\n\n\to[o.length] = \"<sheets>\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\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] = \"</sheets>\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"<definedNames>\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"</definedNames>\";\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] = '</workbook>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\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)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\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/*:?WBProps*/, 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}/*:any*/);\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)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, 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\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\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 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\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(RT); 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(RT); 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.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* 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, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* 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\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/*::, opts*/) {\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, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* 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, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* 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, 0x009D 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, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_theme(data/*:string*/, name/*:string*/, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array<RawComment>*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\n\nfunction write_wb(wb, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, 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/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data/*:SST*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data/*:Array<any>*/, name/*:string*/, 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*/\n\nfunction write_xlmeta(name/*:string*/) {\n\treturn (name.slice(-4)===\".bin\" ? write_xlmeta_bin : write_xlmeta_xml)();\n}\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); 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);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((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/*:string*/) {\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);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((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\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value)/*:string*/ {\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/*:string*/) {\n\tvar oval/*:any*/ = 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/*: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 = cell.v.toString(10);\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' && fmt_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/*:any*/, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\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\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_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\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"<?xml\") == -1) [\"html\", \"table\", \"head\", \"meta\", \"script\", \"style\", \"div\"].forEach(function(tag) { if(opening.indexOf(\"<\" + tag) >= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array<string>*/ = [], cursheet/*:Worksheet*/ = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag('<Data ss:Type=\"String\">'), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array<Range>*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array<Comment>*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array<RowInfo>*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(/<!--([\\s\\S]*?)-->/mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\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) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF_load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*: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}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is <office:document> */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is <uof:UOF> */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\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\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\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(/*::wb, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array<string>*/ = ['<Style ss:ID=\"Default\" ss:Name=\"Normal\"><NumberFormat/></Style>'];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array<string>*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array<any>*/ = wb.Workbook.Names;\n\tvar out/*:Array<string>*/ = [];\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/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array<any>*/ = wb.Workbook.Names;\n\tvar out/*:Array<string>*/ = [];\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/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array<string>*/ = [];\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(\"<PageSetup>\");\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(\"</PageSetup>\");\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(\"<Selected/>\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"<DisplayRightToLeft/>\");\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/*:Array<any>*/)/*:string*/ {\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/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('<Data ss:Type=\"' + t + '\">' + _v + '</Data>');\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/*:number*/, row)/*:string*/ {\n\tvar o = '<Row ss:Index=\"' + (R+1) + '\"';\n\tif(row) {\n\t\tif(row.hpt && !row.hpx) row.hpx = pt2px(row.hpt);\n\t\tif(row.hpx) o += ' ss:AutoFitHeight=\"0\" ss:Height=\"' + row.hpx + '\"';\n\t\tif(row.hidden) o += ' ss:Hidden=\"1\"';\n\t}\n\treturn o + '>';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array<Range>*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array<string>*/ = [];\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/*:any*/ = {\"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(\"</Row>\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Names>\" + t + \"</Names>\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Table>\" + t + \"</Table>\");\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)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_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/*:Array<string>*/ = [];\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/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [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/*:number*/ = 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 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002f /* FilePass */: case 0x0195 /* FileLock */: case 0x00e1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\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 = table_fmt[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 = p.v.toString(10);\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, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[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)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ((options.dense ? [] : {})/*:any*/);\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\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/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\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/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) 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}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array<Range>*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array<ColInfo>*/ = [], rowinfo/*:Array<RowInfo>*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 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_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array<string>*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\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_RT === 0x000a /* 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_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\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){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* 'BOF' */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* 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 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* 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 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* 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}/*:DefinedName*/);\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 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* 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 0x0894 /* 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\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* 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 0x000a /* 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 ? [] : {})/*:any*/);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t/*::[*/0x0009/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0209/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0409/*::]*/:4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t/*::[*/0x0200/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0300/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0400/*::]*/:4,\n\t\t\t\t\t\t/*::[*/0x0500/*::]*/:5,\n\t\t\t\t\t\t/*::[*/0x0600/*::]*/:8,\n\t\t\t\t\t\t/*::[*/0x0002/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0007/*::]*/:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\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\tout = ((options.dense ? [] : {})/*:any*/);\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\n\t\t\t\t\tif(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\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\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* 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'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\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 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\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 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\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 0x00bd /* 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'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\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 0x0006: case 0x0206: case 0x0406 /* 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) & 0x3F];\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 0x0007: case 0x0207 /* 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) & 0x3F];\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 0x0021: case 0x0221 /* 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 0x04bc /* ShrFmla */: {\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 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\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 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\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 0x00be /* 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'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\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 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* 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) & 0x3F];\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 0x0000: case 0x0200 /* 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 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* 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(table_fmt[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 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[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 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* 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 0x0800 /* 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\t\t\t\tcase 0x001c /* 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\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\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\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* 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, level: (val.level || 0), hidden: !!(val.flags & 1) };\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 0x0208 /* 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\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* 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\t\t\t\tcase 0x023e /* 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\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!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}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\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.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\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/*:CFBContainer*/, 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/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.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/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\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}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\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\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\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/*:: :any):CFBContainer)*/, 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/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\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 = {\n\t/*::[*/0x0000/*::]*/: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t/*::[*/0x0006/*::]*/: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t/*::[*/0x0007/*::]*/: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t/*::[*/0x000A/*::]*/: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t/*::[*/0x000B/*::]*/: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t/*::[*/0x000C/*::]*/: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t/*::[*/0x000D/*::]*/: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t/*::[*/0x000E/*::]*/: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t/*::[*/0x000F/*::]*/: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t/*::[*/0x0010/*::]*/: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t/*::[*/0x0011/*::]*/: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t/*::[*/0x0012/*::]*/: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t/*::[*/0x0013/*::]*/: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t/*::[*/0x0014/*::]*/: { /* n:\"BrtPCDIMissing\" */ },\n\t/*::[*/0x0015/*::]*/: { /* n:\"BrtPCDINumber\" */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"BrtPCDIBoolean\" */ },\n\t/*::[*/0x0017/*::]*/: { /* n:\"BrtPCDIError\" */ },\n\t/*::[*/0x0018/*::]*/: { /* n:\"BrtPCDIString\" */ },\n\t/*::[*/0x0019/*::]*/: { /* n:\"BrtPCDIDatetime\" */ },\n\t/*::[*/0x001A/*::]*/: { /* n:\"BrtPCDIIndex\" */ },\n\t/*::[*/0x001B/*::]*/: { /* n:\"BrtPCDIAMissing\" */ },\n\t/*::[*/0x001C/*::]*/: { /* n:\"BrtPCDIANumber\" */ },\n\t/*::[*/0x001D/*::]*/: { /* n:\"BrtPCDIABoolean\" */ },\n\t/*::[*/0x001E/*::]*/: { /* n:\"BrtPCDIAError\" */ },\n\t/*::[*/0x001F/*::]*/: { /* n:\"BrtPCDIAString\" */ },\n\t/*::[*/0x0020/*::]*/: { /* n:\"BrtPCDIADatetime\" */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"BrtPCRRecord\" */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"BrtPCRRecordDt\" */ },\n\t/*::[*/0x0023/*::]*/: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t/*::[*/0x0024/*::]*/: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t/*::[*/0x0025/*::]*/: { /* n:\"BrtACBegin\", */ T:1 },\n\t/*::[*/0x0026/*::]*/: { /* n:\"BrtACEnd\", */ T:-1 },\n\t/*::[*/0x0027/*::]*/: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t/*::[*/0x0028/*::]*/: { /* n:\"BrtIndexRowBlock\" */ },\n\t/*::[*/0x002A/*::]*/: { /* n:\"BrtIndexBlock\" */ },\n\t/*::[*/0x002B/*::]*/: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t/*::[*/0x002C/*::]*/: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t/*::[*/0x002D/*::]*/: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t/*::[*/0x002E/*::]*/: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t/*::[*/0x002F/*::]*/: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t/*::[*/0x0030/*::]*/: { /* n:\"BrtStyle\" */ },\n\t/*::[*/0x0031/*::]*/: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t/*::[*/0x0032/*::]*/: { /* n:\"BrtValueMeta\" */ },\n\t/*::[*/0x0033/*::]*/: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t/*::[*/0x0034/*::]*/: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t/*::[*/0x0035/*::]*/: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t/*::[*/0x0036/*::]*/: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t/*::[*/0x0037/*::]*/: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t/*::[*/0x0038/*::]*/: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t/*::[*/0x0039/*::]*/: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t/*::[*/0x003A/*::]*/: { /* n:\"BrtMdxMbrIstr\" */ },\n\t/*::[*/0x003B/*::]*/: { /* n:\"BrtStr\" */ },\n\t/*::[*/0x003C/*::]*/: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x003E/*::]*/: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t/*::[*/0x003F/*::]*/: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t/*::[*/0x0040/*::]*/: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t/*::[*/0x0041/*::]*/: { /* n:\"BrtSxvcellNum\" */ },\n\t/*::[*/0x0042/*::]*/: { /* n:\"BrtSxvcellStr\" */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BrtSxvcellBool\" */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BrtSxvcellErr\" */ },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BrtSxvcellDate\" */ },\n\t/*::[*/0x0046/*::]*/: { /* n:\"BrtSxvcellNil\" */ },\n\t/*::[*/0x0080/*::]*/: { /* n:\"BrtFileVersion\" */ },\n\t/*::[*/0x0081/*::]*/: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t/*::[*/0x0082/*::]*/: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t/*::[*/0x0084/*::]*/: { /* n:\"BrtEndBook\", */ T:-1 },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t/*::[*/0x0087/*::]*/: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t/*::[*/0x0088/*::]*/: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t/*::[*/0x0089/*::]*/: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t/*::[*/0x008A/*::]*/: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t/*::[*/0x008B/*::]*/: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t/*::[*/0x008C/*::]*/: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t/*::[*/0x008D/*::]*/: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t/*::[*/0x008E/*::]*/: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t/*::[*/0x008F/*::]*/: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t/*::[*/0x0091/*::]*/: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t/*::[*/0x0092/*::]*/: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t/*::[*/0x0093/*::]*/: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t/*::[*/0x0094/*::]*/: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t/*::[*/0x0097/*::]*/: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t/*::[*/0x0098/*::]*/: { /* n:\"BrtSel\" */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t/*::[*/0x009A/*::]*/: { /* n:\"BrtWbFactoid\" */ },\n\t/*::[*/0x009B/*::]*/: { /* n:\"BrtFileRecover\" */ },\n\t/*::[*/0x009C/*::]*/: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t/*::[*/0x009D/*::]*/: { /* n:\"BrtCalcProp\" */ },\n\t/*::[*/0x009E/*::]*/: { /* n:\"BrtBookView\" */ },\n\t/*::[*/0x009F/*::]*/: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t/*::[*/0x00A0/*::]*/: { /* n:\"BrtEndSst\", */ T:-1 },\n\t/*::[*/0x00A1/*::]*/: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t/*::[*/0x00A2/*::]*/: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t/*::[*/0x00A3/*::]*/: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t/*::[*/0x00A4/*::]*/: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t/*::[*/0x00A5/*::]*/: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t/*::[*/0x00A6/*::]*/: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t/*::[*/0x00A7/*::]*/: { /* n:\"BrtFilter\" */ },\n\t/*::[*/0x00A8/*::]*/: { /* n:\"BrtColorFilter\" */ },\n\t/*::[*/0x00A9/*::]*/: { /* n:\"BrtIconFilter\" */ },\n\t/*::[*/0x00AA/*::]*/: { /* n:\"BrtTop10Filter\" */ },\n\t/*::[*/0x00AB/*::]*/: { /* n:\"BrtDynamicFilter\" */ },\n\t/*::[*/0x00AC/*::]*/: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t/*::[*/0x00AD/*::]*/: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t/*::[*/0x00AE/*::]*/: { /* n:\"BrtCustomFilter\" */ },\n\t/*::[*/0x00AF/*::]*/: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t/*::[*/0x00B0/*::]*/: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t/*::[*/0x00B1/*::]*/: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t/*::[*/0x00B2/*::]*/: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t/*::[*/0x00B3/*::]*/: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t/*::[*/0x00B4/*::]*/: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t/*::[*/0x00B5/*::]*/: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t/*::[*/0x00B6/*::]*/: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t/*::[*/0x00B7/*::]*/: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t/*::[*/0x00B8/*::]*/: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t/*::[*/0x00B9/*::]*/: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t/*::[*/0x00BA/*::]*/: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t/*::[*/0x00BB/*::]*/: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t/*::[*/0x00BC/*::]*/: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t/*::[*/0x00BD/*::]*/: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t/*::[*/0x00BE/*::]*/: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t/*::[*/0x00BF/*::]*/: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t/*::[*/0x00C0/*::]*/: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t/*::[*/0x00C1/*::]*/: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t/*::[*/0x00C2/*::]*/: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t/*::[*/0x00C3/*::]*/: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t/*::[*/0x00C4/*::]*/: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t/*::[*/0x00C5/*::]*/: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t/*::[*/0x00C6/*::]*/: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t/*::[*/0x00C7/*::]*/: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t/*::[*/0x00C8/*::]*/: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t/*::[*/0x00C9/*::]*/: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t/*::[*/0x00CA/*::]*/: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t/*::[*/0x00CB/*::]*/: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t/*::[*/0x00CC/*::]*/: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t/*::[*/0x00CD/*::]*/: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t/*::[*/0x00CE/*::]*/: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t/*::[*/0x00CF/*::]*/: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t/*::[*/0x00D0/*::]*/: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t/*::[*/0x00D1/*::]*/: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t/*::[*/0x00D2/*::]*/: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t/*::[*/0x00D3/*::]*/: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t/*::[*/0x00D4/*::]*/: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t/*::[*/0x00D5/*::]*/: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t/*::[*/0x00D6/*::]*/: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t/*::[*/0x00D7/*::]*/: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t/*::[*/0x00D8/*::]*/: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t/*::[*/0x00D9/*::]*/: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t/*::[*/0x00DA/*::]*/: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t/*::[*/0x00DB/*::]*/: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t/*::[*/0x00DC/*::]*/: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t/*::[*/0x00DD/*::]*/: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t/*::[*/0x00DE/*::]*/: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t/*::[*/0x00DF/*::]*/: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t/*::[*/0x00E0/*::]*/: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t/*::[*/0x00E1/*::]*/: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t/*::[*/0x00E2/*::]*/: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t/*::[*/0x00E3/*::]*/: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t/*::[*/0x00E4/*::]*/: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t/*::[*/0x00E5/*::]*/: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t/*::[*/0x00E6/*::]*/: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t/*::[*/0x00E7/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t/*::[*/0x00E8/*::]*/: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t/*::[*/0x00E9/*::]*/: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t/*::[*/0x00EA/*::]*/: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t/*::[*/0x00EB/*::]*/: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t/*::[*/0x00EC/*::]*/: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t/*::[*/0x00ED/*::]*/: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t/*::[*/0x00EE/*::]*/: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t/*::[*/0x00EF/*::]*/: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t/*::[*/0x00F0/*::]*/: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t/*::[*/0x00F1/*::]*/: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t/*::[*/0x00F2/*::]*/: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t/*::[*/0x00F3/*::]*/: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t/*::[*/0x00F4/*::]*/: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t/*::[*/0x00F5/*::]*/: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t/*::[*/0x00F6/*::]*/: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t/*::[*/0x00F7/*::]*/: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t/*::[*/0x00F8/*::]*/: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t/*::[*/0x00F9/*::]*/: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t/*::[*/0x00FA/*::]*/: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t/*::[*/0x00FB/*::]*/: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t/*::[*/0x00FC/*::]*/: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t/*::[*/0x00FD/*::]*/: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t/*::[*/0x00FE/*::]*/: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t/*::[*/0x00FF/*::]*/: { /* n:\"BrtBeginPName\", */ T:1 },\n\t/*::[*/0x0100/*::]*/: { /* n:\"BrtEndPName\", */ T:-1 },\n\t/*::[*/0x0101/*::]*/: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t/*::[*/0x0102/*::]*/: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t/*::[*/0x0103/*::]*/: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t/*::[*/0x0104/*::]*/: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t/*::[*/0x0105/*::]*/: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t/*::[*/0x0106/*::]*/: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t/*::[*/0x0107/*::]*/: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t/*::[*/0x0108/*::]*/: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t/*::[*/0x0109/*::]*/: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t/*::[*/0x010A/*::]*/: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t/*::[*/0x010B/*::]*/: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t/*::[*/0x010C/*::]*/: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t/*::[*/0x010D/*::]*/: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t/*::[*/0x010E/*::]*/: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t/*::[*/0x010F/*::]*/: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t/*::[*/0x0110/*::]*/: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t/*::[*/0x0111/*::]*/: { /* n:\"BrtBeginDims\", */ T:1 },\n\t/*::[*/0x0112/*::]*/: { /* n:\"BrtEndDims\", */ T:-1 },\n\t/*::[*/0x0113/*::]*/: { /* n:\"BrtBeginDim\", */ T:1 },\n\t/*::[*/0x0114/*::]*/: { /* n:\"BrtEndDim\", */ T:-1 },\n\t/*::[*/0x0115/*::]*/: { /* n:\"BrtIndexPartEnd\" */ },\n\t/*::[*/0x0116/*::]*/: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t/*::[*/0x0117/*::]*/: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t/*::[*/0x0118/*::]*/: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t/*::[*/0x0119/*::]*/: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t/*::[*/0x011A/*::]*/: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t/*::[*/0x011B/*::]*/: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t/*::[*/0x011C/*::]*/: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t/*::[*/0x011D/*::]*/: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t/*::[*/0x011E/*::]*/: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t/*::[*/0x011F/*::]*/: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t/*::[*/0x0120/*::]*/: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t/*::[*/0x0121/*::]*/: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t/*::[*/0x0122/*::]*/: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t/*::[*/0x0123/*::]*/: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t/*::[*/0x0124/*::]*/: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t/*::[*/0x0125/*::]*/: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t/*::[*/0x0126/*::]*/: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t/*::[*/0x0127/*::]*/: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t/*::[*/0x0128/*::]*/: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t/*::[*/0x0129/*::]*/: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t/*::[*/0x012A/*::]*/: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t/*::[*/0x012B/*::]*/: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t/*::[*/0x012C/*::]*/: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t/*::[*/0x012D/*::]*/: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t/*::[*/0x012E/*::]*/: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t/*::[*/0x012F/*::]*/: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t/*::[*/0x0130/*::]*/: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t/*::[*/0x0131/*::]*/: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t/*::[*/0x0132/*::]*/: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t/*::[*/0x0133/*::]*/: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t/*::[*/0x0134/*::]*/: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t/*::[*/0x0135/*::]*/: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t/*::[*/0x0136/*::]*/: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t/*::[*/0x0137/*::]*/: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t/*::[*/0x0138/*::]*/: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t/*::[*/0x0139/*::]*/: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t/*::[*/0x013A/*::]*/: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t/*::[*/0x013B/*::]*/: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t/*::[*/0x013C/*::]*/: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t/*::[*/0x013D/*::]*/: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t/*::[*/0x013E/*::]*/: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t/*::[*/0x013F/*::]*/: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t/*::[*/0x0140/*::]*/: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t/*::[*/0x0141/*::]*/: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t/*::[*/0x0142/*::]*/: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t/*::[*/0x0143/*::]*/: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t/*::[*/0x0144/*::]*/: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t/*::[*/0x0145/*::]*/: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t/*::[*/0x0146/*::]*/: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t/*::[*/0x0147/*::]*/: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t/*::[*/0x0148/*::]*/: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t/*::[*/0x0149/*::]*/: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t/*::[*/0x014A/*::]*/: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t/*::[*/0x014B/*::]*/: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t/*::[*/0x014C/*::]*/: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t/*::[*/0x014D/*::]*/: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t/*::[*/0x014E/*::]*/: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t/*::[*/0x014F/*::]*/: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t/*::[*/0x0150/*::]*/: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t/*::[*/0x0151/*::]*/: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t/*::[*/0x0152/*::]*/: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t/*::[*/0x0153/*::]*/: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t/*::[*/0x0154/*::]*/: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t/*::[*/0x0155/*::]*/: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t/*::[*/0x0156/*::]*/: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t/*::[*/0x0157/*::]*/: { /* n:\"BrtBeginList\", */ T:1 },\n\t/*::[*/0x0158/*::]*/: { /* n:\"BrtEndList\", */ T:-1 },\n\t/*::[*/0x0159/*::]*/: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t/*::[*/0x015A/*::]*/: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t/*::[*/0x015B/*::]*/: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t/*::[*/0x015C/*::]*/: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t/*::[*/0x015D/*::]*/: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t/*::[*/0x015E/*::]*/: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t/*::[*/0x015F/*::]*/: { /* n:\"BrtListCCFmla\" */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"BrtListTrFmla\" */ },\n\t/*::[*/0x0161/*::]*/: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t/*::[*/0x0162/*::]*/: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t/*::[*/0x0163/*::]*/: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t/*::[*/0x0165/*::]*/: { /* n:\"BrtSupSelf\" */ },\n\t/*::[*/0x0166/*::]*/: { /* n:\"BrtSupSame\" */ },\n\t/*::[*/0x0167/*::]*/: { /* n:\"BrtSupTabs\" */ },\n\t/*::[*/0x0168/*::]*/: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t/*::[*/0x0169/*::]*/: { /* n:\"BrtPlaceholderName\" */ },\n\t/*::[*/0x016A/*::]*/: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x016B/*::]*/: { /* n:\"BrtExternTableStart\" */ },\n\t/*::[*/0x016C/*::]*/: { /* n:\"BrtExternTableEnd\" */ },\n\t/*::[*/0x016E/*::]*/: { /* n:\"BrtExternRowHdr\" */ },\n\t/*::[*/0x016F/*::]*/: { /* n:\"BrtExternCellBlank\" */ },\n\t/*::[*/0x0170/*::]*/: { /* n:\"BrtExternCellReal\" */ },\n\t/*::[*/0x0171/*::]*/: { /* n:\"BrtExternCellBool\" */ },\n\t/*::[*/0x0172/*::]*/: { /* n:\"BrtExternCellError\" */ },\n\t/*::[*/0x0173/*::]*/: { /* n:\"BrtExternCellString\" */ },\n\t/*::[*/0x0174/*::]*/: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t/*::[*/0x0175/*::]*/: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t/*::[*/0x0176/*::]*/: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t/*::[*/0x0177/*::]*/: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t/*::[*/0x0178/*::]*/: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t/*::[*/0x0179/*::]*/: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t/*::[*/0x017A/*::]*/: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t/*::[*/0x017B/*::]*/: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t/*::[*/0x017C/*::]*/: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t/*::[*/0x017D/*::]*/: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t/*::[*/0x017E/*::]*/: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t/*::[*/0x017F/*::]*/: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t/*::[*/0x0180/*::]*/: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0181/*::]*/: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0182/*::]*/: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t/*::[*/0x0183/*::]*/: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t/*::[*/0x0184/*::]*/: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t/*::[*/0x0185/*::]*/: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t/*::[*/0x0186/*::]*/: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t/*::[*/0x0187/*::]*/: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t/*::[*/0x0188/*::]*/: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t/*::[*/0x0189/*::]*/: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t/*::[*/0x018A/*::]*/: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t/*::[*/0x018B/*::]*/: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t/*::[*/0x018C/*::]*/: { /* n:\"BrtBrk\" */ },\n\t/*::[*/0x018D/*::]*/: { /* n:\"BrtUserBookView\" */ },\n\t/*::[*/0x018E/*::]*/: { /* n:\"BrtInfo\" */ },\n\t/*::[*/0x018F/*::]*/: { /* n:\"BrtCUsr\" */ },\n\t/*::[*/0x0190/*::]*/: { /* n:\"BrtUsr\" */ },\n\t/*::[*/0x0191/*::]*/: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t/*::[*/0x0193/*::]*/: { /* n:\"BrtEOF\" */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"BrtUCR\" */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"BrtRRInsDel\" */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"BrtRREndInsDel\" */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BrtRRMove\" */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"BrtRREndMove\" */ },\n\t/*::[*/0x0199/*::]*/: { /* n:\"BrtRRChgCell\" */ },\n\t/*::[*/0x019A/*::]*/: { /* n:\"BrtRREndChgCell\" */ },\n\t/*::[*/0x019B/*::]*/: { /* n:\"BrtRRHeader\" */ },\n\t/*::[*/0x019C/*::]*/: { /* n:\"BrtRRUserView\" */ },\n\t/*::[*/0x019D/*::]*/: { /* n:\"BrtRRRenSheet\" */ },\n\t/*::[*/0x019E/*::]*/: { /* n:\"BrtRRInsertSh\" */ },\n\t/*::[*/0x019F/*::]*/: { /* n:\"BrtRRDefName\" */ },\n\t/*::[*/0x01A0/*::]*/: { /* n:\"BrtRRNote\" */ },\n\t/*::[*/0x01A1/*::]*/: { /* n:\"BrtRRConflict\" */ },\n\t/*::[*/0x01A2/*::]*/: { /* n:\"BrtRRTQSIF\" */ },\n\t/*::[*/0x01A3/*::]*/: { /* n:\"BrtRRFormat\" */ },\n\t/*::[*/0x01A4/*::]*/: { /* n:\"BrtRREndFormat\" */ },\n\t/*::[*/0x01A5/*::]*/: { /* n:\"BrtRRAutoFmt\" */ },\n\t/*::[*/0x01A6/*::]*/: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t/*::[*/0x01A7/*::]*/: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t/*::[*/0x01A8/*::]*/: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t/*::[*/0x01A9/*::]*/: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t/*::[*/0x01AA/*::]*/: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t/*::[*/0x01AB/*::]*/: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t/*::[*/0x01AC/*::]*/: { /* n:\"BrtTable\" */ },\n\t/*::[*/0x01AD/*::]*/: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t/*::[*/0x01AE/*::]*/: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t/*::[*/0x01AF/*::]*/: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t/*::[*/0x01B0/*::]*/: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t/*::[*/0x01B1/*::]*/: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t/*::[*/0x01B2/*::]*/: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t/*::[*/0x01B3/*::]*/: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t/*::[*/0x01B4/*::]*/: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t/*::[*/0x01B5/*::]*/: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t/*::[*/0x01B6/*::]*/: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t/*::[*/0x01B7/*::]*/: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t/*::[*/0x01B8/*::]*/: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t/*::[*/0x01B9/*::]*/: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t/*::[*/0x01BA/*::]*/: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t/*::[*/0x01BB/*::]*/: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t/*::[*/0x01BC/*::]*/: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t/*::[*/0x01BD/*::]*/: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t/*::[*/0x01BE/*::]*/: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t/*::[*/0x01BF/*::]*/: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t/*::[*/0x01C0/*::]*/: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t/*::[*/0x01C1/*::]*/: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t/*::[*/0x01C2/*::]*/: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t/*::[*/0x01C3/*::]*/: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t/*::[*/0x01C4/*::]*/: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t/*::[*/0x01C5/*::]*/: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t/*::[*/0x01C6/*::]*/: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t/*::[*/0x01C7/*::]*/: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t/*::[*/0x01C8/*::]*/: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t/*::[*/0x01C9/*::]*/: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t/*::[*/0x01CA/*::]*/: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t/*::[*/0x01CB/*::]*/: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t/*::[*/0x01CC/*::]*/: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t/*::[*/0x01CD/*::]*/: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t/*::[*/0x01CE/*::]*/: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t/*::[*/0x01CF/*::]*/: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t/*::[*/0x01D0/*::]*/: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t/*::[*/0x01D1/*::]*/: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t/*::[*/0x01D2/*::]*/: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t/*::[*/0x01D3/*::]*/: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t/*::[*/0x01D4/*::]*/: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t/*::[*/0x01D5/*::]*/: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t/*::[*/0x01D6/*::]*/: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t/*::[*/0x01D7/*::]*/: { /* n:\"BrtCFVO\" */ },\n\t/*::[*/0x01D8/*::]*/: { /* n:\"BrtExternValueMeta\" */ },\n\t/*::[*/0x01D9/*::]*/: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t/*::[*/0x01DA/*::]*/: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t/*::[*/0x01DB/*::]*/: { /* n:\"BrtIndexedColor\" */ },\n\t/*::[*/0x01DC/*::]*/: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t/*::[*/0x01DD/*::]*/: { /* n:\"BrtPrintOptions\" */ },\n\t/*::[*/0x01DE/*::]*/: { /* n:\"BrtPageSetup\" */ },\n\t/*::[*/0x01DF/*::]*/: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t/*::[*/0x01E0/*::]*/: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t/*::[*/0x01E1/*::]*/: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t/*::[*/0x01E2/*::]*/: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t/*::[*/0x01E3/*::]*/: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t/*::[*/0x01E4/*::]*/: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t/*::[*/0x01E5/*::]*/: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t/*::[*/0x01E6/*::]*/: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t/*::[*/0x01E7/*::]*/: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t/*::[*/0x01E8/*::]*/: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t/*::[*/0x01E9/*::]*/: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t/*::[*/0x01EA/*::]*/: { /* n:\"BrtBeginMG\", */ T:1 },\n\t/*::[*/0x01EB/*::]*/: { /* n:\"BrtEndMG\", */ T:-1 },\n\t/*::[*/0x01EC/*::]*/: { /* n:\"BrtBeginMap\", */ T:1 },\n\t/*::[*/0x01ED/*::]*/: { /* n:\"BrtEndMap\", */ T:-1 },\n\t/*::[*/0x01EE/*::]*/: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t/*::[*/0x01EF/*::]*/: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t/*::[*/0x01F0/*::]*/: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t/*::[*/0x01F1/*::]*/: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t/*::[*/0x01F2/*::]*/: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t/*::[*/0x01F3/*::]*/: { /* n:\"BrtDRef\" */ },\n\t/*::[*/0x01F4/*::]*/: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t/*::[*/0x01F5/*::]*/: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t/*::[*/0x01F6/*::]*/: { /* n:\"BrtBeginSct\", */ T:1 },\n\t/*::[*/0x01F7/*::]*/: { /* n:\"BrtEndSct\", */ T:-1 },\n\t/*::[*/0x01F8/*::]*/: { /* n:\"BrtSlc\" */ },\n\t/*::[*/0x01F9/*::]*/: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t/*::[*/0x01FA/*::]*/: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t/*::[*/0x01FB/*::]*/: { /* n:\"BrtDXF\" */ },\n\t/*::[*/0x01FC/*::]*/: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t/*::[*/0x01FD/*::]*/: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t/*::[*/0x01FE/*::]*/: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t/*::[*/0x01FF/*::]*/: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"BrtTableStyleElement\" */ },\n\t/*::[*/0x0201/*::]*/: { /* n:\"BrtTableStyleClient\" */ },\n\t/*::[*/0x0202/*::]*/: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t/*::[*/0x0203/*::]*/: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t/*::[*/0x0204/*::]*/: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t/*::[*/0x0206/*::]*/: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t/*::[*/0x0207/*::]*/: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t/*::[*/0x0208/*::]*/: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t/*::[*/0x020A/*::]*/: { /* n:\"BrtVolSubtopic\" */ },\n\t/*::[*/0x020B/*::]*/: { /* n:\"BrtVolRef\" */ },\n\t/*::[*/0x020C/*::]*/: { /* n:\"BrtVolNum\" */ },\n\t/*::[*/0x020D/*::]*/: { /* n:\"BrtVolErr\" */ },\n\t/*::[*/0x020E/*::]*/: { /* n:\"BrtVolStr\" */ },\n\t/*::[*/0x020F/*::]*/: { /* n:\"BrtVolBool\" */ },\n\t/*::[*/0x0210/*::]*/: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t/*::[*/0x0211/*::]*/: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t/*::[*/0x0212/*::]*/: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t/*::[*/0x0213/*::]*/: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t/*::[*/0x0214/*::]*/: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t/*::[*/0x0215/*::]*/: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t/*::[*/0x0216/*::]*/: { /* n:\"BrtBookProtection\" */ },\n\t/*::[*/0x0217/*::]*/: { /* n:\"BrtSheetProtection\" */ },\n\t/*::[*/0x0218/*::]*/: { /* n:\"BrtRangeProtection\" */ },\n\t/*::[*/0x0219/*::]*/: { /* n:\"BrtPhoneticInfo\" */ },\n\t/*::[*/0x021A/*::]*/: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t/*::[*/0x021B/*::]*/: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t/*::[*/0x021C/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t/*::[*/0x021D/*::]*/: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t/*::[*/0x021E/*::]*/: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t/*::[*/0x0224/*::]*/: { /* n:\"BrtFileSharing\" */ },\n\t/*::[*/0x0225/*::]*/: { /* n:\"BrtOleSize\" */ },\n\t/*::[*/0x0226/*::]*/: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t/*::[*/0x0227/*::]*/: { /* n:\"BrtLegacyDrawing\" */ },\n\t/*::[*/0x0228/*::]*/: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t/*::[*/0x0229/*::]*/: { /* n:\"BrtWebOpt\" */ },\n\t/*::[*/0x022A/*::]*/: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t/*::[*/0x022B/*::]*/: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t/*::[*/0x022C/*::]*/: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t/*::[*/0x022D/*::]*/: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t/*::[*/0x022E/*::]*/: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t/*::[*/0x022F/*::]*/: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t/*::[*/0x0230/*::]*/: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t/*::[*/0x0231/*::]*/: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t/*::[*/0x0232/*::]*/: { /* n:\"BrtBkHim\" */ },\n\t/*::[*/0x0234/*::]*/: { /* n:\"BrtColor\" */ },\n\t/*::[*/0x0235/*::]*/: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t/*::[*/0x0236/*::]*/: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t/*::[*/0x0239/*::]*/: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t/*::[*/0x023A/*::]*/: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t/*::[*/0x023C/*::]*/: { /* n:\"BrtMRUColor\" */ },\n\t/*::[*/0x023D/*::]*/: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t/*::[*/0x023E/*::]*/: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t/*::[*/0x0241/*::]*/: { /* n:\"BrtSupNameStart\" */ },\n\t/*::[*/0x0242/*::]*/: { /* n:\"BrtSupNameValueStart\" */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BrtSupNameValueEnd\" */ },\n\t/*::[*/0x0244/*::]*/: { /* n:\"BrtSupNameNum\" */ },\n\t/*::[*/0x0245/*::]*/: { /* n:\"BrtSupNameErr\" */ },\n\t/*::[*/0x0246/*::]*/: { /* n:\"BrtSupNameSt\" */ },\n\t/*::[*/0x0247/*::]*/: { /* n:\"BrtSupNameNil\" */ },\n\t/*::[*/0x0248/*::]*/: { /* n:\"BrtSupNameBool\" */ },\n\t/*::[*/0x0249/*::]*/: { /* n:\"BrtSupNameFmla\" */ },\n\t/*::[*/0x024A/*::]*/: { /* n:\"BrtSupNameBits\" */ },\n\t/*::[*/0x024B/*::]*/: { /* n:\"BrtSupNameEnd\" */ },\n\t/*::[*/0x024C/*::]*/: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t/*::[*/0x024D/*::]*/: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t/*::[*/0x024E/*::]*/: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t/*::[*/0x024F/*::]*/: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t/*::[*/0x0250/*::]*/: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t/*::[*/0x0251/*::]*/: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t/*::[*/0x0252/*::]*/: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t/*::[*/0x0253/*::]*/: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t/*::[*/0x0254/*::]*/: { /* n:\"BrtSmartTagType\" */ },\n\t/*::[*/0x0255/*::]*/: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t/*::[*/0x0256/*::]*/: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t/*::[*/0x0257/*::]*/: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t/*::[*/0x0258/*::]*/: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t/*::[*/0x0259/*::]*/: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t/*::[*/0x025A/*::]*/: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t/*::[*/0x025B/*::]*/: { /* n:\"BrtBeginFills\", */ T:1 },\n\t/*::[*/0x025C/*::]*/: { /* n:\"BrtEndFills\", */ T:-1 },\n\t/*::[*/0x025D/*::]*/: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t/*::[*/0x025E/*::]*/: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t/*::[*/0x025F/*::]*/: { /* n:\"BrtCellWatch\" */ },\n\t/*::[*/0x0260/*::]*/: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t/*::[*/0x0261/*::]*/: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t/*::[*/0x0262/*::]*/: { /* n:\"BrtCrashRecErr\" */ },\n\t/*::[*/0x0263/*::]*/: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t/*::[*/0x0264/*::]*/: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t/*::[*/0x0265/*::]*/: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t/*::[*/0x0266/*::]*/: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t/*::[*/0x0267/*::]*/: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t/*::[*/0x0268/*::]*/: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t/*::[*/0x0269/*::]*/: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t/*::[*/0x026A/*::]*/: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t/*::[*/0x026B/*::]*/: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t/*::[*/0x026C/*::]*/: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t/*::[*/0x0271/*::]*/: { /* n:\"BrtBigName\" */ },\n\t/*::[*/0x0272/*::]*/: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t/*::[*/0x0273/*::]*/: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t/*::[*/0x0274/*::]*/: { /* n:\"BrtBeginComments\", */ T:1 },\n\t/*::[*/0x0275/*::]*/: { /* n:\"BrtEndComments\", */ T:-1 },\n\t/*::[*/0x0276/*::]*/: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t/*::[*/0x0277/*::]*/: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t/*::[*/0x0278/*::]*/: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t/*::[*/0x0279/*::]*/: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t/*::[*/0x027A/*::]*/: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t/*::[*/0x027B/*::]*/: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t/*::[*/0x027C/*::]*/: { /* n:\"BrtEndComment\", */ T:-1 },\n\t/*::[*/0x027D/*::]*/: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t/*::[*/0x027E/*::]*/: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t/*::[*/0x027F/*::]*/: { /* n:\"BrtOleObject\" */ },\n\t/*::[*/0x0280/*::]*/: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t/*::[*/0x0281/*::]*/: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t/*::[*/0x0282/*::]*/: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t/*::[*/0x0283/*::]*/: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t/*::[*/0x0284/*::]*/: { /* n:\"BrtActiveX\" */ },\n\t/*::[*/0x0285/*::]*/: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t/*::[*/0x0286/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t/*::[*/0x0288/*::]*/: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t/*::[*/0x0289/*::]*/: { /* n:\"BrtCellIgnoreEC\" */ },\n\t/*::[*/0x028A/*::]*/: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t/*::[*/0x028B/*::]*/: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t/*::[*/0x028C/*::]*/: { /* n:\"BrtCsPageSetup\" */ },\n\t/*::[*/0x028D/*::]*/: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t/*::[*/0x028E/*::]*/: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t/*::[*/0x028F/*::]*/: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t/*::[*/0x0290/*::]*/: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t/*::[*/0x0291/*::]*/: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t/*::[*/0x0292/*::]*/: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t/*::[*/0x0293/*::]*/: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t/*::[*/0x0294/*::]*/: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t/*::[*/0x0295/*::]*/: { /* n:\"BrtListPart\" */ },\n\t/*::[*/0x0296/*::]*/: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t/*::[*/0x0297/*::]*/: { /* n:\"BrtSheetCalcProp\" */ },\n\t/*::[*/0x0298/*::]*/: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t/*::[*/0x0299/*::]*/: { /* n:\"BrtFnGroup\" */ },\n\t/*::[*/0x029A/*::]*/: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t/*::[*/0x029B/*::]*/: { /* n:\"BrtSupAddin\" */ },\n\t/*::[*/0x029C/*::]*/: { /* n:\"BrtSXTDMPOrder\" */ },\n\t/*::[*/0x029D/*::]*/: { /* n:\"BrtCsProtection\" */ },\n\t/*::[*/0x029F/*::]*/: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t/*::[*/0x02A0/*::]*/: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t/*::[*/0x02A1/*::]*/: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t/*::[*/0x02A2/*::]*/: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t/*::[*/0x02A3/*::]*/: { /* n:\"BrtRRSortItem\" */ },\n\t/*::[*/0x02A4/*::]*/: { /* n:\"BrtFileSharingIso\" */ },\n\t/*::[*/0x02A5/*::]*/: { /* n:\"BrtBookProtectionIso\" */ },\n\t/*::[*/0x02A6/*::]*/: { /* n:\"BrtSheetProtectionIso\" */ },\n\t/*::[*/0x02A7/*::]*/: { /* n:\"BrtCsProtectionIso\" */ },\n\t/*::[*/0x02A8/*::]*/: { /* n:\"BrtRangeProtectionIso\" */ },\n\t/*::[*/0x02A9/*::]*/: { /* n:\"BrtDValList\" */ },\n\t/*::[*/0x0400/*::]*/: { /* n:\"BrtRwDescent\" */ },\n\t/*::[*/0x0401/*::]*/: { /* n:\"BrtKnownFonts\" */ },\n\t/*::[*/0x0402/*::]*/: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t/*::[*/0x0403/*::]*/: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t/*::[*/0x0404/*::]*/: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t/*::[*/0x0405/*::]*/: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t/*::[*/0x0406/*::]*/: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t/*::[*/0x0407/*::]*/: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t/*::[*/0x0408/*::]*/: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t/*::[*/0x040A/*::]*/: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t/*::[*/0x040B/*::]*/: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t/*::[*/0x040C/*::]*/: { /* n:\"BrtNameExt\" */ },\n\t/*::[*/0x040D/*::]*/: { /* n:\"BrtPCDH14\" */ },\n\t/*::[*/0x040E/*::]*/: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t/*::[*/0x040F/*::]*/: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t/*::[*/0x0410/*::]*/: { /* n:\"BrtSXTH14\" */ },\n\t/*::[*/0x0411/*::]*/: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t/*::[*/0x0412/*::]*/: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t/*::[*/0x0413/*::]*/: { /* n:\"BrtSparkline\" */ },\n\t/*::[*/0x0414/*::]*/: { /* n:\"BrtSXDI14\" */ },\n\t/*::[*/0x0415/*::]*/: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t/*::[*/0x0416/*::]*/: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t/*::[*/0x0417/*::]*/: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t/*::[*/0x0419/*::]*/: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t/*::[*/0x041A/*::]*/: { /* n:\"BrtCFVO14\" */ },\n\t/*::[*/0x041B/*::]*/: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t/*::[*/0x041C/*::]*/: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t/*::[*/0x041D/*::]*/: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t/*::[*/0x041E/*::]*/: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t/*::[*/0x041F/*::]*/: { /* n:\"BrtColor14\" */ },\n\t/*::[*/0x0420/*::]*/: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t/*::[*/0x0421/*::]*/: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t/*::[*/0x0422/*::]*/: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t/*::[*/0x0423/*::]*/: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t/*::[*/0x0425/*::]*/: { /* n:\"BrtSXVD14\" */ },\n\t/*::[*/0x0426/*::]*/: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t/*::[*/0x0427/*::]*/: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t/*::[*/0x0428/*::]*/: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t/*::[*/0x0429/*::]*/: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t/*::[*/0x042A/*::]*/: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t/*::[*/0x042B/*::]*/: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t/*::[*/0x042C/*::]*/: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t/*::[*/0x042D/*::]*/: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t/*::[*/0x042E/*::]*/: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t/*::[*/0x042F/*::]*/: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t/*::[*/0x0430/*::]*/: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t/*::[*/0x0431/*::]*/: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t/*::[*/0x0433/*::]*/: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t/*::[*/0x0434/*::]*/: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t/*::[*/0x0435/*::]*/: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t/*::[*/0x0436/*::]*/: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t/*::[*/0x0437/*::]*/: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t/*::[*/0x0438/*::]*/: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t/*::[*/0x0439/*::]*/: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t/*::[*/0x043A/*::]*/: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t/*::[*/0x043B/*::]*/: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t/*::[*/0x043C/*::]*/: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t/*::[*/0x043D/*::]*/: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t/*::[*/0x043E/*::]*/: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t/*::[*/0x043F/*::]*/: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t/*::[*/0x0440/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t/*::[*/0x0441/*::]*/: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t/*::[*/0x0442/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t/*::[*/0x0444/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t/*::[*/0x0445/*::]*/: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t/*::[*/0x0446/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t/*::[*/0x0447/*::]*/: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t/*::[*/0x0448/*::]*/: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t/*::[*/0x0449/*::]*/: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t/*::[*/0x044A/*::]*/: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t/*::[*/0x044B/*::]*/: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t/*::[*/0x044C/*::]*/: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t/*::[*/0x044D/*::]*/: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t/*::[*/0x044E/*::]*/: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t/*::[*/0x044F/*::]*/: { /* n:\"BrtRangeProtection14\" */ },\n\t/*::[*/0x0450/*::]*/: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t/*::[*/0x0451/*::]*/: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t/*::[*/0x0457/*::]*/: { /* n:\"BrtList14\" */ },\n\t/*::[*/0x0458/*::]*/: { /* n:\"BrtCFIcon\" */ },\n\t/*::[*/0x0459/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x045A/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x045B/*::]*/: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t/*::[*/0x045C/*::]*/: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t/*::[*/0x045D/*::]*/: { /* n:\"BrtWbProp14\" */ },\n\t/*::[*/0x045E/*::]*/: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t/*::[*/0x045F/*::]*/: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t/*::[*/0x0460/*::]*/: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t/*::[*/0x0461/*::]*/: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t/*::[*/0x0462/*::]*/: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t/*::[*/0x0463/*::]*/: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t/*::[*/0x0464/*::]*/: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t/*::[*/0x0465/*::]*/: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t/*::[*/0x0466/*::]*/: { /* n:\"BrtSXTupleItems\" */ },\n\t/*::[*/0x0468/*::]*/: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t/*::[*/0x0469/*::]*/: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t/*::[*/0x046A/*::]*/: { /* n:\"BrtSlicerStyleElement\" */ },\n\t/*::[*/0x046B/*::]*/: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t/*::[*/0x046C/*::]*/: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t/*::[*/0x046D/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t/*::[*/0x046E/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t/*::[*/0x046F/*::]*/: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t/*::[*/0x0470/*::]*/: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t/*::[*/0x0471/*::]*/: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t/*::[*/0x0472/*::]*/: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t/*::[*/0x0473/*::]*/: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t/*::[*/0x0474/*::]*/: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t/*::[*/0x0475/*::]*/: { /* n:\"BrtPCDField14\" */ },\n\t/*::[*/0x0476/*::]*/: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t/*::[*/0x0477/*::]*/: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t/*::[*/0x0478/*::]*/: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t/*::[*/0x0479/*::]*/: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t/*::[*/0x047A/*::]*/: { /* n:\"BrtCFRuleExt\" */ },\n\t/*::[*/0x047B/*::]*/: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t/*::[*/0x047C/*::]*/: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t/*::[*/0x047D/*::]*/: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t/*::[*/0x047E/*::]*/: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t/*::[*/0x0480/*::]*/: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t/*::[*/0x0481/*::]*/: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t/*::[*/0x0482/*::]*/: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t/*::[*/0x0483/*::]*/: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t/*::[*/0x0484/*::]*/: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t/*::[*/0x0485/*::]*/: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t/*::[*/0x0486/*::]*/: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t/*::[*/0x0487/*::]*/: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t/*::[*/0x0488/*::]*/: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t/*::[*/0x0489/*::]*/: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t/*::[*/0x048A/*::]*/: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t/*::[*/0x048B/*::]*/: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t/*::[*/0x048C/*::]*/: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t/*::[*/0x048D/*::]*/: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t/*::[*/0x048E/*::]*/: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t/*::[*/0x048F/*::]*/: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t/*::[*/0x0490/*::]*/: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t/*::[*/0x0491/*::]*/: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t/*::[*/0x0492/*::]*/: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t/*::[*/0x0493/*::]*/: { /* n:\"BrtDxf14\" */ },\n\t/*::[*/0x0494/*::]*/: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t/*::[*/0x0495/*::]*/: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t/*::[*/0x0499/*::]*/: { /* n:\"BrtFilter14\" */ },\n\t/*::[*/0x049A/*::]*/: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t/*::[*/0x049C/*::]*/: { /* n:\"BrtCustomFilter14\" */ },\n\t/*::[*/0x049D/*::]*/: { /* n:\"BrtIconFilter14\" */ },\n\t/*::[*/0x049E/*::]*/: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t/*::[*/0x0800/*::]*/: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0801/*::]*/: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0802/*::]*/: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t/*::[*/0x0804/*::]*/: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t/*::[*/0x0805/*::]*/: { /* n:\"BrtPivotTableRef\" */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t/*::[*/0x0808/*::]*/: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t/*::[*/0x080A/*::]*/: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t/*::[*/0x080C/*::]*/: { /* n:\"BrtPcdCalcMem15\" */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"BrtQsi15\" */ },\n\t/*::[*/0x0814/*::]*/: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t/*::[*/0x0815/*::]*/: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t/*::[*/0x0816/*::]*/: { /* n:\"BrtWebExtension\" */ },\n\t/*::[*/0x0817/*::]*/: { /* n:\"BrtAbsPath15\" */ },\n\t/*::[*/0x0818/*::]*/: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t/*::[*/0x0819/*::]*/: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t/*::[*/0x081B/*::]*/: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t/*::[*/0x081C/*::]*/: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t/*::[*/0x081D/*::]*/: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t/*::[*/0x081E/*::]*/: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t/*::[*/0x081F/*::]*/: { /* n:\"BrtSxFilter15\" */ },\n\t/*::[*/0x0820/*::]*/: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0821/*::]*/: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0822/*::]*/: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t/*::[*/0x0823/*::]*/: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t/*::[*/0x0824/*::]*/: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t/*::[*/0x0825/*::]*/: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t/*::[*/0x0826/*::]*/: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t/*::[*/0x0827/*::]*/: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t/*::[*/0x0828/*::]*/: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t/*::[*/0x0829/*::]*/: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t/*::[*/0x082A/*::]*/: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t/*::[*/0x082B/*::]*/: { /* n:\"BrtWorkBookPr15\" */ },\n\t/*::[*/0x082C/*::]*/: { /* n:\"BrtPCDH15\" */ },\n\t/*::[*/0x082D/*::]*/: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t/*::[*/0x082E/*::]*/: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t/*::[*/0x082F/*::]*/: { /* n:\"BrtTimelineStyleElement\" */ },\n\t/*::[*/0x0830/*::]*/: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t/*::[*/0x0831/*::]*/: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t/*::[*/0x0832/*::]*/: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t/*::[*/0x0833/*::]*/: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t/*::[*/0x0834/*::]*/: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t/*::[*/0x0835/*::]*/: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t/*::[*/0x0836/*::]*/: { /* n:\"BrtDxf15\" */ },\n\t/*::[*/0x0837/*::]*/: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t/*::[*/0x0838/*::]*/: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t/*::[*/0x0839/*::]*/: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t/*::[*/0x083A/*::]*/: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t/*::[*/0x083B/*::]*/: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t/*::[*/0x083C/*::]*/: { /* n:\"BrtItemUniqueName\" */ },\n\t/*::[*/0x083D/*::]*/: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t/*::[*/0x083E/*::]*/: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t/*::[*/0x083F/*::]*/: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t/*::[*/0x0840/*::]*/: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t/*::[*/0x0841/*::]*/: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t/*::[*/0x0842/*::]*/: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t/*::[*/0x0843/*::]*/: { /* n:\"BrtTextPr15\" */ },\n\t/*::[*/0x0844/*::]*/: { /* n:\"BrtRangePr15\" */ },\n\t/*::[*/0x0845/*::]*/: { /* n:\"BrtDbCommand15\" */ },\n\t/*::[*/0x0846/*::]*/: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t/*::[*/0x0847/*::]*/: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t/*::[*/0x0848/*::]*/: { /* n:\"BrtDbTable15\" */ },\n\t/*::[*/0x0849/*::]*/: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t/*::[*/0x084A/*::]*/: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t/*::[*/0x084B/*::]*/: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t/*::[*/0x084C/*::]*/: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t/*::[*/0x084D/*::]*/: { /* n:\"BrtModelTable\" */ },\n\t/*::[*/0x084E/*::]*/: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t/*::[*/0x084F/*::]*/: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t/*::[*/0x0850/*::]*/: { /* n:\"BrtModelRelationship\" */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t/*::[*/0x0852/*::]*/: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t/*::[*/0x0853/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t/*::[*/0x0854/*::]*/: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t/*::[*/0x0855/*::]*/: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t/*::[*/0x0856/*::]*/: { /* n:\"BrtFieldListActiveItem\" */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"BrtSXDI15\" */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t/*::[*/0x085A/*::]*/: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t/*::[*/0x085B/*::]*/: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t/*::[*/0x085C/*::]*/: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t/*::[*/0x085D/*::]*/: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t/*::[*/0x0C00/*::]*/: { /* n:\"BrtUid\" */ },\n\t/*::[*/0x0C01/*::]*/: { /* n:\"BrtRevisionPtr\" */ },\n\t/*::[*/0x1000/*::]*/: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t/*::[*/0x1001/*::]*/: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t/*::[*/0x138A/*::]*/: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t/*::[*/0x138B/*::]*/: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t/*::[*/0x13D9/*::]*/: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t/*::[*/0x13DA/*::]*/: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t/*::[*/0x13DB/*::]*/: { /* n:\"BrtRichFilter\" */ },\n\t/*::[*/0x13DC/*::]*/: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t/*::[*/0x13DD/*::]*/: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t/*::[*/0x13DE/*::]*/: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t/*::[*/0x13DF/*::]*/: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t/*::[*/0x13E0/*::]*/: { /* n:\"BrtCustomRichFilter\" */ },\n\t/*::[*/0x13E1/*::]*/: { /* n:\"BrtTop10RichFilter\" */ },\n\t/*::[*/0x13E2/*::]*/: { /* n:\"BrtDynamicRichFilter\" */ },\n\t/*::[*/0x13E4/*::]*/: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t/*::[*/0x13E5/*::]*/: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t/*::[*/0x13E6/*::]*/: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t/*::[*/0x13E7/*::]*/: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t/*::[*/0x13E8/*::]*/: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t/*::[*/0x13E9/*::]*/: { /* n:\"BrtCalcFeature\" */ },\n\t/*::[*/0x13EB/*::]*/: { /* n:\"BrtExternalLinksPr\" */ },\n\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t/*::[*/0x0006/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x000a/*::]*/: { /* n:\"EOF\", */ f:parsenoop2 },\n\t/*::[*/0x000c/*::]*/: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t/*::[*/0x000d/*::]*/: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t/*::[*/0x000e/*::]*/: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t/*::[*/0x000f/*::]*/: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t/*::[*/0x0010/*::]*/: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t/*::[*/0x0011/*::]*/: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t/*::[*/0x0012/*::]*/: { /* n:\"Protect\", */ f:parsebool },\n\t/*::[*/0x0013/*::]*/: { /* n:\"Password\", */ f:parseuint16 },\n\t/*::[*/0x0014/*::]*/: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0015/*::]*/: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0017/*::]*/: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x0018/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0019/*::]*/: { /* n:\"WinProtect\", */ f:parsebool },\n\t/*::[*/0x001a/*::]*/: { /* n:\"VerticalPageBreaks\", */ },\n\t/*::[*/0x001b/*::]*/: { /* n:\"HorizontalPageBreaks\", */ },\n\t/*::[*/0x001c/*::]*/: { /* n:\"Note\", */ f:parse_Note },\n\t/*::[*/0x001d/*::]*/: { /* n:\"Selection\", */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"Date1904\", */ f:parsebool },\n\t/*::[*/0x0023/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0026/*::]*/: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0027/*::]*/: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0028/*::]*/: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0029/*::]*/: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x002a/*::]*/: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t/*::[*/0x002b/*::]*/: { /* n:\"PrintGrid\", */ f:parsebool },\n\t/*::[*/0x002f/*::]*/: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t/*::[*/0x0031/*::]*/: { /* n:\"Font\", */ f:parse_Font },\n\t/*::[*/0x0033/*::]*/: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t/*::[*/0x003c/*::]*/: { /* n:\"Continue\", */ },\n\t/*::[*/0x003d/*::]*/: { /* n:\"Window1\", */ f:parse_Window1 },\n\t/*::[*/0x0040/*::]*/: { /* n:\"Backup\", */ f:parsebool },\n\t/*::[*/0x0041/*::]*/: { /* n:\"Pane\", */ f:parse_Pane },\n\t/*::[*/0x0042/*::]*/: { /* n:\"CodePage\", */ f:parseuint16 },\n\t/*::[*/0x004d/*::]*/: { /* n:\"Pls\", */ },\n\t/*::[*/0x0050/*::]*/: { /* n:\"DCon\", */ },\n\t/*::[*/0x0051/*::]*/: { /* n:\"DConRef\", */ },\n\t/*::[*/0x0052/*::]*/: { /* n:\"DConName\", */ },\n\t/*::[*/0x0055/*::]*/: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t/*::[*/0x0059/*::]*/: { /* n:\"XCT\", */ },\n\t/*::[*/0x005a/*::]*/: { /* n:\"CRN\", */ },\n\t/*::[*/0x005b/*::]*/: { /* n:\"FileSharing\", */ },\n\t/*::[*/0x005c/*::]*/: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t/*::[*/0x005d/*::]*/: { /* n:\"Obj\", */ f:parse_Obj },\n\t/*::[*/0x005e/*::]*/: { /* n:\"Uncalced\", */ },\n\t/*::[*/0x005f/*::]*/: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t/*::[*/0x0060/*::]*/: { /* n:\"Template\", */ },\n\t/*::[*/0x0061/*::]*/: { /* n:\"Intl\", */ },\n\t/*::[*/0x0063/*::]*/: { /* n:\"ObjProtect\", */ f:parsebool },\n\t/*::[*/0x007d/*::]*/: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x0080/*::]*/: { /* n:\"Guts\", */ f:parse_Guts },\n\t/*::[*/0x0081/*::]*/: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t/*::[*/0x0082/*::]*/: { /* n:\"GridSet\", */ f:parseuint16 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"HCenter\", */ f:parsebool },\n\t/*::[*/0x0084/*::]*/: { /* n:\"VCenter\", */ f:parsebool },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"WriteProtect\", */ },\n\t/*::[*/0x008c/*::]*/: { /* n:\"Country\", */ f:parse_Country },\n\t/*::[*/0x008d/*::]*/: { /* n:\"HideObj\", */ f:parseuint16 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"Sort\", */ },\n\t/*::[*/0x0092/*::]*/: { /* n:\"Palette\", */ f:parse_Palette },\n\t/*::[*/0x0097/*::]*/: { /* n:\"Sync\", */ },\n\t/*::[*/0x0098/*::]*/: { /* n:\"LPr\", */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"DxGCol\", */ },\n\t/*::[*/0x009a/*::]*/: { /* n:\"FnGroupName\", */ },\n\t/*::[*/0x009b/*::]*/: { /* n:\"FilterMode\", */ },\n\t/*::[*/0x009c/*::]*/: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t/*::[*/0x009d/*::]*/: { /* n:\"AutoFilterInfo\", */ },\n\t/*::[*/0x009e/*::]*/: { /* n:\"AutoFilter\", */ },\n\t/*::[*/0x00a0/*::]*/: { /* n:\"Scl\", */ f:parse_Scl },\n\t/*::[*/0x00a1/*::]*/: { /* n:\"Setup\", */ f:parse_Setup },\n\t/*::[*/0x00ae/*::]*/: { /* n:\"ScenMan\", */ },\n\t/*::[*/0x00af/*::]*/: { /* n:\"SCENARIO\", */ },\n\t/*::[*/0x00b0/*::]*/: { /* n:\"SxView\", */ },\n\t/*::[*/0x00b1/*::]*/: { /* n:\"Sxvd\", */ },\n\t/*::[*/0x00b2/*::]*/: { /* n:\"SXVI\", */ },\n\t/*::[*/0x00b4/*::]*/: { /* n:\"SxIvd\", */ },\n\t/*::[*/0x00b5/*::]*/: { /* n:\"SXLI\", */ },\n\t/*::[*/0x00b6/*::]*/: { /* n:\"SXPI\", */ },\n\t/*::[*/0x00b8/*::]*/: { /* n:\"DocRoute\", */ },\n\t/*::[*/0x00b9/*::]*/: { /* n:\"RecipName\", */ },\n\t/*::[*/0x00bd/*::]*/: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t/*::[*/0x00be/*::]*/: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t/*::[*/0x00c1/*::]*/: { /* n:\"Mms\", */ f:parsenoop2 },\n\t/*::[*/0x00c5/*::]*/: { /* n:\"SXDI\", */ },\n\t/*::[*/0x00c6/*::]*/: { /* n:\"SXDB\", */ },\n\t/*::[*/0x00c7/*::]*/: { /* n:\"SXFDB\", */ },\n\t/*::[*/0x00c8/*::]*/: { /* n:\"SXDBB\", */ },\n\t/*::[*/0x00c9/*::]*/: { /* n:\"SXNum\", */ },\n\t/*::[*/0x00ca/*::]*/: { /* n:\"SxBool\", */ f:parsebool },\n\t/*::[*/0x00cb/*::]*/: { /* n:\"SxErr\", */ },\n\t/*::[*/0x00cc/*::]*/: { /* n:\"SXInt\", */ },\n\t/*::[*/0x00cd/*::]*/: { /* n:\"SXString\", */ },\n\t/*::[*/0x00ce/*::]*/: { /* n:\"SXDtr\", */ },\n\t/*::[*/0x00cf/*::]*/: { /* n:\"SxNil\", */ },\n\t/*::[*/0x00d0/*::]*/: { /* n:\"SXTbl\", */ },\n\t/*::[*/0x00d1/*::]*/: { /* n:\"SXTBRGIITM\", */ },\n\t/*::[*/0x00d2/*::]*/: { /* n:\"SxTbpg\", */ },\n\t/*::[*/0x00d3/*::]*/: { /* n:\"ObProj\", */ },\n\t/*::[*/0x00d5/*::]*/: { /* n:\"SXStreamID\", */ },\n\t/*::[*/0x00d7/*::]*/: { /* n:\"DBCell\", */ },\n\t/*::[*/0x00d8/*::]*/: { /* n:\"SXRng\", */ },\n\t/*::[*/0x00d9/*::]*/: { /* n:\"SxIsxoper\", */ },\n\t/*::[*/0x00da/*::]*/: { /* n:\"BookBool\", */ f:parseuint16 },\n\t/*::[*/0x00dc/*::]*/: { /* n:\"DbOrParamQry\", */ },\n\t/*::[*/0x00dd/*::]*/: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t/*::[*/0x00de/*::]*/: { /* n:\"OleObjectSize\", */ },\n\t/*::[*/0x00e0/*::]*/: { /* n:\"XF\", */ f:parse_XF },\n\t/*::[*/0x00e1/*::]*/: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t/*::[*/0x00e2/*::]*/: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t/*::[*/0x00e3/*::]*/: { /* n:\"SXVS\", */ },\n\t/*::[*/0x00e5/*::]*/: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t/*::[*/0x00e9/*::]*/: { /* n:\"BkHim\", */ },\n\t/*::[*/0x00eb/*::]*/: { /* n:\"MsoDrawingGroup\", */ },\n\t/*::[*/0x00ec/*::]*/: { /* n:\"MsoDrawing\", */ },\n\t/*::[*/0x00ed/*::]*/: { /* n:\"MsoDrawingSelection\", */ },\n\t/*::[*/0x00ef/*::]*/: { /* n:\"PhoneticInfo\", */ },\n\t/*::[*/0x00f0/*::]*/: { /* n:\"SxRule\", */ },\n\t/*::[*/0x00f1/*::]*/: { /* n:\"SXEx\", */ },\n\t/*::[*/0x00f2/*::]*/: { /* n:\"SxFilt\", */ },\n\t/*::[*/0x00f4/*::]*/: { /* n:\"SxDXF\", */ },\n\t/*::[*/0x00f5/*::]*/: { /* n:\"SxItm\", */ },\n\t/*::[*/0x00f6/*::]*/: { /* n:\"SxName\", */ },\n\t/*::[*/0x00f7/*::]*/: { /* n:\"SxSelect\", */ },\n\t/*::[*/0x00f8/*::]*/: { /* n:\"SXPair\", */ },\n\t/*::[*/0x00f9/*::]*/: { /* n:\"SxFmla\", */ },\n\t/*::[*/0x00fb/*::]*/: { /* n:\"SxFormat\", */ },\n\t/*::[*/0x00fc/*::]*/: { /* n:\"SST\", */ f:parse_SST },\n\t/*::[*/0x00fd/*::]*/: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t/*::[*/0x00ff/*::]*/: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t/*::[*/0x0100/*::]*/: { /* n:\"SXVDEx\", */ },\n\t/*::[*/0x0103/*::]*/: { /* n:\"SXFormula\", */ },\n\t/*::[*/0x0122/*::]*/: { /* n:\"SXDBEx\", */ },\n\t/*::[*/0x0137/*::]*/: { /* n:\"RRDInsDel\", */ },\n\t/*::[*/0x0138/*::]*/: { /* n:\"RRDHead\", */ },\n\t/*::[*/0x013b/*::]*/: { /* n:\"RRDChgCell\", */ },\n\t/*::[*/0x013d/*::]*/: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t/*::[*/0x013e/*::]*/: { /* n:\"RRDRenSheet\", */ },\n\t/*::[*/0x013f/*::]*/: { /* n:\"RRSort\", */ },\n\t/*::[*/0x0140/*::]*/: { /* n:\"RRDMove\", */ },\n\t/*::[*/0x014a/*::]*/: { /* n:\"RRFormat\", */ },\n\t/*::[*/0x014b/*::]*/: { /* n:\"RRAutoFmt\", */ },\n\t/*::[*/0x014d/*::]*/: { /* n:\"RRInsertSh\", */ },\n\t/*::[*/0x014e/*::]*/: { /* n:\"RRDMoveBegin\", */ },\n\t/*::[*/0x014f/*::]*/: { /* n:\"RRDMoveEnd\", */ },\n\t/*::[*/0x0150/*::]*/: { /* n:\"RRDInsDelBegin\", */ },\n\t/*::[*/0x0151/*::]*/: { /* n:\"RRDInsDelEnd\", */ },\n\t/*::[*/0x0152/*::]*/: { /* n:\"RRDConflict\", */ },\n\t/*::[*/0x0153/*::]*/: { /* n:\"RRDDefName\", */ },\n\t/*::[*/0x0154/*::]*/: { /* n:\"RRDRstEtxp\", */ },\n\t/*::[*/0x015f/*::]*/: { /* n:\"LRng\", */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"UsesELFs\", */ f:parsebool },\n\t/*::[*/0x0161/*::]*/: { /* n:\"DSF\", */ f:parsenoop2 },\n\t/*::[*/0x0191/*::]*/: { /* n:\"CUsr\", */ },\n\t/*::[*/0x0192/*::]*/: { /* n:\"CbUsr\", */ },\n\t/*::[*/0x0193/*::]*/: { /* n:\"UsrInfo\", */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"UsrExcl\", */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"FileLock\", */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"RRDInfo\", */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BCUsrs\", */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"UsrChk\", */ },\n\t/*::[*/0x01a9/*::]*/: { /* n:\"UserBView\", */ },\n\t/*::[*/0x01aa/*::]*/: { /* n:\"UserSViewBegin\", */ },\n\t/*::[*/0x01ab/*::]*/: { /* n:\"UserSViewEnd\", */ },\n\t/*::[*/0x01ac/*::]*/: { /* n:\"RRDUserView\", */ },\n\t/*::[*/0x01ad/*::]*/: { /* n:\"Qsi\", */ },\n\t/*::[*/0x01ae/*::]*/: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t/*::[*/0x01af/*::]*/: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t/*::[*/0x01b0/*::]*/: { /* n:\"CondFmt\", */ },\n\t/*::[*/0x01b1/*::]*/: { /* n:\"CF\", */ },\n\t/*::[*/0x01b2/*::]*/: { /* n:\"DVal\", */ },\n\t/*::[*/0x01b5/*::]*/: { /* n:\"DConBin\", */ },\n\t/*::[*/0x01b6/*::]*/: { /* n:\"TxO\", */ f:parse_TxO },\n\t/*::[*/0x01b7/*::]*/: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t/*::[*/0x01b8/*::]*/: { /* n:\"HLink\", */ f:parse_HLink },\n\t/*::[*/0x01b9/*::]*/: { /* n:\"Lel\", */ },\n\t/*::[*/0x01ba/*::]*/: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t/*::[*/0x01bb/*::]*/: { /* n:\"SXFDBType\", */ },\n\t/*::[*/0x01bc/*::]*/: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t/*::[*/0x01bd/*::]*/: { /* n:\"ObNoMacros\", */ },\n\t/*::[*/0x01be/*::]*/: { /* n:\"Dv\", */ },\n\t/*::[*/0x01c0/*::]*/: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t/*::[*/0x01c1/*::]*/: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t/*::[*/0x01c2/*::]*/: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0201/*::]*/: { /* n:\"Blank\", */ f:parse_Blank },\n\t/*::[*/0x0203/*::]*/: { /* n:\"Number\", */ f:parse_Number },\n\t/*::[*/0x0204/*::]*/: { /* n:\"Label\", */ f:parse_Label },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0207/*::]*/: { /* n:\"String\", */ f:parse_String },\n\t/*::[*/0x0208/*::]*/: { /* n:\"Row\", */ f:parse_Row },\n\t/*::[*/0x020b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0221/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0225/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t/*::[*/0x0236/*::]*/: { /* n:\"Table\", */ },\n\t/*::[*/0x023e/*::]*/: { /* n:\"Window2\", */ f:parse_Window2 },\n\t/*::[*/0x027e/*::]*/: { /* n:\"RK\", */ f:parse_RK },\n\t/*::[*/0x0293/*::]*/: { /* n:\"Style\", */ },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BigName\", */ },\n\t/*::[*/0x041e/*::]*/: { /* n:\"Format\", */ f:parse_Format },\n\t/*::[*/0x043c/*::]*/: { /* n:\"ContinueBigName\", */ },\n\t/*::[*/0x04bc/*::]*/: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t/*::[*/0x0800/*::]*/: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t/*::[*/0x0801/*::]*/: { /* n:\"WebPub\", */ },\n\t/*::[*/0x0802/*::]*/: { /* n:\"QsiSXTag\", */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"DBQueryExt\", */ },\n\t/*::[*/0x0804/*::]*/: { /* n:\"ExtString\", */ },\n\t/*::[*/0x0805/*::]*/: { /* n:\"TxtQry\", */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"Qsir\", */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"Qsif\", */ },\n\t/*::[*/0x0808/*::]*/: { /* n:\"RRDTQSIF\", */ },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x080a/*::]*/: { /* n:\"OleDbConn\", */ },\n\t/*::[*/0x080b/*::]*/: { /* n:\"WOpt\", */ },\n\t/*::[*/0x080c/*::]*/: { /* n:\"SXViewEx\", */ },\n\t/*::[*/0x080d/*::]*/: { /* n:\"SXTH\", */ },\n\t/*::[*/0x080e/*::]*/: { /* n:\"SXPIEx\", */ },\n\t/*::[*/0x080f/*::]*/: { /* n:\"SXVDTEx\", */ },\n\t/*::[*/0x0810/*::]*/: { /* n:\"SXViewEx9\", */ },\n\t/*::[*/0x0812/*::]*/: { /* n:\"ContinueFrt\", */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"RealTimeData\", */ },\n\t/*::[*/0x0850/*::]*/: { /* n:\"ChartFrtInfo\", */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"FrtWrapper\", */ },\n\t/*::[*/0x0852/*::]*/: { /* n:\"StartBlock\", */ },\n\t/*::[*/0x0853/*::]*/: { /* n:\"EndBlock\", */ },\n\t/*::[*/0x0854/*::]*/: { /* n:\"StartObject\", */ },\n\t/*::[*/0x0855/*::]*/: { /* n:\"EndObject\", */ },\n\t/*::[*/0x0856/*::]*/: { /* n:\"CatLab\", */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"YMult\", */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"SXViewLink\", */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"PivotChartBits\", */ },\n\t/*::[*/0x085a/*::]*/: { /* n:\"FrtFontList\", */ },\n\t/*::[*/0x0862/*::]*/: { /* n:\"SheetExt\", */ },\n\t/*::[*/0x0863/*::]*/: { /* n:\"BookExt\", */ r:12},\n\t/*::[*/0x0864/*::]*/: { /* n:\"SXAddl\", */ },\n\t/*::[*/0x0865/*::]*/: { /* n:\"CrErr\", */ },\n\t/*::[*/0x0866/*::]*/: { /* n:\"HFPicture\", */ },\n\t/*::[*/0x0867/*::]*/: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t/*::[*/0x0868/*::]*/: { /* n:\"Feat\", */ },\n\t/*::[*/0x086a/*::]*/: { /* n:\"DataLabExt\", */ },\n\t/*::[*/0x086b/*::]*/: { /* n:\"DataLabExtContents\", */ },\n\t/*::[*/0x086c/*::]*/: { /* n:\"CellWatch\", */ },\n\t/*::[*/0x0871/*::]*/: { /* n:\"FeatHdr11\", */ },\n\t/*::[*/0x0872/*::]*/: { /* n:\"Feature11\", */ },\n\t/*::[*/0x0874/*::]*/: { /* n:\"DropDownObjIds\", */ },\n\t/*::[*/0x0875/*::]*/: { /* n:\"ContinueFrt11\", */ },\n\t/*::[*/0x0876/*::]*/: { /* n:\"DConn\", */ },\n\t/*::[*/0x0877/*::]*/: { /* n:\"List12\", */ },\n\t/*::[*/0x0878/*::]*/: { /* n:\"Feature12\", */ },\n\t/*::[*/0x0879/*::]*/: { /* n:\"CondFmt12\", */ },\n\t/*::[*/0x087a/*::]*/: { /* n:\"CF12\", */ },\n\t/*::[*/0x087b/*::]*/: { /* n:\"CFEx\", */ },\n\t/*::[*/0x087c/*::]*/: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t/*::[*/0x087d/*::]*/: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t/*::[*/0x087e/*::]*/: { /* n:\"AutoFilter12\", */ },\n\t/*::[*/0x087f/*::]*/: { /* n:\"ContinueFrt12\", */ },\n\t/*::[*/0x0884/*::]*/: { /* n:\"MDTInfo\", */ },\n\t/*::[*/0x0885/*::]*/: { /* n:\"MDXStr\", */ },\n\t/*::[*/0x0886/*::]*/: { /* n:\"MDXTuple\", */ },\n\t/*::[*/0x0887/*::]*/: { /* n:\"MDXSet\", */ },\n\t/*::[*/0x0888/*::]*/: { /* n:\"MDXProp\", */ },\n\t/*::[*/0x0889/*::]*/: { /* n:\"MDXKPI\", */ },\n\t/*::[*/0x088a/*::]*/: { /* n:\"MDB\", */ },\n\t/*::[*/0x088b/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x088c/*::]*/: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t/*::[*/0x088d/*::]*/: { /* n:\"DXF\", */ },\n\t/*::[*/0x088e/*::]*/: { /* n:\"TableStyles\", */ r:12 },\n\t/*::[*/0x088f/*::]*/: { /* n:\"TableStyle\", */ },\n\t/*::[*/0x0890/*::]*/: { /* n:\"TableStyleElement\", */ },\n\t/*::[*/0x0892/*::]*/: { /* n:\"StyleExt\", */ },\n\t/*::[*/0x0893/*::]*/: { /* n:\"NamePublish\", */ },\n\t/*::[*/0x0894/*::]*/: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t/*::[*/0x0895/*::]*/: { /* n:\"SortData\", */ },\n\t/*::[*/0x0896/*::]*/: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t/*::[*/0x0897/*::]*/: { /* n:\"GUIDTypeLib\", */ },\n\t/*::[*/0x0898/*::]*/: { /* n:\"FnGrp12\", */ },\n\t/*::[*/0x0899/*::]*/: { /* n:\"NameFnGrp12\", */ },\n\t/*::[*/0x089a/*::]*/: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t/*::[*/0x089b/*::]*/: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t/*::[*/0x089c/*::]*/: { /* n:\"HeaderFooter\", */ },\n\t/*::[*/0x089d/*::]*/: { /* n:\"CrtLayout12\", */ },\n\t/*::[*/0x089e/*::]*/: { /* n:\"CrtMlFrt\", */ },\n\t/*::[*/0x089f/*::]*/: { /* n:\"CrtMlFrtContinue\", */ },\n\t/*::[*/0x08a3/*::]*/: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t/*::[*/0x08a4/*::]*/: { /* n:\"ShapePropsStream\", */ },\n\t/*::[*/0x08a5/*::]*/: { /* n:\"TextPropsStream\", */ },\n\t/*::[*/0x08a6/*::]*/: { /* n:\"RichTextStream\", */ },\n\t/*::[*/0x08a7/*::]*/: { /* n:\"CrtLayout12A\", */ },\n\t/*::[*/0x1001/*::]*/: { /* n:\"Units\", */ },\n\t/*::[*/0x1002/*::]*/: { /* n:\"Chart\", */ },\n\t/*::[*/0x1003/*::]*/: { /* n:\"Series\", */ },\n\t/*::[*/0x1006/*::]*/: { /* n:\"DataFormat\", */ },\n\t/*::[*/0x1007/*::]*/: { /* n:\"LineFormat\", */ },\n\t/*::[*/0x1009/*::]*/: { /* n:\"MarkerFormat\", */ },\n\t/*::[*/0x100a/*::]*/: { /* n:\"AreaFormat\", */ },\n\t/*::[*/0x100b/*::]*/: { /* n:\"PieFormat\", */ },\n\t/*::[*/0x100c/*::]*/: { /* n:\"AttachedLabel\", */ },\n\t/*::[*/0x100d/*::]*/: { /* n:\"SeriesText\", */ },\n\t/*::[*/0x1014/*::]*/: { /* n:\"ChartFormat\", */ },\n\t/*::[*/0x1015/*::]*/: { /* n:\"Legend\", */ },\n\t/*::[*/0x1016/*::]*/: { /* n:\"SeriesList\", */ },\n\t/*::[*/0x1017/*::]*/: { /* n:\"Bar\", */ },\n\t/*::[*/0x1018/*::]*/: { /* n:\"Line\", */ },\n\t/*::[*/0x1019/*::]*/: { /* n:\"Pie\", */ },\n\t/*::[*/0x101a/*::]*/: { /* n:\"Area\", */ },\n\t/*::[*/0x101b/*::]*/: { /* n:\"Scatter\", */ },\n\t/*::[*/0x101c/*::]*/: { /* n:\"CrtLine\", */ },\n\t/*::[*/0x101d/*::]*/: { /* n:\"Axis\", */ },\n\t/*::[*/0x101e/*::]*/: { /* n:\"Tick\", */ },\n\t/*::[*/0x101f/*::]*/: { /* n:\"ValueRange\", */ },\n\t/*::[*/0x1020/*::]*/: { /* n:\"CatSerRange\", */ },\n\t/*::[*/0x1021/*::]*/: { /* n:\"AxisLine\", */ },\n\t/*::[*/0x1022/*::]*/: { /* n:\"CrtLink\", */ },\n\t/*::[*/0x1024/*::]*/: { /* n:\"DefaultText\", */ },\n\t/*::[*/0x1025/*::]*/: { /* n:\"Text\", */ },\n\t/*::[*/0x1026/*::]*/: { /* n:\"FontX\", */ f:parseuint16 },\n\t/*::[*/0x1027/*::]*/: { /* n:\"ObjectLink\", */ },\n\t/*::[*/0x1032/*::]*/: { /* n:\"Frame\", */ },\n\t/*::[*/0x1033/*::]*/: { /* n:\"Begin\", */ },\n\t/*::[*/0x1034/*::]*/: { /* n:\"End\", */ },\n\t/*::[*/0x1035/*::]*/: { /* n:\"PlotArea\", */ },\n\t/*::[*/0x103a/*::]*/: { /* n:\"Chart3d\", */ },\n\t/*::[*/0x103c/*::]*/: { /* n:\"PicF\", */ },\n\t/*::[*/0x103d/*::]*/: { /* n:\"DropBar\", */ },\n\t/*::[*/0x103e/*::]*/: { /* n:\"Radar\", */ },\n\t/*::[*/0x103f/*::]*/: { /* n:\"Surf\", */ },\n\t/*::[*/0x1040/*::]*/: { /* n:\"RadarArea\", */ },\n\t/*::[*/0x1041/*::]*/: { /* n:\"AxisParent\", */ },\n\t/*::[*/0x1043/*::]*/: { /* n:\"LegendException\", */ },\n\t/*::[*/0x1044/*::]*/: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t/*::[*/0x1045/*::]*/: { /* n:\"SerToCrt\", */ },\n\t/*::[*/0x1046/*::]*/: { /* n:\"AxesUsed\", */ },\n\t/*::[*/0x1048/*::]*/: { /* n:\"SBaseRef\", */ },\n\t/*::[*/0x104a/*::]*/: { /* n:\"SerParent\", */ },\n\t/*::[*/0x104b/*::]*/: { /* n:\"SerAuxTrend\", */ },\n\t/*::[*/0x104e/*::]*/: { /* n:\"IFmtRecord\", */ },\n\t/*::[*/0x104f/*::]*/: { /* n:\"Pos\", */ },\n\t/*::[*/0x1050/*::]*/: { /* n:\"AlRuns\", */ },\n\t/*::[*/0x1051/*::]*/: { /* n:\"BRAI\", */ },\n\t/*::[*/0x105b/*::]*/: { /* n:\"SerAuxErrBar\", */ },\n\t/*::[*/0x105c/*::]*/: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t/*::[*/0x105d/*::]*/: { /* n:\"SerFmt\", */ },\n\t/*::[*/0x105f/*::]*/: { /* n:\"Chart3DBarShape\", */ },\n\t/*::[*/0x1060/*::]*/: { /* n:\"Fbi\", */ },\n\t/*::[*/0x1061/*::]*/: { /* n:\"BopPop\", */ },\n\t/*::[*/0x1062/*::]*/: { /* n:\"AxcExt\", */ },\n\t/*::[*/0x1063/*::]*/: { /* n:\"Dat\", */ },\n\t/*::[*/0x1064/*::]*/: { /* n:\"PlotGrowth\", */ },\n\t/*::[*/0x1065/*::]*/: { /* n:\"SIIndex\", */ },\n\t/*::[*/0x1066/*::]*/: { /* n:\"GelFrame\", */ },\n\t/*::[*/0x1067/*::]*/: { /* n:\"BopPopCustom\", */ },\n\t/*::[*/0x1068/*::]*/: { /* n:\"Fbi2\", */ },\n\n\t/*::[*/0x0000/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BIFF2BLANK\", */ },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0007/*::]*/: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BIFF2ROW\", */ },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x000b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t/*::[*/0x001e/*::]*/: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t/*::[*/0x001f/*::]*/: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t/*::[*/0x0020/*::]*/: { /* n:\"BIFF2COLINFO\", */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0024/*::]*/: { /* n:\"COLWIDTH\", */ },\n\t/*::[*/0x0025/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x2c ??\n\t// 0x2d ??\n\t// 0x2e ??\n\t// 0x30 FONTCOUNT: number of fonts\n\t/*::[*/0x0032/*::]*/: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x35: INFOOPTS\n\t// 0x36: TABLE (BIFF2 only)\n\t// 0x37: TABLE2 (BIFF2 only)\n\t// 0x38: WNDESK\n\t// 0x39 ??\n\t// 0x3a: BEGINPREF\n\t// 0x3b: ENDPREF\n\t/*::[*/0x003e/*::]*/: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x3f ??\n\t// 0x46: SHOWSCROLL\n\t// 0x47: SHOWFORMULA\n\t// 0x48: STATUSBAR\n\t// 0x49: SHORTMENUS\n\t// 0x4A:\n\t// 0x4B:\n\t// 0x4C:\n\t// 0x4E:\n\t// 0x4F:\n\t// 0x58: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t/*::[*/0x0034/*::]*/: { /* n:\"DDEObjName\", */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BIFF2XF\", */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BIFF2FONTCLR\", */ },\n\t/*::[*/0x0056/*::]*/: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t/*::[*/0x007e/*::]*/: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t/*::[*/0x007f/*::]*/: { /* n:\"ImData\", */ f:parse_ImData },\n\t/*::[*/0x0087/*::]*/: { /* n:\"Addin\", */ },\n\t/*::[*/0x0088/*::]*/: { /* n:\"Edg\", */ },\n\t/*::[*/0x0089/*::]*/: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t// 0x8F\n\t/*::[*/0x0091/*::]*/: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t/*::[*/0x0094/*::]*/: { /* n:\"LHRecord\", */ },\n\t/*::[*/0x0095/*::]*/: { /* n:\"LHNGraph\", */ },\n\t/*::[*/0x0096/*::]*/: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t/*::[*/0x00a9/*::]*/: { /* n:\"CoordList\", */ },\n\t/*::[*/0x00ab/*::]*/: { /* n:\"GCW\", */ },\n\t/*::[*/0x00bc/*::]*/: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t/*::[*/0x00bf/*::]*/: { /* n:\"ToolbarHdr\", */ },\n\t/*::[*/0x00c0/*::]*/: { /* n:\"ToolbarEnd\", */ },\n\t/*::[*/0x00c2/*::]*/: { /* n:\"AddMenu\", */ },\n\t/*::[*/0x00c3/*::]*/: { /* n:\"DelMenu\", */ },\n\t/*::[*/0x00d6/*::]*/: { /* n:\"RString\", */ f:parse_RString },\n\t/*::[*/0x00df/*::]*/: { /* n:\"UDDesc\", */ },\n\t/*::[*/0x00ea/*::]*/: { /* n:\"TabIdConf\", */ },\n\t/*::[*/0x0162/*::]*/: { /* n:\"XL5Modify\", */ },\n\t/*::[*/0x01a5/*::]*/: { /* n:\"FileSharing2\", */ },\n\t/*::[*/0x0206/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0218/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0223/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0231/*::]*/: { /* n:\"Font\", */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BIFF3XF\", */ },\n\t/*::[*/0x0406/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BIFF4XF\", */ },\n\t/*::[*/0x086d/*::]*/: { /* n:\"FeatInfo\", */ },\n\t/*::[*/0x0873/*::]*/: { /* n:\"FeatInfo11\", */ },\n\t/*::[*/0x0881/*::]*/: { /* n:\"SXAddl12\", */ },\n\t/*::[*/0x08c0/*::]*/: { /* n:\"AutoWebPub\", */ },\n\t/*::[*/0x08c1/*::]*/: { /* n:\"ListObj\", */ },\n\t/*::[*/0x08c2/*::]*/: { /* n:\"ListField\", */ },\n\t/*::[*/0x08c3/*::]*/: { /* n:\"ListDV\", */ },\n\t/*::[*/0x08c4/*::]*/: { /* n:\"ListCondFmt\", */ },\n\t/*::[*/0x08c5/*::]*/: { /* n:\"ListCF\", */ },\n\t/*::[*/0x08c6/*::]*/: { /* n:\"FMQry\", */ },\n\t/*::[*/0x08c7/*::]*/: { /* n:\"FMSQry\", */ },\n\t/*::[*/0x08c8/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x08c9/*::]*/: { /* n:\"LnExt\", */ },\n\t/*::[*/0x08ca/*::]*/: { /* n:\"MkrExt\", */ },\n\t/*::[*/0x08cb/*::]*/: { /* n:\"CrtCoopt\", */ },\n\t/*::[*/0x08d6/*::]*/: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/*::[*/0x7262/*::]*/: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = 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 != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/) {\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/*:number*/, c/*:number*/, val, t/*:?string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, 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/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*//*::, opts*/) {\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||\"\").slice(0,255)));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref/*:string*/, rr = \"\", cols/*:Array<string>*/ = [];\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/*:Workbook*/, opts/*:WriteOpts*/) {\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<wb.SheetNames.length;++i) if(wb.SheetNames[i] == o.sheet) idx=i;\n\tif(idx == 0 && !!o.sheet && wb.SheetNames[0] != o.sheet) throw new Error(\"Sheet not found: \" + o.sheet);\n\twrite_biff_rec(ba, (o.biff == 4 ? 0x0409 : (o.biff == 3 ? 0x0209 : 0x0009)), write_BOF(wb, 0x10, o));\n\t/* ... */\n\twrite_ws_biff2(ba, wb.Sheets[wb.SheetNames[idx]], idx, o, wb);\n\t/* ... */\n\twrite_biff_rec(ba, 0x000A);\n\treturn ba.end();\n}\n\nfunction write_FONTS_biff8(ba, data, opts) {\n\twrite_biff_rec(ba, 0x0031 /* Font */, write_Font({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Arial\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}, opts));\n}\n\n\nfunction write_FMTS_biff8(ba, NF/*:?SSFTable*/, opts) {\n\tif(!NF) return;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_biff_rec(ba, 0x041E /* Format */, write_Format(i, NF[i], opts));\n\t});\n}\n\nfunction write_FEAT(ba, ws) {\n\t/* [MS-XLS] 2.4.112 */\n\tvar o = new_buf(19);\n\to.write_shift(4, 0x867); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 1); o.write_shift(4, 0);\n\twrite_biff_rec(ba, 0x0867 /* FeatHdr */, o);\n\t/* [MS-XLS] 2.4.111 */\n\to = new_buf(39);\n\to.write_shift(4, 0x868); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 0); o.write_shift(4, 0);\n\to.write_shift(2, 1); o.write_shift(4, 4); o.write_shift(2, 0);\n\twrite_Ref8U(safe_decode_range(ws['!ref']||\"A1\"), o);\n\to.write_shift(4, 4);\n\twrite_biff_rec(ba, 0x0868 /* Feat */, o);\n}\n\nfunction write_CELLXFS_biff8(ba, opts) {\n\tfor(var i = 0; i < 16; ++i) write_biff_rec(ba, 0x00e0 /* XF */, write_XF({numFmtId:0, style:true}, 0, opts));\n\topts.cellXfs.forEach(function(c) {\n\t\twrite_biff_rec(ba, 0x00e0 /* XF */, write_XF(c, 0, opts));\n\t});\n}\n\nfunction write_ws_biff8_hlinks(ba/*:BufArray*/, ws) {\n\tfor(var R=0; R<ws['!links'].length; ++R) {\n\t\tvar HL = ws['!links'][R];\n\t\twrite_biff_rec(ba, 0x01b8 /* HLink */, write_HLink(HL));\n\t\tif(HL[1].Tooltip) write_biff_rec(ba, 0x0800 /* HLinkTooltip */, write_HLinkTooltip(HL));\n\t}\n\tdelete ws['!links'];\n}\n\nfunction write_ws_cols_biff8(ba, cols) {\n\tif(!cols) return;\n\tvar cnt = 0;\n\tcols.forEach(function(col, idx) {\n\t\tif(++cnt <= 256 && col) {\n\t\t\twrite_biff_rec(ba, 0x007d /* ColInfo */, write_ColInfo(col_obj_w(idx, col), idx));\n\t\t}\n\t});\n}\n\nfunction write_ws_biff8_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts) {\n\tvar os = 16 + get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.v == null && !cell.bf) {\n\t\twrite_biff_rec(ba, 0x0201 /* Blank */, write_XLSCell(R, C, os));\n\t\treturn;\n\t}\n\tif(cell.bf) write_biff_rec(ba, 0x0006 /* Formula */, write_Formula(cell, R, C, opts, os));\n\telse 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\t/* TODO: emit RK as appropriate */\n\t\t\twrite_biff_rec(ba, 0x0203 /* Number */, write_Number(R, C, v, os, opts));\n\t\t\tbreak;\n\t\tcase 'b': case 'e':\n\t\t\twrite_biff_rec(ba, 0x0205 /* BoolErr */, write_BoolErr(R, C, cell.v, os, opts, cell.t));\n\t\t\tbreak;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvar isst = get_sst_id(opts.Strings, cell.v, opts.revStrings);\n\t\t\t\twrite_biff_rec(ba, 0x00fd /* LabelSst */, write_LabelSst(R, C, isst, os, opts));\n\t\t\t} else write_biff_rec(ba, 0x0204 /* Label */, write_Label(R, C, (cell.v||\"\").slice(0,255), os, opts));\n\t\t\tbreak;\n\t\tdefault:\n\t\t\twrite_biff_rec(ba, 0x0201 /* Blank */, write_XLSCell(R, C, os));\n\t}\n}\n\n/* [MS-XLS] 2.1.7.20.5 */\nfunction write_ws_biff8(idx/*:number*/, opts, wb/*:Workbook*/) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheet/*:WBWSProp*/ = ((_WB.Sheets||[])[idx]||{}/*:any*/);\n\tvar dense = Array.isArray(ws);\n\tvar b8 = opts.biff == 8;\n\tvar ref/*:string*/, rr = \"\", cols/*:Array<string>*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\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/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array<WBWSProp>*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\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, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* 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, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* 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/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* 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 bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\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 */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tstr = str.replace(/<!--.*?-->/g, \"\");\n\tvar mtch/*:any*/ = str.match(/<table/i);\n\tif(!mtch) throw new Error(\"Invalid HTML: could not find <table>\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?<tr[^>]*>)/i, \"<tr>\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array<Range>*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"<tr\") { ++R; if(opts.sheetRows && opts.sheetRows <= R) { --R; break; } C = 0; continue; }\n\t\tif(hd != \"<td\" && hd != \"<th\") continue;\n\t\tvar cells = row.split(/<\\/t[dh]>/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/<t[dh]/i)) continue;\n\t\t\tvar m = cell, cc = 0;\n\t\t\t/* TODO: parse styles etc */\n\t\t\twhile(m.charAt(0) == \"<\" && (cc = m.indexOf(\">\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\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\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\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({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array<Range>*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array<string>*/ = [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\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}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_cell({r:R,c:C});\n\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tvar sp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '<span contenteditable=\"true\">' + w + '</span>';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v;\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '<a href=\"' + cell.l.Target +'\">' + w + '</a>';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"<tr>\";\n\treturn preamble + oo.join(\"\") + \"</tr>\";\n}\n\nvar HTML_BEGIN = '<html><head><meta charset=\"utf-8\"/><title>SheetJS Table Export</title></head><body>';\nvar HTML_END = '</body></html>';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str.match(/<table[\\s\\S]*?>[\\s\\S]*?<\\/table>/gi);\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find <table>\");\n\tif(mtch.length == 1) return sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array<string>*/ = [];\n\treturn out.join(\"\") + '<table' + (o && o.id ? ' id=\"' + o.id + '\"' : \"\") + '>';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array<string>*/ = [header];\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tout.push(make_html_preamble(ws, r, o));\n\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"</table>\" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar rows/*:HTMLCollection<HTMLTableRowElement>*/ = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array<Range>*/ = [], midx = 0;\n\tvar rowinfo/*:Array<RowInfo>*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = 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/*:HTMLCollection<HTMLTableCellElement>*/ = (row.children/*:any*/);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-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)}/*:any*/);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new <a> */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\") o.l = ({ Target: l });\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\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 */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array<any>*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(/<text:s\\/>/g,\" \")\n\t\t.replace(/<text:s text:c=\"(\\d+)\"\\/>/g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/<text:tab[^>]*\\/>/g,\"\\t\")\n\t\t.replace(/<text:line-break\\/>/g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\treturn [v];\n}\n\nvar number_formats_ods = {\n\t/* ods name: [short ssf fmt, long ssf fmt] */\n\tday: [\"d\", \"dd\"],\n\tmonth: [\"m\", \"mm\"],\n\tyear: [\"y\", \"yy\"],\n\thours: [\"h\", \"hh\"],\n\tminutes: [\"m\", \"mm\"],\n\tseconds: [\"s\", \"ss\"],\n\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\tera: [\"e\", \"ee\"],\n\t/* there is no native representation of LO \"Q\" format */\n\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n};\n\n\nfunction parse_content_xml(d/*:string*/, _opts)/*:Workbook*/ {\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/*:Array<any>*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", 'å称':\"\"}*/;\n\t\tvar rowtag/*:: = {'è¡Œå·':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array<string>*/ = [];\n\t\tvar ws = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\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/*:Array<Range>*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array<RowInfo>*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array<Comment>*/ = [], comment/*:Comment*/ = ({}/*:any*/);\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(/<!--([\\s\\S]*?)-->/mg,\"\").replace(/<!DOCTYPE[^\\[]*\\[[^\\]]*\\]>/gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 <table:table>\n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['å称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]/*:any*/) : ({}/*:any*/); 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 <table:table-row-group>\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 <table:table-row>\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 <table:covered-table-cell>\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/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\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\ttextp = \"\"; textpidx = 0; textR = [];\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 = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['æ•°æ®ç±»åž‹'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\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;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.t = 'd'; q.v = numdate(q.v); }\n\t\t\t\t\t\t\tq.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['æ•°æ®æ•°å€¼']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 <table:table-cell>\n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: <office:document> is the root for FODS\n\t\t\tcase 'document-content': case '电åè¡¨æ ¼æ–‡æ¡£': // 3.1.3.2 <office:document-content>\n\t\t\tcase 'spreadsheet': case '主体': // 3.7 <office:spreadsheet>\n\t\t\tcase 'scripts': // 3.12 <office:scripts>\n\t\t\tcase 'styles': // TODO <office:styles>\n\t\t\tcase 'font-face-decls': // 3.14 <office:font-face-decls>\n\t\t\tcase 'master-styles': // 3.15.4 <office:master-styles> -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 <office:annotation>\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/*:: :any)*/.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 <dc:creator>\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: <office:meta> <uof:元数æ®> FODS/UOF\n\t\t\tcase 'settings': // TODO: <office:settings>\n\t\t\tcase 'config-item-set': // TODO: <office:config-item-set>\n\t\t\tcase 'config-item-map-indexed': // TODO: <office:config-item-map-indexed>\n\t\t\tcase 'config-item-map-entry': // TODO: <office:config-item-map-entry>\n\t\t\tcase 'config-item-map-named': // TODO: <office:config-item-map-entry>\n\t\t\tcase 'shapes': // 9.2.8 <table:shapes>\n\t\t\tcase 'frame': // 10.4.2 <draw:frame>\n\t\t\tcase 'text-box': // 10.4.3 <draw:text-box>\n\t\t\tcase 'image': // 10.4.4 <draw:image>\n\t\t\tcase 'data-pilot-tables': // 9.6.2 <table:data-pilot-tables>\n\t\t\tcase 'list-style': // 16.30 <text:list-style>\n\t\t\tcase 'form': // 13.13 <form:form>\n\t\t\tcase 'dde-links': // 9.8 <table:dde-links>\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: <number:scientific-number>\n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: <number:currency-symbol>\n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: <number:currency-style>\n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 <number:number-style>\n\t\t\tcase 'percentage-style': // 16.27.9 <number:percentage-style>\n\t\t\tcase 'date-style': // 16.27.10 <number:date-style>\n\t\t\tcase 'time-style': // 16.27.18 <number:time-style>\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 <office:script>\n\t\t\tcase 'libraries': break; // TODO: <ooo:libraries>\n\t\t\tcase 'automatic-styles': break; // 3.15.3 <office:automatic-styles>\n\n\t\t\tcase 'default-style': // TODO: <style:default-style>\n\t\t\tcase 'page-layout': break; // TODO: <style:page-layout>\n\t\t\tcase 'style': // 16.2 <style:style>\n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 <style:map>\n\t\t\tcase 'font-face': break; // 16.21 <style:font-face>\n\n\t\t\tcase 'paragraph-properties': break; // 17.6 <style:paragraph-properties>\n\t\t\tcase 'table-properties': break; // 17.15 <style:table-properties>\n\t\t\tcase 'table-column-properties': break; // 17.16 <style:table-column-properties>\n\t\t\tcase 'table-row-properties': break; // 17.17 <style:table-row-properties>\n\t\t\tcase 'table-cell-properties': break; // 17.18 <style:table-cell-properties>\n\n\t\t\tcase 'number': // 16.27.3 <number:number>\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_ods[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 <number:fraction>\n\n\t\t\tcase 'day': // 16.27.11 <number:day>\n\t\t\tcase 'month': // 16.27.12 <number:month>\n\t\t\tcase 'year': // 16.27.13 <number:year>\n\t\t\tcase 'era': // 16.27.14 <number:era>\n\t\t\tcase 'day-of-week': // 16.27.15 <number:day-of-week>\n\t\t\tcase 'week-of-year': // 16.27.16 <number:week-of-year>\n\t\t\tcase 'quarter': // 16.27.17 <number:quarter>\n\t\t\tcase 'hours': // 16.27.19 <number:hours>\n\t\t\tcase 'minutes': // 16.27.20 <number:minutes>\n\t\t\tcase 'seconds': // 16.27.21 <number:seconds>\n\t\t\tcase 'am-pm': // 16.27.22 <number:am-pm>\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_ods[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 <number:boolean-style>\n\t\t\tcase 'boolean': break; // 16.27.24 <number:boolean>\n\t\t\tcase 'text-style': break; // 16.27.25 <number:text-style>\n\t\t\tcase 'text': // 16.27.26 <number:text>\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 <table:named-range>\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]}/*:any*/);\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 <number:text-content>\n\t\t\tcase 'text-properties': break; // 16.27.27 <style:text-properties>\n\t\t\tcase 'embedded-text': break; // 16.27.4 <number:embedded-text>\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 <table:table-column>\n\t\t\tcase 'table-header-rows': break; // 9.1.7 <table:table-header-rows>\n\t\t\tcase 'table-rows': break; // 9.1.12 <table:table-rows>\n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 <table:table-column-group>\n\t\t\tcase 'table-header-columns': break; // 9.1.11 <table:table-header-columns>\n\t\t\tcase 'table-columns': break; // 9.1.12 <table:table-columns>\n\n\t\t\tcase 'null-date': break; // 9.4.2 <table:null-date> TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 <style:graphic-properties>\n\t\t\tcase 'calculation-settings': break; // 9.4.1 <table:calculation-settings>\n\t\t\tcase 'named-expressions': break; // 9.4.11 <table:named-expressions>\n\t\t\tcase 'label-range': break; // 9.4.9 <table:label-range>\n\t\t\tcase 'label-ranges': break; // 9.4.10 <table:label-ranges>\n\t\t\tcase 'named-expression': break; // 9.4.13 <table:named-expression>\n\t\t\tcase 'sort': break; // 9.4.19 <table:sort>\n\t\t\tcase 'sort-by': break; // 9.4.20 <table:sort-by>\n\t\t\tcase 'sort-groups': break; // 9.4.22 <table:sort-groups>\n\n\t\t\tcase 'tab': break; // 6.1.4 <text:tab>\n\t\t\tcase 'line-break': break; // 6.1.5 <text:line-break>\n\t\t\tcase 'span': break; // 6.1.7 <text:span>\n\t\t\tcase 'p': case '文本串': // 5.1.3 <text:p>\n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // <text:p>\n\t\t\tcase 's': break; // <text:s>\n\n\t\t\tcase 'database-range': // 9.4.15 <table:database-range>\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 <draw:object>\n\t\t\tcase 'title': case 'æ ‡é¢˜': break; // <*:title> OR <uof:æ ‡é¢˜>\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 <table:iteration>\n\t\t\tcase 'content-validations': break; // 9.4.4 <table:\n\t\t\tcase 'content-validation': break; // 9.4.5 <table:\n\t\t\tcase 'help-message': break; // 9.4.6 <table:\n\t\t\tcase 'error-message': break; // 9.4.7 <table:\n\t\t\tcase 'database-ranges': break; // 9.4.14 <table:database-ranges>\n\t\t\tcase 'filter': break; // 9.5.2 <table:filter>\n\t\t\tcase 'filter-and': break; // 9.5.3 <table:filter-and>\n\t\t\tcase 'filter-or': break; // 9.5.4 <table:filter-or>\n\t\t\tcase 'filter-condition': break; // 9.5.5 <table:filter-condition>\n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 <text:\n\t\t\tcase 'list-level-style-number': break; // 16.32 <text:\n\t\t\tcase 'list-level-properties': break; // 17.19 <style:\n\n\t\t\t/* 7.3 Document Fields */\n\t\t\tcase 'sender-firstname': // 7.3.6.2\n\t\t\tcase 'sender-lastname': // 7.3.6.3\n\t\t\tcase 'sender-initials': // 7.3.6.4\n\t\t\tcase 'sender-title': // 7.3.6.5\n\t\t\tcase 'sender-position': // 7.3.6.6\n\t\t\tcase 'sender-email': // 7.3.6.7\n\t\t\tcase 'sender-phone-private': // 7.3.6.8\n\t\t\tcase 'sender-fax': // 7.3.6.9\n\t\t\tcase 'sender-company': // 7.3.6.10\n\t\t\tcase 'sender-phone-work': // 7.3.6.11\n\t\t\tcase 'sender-street': // 7.3.6.12\n\t\t\tcase 'sender-city': // 7.3.6.13\n\t\t\tcase 'sender-postal-code': // 7.3.6.14\n\t\t\tcase 'sender-country': // 7.3.6.15\n\t\t\tcase 'sender-state-or-province': // 7.3.6.16\n\t\t\tcase 'author-name': // 7.3.7.1\n\t\t\tcase 'author-initials': // 7.3.7.2\n\t\t\tcase 'chapter': // 7.3.8\n\t\t\tcase 'file-name': // 7.3.9\n\t\t\tcase 'template-name': // 7.3.9\n\t\t\tcase 'sheet-name': // 7.3.9\n\t\t\t\tbreak;\n\n\t\t\tcase 'event-listener':\n\t\t\t\tbreak;\n\t\t\t/* TODO: FODS Properties */\n\t\t\tcase 'initial-creator':\n\t\t\tcase 'creation-date':\n\t\t\tcase 'print-date':\n\t\t\tcase 'generator':\n\t\t\tcase 'document-statistic':\n\t\t\tcase 'user-defined':\n\t\t\tcase 'editing-duration':\n\t\t\tcase 'editing-cycles':\n\t\t\t\tbreak;\n\n\t\t\t/* TODO: FODS Config */\n\t\t\tcase 'config-item':\n\t\t\t\tbreak;\n\n\t\t\t/* TODO: style tokens */\n\t\t\tcase 'page-number': break; // TODO <text:page-number>\n\t\t\tcase 'page-count': break; // TODO <text:page-count>\n\t\t\tcase 'time': break; // TODO <text:time>\n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 <table:\n\t\t\tcase 'detective': break; // 9.3.2 <table:\n\t\t\tcase 'operation': break; // 9.3.3 <table:\n\t\t\tcase 'highlighted-range': break; // 9.3.4 <table:\n\n\t\t\t/* 9.6 Data Pilot Tables <table: */\n\t\t\tcase 'data-pilot-table': // 9.6.3\n\t\t\tcase 'source-cell-range': // 9.6.5\n\t\t\tcase 'source-service': // 9.6.6\n\t\t\tcase 'data-pilot-field': // 9.6.7\n\t\t\tcase 'data-pilot-level': // 9.6.8\n\t\t\tcase 'data-pilot-subtotals': // 9.6.9\n\t\t\tcase 'data-pilot-subtotal': // 9.6.10\n\t\t\tcase 'data-pilot-members': // 9.6.11\n\t\t\tcase 'data-pilot-member': // 9.6.12\n\t\t\tcase 'data-pilot-display-info': // 9.6.13\n\t\t\tcase 'data-pilot-sort-info': // 9.6.14\n\t\t\tcase 'data-pilot-layout-info': // 9.6.15\n\t\t\tcase 'data-pilot-field-reference': // 9.6.16\n\t\t\tcase 'data-pilot-groups': // 9.6.17\n\t\t\tcase 'data-pilot-group': // 9.6.18\n\t\t\tcase 'data-pilot-group-member': // 9.6.19\n\t\t\t\tbreak;\n\n\t\t\t/* 10.3 Drawing Shapes */\n\t\t\tcase 'rect': // 10.3.2\n\t\t\t\tbreak;\n\n\t\t\t/* 14.6 DDE Connections */\n\t\t\tcase 'dde-connection-decls': // 14.6.2 <text:\n\t\t\tcase 'dde-connection-decl': // 14.6.3 <text:\n\t\t\tcase 'dde-link': // 14.6.4 <table:\n\t\t\tcase 'dde-source': // 14.6.5 <office:\n\t\t\t\tbreak;\n\n\t\t\tcase 'properties': break; // 13.7 <form:properties>\n\t\t\tcase 'property': break; // 13.8 <form:property>\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 = unescapexml(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} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\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; // <table:\n\t\t\tcase 'office-document-common-attrs': break; // bare\n\t\t\tdefault: switch(Rn[2]) {\n\t\t\t\tcase 'dc:': // TODO: properties\n\t\t\t\tcase 'calcext:': // ignore undocumented extensions\n\t\t\t\tcase 'loext:': // ignore undocumented extensions\n\t\t\t\tcase 'ooo:': // ignore undocumented extensions\n\t\t\t\tcase 'chartooo:': // ignore undocumented extensions\n\t\t\t\tcase 'draw:': // TODO: drawing\n\t\t\t\tcase 'style:': // TODO: styles\n\t\t\t\tcase 'chart:': // TODO: charts\n\t\t\t\tcase 'form:': // TODO: forms\n\t\t\t\tcase 'uof:': // TODO: uof\n\t\t\t\tcase '表:': // TODO: uof\n\t\t\t\tcase 'å—:': // TODO: uof\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts.WTF) throw new Error(Rn);\n\t\t\t}\n\t\t}\n\t\tvar out/*:Workbook*/ = ({\n\t\t\tSheets: Sheets,\n\t\t\tSheetNames: SheetNames,\n\t\t\tWorkbook: WB\n\t\t}/*:any*/);\n\t\tif(opts.bookSheets) delete /*::(*/out/*:: :any)*/.Sheets;\n\t\treturn out;\n}\n\nfunction parse_ods(zip/*:ZIPFile*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\topts = opts || ({}/*:any*/);\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) parse_manifest(getzipdata(zip, 'META-INF/manifest.xml'), opts);\n\tvar content = getzipstr(zip, 'content.xml');\n\tif(!content) throw new Error(\"Missing content.xml in ODS / UOF file\");\n\tvar wb = parse_content_xml(utf8read(content), opts);\n\tif(safegetzipfile(zip, 'meta.xml')) wb.Props = parse_core_props(getzipdata(zip, 'meta.xml'));\n\treturn wb;\n}\nfunction parse_fods(data/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treturn parse_content_xml(data, opts);\n}\n\n/* OpenDocument */\nvar write_styles_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\tvar master_styles = [\n\t\t'<office:master-styles>',\n\t\t\t'<style:master-page style:name=\"mp1\" style:page-layout-name=\"mp1\">',\n\t\t\t\t'<style:header/>',\n\t\t\t\t'<style:header-left style:display=\"false\"/>',\n\t\t\t\t'<style:footer/>',\n\t\t\t\t'<style:footer-left style:display=\"false\"/>',\n\t\t\t'</style:master-page>',\n\t\t'</office:master-styles>'\n\t].join(\"\");\n\n\tvar payload = '<office:document-styles ' + wxt_helper({\n\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t'office:version': \"1.2\"\n\t}) + '>' + master_styles + '</office:document-styles>';\n\n\treturn function wso(/*::wb, opts*/) {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text/*:string*/)/*:string*/ {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '<text:s text:c=\"'+$$.length+'\"/>';})\n\t\t\t.replace(/\\t/g, \"<text:tab/>\")\n\t\t\t.replace(/\\n/g, \"</text:p><text:p>\")\n\t\t\t.replace(/^ /, \"<text:s/>\").replace(/ $/, \"<text:s/>\");\n\t};\n\n\tvar null_cell_xml = ' <table:table-cell />\\n';\n\tvar covered_cell_xml = ' <table:covered-table-cell/>\\n';\n\tvar write_ws = function(ws, wb/*:Workbook*/, i/*:number*//*::, opts*/)/*:string*/ {\n\t\t/* Section 9 Tables */\n\t\tvar o/*:Array<string>*/ = [];\n\t\to.push(' <table:table table:name=\"' + escapexml(wb.SheetNames[i]) + '\" table:style-name=\"ta1\">\\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr/*:Array<Range>*/ = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' <table:table-column' + (ws[\"!cols\"][C] ? ' table:style-name=\"co' + ws[\"!cols\"][C].ods + '\"' : '') + '></table:table-column>\\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' <table:table-row' + H + '></table:table-row>\\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' <table:table-row' + H + '>\\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\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(' </table:table-row>\\n');\n\t\t}\n\t\to.push(' </table:table>\\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o/*:Array<string>*/, wb) {\n\t\to.push(' <office:automatic-styles>\\n');\n\n\t\to.push(' <number:date-style style:name=\"N37\" number:automatic-order=\"true\">\\n');\n\t\to.push(' <number:month number:style=\"long\"/>\\n');\n\t\to.push(' <number:text>/</number:text>\\n');\n\t\to.push(' <number:day number:style=\"long\"/>\\n');\n\t\to.push(' <number:text>/</number:text>\\n');\n\t\to.push(' <number:year/>\\n');\n\t\to.push(' </number:date-style>\\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' <style:style style:name=\"co' + cidx + '\" style:family=\"table-column\">\\n');\n\t\t\t\t\to.push(' <style:table-column-properties fo:break-before=\"auto\" style:column-width=\"' + w + '\"/>\\n');\n\t\t\t\t\to.push(' </style:style>\\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' <style:style style:name=\"ro' + ridx + '\" style:family=\"table-row\">\\n');\n\t\t\t\t\to.push(' <style:table-row-properties fo:break-before=\"auto\" style:row-height=\"' + h + '\"/>\\n');\n\t\t\t\t\to.push(' </style:style>\\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' <style:style style:name=\"ta1\" style:family=\"table\" style:master-page-name=\"mp1\">\\n');\n\t\to.push(' <style:table-properties table:display=\"true\" style:writing-mode=\"lr-tb\"/>\\n');\n\t\to.push(' </style:style>\\n');\n\n\t\t/* table cells, text */\n\t\to.push(' <style:style style:name=\"ce1\" style:family=\"table-cell\" style:parent-style-name=\"Default\" style:data-style-name=\"N37\"/>\\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' </office:automatic-styles>\\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\") {\n\t\t\to.push('<office:document' + attr + fods + '>\\n');\n\t\t\to.push(write_meta_ods().replace(/office:document-meta/g, \"office:meta\"));\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('<office:document-content' + attr + '>\\n');\n\t\t// o.push(' <office:scripts/>\\n');\n\t\twrite_automatic_styles_ods(o, wb);\n\t\to.push(' <office:body>\\n');\n\t\to.push(' <office:spreadsheet>\\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(' </office:spreadsheet>\\n');\n\t\to.push(' </office:body>\\n');\n\t\tif(opts.bookType == \"fods\") o.push('</office:document>');\n\t\telse o.push('</office:document-content>');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb/*:any*/, opts/*:any*/) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest/*:Array<Array<string> >*/ = [];\n\tvar rdf/*:Array<[string, string]>*/ = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods(/*::wb, opts*/));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nfunction u8_to_dataview(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\nfunction u8str(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n}\nfunction stru8(str) {\n return typeof TextEncoder != \"undefined\" ? new TextEncoder().encode(str) : s2a(utf8write(str));\n}\nfunction u8contains(body, search) {\n outer:\n for (var L = 0; L <= body.length - search.length; ++L) {\n for (var j = 0; j < search.length; ++j)\n if (body[L + j] != search[j])\n continue outer;\n return true;\n }\n return false;\n}\nfunction u8concat(u8a) {\n var len = u8a.reduce(function(acc, x) {\n return acc + x.length;\n }, 0);\n var out = new Uint8Array(len);\n var off = 0;\n u8a.forEach(function(u8) {\n out.set(u8, off);\n off += u8.length;\n });\n return out;\n}\nfunction popcnt(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n}\nfunction readDecimal128LE(buf, offset) {\n var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;\n var mantissa = buf[offset + 14] & 1;\n for (var j = offset + 13; j >= offset; --j)\n mantissa = mantissa * 256 + buf[j];\n return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);\n}\nfunction writeDecimal128LE(buf, offset, value) {\n var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 20;\n var mantissa = value / Math.pow(10, exp - 6176);\n buf[offset + 15] |= exp >> 7;\n buf[offset + 14] |= (exp & 127) << 1;\n for (var i = 0; mantissa >= 1; ++i, mantissa /= 256)\n buf[offset + i] = mantissa & 255;\n buf[offset + 15] |= value >= 0 ? 0 : 128;\n}\nfunction parse_varint49(buf, ptr) {\n var l = ptr ? ptr[0] : 0;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n if (ptr)\n ptr[0] = l;\n return usz;\n}\nfunction write_varint49(v) {\n var usz = new Uint8Array(7);\n usz[0] = v & 127;\n var L = 1;\n sz:\n if (v > 127) {\n usz[L - 1] |= 128;\n usz[L] = v >> 7 & 127;\n ++L;\n if (v <= 16383)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 14 & 127;\n ++L;\n if (v <= 2097151)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 21 & 127;\n ++L;\n if (v <= 268435455)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 256 >>> 21 & 127;\n ++L;\n if (v <= 34359738367)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 65536 >>> 21 & 127;\n ++L;\n if (v <= 4398046511103)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 16777216 >>> 21 & 127;\n ++L;\n }\n return usz.slice(0, L);\n}\nfunction varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 28;\n }\n return i32;\n}\nfunction parse_shallow(buf) {\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var off = ptr[0];\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = Math.floor(num / 8);\n var len = 0;\n var res;\n if (num == 0)\n break;\n switch (type) {\n case 0:\n {\n var l = ptr[0];\n while (buf[ptr[0]++] >= 128)\n ;\n res = buf.slice(l, ptr[0]);\n }\n break;\n case 5:\n len = 4;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 1:\n len = 8;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 2:\n len = parse_varint49(buf, ptr);\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 3:\n case 4:\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { data: res, type: type };\n if (out[num] == null)\n out[num] = [v];\n else\n out[num].push(v);\n }\n return out;\n}\nfunction write_shallow(proto) {\n var out = [];\n proto.forEach(function(field, idx) {\n field.forEach(function(item) {\n if (!item.data)\n return;\n out.push(write_varint49(idx * 8 + item.type));\n if (item.type == 2)\n out.push(write_varint49(item.data.length));\n out.push(item.data);\n });\n });\n return u8concat(out);\n}\nfunction mappa(data, cb) {\n return (data == null ? void 0 : data.map(function(d) {\n return cb(d.data);\n })) || [];\n}\nfunction parse_iwa_file(buf) {\n var _a;\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf.slice(ptr[0], ptr[0] + fl)\n });\n ptr[0] += fl;\n });\n if ((_a = ai[3]) == null ? void 0 : _a[0])\n res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;\n out.push(res);\n }\n return out;\n}\nfunction write_iwa_file(ias) {\n var bufs = [];\n ias.forEach(function(ia) {\n var ai = [];\n ai[1] = [{ data: write_varint49(ia.id), type: 0 }];\n ai[2] = [];\n if (ia.merge != null)\n ai[3] = [{ data: write_varint49(+!!ia.merge), type: 0 }];\n var midata = [];\n ia.messages.forEach(function(mi) {\n midata.push(mi.data);\n mi.meta[3] = [{ type: 0, data: write_varint49(mi.data.length) }];\n ai[2].push({ data: write_shallow(mi.meta), type: 2 });\n });\n var aipayload = write_shallow(ai);\n bufs.push(write_varint49(aipayload.length));\n bufs.push(aipayload);\n midata.forEach(function(mid) {\n return bufs.push(mid);\n });\n });\n return u8concat(bufs);\n}\nfunction parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = [0];\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n while (ptr[0] < buf.length) {\n var tag = buf[ptr[0]] & 3;\n if (tag == 0) {\n var len = buf[ptr[0]++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[ptr[0]];\n if (c > 1)\n len |= buf[ptr[0] + 1] << 8;\n if (c > 2)\n len |= buf[ptr[0] + 2] << 16;\n if (c > 3)\n len |= buf[ptr[0] + 3] << 24;\n len >>>= 0;\n len++;\n ptr[0] += c;\n }\n chunks.push(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[ptr[0]] >> 2 & 7) + 4;\n offset = (buf[ptr[0]++] & 224) << 3;\n offset |= buf[ptr[0]++];\n } else {\n length = (buf[ptr[0]++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[ptr[0]] | buf[ptr[0] + 1] << 8;\n ptr[0] += 2;\n } else {\n offset = (buf[ptr[0]] | buf[ptr[0] + 1] << 8 | buf[ptr[0] + 2] << 16 | buf[ptr[0] + 3] << 24) >>> 0;\n ptr[0] += 4;\n }\n }\n chunks = [u8concat(chunks)];\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n if (offset > chunks[0].length)\n throw new Error(\"Invalid offset beyond length\");\n if (length >= offset) {\n chunks.push(chunks[0].slice(-offset));\n length -= offset;\n while (length >= chunks[chunks.length - 1].length) {\n chunks.push(chunks[chunks.length - 1]);\n length -= chunks[chunks.length - 1].length;\n }\n }\n chunks.push(chunks[0].slice(-offset, -offset + length));\n }\n }\n var o = u8concat(chunks);\n if (o.length != usz)\n throw new Error(\"Unexpected length: \".concat(o.length, \" != \").concat(usz));\n return o;\n}\nfunction decompress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push(parse_snappy_chunk(t, buf.slice(l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return u8concat(out);\n}\nfunction compress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var c = Math.min(buf.length - l, 268435455);\n var frame = new Uint8Array(4);\n out.push(frame);\n var usz = write_varint49(c);\n var L = usz.length;\n out.push(usz);\n if (c <= 60) {\n L++;\n out.push(new Uint8Array([c - 1 << 2]));\n } else if (c <= 256) {\n L += 2;\n out.push(new Uint8Array([240, c - 1 & 255]));\n } else if (c <= 65536) {\n L += 3;\n out.push(new Uint8Array([244, c - 1 & 255, c - 1 >> 8 & 255]));\n } else if (c <= 16777216) {\n L += 4;\n out.push(new Uint8Array([248, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255]));\n } else if (c <= 4294967296) {\n L += 5;\n out.push(new Uint8Array([252, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255, c - 1 >>> 24 & 255]));\n }\n out.push(buf.slice(l, l + c));\n L += c;\n frame[0] = 0;\n frame[1] = L & 255;\n frame[2] = L >> 8 & 255;\n frame[3] = L >> 16 & 255;\n l += c;\n }\n return u8concat(out);\n}\nfunction parse_old_storage(buf, sst, rsst, v) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var data_offset = (v > 1 ? 12 : 8) + popcnt(flags & (v > 1 ? 3470 : 398)) * 4;\n var ridx = -1, sidx = -1, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 512) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n data_offset += popcnt(flags & (v > 1 ? 12288 : 4096)) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n var ret;\n switch (buf[2]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else if (sidx > -1)\n ret = { t: \"s\", v: sst[sidx] };\n else if (!isNaN(ieee))\n ret = { t: \"n\", v: ieee };\n else\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction parse_new_storage(buf, sst, rsst) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(8, true);\n var data_offset = 12;\n var ridx = -1, sidx = -1, d128 = NaN, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 1) {\n d128 = readDecimal128LE(buf, data_offset);\n data_offset += 16;\n }\n if (flags & 2) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 4) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n if (flags & 8) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 16) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n var ret;\n switch (buf[1]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: d128 };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n break;\n case 10:\n ret = { t: \"n\", v: d128 };\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction write_new_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 5;\n switch (cell.t) {\n case \"n\":\n out[1] = 2;\n writeDecimal128LE(out, l, cell.v);\n flags |= 1;\n l += 16;\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 2;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[1] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 8;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, flags, true);\n return out.slice(0, l);\n}\nfunction write_old_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 3;\n switch (cell.t) {\n case \"n\":\n out[2] = 2;\n dv.setFloat64(l, cell.v, true);\n flags |= 32;\n l += 8;\n break;\n case \"b\":\n out[2] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 32;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[2] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 16;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(4, flags, true);\n return out.slice(0, l);\n}\nfunction parse_cell_storage(buf, sst, rsst) {\n switch (buf[0]) {\n case 0:\n case 1:\n case 2:\n case 3:\n return parse_old_storage(buf, sst, rsst, buf[0]);\n case 5:\n return parse_new_storage(buf, sst, rsst);\n default:\n throw new Error(\"Unsupported payload version \".concat(buf[0]));\n }\n}\nfunction parse_TSP_Reference(buf) {\n var pb = parse_shallow(buf);\n return parse_varint49(pb[1][0].data);\n}\nfunction write_TSP_Reference(idx) {\n var out = [];\n out[1] = [{ type: 0, data: write_varint49(idx) }];\n return write_shallow(out);\n}\nfunction parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var le = parse_shallow(entry.data);\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_TSP_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_TSP_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n data[key] = tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\");\n }\n break;\n }\n });\n return data;\n}\nfunction parse_TST_TileRowInfo(u8, type) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var cnt = varint_to_i32(pb[2][0].data) >>> 0;\n var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;\n var used_storage_u8, used_storage;\n if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {\n used_storage_u8 = (_f = (_e = pb[7]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data;\n used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;\n } else if (((_j = (_i = pb[4]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data) && type != 1) {\n used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;\n used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;\n } else\n throw \"NUMBERS Tile missing \".concat(type, \" cell storage\");\n var width = wide_offsets ? 4 : 1;\n var used_storage_offsets = u8_to_dataview(used_storage_u8);\n var offsets = [];\n for (var C = 0; C < used_storage_u8.length / 2; ++C) {\n var off = used_storage_offsets.getUint16(C * 2, true);\n if (off < 65535)\n offsets.push([C, off]);\n }\n if (offsets.length != cnt)\n throw \"Expected \".concat(cnt, \" cells, found \").concat(offsets.length);\n var cells = [];\n for (C = 0; C < offsets.length - 1; ++C)\n cells[offsets[C][0]] = used_storage.subarray(offsets[C][1] * width, offsets[C + 1][1] * width);\n if (offsets.length >= 1)\n cells[offsets[offsets.length - 1][0]] = used_storage.subarray(offsets[offsets.length - 1][1] * width);\n return { R: R, cells: cells };\n}\nfunction parse_TST_Tile(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var storage = ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) ? varint_to_i32(pb[7][0].data) >>> 0 > 0 ? 1 : 0 : -1;\n var ri = mappa(pb[5], function(u8) {\n return parse_TST_TileRowInfo(u8, storage);\n });\n return {\n nrows: varint_to_i32(pb[4][0].data) >>> 0,\n data: ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, [])\n };\n}\nfunction parse_TST_TableModelArchive(M, root, ws) {\n var _a;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n var store = parse_shallow(pb[4][0].data);\n var sst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[4][0].data)][0]);\n var rsst = ((_a = store[17]) == null ? void 0 : _a[0]) ? parse_TST_TableDataList(M, M[parse_TSP_Reference(store[17][0].data)][0]) : [];\n var tile = parse_shallow(store[3][0].data);\n var _R = 0;\n tile[1].forEach(function(t) {\n var tl = parse_shallow(t.data);\n var ref = M[parse_TSP_Reference(tl[2][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype));\n var _tile = parse_TST_Tile(M, ref);\n _tile.data.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var addr = encode_cell({ r: _R + R, c: C });\n var res = parse_cell_storage(buf, sst, rsst);\n if (res)\n ws[addr] = res;\n });\n });\n _R += _tile.nrows;\n });\n}\nfunction parse_TST_TableInfoArchive(M, root) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n var tableref = M[parse_TSP_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out);\n return out;\n}\nfunction parse_TN_SheetArchive(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_TSP_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m));\n });\n });\n return out;\n}\nfunction parse_TN_DocumentArchive(M, root) {\n var out = book_new();\n var pb = parse_shallow(root.data);\n var sheetoffs = mappa(pb[1], parse_TSP_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_TN_SheetArchive(M, m);\n root2.sheets.forEach(function(sheet, idx) {\n book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + \"_\" + idx, true);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n return out;\n}\nfunction parse_numbers_iwa(cfb) {\n var _a, _b, _c, _d;\n var M = {}, indices = [];\n cfb.FullPaths.forEach(function(p) {\n if (p.match(/\\.iwpv2/))\n throw new Error(\"Unsupported password protection\");\n });\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n var o;\n try {\n o = decompress_iwa_file(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa_file(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n M[packet.id] = packet.messages;\n indices.push(packet.id);\n });\n });\n if (!indices.length)\n throw new Error(\"File has no messages\");\n var docroot = ((_d = (_c = (_b = (_a = M == null ? void 0 : M[1]) == null ? void 0 : _a[0]) == null ? void 0 : _b.meta) == null ? void 0 : _c[1]) == null ? void 0 : _d[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1 && M[1][0];\n if (!docroot)\n indices.forEach(function(idx) {\n M[idx].forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_TN_DocumentArchive(M, docroot);\n}\nfunction write_tile_row(tri, data, SST) {\n var _a, _b, _c, _d;\n if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0]))\n throw \"Mutation only works on post-BNC storages!\";\n var wide_offsets = ((_d = (_c = tri[8]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && varint_to_i32(tri[8][0].data) > 0 || false;\n if (wide_offsets)\n throw \"Math only works with normal offsets\";\n var cnt = 0;\n var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];\n var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];\n for (var C = 0; C < data.length; ++C) {\n if (data[C] == null) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535);\n continue;\n }\n dv.setUint16(C * 2, last_offset, true);\n _dv.setUint16(C * 2, _last_offset, true);\n var celload, _celload;\n switch (typeof data[C]) {\n case \"string\":\n celload = write_new_storage({ t: \"s\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"s\", v: data[C] }, SST);\n break;\n case \"number\":\n celload = write_new_storage({ t: \"n\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"n\", v: data[C] }, SST);\n break;\n case \"boolean\":\n celload = write_new_storage({ t: \"b\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"b\", v: data[C] }, SST);\n break;\n default:\n throw new Error(\"Unsupported value \" + data[C]);\n }\n cell_storage.push(celload);\n last_offset += celload.length;\n _cell_storage.push(_celload);\n _last_offset += _celload.length;\n ++cnt;\n }\n tri[2][0].data = write_varint49(cnt);\n for (; C < tri[7][0].data.length / 2; ++C) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535, true);\n }\n tri[6][0].data = u8concat(cell_storage);\n tri[3][0].data = u8concat(_cell_storage);\n return cnt;\n}\nfunction write_numbers_iwa(wb, opts) {\n if (!opts || !opts.numbers)\n throw new Error(\"Must pass a `numbers` option -- check the README\");\n var ws = wb.Sheets[wb.SheetNames[0]];\n if (wb.SheetNames.length > 1)\n console.error(\"The Numbers writer currently writes only the first table\");\n var range = decode_range(ws[\"!ref\"]);\n range.s.r = range.s.c = 0;\n var trunc = false;\n if (range.e.c > 9) {\n trunc = true;\n range.e.c = 9;\n }\n if (range.e.r > 49) {\n trunc = true;\n range.e.r = 49;\n }\n if (trunc)\n console.error(\"The Numbers writer is currently limited to \".concat(encode_range(range)));\n var data = sheet_to_json(ws, { range: range, header: 1 });\n var SST = [\"~Sh33tJ5~\"];\n data.forEach(function(row) {\n return row.forEach(function(cell) {\n if (typeof cell == \"string\")\n SST.push(cell);\n });\n });\n var dependents = {};\n var indices = [];\n var cfb = CFB.read(opts.numbers, { type: \"base64\" });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (fi.type != 2)\n return;\n if (!fi.name.match(/\\.iwa/))\n return;\n var old_content = fi.content;\n var raw1 = decompress_iwa_file(old_content);\n var x2 = parse_iwa_file(raw1);\n x2.forEach(function(packet2) {\n indices.push(packet2.id);\n dependents[packet2.id] = { deps: [], location: fp, type: varint_to_i32(packet2.messages[0].meta[1][0].data) };\n });\n });\n indices.sort(function(x2, y2) {\n return x2 - y2;\n });\n var indices_varint = indices.filter(function(x2) {\n return x2 > 1;\n }).map(function(x2) {\n return [x2, write_varint49(x2)];\n });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (!fi.name.match(/\\.iwa/))\n return;\n var x2 = parse_iwa_file(decompress_iwa_file(fi.content));\n x2.forEach(function(ia) {\n ia.messages.forEach(function(m) {\n indices_varint.forEach(function(ivi) {\n if (ia.messages.some(function(mess) {\n return varint_to_i32(mess.meta[1][0].data) != 11006 && u8contains(mess.data, ivi[1]);\n })) {\n dependents[ivi[0]].deps.push(ia.id);\n }\n });\n });\n });\n });\n function get_unique_msgid() {\n for (var i = 927262; i < 2e6; ++i)\n if (!dependents[i])\n return i;\n throw new Error(\"Too many messages\");\n }\n var entry = CFB.find(cfb, dependents[1].location);\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var docroot;\n for (var xi = 0; xi < x.length; ++xi) {\n var packet = x[xi];\n if (packet.id == 1)\n docroot = packet;\n }\n var sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n var pb = parse_shallow(docroot.messages[0].data);\n {\n pb[6][0].data = write_varint49(range.e.r + 1);\n pb[7][0].data = write_varint49(range.e.c + 1);\n var cruidsref = parse_TSP_Reference(pb[46][0].data);\n var oldbucket = CFB.find(cfb, dependents[cruidsref].location);\n var _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n for (var j = 0; j < _x.length; ++j) {\n if (_x[j].id == cruidsref)\n break;\n }\n if (_x[j].id != cruidsref)\n throw \"Bad ColumnRowUIDMapArchive\";\n var cruids = parse_shallow(_x[j].messages[0].data);\n cruids[1] = [];\n cruids[2] = [], cruids[3] = [];\n for (var C = 0; C <= range.e.c; ++C) {\n var uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(C + 420690) }];\n cruids[1].push({ type: 2, data: write_shallow(uuid) });\n cruids[2].push({ type: 0, data: write_varint49(C) });\n cruids[3].push({ type: 0, data: write_varint49(C) });\n }\n cruids[4] = [];\n cruids[5] = [], cruids[6] = [];\n for (var R = 0; R <= range.e.r; ++R) {\n uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(R + 726270) }];\n cruids[4].push({ type: 2, data: write_shallow(uuid) });\n cruids[5].push({ type: 0, data: write_varint49(R) });\n cruids[6].push({ type: 0, data: write_varint49(R) });\n }\n _x[j].messages[0].data = write_shallow(cruids);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n delete pb[46];\n var store = parse_shallow(pb[4][0].data);\n {\n store[7][0].data = write_varint49(range.e.r + 1);\n var row_headers = parse_shallow(store[1][0].data);\n var row_header_ref = parse_TSP_Reference(row_headers[2][0].data);\n oldbucket = CFB.find(cfb, dependents[row_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != row_header_ref)\n throw \"Bad HeaderStorageBucket\";\n var base_bucket = parse_shallow(_x[0].messages[0].data);\n for (R = 0; R < data.length; ++R) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(R);\n _bucket[4][0].data = write_varint49(data[R].length);\n base_bucket[2][R] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var col_header_ref = parse_TSP_Reference(store[2][0].data);\n oldbucket = CFB.find(cfb, dependents[col_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != col_header_ref)\n throw \"Bad HeaderStorageBucket\";\n base_bucket = parse_shallow(_x[0].messages[0].data);\n for (C = 0; C <= range.e.c; ++C) {\n _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(C);\n _bucket[4][0].data = write_varint49(range.e.r + 1);\n base_bucket[2][C] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var sstref = parse_TSP_Reference(store[4][0].data);\n (function() {\n var sentry = CFB.find(cfb, dependents[sstref].location);\n var sx = parse_iwa_file(decompress_iwa_file(sentry.content));\n var sstroot;\n for (var sxi = 0; sxi < sx.length; ++sxi) {\n var packet2 = sx[sxi];\n if (packet2.id == sstref)\n sstroot = packet2;\n }\n var sstdata = parse_shallow(sstroot.messages[0].data);\n {\n sstdata[3] = [];\n var newsst = [];\n SST.forEach(function(str, i) {\n newsst[1] = [{ type: 0, data: write_varint49(i) }];\n newsst[2] = [{ type: 0, data: write_varint49(1) }];\n newsst[3] = [{ type: 2, data: stru8(str) }];\n sstdata[3].push({ type: 2, data: write_shallow(newsst) });\n });\n }\n sstroot.messages[0].data = write_shallow(sstdata);\n var sy = write_iwa_file(sx);\n var raw32 = compress_iwa_file(sy);\n sentry.content = raw32;\n sentry.size = sentry.content.length;\n })();\n var tile = parse_shallow(store[3][0].data);\n {\n var t = tile[1][0];\n delete tile[2];\n var tl = parse_shallow(t.data);\n {\n var tileref = parse_TSP_Reference(tl[2][0].data);\n (function() {\n var tentry = CFB.find(cfb, dependents[tileref].location);\n var tx = parse_iwa_file(decompress_iwa_file(tentry.content));\n var tileroot;\n for (var sxi = 0; sxi < tx.length; ++sxi) {\n var packet2 = tx[sxi];\n if (packet2.id == tileref)\n tileroot = packet2;\n }\n var tiledata = parse_shallow(tileroot.messages[0].data);\n {\n delete tiledata[6];\n delete tile[7];\n var rowload = new Uint8Array(tiledata[5][0].data);\n tiledata[5] = [];\n var cnt = 0;\n for (var R2 = 0; R2 <= range.e.r; ++R2) {\n var tilerow = parse_shallow(rowload);\n cnt += write_tile_row(tilerow, data[R2], SST);\n tilerow[1][0].data = write_varint49(R2);\n tiledata[5].push({ data: write_shallow(tilerow), type: 2 });\n }\n tiledata[1] = [{ type: 0, data: write_varint49(range.e.c + 1) }];\n tiledata[2] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n tiledata[3] = [{ type: 0, data: write_varint49(cnt) }];\n tiledata[4] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n }\n tileroot.messages[0].data = write_shallow(tiledata);\n var ty = write_iwa_file(tx);\n var raw32 = compress_iwa_file(ty);\n tentry.content = raw32;\n tentry.size = tentry.content.length;\n })();\n }\n t.data = write_shallow(tl);\n }\n store[3][0].data = write_shallow(tile);\n }\n pb[4][0].data = write_shallow(store);\n }\n docroot.messages[0].data = write_shallow(pb);\n var y = write_iwa_file(x);\n var raw3 = compress_iwa_file(y);\n entry.content = raw3;\n entry.size = entry.content.length;\n return cfb;\n}\nfunction fix_opts_func(defaults/*:Array<Array<any> >*/)/*:{(o:any):void}*/ {\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\nfunction fix_read_opts(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\n\nfunction fix_write_opts(opts) {\nfix_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])(opts);\n}\nfunction get_sheet_type(n/*:string*/)/*:string*/ {\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/*:string*/, relsPath/*:string*/, sheet, idx/*:number*/, sheetRels, sheets, stype/*:string*/, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments and threaded comments */\n\t\tvar tcomments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tvar dfile = \"\";\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tvar comments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments, false);\n\t\t\t}\n\t\t\tif(sheetRels[sheet][n].Type == RELS.TCMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\ttcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile, true), opts));\n\t\t\t}\n\t\t});\n\t\tif(tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x/*:string*/)/*:string*/ { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip/*:ZIP*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tmake_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')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof parse_numbers_iwa != \"undefined\") {\n\t\t\tif(zip.FileIndex) return parse_numbers_iwa(zip);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn parse_numbers_iwa(_zip);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')/*:?any*/));\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 = ({}/*:any*/);\n\tvar styles = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({}/*:any*/);\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 = ({}/*:any*/);\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.replace(/_rels.*/, \"s5s\"));\n\n\tif((dir.metadata || []).length >= 1) {\n\t\t/* TODO: MDX and other types of metadata */\n\t\topts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])),dir.metadata[0],opts);\n\t}\n\n\tif((dir.people || []).length >= 1) {\n\t\topts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])),opts);\n\t}\n\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: dup(table_fmt)\n\t}/*:any*/);\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts/*:?ParseOpts*/)/*:Workbook*/ {\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 */\n/*:: declare var decrypt_agile:any; */\n\tif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\n/*:: declare var decrypt_std76:any; */\n\tif(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/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(opts.bookType == \"numbers\") return write_numbers_iwa(wb, opts);\n\tif(opts.bookType == \"xlsb\") return write_zip_xlsxb(wb, opts);\n\treturn write_zip_xlsx(wb, opts);\n}\n\n/* XLSX and XLSB writing are very similar. Originally they were unified in one\n export function. This is horrible for tree shaking in the common case (most\n applications need to export files in one format) so this function supports\n both formats while write_zip_xlsx only handles XLSX */\nfunction write_zip_xlsxb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_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 = /*::((*/[]/*:: :any):SST)*/; 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 || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta(f));\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction write_zip_xlsx(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_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 = /*::((*/[]/*:: :any):SST)*/; 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 = \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_xml(rId-1, 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\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".\" + wbext;\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".\" + wbext, RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_xml(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_xml(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_xml(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_xml(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_xml());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array<number>*/ {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64_decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data/*:string*/, o/*:ParseOpts*/)/*:Workbook*/ {\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/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\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\to.type = \"binary\";\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\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/*:string*/)/*:string*/ {\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/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treset_cp();\n\tvar o = opts||{};\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tif(typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && !o.type) o.type = typeof Deno !== \"undefined\" ? \"buffer\" : \"array\";\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); if(typeof Uint8Array !== 'undefined' && !has_buf) o.type = \"array\"; }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\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:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\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\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t}\n\tif(DBF_SUPPORTED_VERSIONS.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb/*:CFBContainer*/, o/*:WriteOpts*/)/*:any*/ {\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/*:: declare var encrypt_agile:any; */\nfunction write_zip_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_typeXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip_xlsx(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_denouement(z/*:any*/, o/*:?WriteOpts*/)/*:any*/ {\n\tvar oopts = {};\n\tvar ftype = has_buf ? \"nodebuffer\" : (typeof Uint8Array !== \"undefined\" ? \"array\" : \"string\");\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = ftype;\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 = ftype; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: /*::(*/{\"nodebuffer\": \"buffer\", \"string\": \"binary\"}/*:: :any)*/[oopts.type] || oopts.type, compression: !!o.compression}) : z.generate(oopts);\n\tif(typeof Deno !== \"undefined\") {\n\t\tif(typeof out == \"string\") {\n\t\t\tif(o.type == \"binary\" || o.type == \"base64\") return out;\n\t\t\tout = new Uint8Array(s2ab(out));\n\t\t}\n\t}\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(/*::(*/out/*:: :any)*/) : out;\n}\n\nfunction write_cfb_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = opts||{};\n\tvar cfb/*:CFBContainer*/ = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out/*:string*/, opts/*:WriteOpts*/, bom/*:?string*/)/*:any*/ {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse if(typeof TextEncoder !== \"undefined\") return new TextEncoder().encode(o);\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/*:string*/, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts/*:WriteOpts*/)/*:any*/ {\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 writeSyncXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSyncXLSX(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\treturn write_zip_typeXLSX(wb, o);\n}\n\nfunction writeSync(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSync(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\tvar idx = 0;\n\tif(o.sheet) {\n\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t}\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(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'txt': return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'csv': return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'dbf': return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'prn': return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'rtf': return write_string_type(RTF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'eth': return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(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 'numbers':\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/*:WriteFileOpts*/) {\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/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileSyncXLSX(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSyncXLSX(wb, o);\n}\n\n\nfunction writeFileAsync(filename/*:string*/, wb/*:Workbook*/, opts/*:?WriteFileOpts*/, cb/*:?(e?:ErrnoError)=>void*/) {\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/*:any*/);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\n/*::\ntype MJRObject = {\n\trow: any;\n\tisempty: boolean;\n};\n*/\nfunction make_json_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array<string>*/, header/*:number*/, hdr/*:Array<any>*/, dense/*:boolean*/, o/*:Sheet2JSONOpts*/)/*:MJRObject*/ {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row/*:any*/ = (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 = (v == 0 ? null : 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(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(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 && (val.t !== \"n\" || (val.t === \"n\" && o.rawNumbers !== false)) ? 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/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array<any>*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array<string>*/ = [];\n\tvar out/*:Array<any>*/ = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array<ColInfo>*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array<ColInfo>*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\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 = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\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\tif ((rowinfo[R]||{}).hidden) continue;\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/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array<string>*/, fs/*:number*/, rs/*:number*/, FS/*:string*/, o/*:Sheet2CSVOpts*/)/*:?string*/ {\n\tvar isempty = true;\n\tvar row/*:Array<string>*/ = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/)/*:string*/ {\n\tvar out/*:Array<string>*/ = [];\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/*:Array<string>*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array<ColInfo>*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array<ColInfo>*/ = 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\tvar w = 0;\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\tif(row || (o.blankrows !== false)) out.push((w++ ? RS : \"\") + row);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\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/*:Worksheet*/)/*:Array<string>*/ {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols/*:Array<string>*/ = [], C;\n\tvar cmds/*:Array<string>*/ = [];\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/*:?Worksheet*/, js/*:Array<any>*/, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws/*:Worksheet*/ = _ws || ({}/*:any*/);\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/*:CellAddress*/ = 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/*:Cell*/;\n\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr/*:Array<string>*/ = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R/*:number*/) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = ws_get_cell_stub(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || table_fmt[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js/*:Array<any>*/, opts)/*:Worksheet*/ { return sheet_add_json(null, js, opts); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws/*:Worksheet*/, R, C/*:?number*/)/*:Cell*/ {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb/*:Workbook*/, sh/*:number|string*/) {\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 */\nfunction book_new()/*:Workbook*/ {\n\treturn { SheetNames: [], Sheets: {} };\n}\n\n/* add a worksheet to the end of a given workbook */\nfunction book_append_sheet(wb/*:Workbook*/, ws/*:Worksheet*/, name/*:?string*/, roll/*:?boolean*/)/*:string*/ {\n\tvar i = 1;\n\tif(!name) for(; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tif(roll && wb.SheetNames.indexOf(name) >= 0) {\n\t\tvar m = name.match(/(^.*?)(\\d+)$/);\n\t\ti = m && +m[2] || 0;\n\t\tvar root = m && m[1] || name;\n\t\tfor(++i; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = root + i) == -1) break;\n\t}\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\treturn name;\n}\n\n/* set sheet visibility (visible/hidden/very hidden) */\nfunction book_set_sheet_visibility(wb/*:Workbook*/, sh/*:number|string*/, vis/*:number*/) {\n\tif(!wb.Workbook) wb.Workbook = {};\n\tif(!wb.Workbook.Sheets) wb.Workbook.Sheets = [];\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tif(!wb.Workbook.Sheets[idx]) 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}\n\n/* set number format */\nfunction cell_set_number_format(cell/*:Cell*/, fmt/*:string|number*/) {\n\tcell.z = fmt;\n\treturn cell;\n}\n\n/* set cell hyperlink */\nfunction cell_set_hyperlink(cell/*:Cell*/, target/*:string*/, tooltip/*:?string*/) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target }/*:Hyperlink*/);\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n}\nfunction cell_set_internal_link(cell/*:Cell*/, range/*:string*/, tooltip/*:?string*/) { return cell_set_hyperlink(cell, \"#\" + range, tooltip); }\n\n/* add to cell comments */\nfunction cell_add_comment(cell/*:Cell*/, text/*:string*/, author/*:?string*/) {\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 */\nfunction sheet_set_array_formula(ws/*:Worksheet*/, range, formula/*:string*/, dynamic/*:boolean*/) {\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) {\n\t\t\tcell.f = formula;\n\t\t\tif(dynamic) cell.D = true;\n\t\t}\n\t}\n\treturn ws;\n}\n\nvar utils/*:any*/ = {\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\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: sheet_to_html,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json,\n\tsheet_get_cell: ws_get_cell_stub,\n\tbook_new: book_new,\n\tbook_append_sheet: book_append_sheet,\n\tbook_set_sheet_visibility: book_set_sheet_visibility,\n\tcell_set_number_format: cell_set_number_format,\n\tcell_set_hyperlink: cell_set_hyperlink,\n\tcell_set_internal_link: cell_set_internal_link,\n\tcell_add_comment: cell_add_comment,\n\tsheet_set_array_formula: sheet_set_array_formula,\n\tconsts: {\n\t\tSHEET_VISIBLE: 0,\n\t\tSHEET_HIDDEN: 1,\n\t\tSHEET_VERY_HIDDEN: 2\n\t}\n};\n\nvar _Readable;\nfunction set_readable(R) { _Readable = R; }\n\nfunction write_csv_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable();\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\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/*:?string*/ = \"\", cols/*:Array<string>*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array<ColInfo>*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array<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\tvar R = r.s.r;\n\tvar BOM = false, w = 0;\n\tstream._read = function() {\n\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\twhile(R <= r.e.r) {\n\t\t\t++R;\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\tif(row != null) {\n\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\tif(row || (o.blankrows !== false)) return stream.push((w++ ? RS : \"\") + row);\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nfunction write_html_stream(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*/) {\n\tvar stream = _Readable();\n\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tstream.push(header);\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tstream.push(make_html_preamble(ws, r, o));\n\tvar R = r.s.r;\n\tvar end = false;\n\tstream._read = function() {\n\t\tif(R > r.e.r) {\n\t\t\tif(!end) { end = true; stream.push(\"</table>\" + footer); }\n\t\t\treturn stream.push(null);\n\t\t}\n\t\twhile(R <= r.e.r) {\n\t\t\tstream.push(make_html_row(ws, r, R, o));\n\t\t\t++R;\n\t\t\tbreak;\n\t\t}\n\t};\n\treturn stream;\n}\n\nfunction write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable({objectMode:true});\n\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array<any>*/ = [], 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/*:Array<string>*/ = [];\n\tvar counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array<ColInfo>*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array<RowInfo>*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\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 = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tR = r.s.r + offset;\n\tstream._read = function() {\n\t\twhile(R <= r.e.r) {\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t++R;\n\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\tstream.push(row.row);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nvar __stream = {\n\tto_json: write_json_stream,\n\tto_html: write_html_stream,\n\tto_csv: write_csv_stream,\n set_readable: set_readable\n};\nexport const version = XLSX.version;\nexport {\n\tparse_xlscfb,\n\tparse_zip,\n\treadSync as read,\n\treadFileSync as readFile,\n\treadFileSync,\n\twriteSync as write,\n\twriteFileSync as writeFile,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteSyncXLSX as writeXLSX,\n\twriteFileSyncXLSX as writeFileXLSX,\n\tutils,\n\t__stream as stream,\n\tSSF,\n\tCFB\n};\n"],"names":["MAT_DIALOG_DATA","XLSX","i0","ImportDialogComponent","constructor","dialogRef","dialogdata","appService","snackBar","encrypt","ngOnInit","onFileChange","evt","target","filename","files","name","length","Error","reader","FileReader","onload","e","bstr","result","wb","read","type","wsname","SheetNames","ws","Sheets","data","utils","sheet_to_json","header","username","localStorage","getItem","TamuApp","JSON","parse","Decrypt","Username","index","element","std","StudentData","dataSource","push","req","Id","StudentId","Surname","Othernames","Grade","Stream","Status","CreatedBy","request","open","panelClass","verticalPosition","duration","readAsBinaryString","onSubmit","loading","StudentImport","subscribe","next","close","toString","error","complete","selectors","decls","vars","consts","template","ctx","Validators","StudentDialogComponent","fb","form","group","required","patchValue","valid","value","exportDataGrid","Workbook","saveAs","StudentsComponent","listStudents","StudentList","body","stringify","addStudent","openDialogStudent","importStudent","openDialogImportStudent","editStudent","$event","openDialog","afterClosed","dat","Student","onExporting","workbook","worksheet","addWorksheet","component","autoFilterEnabled","then","xlsx","writeBuffer","buffer","Blob","cancel","CommonModule","HttpClientModule","RouterModule","FormsModule","ReactiveFormsModule","NgxPaginationModule","SharedModule","PipesModule","AuthGuard","routes","path","pathMatch","canActivate","StudentsModule","forChild","declarations","imports","i1","version","current_codepage","current_ansi","VALID_ANSI","CS2CP","set_ansi","cp","indexOf","reset_ansi","set_cp","reset_cp","char_codes","o","i","len","charCodeAt","utf16leread","String","fromCharCode","join","utf16beread","debom","c1","c2","slice","_getchar","_gc1","x","_getansi","_ga1","$cptable","set_cptable","cptable","decode","_gc2","_ga2","cpdoit","DENSE","DIF_XL","Base64_map","Base64_encode","input","c3","e1","e2","e3","e4","isNaN","charAt","Base64_decode","replace","has_buf","Buffer","process","versions","node","Buffer_from","nbfs","from","buf","enc","bind","new_raw_buf","alloc","Uint8Array","Array","new_unsafe_buf","allocUnsafe","s2a","s","split","map","s2ab","ArrayBuffer","view","a2s","isArray","c","a2u","ab2a","bconcat","bufs","concat","isBuffer","maxlen","set","apply","call","utf8decode","content","out","widx","L","ridx","d","chr0","chr1","_strrev","pad0","v","t","fill","pad_","rpad_","pad0r1","Math","round","pad0r2","p2_32","pow","pad0r","SSF_isgeneral","days","months","SSF_init_table","table_fmt","SSF_default_map","SSF_default_str","SSF_frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","floor","q","SSF_parse_date_code","opts","b2","date","time","dow","dout","T","u","y","m","H","M","S","abs","date1904","Date","setDate","getDate","getFullYear","getMonth","getDay","SSF_fix_hijri","SSFbasedate","SSFdnthresh","getTime","SSFbase1904","datenum_local","epoch","getTimezoneOffset","SSF_strip_decimal","SSF_normalize_exp","SSF_small_exp","w","toFixed","toPrecision","toExponential","SSF_large_exp","SSF_general_num","V","log","LOG10E","substr","toUpperCase","SSF_general","SSF_format","SSF_write_date","fmt","val","ss0","ss","tt","outl","outstr","commaify","j","pct1","write_num_pct","sfmt","mul","write_num","write_num_cm","idx","write_num_exp","match","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","r","aval","sign","den","parseInt","rr","base","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","str","cc","rnd","dd","dec","_frac","carry","flr","write_num_flt","ffmt","ri","ff","oa","min","max","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","lastIndexOf","SSF_split_fmt","in_str","SSF_abstime","fmt_is_date","eval_fmt","flen","lst","dt","hr","toLowerCase","bt","ssm","nstr","jj","vv","myv","ostr","decpt","lasti","retval","cfregex2","chkcond","thresh","parseFloat","choose_fmt","f","l","lat","m1","m2","dateNF","table","SSF_load","undefined","SSF_load_table","tbl","make_ssf","SSF","format","load","_table","load_table","parse_date_code","is_date","get_table","SSFImplicit","dateNFregex","dateNF_regex","RegExp","dateNF_fix","Y","forEach","n","datestr","timestr","CRC32","signed_crc_table","Int32Array","T0","slice_by_16_tables","subarray","TT","T1","T2","T3","T4","T5","T6","T7","T8","T9","Ta","Tb","Tc","Td","Te","Tf","crc32_bstr","seed","C","crc32_buf","crc32_str","CFB","_CFB","exports","namecmp","R","Z","dirname","p","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","fs","get_fs","file","options","parse_zip","parse_mad","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","mv","check_get_mver","check_shifts","dir_cnt","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","ENDOFCHAIN","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","seen","minifat_store","namelen","__utf16le","color","clsid","state","ct","read_date","storage","offset","__readUInt32LE","read_file","readFileSync","init_cfb","cfb","root","CLSID","seed_cfb","nm","find","rebuild_cfb","gc","_file","pop","now","fullPaths","Object","create","HEADER_CLSID","sort","elt","_write","_opts","fileType","write_mad","write_zip","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","DIFSECT","FATSECT","_nm","copy","UCFullPaths","UCPaths","UCPath","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","write_file","writeFileSync","write","_zlib","use_zlib","zlib","InflateRaw","InflRaw","_processChunk","_finishFlushFlag","bytesRead","console","message","_inflateRawSync","usz","_inflate","_deflateRawSync","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","b","rev","read_bits_2","bl","h","read_bits_3","read_bits_4","read_bits_5","read_bits_7","read_bits_n","write_bits_3","write_bits_1","write_bits_8","write_bits_16","realloc","a","zero_fill_array","build_tree","clens","cmap","MAX","ccode","bl_count","Uint16Array","ctree","cleni","fix_lmap","fix_dmap","dlens","_deflateRaw","_deflateRawIIFE","DST_LN_RE","LEN_LN_RE","write_stored","boff","write_huff_fixed","addrs","hash","mlen","len_eb","dst_eb","off","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","dst","warn_or_throw","wrn","msg","fcnt","start_cd","csz","efsz","fcsz","EF","parse_local_file","meth","crc32","_csz","_usz","ef","cfb_add","unsafe","cdirs","method","compression","desc","fp","fi","crcs","sz_cd","namebuf","ContentTypeMap","get_content_type","ctype","ext","write_base64_76","write_quoted_printable","text","encoded","si","end","tmp","parse_quoted_printable","di","line","oi","parse_mime","fname","cte","fdata","trim","row","test","mboundary","boundary","start_di","ca","cstr","dispcnt","csl","qp","cfb_new","fpath","cfb_gc","cfb_del","splice","cfb_mov","old_name","new_name","writeFile","ReadShift","CheckField","_inflateRaw","_fs","set_fs","blobify","write_dl","Deno","TextEncoder","encode","utf8write","IE_SaveFile","navigator","msSaveBlob","URL","document","createElement","createObjectURL","url","chrome","downloads","download","revokeObjectURL","setTimeout","href","appendChild","click","removeChild","$","File","Folder","encoding","read_binary","infile","keys","ks","o2","prototype","hasOwnProperty","evert_key","obj","key","K","evert","evert_num","evert_arr","basedate","datenum","dnthresh","refdate","refoffset","numdate","setTime","parse_isodur","sec","good_pd_date_1","good_pd_date","good_pd","parseDate","fixdate","cc2str","arr","debomit","TextDecoder","dup","fuzzynum","Number","isFinite","NaN","wt","lower_months","fuzzydate","getYear","lower","split_regex","safe_split_regex","re","def","getdatastr","asNodeBuffer","asBinary","_data","getContent","getdatabin","getdata","safegetzipfile","zip","g","getzipfile","getzipdata","safe","getzipstr","getzipbin","zipentries","zip_add_file","res","zip_new","zip_read","resolve_path","step","XML_HEADER","attregexg","tagregex1","tagregex2","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","skip_LC","z","eq","quot","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","escapexlml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","utf8reada","orig","utf8readb","ww","utf8readc","utf8corpus","utf8read","matchtag","mtcache","htmldecode","entities","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","matches","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","xlml_normalize","xlmlregex","XMLNS","CORE_PROPS","CUST_PROPS","EXT_PROPS","CT","RELS","TCMNT","XMLNS_main","XLMLNS","read_double_le","Infinity","write_double_le","bs","av","LN2","___toBuffer","___utf16le","__readUInt16LE","___hexlify","__hexlify","___utf8","__readUInt8","__utf8","utf8_b","___lpstr","__lpstr","___cpstr","__cpstr","___lpwstr","__lpwstr","___lpp4","lpp4_","__lpp4","___8lpp4","__8lpp4","___double","__double","is_buf","is_buf_a","lpstr_b","readUInt32LE","cpstr_b","lpwstr_b","lpp4_b","lpp4_8b","double_","readDoubleLE","is_buf_b","__readInt16LE","__readInt32BE","oI","oR","oo","loc","lens","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","cppayload","hexstr","fld","pos","parsenoop","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","ba_next","ba_end","ba_push","_bufs","write_record","ba","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","range","encode_cell_xls","encode_cell","fix_col","fix_row","encode_range_xls","encode_col","encode_row","decode_row","rowstr","unfix_row","decode_col","colstr","unfix_col","col","split_cell","decode_cell","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","BErr","sheet_to_workbook","sheet","sheets","sheet_add_aoa","_ws","dense","_R","_C","origin","_origin","_range","__R","__C","nullError","sheetStubs","cellDates","cell_ref","aoa_to_sheet","parse_Int32LE","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_XLSBShortCell","write_XLSBShortCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","write_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","parse_BrtColor","xColorType","nTS","bR","bG","bB","auto","icv","XLSIcv","rgb","rgb2Hex","theme","tint","write_BrtColor","parse_FontFlags","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","write_FontFlags","font","grbit","italic","strike","outline","shadow","condense","extend","parse_ClipboardFormatOrString","ClipFmt","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_VECTOR_VARIANT","VT_VECTOR_LPSTR","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","CountryEnum","XLSFillPattern","rgbify","_XLSIcv","RBErr","ct2type","CT_LIST","workbooks","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","metadata","styles","new_ct","rels","threadedcomments","links","coreprops","extprops","custprops","themes","calcchains","vba","drawings","people","TODO","xmlns","parse_ct","ctext","Extension","ContentType","PartName","calcchain","sst","style","defaults","write_ct","type2ct","xsd","xsi","f1","bookType","f2","f3","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","CMNT","SST","STY","THEME","CHART","CHARTEX","CS","WS","DS","MS","IMG","DRAW","XLMETA","PEOPLE","VBA","get_rels_path","parse_rels","currentFilePath","rel","Type","Target","TargetMode","canonictarget","write_rels","rid","add_rels","rId","relobj","targetmode","CT_ODS","parse_manifest","Rn","FEtag","exec","write_manifest","manifest","write_rdf_type","write_rdf_has","write_rdf","rdf","write_meta_ods","CORE_PROPS_REGEX","parse_core_props","cur","cp_doit","write_core_props","dc","dcterms","dcmitype","Props","CreatedDate","ModifiedDate","PseudoPropsPairs","load_props_pairs","HP","TOP","props","hp","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","parse_ext_props","xml","HeadingPairs","TitlesOfParts","write_ext_props","W","Application","vt","custregex","parse_cust_props","toks","warn","write_cust_props","pid","custprop","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_VtVecLpwstrValue","ret","parse_VtVecUnalignedLpstrValue","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_dictionary","CodePage","dict","parse_BLOB","bytes","parse_ClipboardData","Size","write_TypedPropertyValue","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","entries","RE","hdr","piao","prop","pr","pio","unshift","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet0","rval","FMTID","PSet1","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writezeroes","parslurp","writebool","parseuint16","writeuint16","parseuint16a","parse_Bes","write_Bes","parse_ShortXLUnicodeString","cch","fHighByte","parse_XLUnicodeRichExtendedString","fExtSt","fRichSt","width","cRun","cbExtRst","write_XLUnicodeRichExtendedString","xlstr","nfmts","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_ControlInfo","accel","parse_URLMoniker","extra","parse_FileMoniker","cAnti","preamble","ansiPath","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","write_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","Loc","guid","fileTime","Tooltip","write_Hyperlink","hl","hashidx","F","Pretarget","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","parse_InterfaceHdr","parse_WriteAccess","UserName","write_WriteAccess","b8","parse_WsBool","fDialog","fBelow","fRight","parse_BoundSheet8","hidden","hs","write_BoundSheet8","parse_SST","ucnt","Count","Unique","write_SST","parse_ExtSST","extsst","dsst","parse_Row","miyRw","level","hpt","parse_ForceFullCalculation","fullcalc","parse_RecalcId","parse_DefaultRowHeight","fl","Unsynced","DyZero","ExAsc","ExDsc","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","Pos","Dim","Flags","CurTab","FirstTab","Selected","TabRatio","write_Window1","parse_Window2","RTL","write_Window2","parse_Pane","parse_Font","dyHeight","write_Font","b5","parse_LabelSst","isst","write_LabelSst","os","parse_Label","biffguess","write_Label","parse_Format","fmtstr","write_Format","parse_BIFF2Format","parse_Dimensions","write_Dimensions","parse_RK","rkrec","rknum","parse_MulRk","rkrecs","lastcol","parse_MulBlank","ixfes","parse_CellStyleXF","patternType","cellStyles","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","icvFore","icvBack","fsxButton","parse_XF","fStyle","write_XF","ixfeP","parse_Guts","write_Guts","guts","parse_BoolErr","write_BoolErr","parse_Number","xnum","write_Number","parse_XLHeaderFooter","parse_SupBook","ctab","sbcch","virtPath","rgst","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_NameCmt","cchName","cchComment","comment","parse_ShrFmla","ref","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","write_MergeCells","parse_Obj","parse_BIFF5Obj","cmo","parse_BIFF5OT","parse_TxO","texts","lastobj","controlInfo","cchText","parse_HLink","hlink","write_HLink","O","parse_HLinkTooltip","wzTooltip","write_HLinkTooltip","parse_Country","write_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","cxfs","crc","parse_ColInfo","coldx","write_ColInfo","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_SUPPORTED_VERSIONS","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_aoa","memo","vfp","l7","nrow","fpos","rlen","current_cp","codepage","fields","field","hend","sheetRows","dbf_to_sheet","wch","dbf_to_workbook","_RLEN","sheet_to_dbf","aoa","headers","cols","hcnt","coltypes","colwidths","coldecimals","guess","_guess","hf","_f","hb","rout","_n","_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","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","C_seen_S","C_seen_E","formula","rc_to_a1","shrbase","shift_formula_str","F_seen","process_col","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_workbook","write_ws_cell_sylk","a1_to_rc","write_ws_cols_sylk","rec","wpx","width2px","px2char","write_ws_rows_sylk","rows","px2pt","sheet_to_sylk","RS","coord","DIF","dif_to_aoa","dif_to_aoa_str","dif_to_sheet","dif_to_workbook","sheet_to_dif","push_field","pf","topic","push_value","po","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","FS","sepcc","startcc","_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","next_n","sidx","snames","realnames","refguess","vers","qpro","tmpcell","WK3Enum","osheets","rnames","sheet_to_wk1","write_biff_rec","write_BOF_WK1","write_RANGE","max_R","write_INTEGER","write_NUMBER","write_LABEL","book_to_wk3","write_BOF_WK3","write_XFORMAT_SHEETNAME","wsidx","write_NUMBER_17","write_LABEL_16","wscnt","parse_RANGE","parse_cell","parse_LABEL","parse_INTEGER","parse_NUMBER","parse_FORMULA","wk1_fmla_to_csf","wk1_parse_rc","FuncTab","BinOpTab","argc","argL","argR","args","parse_cell_3","parse_LABEL_16","parse_NUMBER_18","parse_NUMBER_17","v1","v2","log2","parse_FORMULA_19","parse_NUMBER_25","parse_NUMBER_27","parse_FORMULA_28","parse_SHEETNAMECS","parse_SHEETNAMELP","parse_SHEETINFOQP","parse_XFORMAT","parse_rpr","rpr","pass","uval","family","valign","parse_rs","tregex","rpregex","parse_r","rregex","rend","rs","filter","rs_to_html","parse_rs_factory","nlregex","parse_rpr2","intro","outro","align","r_to_html","terms","sitregex","sirregex","sirphregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","count","uniqueCount","straywsregex","write_sst_xml","bookSST","sitag","parse_BrtBeginSst","parse_sst_bin","hopper_sst","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","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncryptionInfo","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","verifier","KeyData","xml_agile","encryptedHmacKey","encryptedHmacValue","encs","uri","parse_RC4CryptoHeader","EncryptionVersionInfo","EncryptionHeader","EncryptionVerifier","parse_RC4Header","EncryptedVerifier","EncryptedVerifierHash","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordDecoded","PasswordByte","Intermediate1","Intermediate2","Intermediate3","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","password","Index","ObfuscationArray","Temp","PasswordLastChar","PadIndex","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","rowtf","rtfre","last_index","lastIndex","rtf_to_workbook","sheet_to_rtf","hex2RGB","rgb2HSL","G","H6","L2","hsl2RGB","hsl","h6","X","rgb_tint","hex","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","CellXf","xf","alignment","vertical","horizontal","textRotation","indent","wrapText","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","write_sty_xml","parse_BrtFmt","stFmtCode","write_BrtFmt","parse_BrtFont","bls","bCharSet","charset","write_BrtFont","sss","XLSBFillPTNames","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","parse_BrtXF","ixfeParent","ifmt","write_BrtXF","flow","write_Blxf","parse_BrtBorder","write_BrtBorder","write_BrtStyle","xfId","builtinId","write_BrtBeginTableStyles","defTableStyle","defPivotStyle","parse_sty_bin","hopper_sty","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","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","Themes","themeXLSX","parse_Theme","dwThemeVersion","themeXML","parse_ColorTheme","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","update_xfext","xfext","xfe","parse_BrtMdtinfo","write_BrtMdtinfo","parse_BrtMdb","write_BrtMdb","mdb","write_BrtBeginEsfmd","parse_BrtBeginEsmdb","write_BrtBeginEsmdb","cm","parse_xlmeta_bin","Types","Cell","metatype","write_xlmeta_bin","parse_xlmeta_xml","lastmeta","offsets","write_xlmeta_xml","parse_cc_xml","parse_BrtCalcChainItem$","parse_cc_bin","hopper_cc","parse_xlink_xml","parse_xlink_bin","xlink_parse","parse_drawing","_shapeid","write_comments_vml","csize","bbox","joinstyle","gradientshapeok","coordsize","fillopts","angle","fillparm","fillxml","shadata","on","fillcolor","strokecolor","sheet_insert_comments","threaded","author","parse_comments_xml","authors","commentList","authtag","cmnttag","authorId","textMatch","write_comments_xml","iauthor","ID","lastauthor","ts","parse_tcmnt_xml","tidx","xml_tcmnt","personId","write_tcmnt_xml","carr","rootid","tcopts","tcid","parentId","parse_people_xml","displayname","write_people_xml","person","userId","providerId","parse_BrtBeginComment","rfx","write_BrtBeginComment","parse_BrtCommentAuthor","write_BrtCommentAuthor","parse_comments_bin","hopper_cmnt","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","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","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","ixtiraw","stringify_formula","stack","nameidx","last_sp","sp","fflen","func","lbl","names","xlfn","bookidx","externbook","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","PtgNonDisp","_left","rgcb","parse_XLSCellParsedFormula","parse_FormulaValue","write_FormulaValue","parse_Formula","cbf","shared","write_Formula","o1","o3","bf","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","csf_to_ods_formula","ods_to_csf_3D","csf_to_ods_3D","_ssfopts","browser_has_Map","Map","get_sst_id","has","revarr","get","col_obj_w","outlineLevel","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","sheetprregex2","svsregex","parse_ws_xml","data1","data2","mtch","sheetPr","parse_ws_xml_sheetpr","parse_ws_xml_sheetpr2","svs","parse_ws_xml_sheetviews","columns","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","_merge","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","write_ws_xml_merges","codeName","CodeName","write_ws_xml_sheetpr","needed","vbaraw","cname","outlineprops","summaryBelow","summaryRight","above","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_protection","location","Rel","tooltip","rng","margin","write_ws_xml_margins","seencol","coli","colm","colM","write_ws_xml_cols","write_ws_xml_autofilter","Names","Sheet","Ref","sviewregex","Views","zoomScale","zoom","rightToLeft","write_ws_xml_sheetviews","sview","workbookViewId","write_ws_xml_cell","oldt","oldv","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","cells","cref","tagr","tagc","sstr","ftag","do_format","rowobj","rowrite","marr","marrlen","xlen","rstarti","outa","ht","rslice","cellFormula","___f","_tag","xlmeta","_r","write_ws_xml_data","params","height","_cell","customHeight","write_ws_xml","rdata","_drawing","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_BrtShortBlank","write_BrtShortBlank","parse_BrtCellBool","fBool","write_BrtCellBool","parse_BrtShortBool","write_BrtShortBool","parse_BrtCellError","bError","write_BrtCellError","parse_BrtShortError","write_BrtShortError","parse_BrtCellIsst","write_BrtCellIsst","parse_BrtShortIsst","write_BrtShortIsst","parse_BrtCellReal","write_BrtCellReal","parse_BrtShortReal","write_BrtShortReal","parse_BrtCellRk","write_BrtCellRk","parse_BrtShortRk","write_BrtShortRk","parse_BrtCellRString","parse_BrtCellSt","write_BrtCellSt","parse_BrtShortSt","write_BrtShortSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","write_BrtMergeCell","write_BrtBeginMergeCells","parse_BrtHLink","relId","display","write_BrtHLink","locidx","parse_BrtPane","parse_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","write_BrtColInfo","BrtMarginKeys","parse_BrtMargins","write_BrtMargins","parse_BrtBeginWsView","write_BrtBeginWsView","write_BrtCellIgnoreEC","write_BrtSheetProtection","parse_BrtDVal","parse_BrtDVal14","parse_ws_bin","ai","af","vm","ws_parse","RR","aii","_d","write_ws_bin_cell","last_seen","write_CELLTABLE","cap","write_MERGECELLS","write_COLINFOS","write_IGNOREECS","write_HLINKS","write_LEGACYDRAWING","write_AUTOFILTER","write_WSVIEWS2","write_WSFMTINFO","write_SHEETPROTECT","write_ws_bin","parse_Cache","nf","parse_chart","csheet","nc","cache","parse_cs_xml","write_cs_xml","parse_BrtCsProp","parse_cs_bin","cs_parse","write_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","xml_wb","Hidden","Comment","localSheetId","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","hopper_wb","write_BUNDLESHS","viz","write_BrtFileVersion","write_BrtBookView","write_BOOKVIEWS","vistab","write_wb_bin","parse_wb","parse_ws","parse_cs","parse_ms","parse_ds","parse_sty","parse_theme","parse_sst","parse_cmnt","parse_cc","parse_xlink","parse_xlmeta","write_wb","write_ws","write_cs","write_sty","write_sst","write_cmnt","write_xlmeta","attregexg2","attregex2","xlml_parsexmltag","words","xlml_parsexmltagobj","XLMLFormatMap","xlml_format","xlml_set_custprop","oval","safe_format_xlml","process_style_xlml","stag","Interior","I","Pattern","parse_xlml_data","csty","sid","StyleID","interiors","Parent","UTC","Formula","ArrayRange","xlml_clean_comment","parse_xlml_xml","opening","ishtml","_o","html_to_workbook","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","raw_Rn3","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_props_xlml","write_wb_xlml","write_sty_xlml","write_name_xlml","write_names_xlml","write_ws_xlml_names","write_ws_xlml_wsopts","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_comment","write_ws_xlml_cell","attr","mi","_v","write_ws_xlml_row","write_ws_xlml_table","skip","write_ws_xlml","write_xlml","parse_compobj","AnsiUserType","AnsiClipboardFormat","Reserved1","UnicodeClipboardFormat","Reserved2","CONTINUE_RT","slurp","RecordType","nextrt","XLSRecordEnum","ll","safe_format_xf","make_cell","parse_workbook","Directory","last_formula","cur_sheet","Preamble","lastcell","last_cell","cmnt","rngC","rngR","temp_val","country","XFs","palette","get_rgb","getrgb","process_cell_style","pcs","xfd","addcell","file_depth","afi","rrtabid","lastuser","winlocked","wtf","last_RT","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","last_lbl","seen_codepage","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","ExternCount","tmpri","fakebs8","_fr","_fc","_fe","_arraystart","_j","_ixfe","b4idx","b2idx","TxO","ImData","noteobj","Encryption","Metadata","Country","PSCLSID","SI","DSI","UDI","parse_xls_props","DocSummary","Summary","write_xls_props","DSEntries","SEntries","CEntries","Keys","DocSummaryRE","SummaryRE","CEntries2","parse_xlscfb","CompObj","WorkbookP","bookVBA","bookFiles","write_xlscfb","wbpath","write_biff_buf","write_biff_continue","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff2_cell","write_ws_biff2","write_biff2_buf","write_FONTS_biff8","write_FMTS_biff8","write_FEAT","write_CELLXFS_biff8","write_ws_biff8_hlinks","HL","write_ws_cols_biff8","write_ws_biff8_cell","write_ws_biff8","_WB","_sheet","MAX_ROWS","write_biff8_global","_sheets","_wb","blen","write_biff8_buf","fix_write_opts","html_to_sheet","mtch2","hd","midx","colspan","rowspan","_t","make_html_row","editable","HTML_BEGIN","HTML_END","book_new","book_append_sheet","make_html_preamble","sheet_to_html","sheet_add_dom","or_R","or_C","getElementsByTagName","is_dom_element_hidden","elts","children","hasAttribute","getAttribute","innerHTML","Aelts","Aelti","parse_dom_table","table_to_book","get_computed_style","get_get_computed_style_function","getPropertyValue","ownerDocument","defaultView","getComputedStyle","parse_text_p","fixed","number_formats_ods","day","month","year","hours","minutes","seconds","era","quarter","parse_content_xml","NFtag","sheetag","rowtag","ctag","textp","textpidx","textptag","textR","row_ol","number_format_map","mrange","mR","mC","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","write_styles_ods","master_styles","wso","write_content_ods","write_text_p","null_cell_xml","covered_cell_xml","ods","ROWS","_Fref","text_p","_tgt","write_automatic_styles_ods","cidx","colobj","wcx","fods","write_ods","u8_to_dataview","array","DataView","byteOffset","byteLength","u8str","u8","stru8","u8contains","search","u8concat","u8a","reduce","acc","popcnt","readDecimal128LE","exp","mantissa","writeDecimal128LE","parse_varint49","ptr","varint","write_varint49","varint_to_i32","i32","parse_shallow","write_shallow","proto","item","mappa","parse_iwa_file","_a","messages","merge","write_iwa_file","ias","ia","midata","aipayload","mid","parse_snappy_chunk","chunks","decompress_iwa_file","compress_iwa_file","frame","parse_old_storage","rsst","dv","getUint32","data_offset","ieee","getFloat64","parse_new_storage","d128","write_new_storage","setFloat64","setUint32","write_old_storage","parse_cell_storage","parse_TSP_Reference","pb","write_TSP_Reference","parse_TST_TableDataList","le","rtp","rtpref","mtype","tswpsa","parse_TST_TileRowInfo","_b","_c","_e","_g","_h","_i","_k","_l","_m","wide_offsets","used_storage_u8","used_storage","used_storage_offsets","getUint16","parse_TST_Tile","nrows","parse_TST_TableModelArchive","store","tile","tl","_tile","parse_TST_TableInfoArchive","tableref","parse_TN_SheetArchive","shapeoffs","parse_TN_DocumentArchive","sheetoffs","root2","parse_numbers_iwa","indices","packets","packet","docroot","iwam","write_tile_row","tri","last_offset","cell_storage","_dv","_last_offset","_cell_storage","setUint16","celload","_celload","write_numbers_iwa","numbers","trunc","dependents","old_content","raw1","x2","packet2","deps","y2","indices_varint","ivi","some","mess","get_unique_msgid","xi","sheetrootref","cruidsref","oldbucket","_x","cruids","uuid","row_headers","row_header_ref","base_bucket","_bucket","col_header_ref","sstref","sentry","sx","sstroot","sxi","sstdata","newsst","sy","raw32","tileref","tentry","tx","tileroot","tiledata","rowload","R2","tilerow","ty","raw3","fix_opts_func","fix_opts","get_sheet_type","safe_parse_wbrels","wbrels","pwbr","safe_parse_sheet","relsPath","sheetRels","stype","dfile","drelsp","draw","chartp","crelsp","tcomments","strip_front_slash","_zip","dir","binname","link","propdata","pluck","bookDeps","wbsheets","wbext","wbrelsi","wbrelsfile","nmode","wsloop","snjseen","snj","Deps","Styles","bin","parse_xlsxcfb","dsm","seds","einfo","decrypt_agile","decrypt_std76","write_zip_xlsxb","write_zip_xlsx","foo","vbafmt","_sn","wsrels","_type","need_vml","rId1","needtc","read_cfb","read_zip","read_plaintext","main","read_plaintext_raw","read_utf16","bstrify","read_prn","readSync","ab","vu","write_cfb_ctr","write_zip_type","write_zip_denouement","write_zip_typeXLSX","oopts","ftype","generate","encrypt_agile","write_cfb_type","write_string_type","bom","write_stxt_type","write_binary_type","writeSyncXLSX","writeSync","sheet_to_txt","sheet_to_csv","resolve_book_type","_BT","writeFileSyncXLSX","writeFileAsync","_cb","Function","make_json_row","defval","isempty","defineProperty","enumerable","__rowNum__","rawNumbers","outi","counter","header_cnt","skipHidden","blankrows","qreg","make_csv_row","txt","forceQuotes","endregex","strip","sheet_to_formulae","cmds","sheet_add_json","js","skipHeader","JS","ws_get_cell_stub","json_to_sheet","RC","wb_sheet_idx","sh","roll","book_set_sheet_visibility","vis","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","dynamic","rngstr","table_to_sheet","sheet_to_row_object_array","sheet_get_cell","SHEET_VISIBLE","SHEET_HIDDEN","SHEET_VERY_HIDDEN","_Readable","set_readable","write_csv_stream","stream","BOM","_read","write_html_stream","write_json_stream","objectMode","__stream","to_json","to_html","to_csv","readFile","writeXLSX","writeFileXLSX"],"sourceRoot":"webpack:///"}